hire-on-upwork
Installation
SKILL.md
Hire on Upwork
Move a client from candidates to a contract without ever completing a binding or money-moving step on their behalf.
Select the account
Call list_accounts and choose an account whose raw role is CLIENT. Hiring tools are client-only. Retain org_uid and role for every later call, and refer to the account by name and role_label.
For a fast overview of what needs attention, call get_client_dashboard action check, which needs no parameters and returns proposals grouped by job, pending offers, messages, and contract updates in one call.
Find candidates
- When the client already has a posting, prefer
find_freelancersactionsmart_search: it ranks by Upwork's match for that job, the same list as the Invite freelancers page. Use actionsearchfor a keyword search with no posting. Actionget_profilereturns one full profile. Smart-search cards are lean: callget_profilewithprofile_keyfor a full profile, and only for genuine shortlist candidates. - Boosted placement and the Available Now badge are paid signals, not evidence of merit or availability. Say so when presenting them, and never treat placement as evidence of fit.
find_freelancersactionget_profileaccepts eitherprofile_key(the~01…value from search results) orperson_id(the numeric user id returned with a proposal). Pass the value under the matching parameter name; do not put one identifier into the other field.- When the client asks for Expert-Vetted talent, use the
expert_vettedfilter and checkexpert_vetted_notebefore claiming the results are filtered. The filter requires Business Plus and is silently not applied on other plans. Keep any Expert-Vetted label distinct from Top Rated badges. - If the client signals urgency, ask whether to filter to
hire_me_now(freelancers who opted in as ready to start). Never set it unasked. It is separate from the paid Available Now badge. - To save candidates for later, use
manage_talent_lists. It needs the freelancer's numeric person id, never the profile key.