← Back to all apps

Upwork

Businessby Upwork
Launched Feb 26, 2026 on ChatGPT

Upwork makes it easy to find and connect with expert talent to get work done. With Upwork in ChatGPT, explore freelancers across skills as you plan projects and turn ideas into action. Review profiles and continue on Upwork to message professionals and move work forward.

Try asking things like:

  • I'm looking for a freelance web developer
  • I need someone skilled in AI engineering
  • I want to hire a freelancer to build my website
2ChatGPT Tools
UpworkDeveloper
BusinessCategory

Available Tools

Upwork Hire Freelancer

upwork_hire_freelancer
Full Description

Get the URL to hire a freelancer on Upwork. Provide a freelancer profile ID and this tool will return the direct link to their Upwork profile page where you can initiate the hiring process. CAPABILITY BOUNDARY:

  • This tool only returns a hire URL for a specific freelancer profile ID.
  • This tool does NOT search for freelancers (use upwork_search_freelancers for discovery/comparison).
  • This tool does NOT help users find jobs for themselves; it is for clients hiring freelancers.
  • This tool does NOT send messages, create contracts, post jobs, or take actions on the user's behalf.
Parameters (1 required)
Required
freelancer_idstring

The unique identifier (profile ID) of the freelancer you want to hire. This is typically found in freelancer search results or profile URLs.

Upwork Search Freelancers

upwork_search_freelancers
Full Description

Search Upwork freelancer profiles and return matching freelancer data (e.g., title, skills, rate, job success, hours, profile URL). Use ONLY to help the user find and compare freelancers.

IMPORTANT: This integration is for finding FREELANCERS TO HIRE, not for finding jobs. If the user asks about finding a job for themselves, you MUST clarify that this tool helps clients/employers find and hire freelancers, not the other way around.

INTEGRATION CAPABILITIES: Right now, I can:

  • Search for freelancers on Upwork based on skills, location, and other criteria
  • Help you compare freelancer profiles, rates, and experience
  • Provide links to hire specific freelancers

I cannot:

  • Help users find jobs for themselves (this tool is for hiring freelancers, not job searching)
  • Post jobs, manage job posts, or access your Upwork account
  • Send messages to freelancers or manage contracts
  • Process payments or manage billing
  • View or interpret images, files, or screenshots

If you need to do something I cannot do, I can help by drafting content, scoping requirements, or explaining how to do it in Upwork.

CAPABILITY BOUNDARY:

  • This tool DOES NOT help users find jobs for themselves. It is ONLY for finding freelancers to hire.
  • This tool DOES NOT post jobs, manage job posts, message freelancers, hire/contract, manage payments, or access the user's Upwork account.
  • If the user asks about finding a job for themselves, you MUST clarify that this integration helps clients/employers find and hire freelancers, not help freelancers find jobs.
  • If the user asks to post a job or do any account action, you MUST say you can't do that yet, and offer to help by drafting a job post, scoping requirements, and explaining how to do it in Upwork.
  • If the user asks you to interpret images/files/screenshots, you MUST say you can't view them via this integration.

WHEN TO USE:

  • Use when the user asks to find a freelancer, browse options, compare candidates, or identify what kind of freelancer they should hire.
  • Use when the user describes a project they need help with and says they want to hire someone (for example: "I need help with this project... I want to hire somebody.").

HARD CONSTRAINTS (ANTI-BIAS AND COST):

  • You MUST NOT use geography, nationality, region, or language variety as a proxy for price, affordability, or "cost effectiveness".
  • You MUST NOT set the location filter because the user used cost terms (cheap, affordable, low cost, cost effective, best value, budget, etc.).
  • You MUST NOT mention or imply that any country or region is cheaper, more cost effective, or better value.

ALLOWED USES OF LOCATION (NON-COST ONLY):

  • You MAY set location ONLY if the user explicitly requests a location or region.
  • You MAY set location for explicit non-cost constraints stated or implied by the user, such as:
    • timezone coverage (for example "cover US business hours")
    • regulatory or compliance constraints

TIMEZONE COVERAGE RULE:

  • If the user requests timezone coverage (for example US business hours) and does not request a location, you MAY set location to a timezone-aligned set of countries to improve matching.
  • When you do this, you MUST state in additional_context: "Location filter applied for timezone overlap."
  • If the user does not specify which US timezone, use the broadest reasonable set aligned with multiple US timezones, prioritized by the Americas.

BUDGET RULES:

  • Use hourly_rate_max ONLY if the user provides a numeric maximum (for example "under $25/hr"). Do not guess.
  • Use hourly_rate_min ONLY if the user provides a numeric minimum (for example "at least $50/hr"). Do not guess.
  • If the user says "cost effective" (or similar) without providing numbers, you MUST ask for a numeric budget. While waiting, you may run an initial search without hourly_rate_min/max.

INTERACTION RULE:

  • If budget is mentioned without numbers, you MUST ask: "What is your hourly max (or monthly budget and hours/week)?" and proceed with a budget-agnostic search in parallel.

TIMEZONE TO LOCATION MAPPING GUIDANCE (DEFAULTS WHEN USER DID NOT SPECIFY A REGION):

  • This guidance is non-exhaustive. Do not treat any country list as the only valid set.
  • If you need US business hours overlap, pick a broad timezone-aligned set of countries to increase overlap, then narrow only if the user asks.
  • Prefer describing the requirement in terms of overlap (for example "must cover ET business hours") rather than framing choices as region-based quality or cost.
  • Example starting points (not exhaustive):
    • ET coverage: countries in the Americas with strong overlap with ET
    • CT coverage: countries in the Americas with strong overlap with CT
    • MT coverage: countries in the Americas with strong overlap with MT
    • PT coverage: countries in the Americas with strong overlap with PT
    • Any US timezone coverage: a broad Americas-focused set spanning multiple US timezones

IMPORTANT:

  • The mapping above is for timezone overlap only. It must never be framed as a cost decision.

POST-TOOL-CALL RESPONSE GUIDELINES (CRITICAL): After calling this tool and displaying the UI widget, you MUST follow these rules:

1. BE CONCISE:

  • Keep your response brief. Do NOT repeat information that is already visible in the UI widget.
  • The widget displays freelancer profiles with titles, skills, rates, job success, and other details.
  • Limit text after the widget so it remains visible on screen without excessive scrolling.

2. REFERENCE ONLY VISIBLE FREELANCERS:

  • Only mention or recommend freelancers that are actually shown in the UI widget.
  • Do NOT reference freelancers from the search results that are not displayed in the widget.
  • If you mention specific freelancers, ensure they match what the user sees in the widget.

3. CHAT SCOPE LIMITATION (CRITICAL):

  • IMPORTANT: The chat does NOT have access to the full scope of freelancer details after the search results are displayed.
  • You CANNOT reference a freelancer by name to ask for more information about them in subsequent messages.
  • If a user asks about a freelancer by name (e.g., "Tell me more about Rashida" or "What about John?"), you MUST NOT:
    • Try to search for them again
    • Say "I'm not seeing a freelancer named X" or ask for profile links/screenshots
    • Attempt to provide additional details about that freelancer
    • Instead, you MUST immediately respond that you don't have access to individual freelancer details after the search, and direct them to click the message link in the search widget above to get more information or contact that freelancer.
    • Example response: "I don't have access to detailed freelancer information after the search results. To learn more about [Name] or contact them, please click the message link next to their profile in the search results widget above."

4. EXPLAIN RECOMMENDATIONS:

  • If you recommend a specific freelancer, clearly state WHY (e.g., "strong match for your React requirement", "has experience with similar projects", "fits your budget range").
  • Be specific about what makes them a good fit based on the search criteria and their profile.

5. GUIDE TO NEXT STEP (AUTOMATICALLY USE HIRE TOOL):

  • After showing search results, ALWAYS push the user to use the upwork_hire_freelancer tool to get the link to message or hire a freelancer.
  • The hire tool provides a direct link to the freelancer's profile where they can message or hire them.
  • CRITICAL: When the user asks for "the best", "top X", "recommendations", or specifies freelancers (e.g., "give me the best 2 mobile app developers"), you MUST immediately use the hire tool to get their message/hire links. Do NOT ask "what would you like to do" or "what's next" - just get the links.
  • After listing recommended freelancers, immediately call the hire tool for each one mentioned, then provide the links.
  • Example flow: "Here are the top 3 matches. [Widget displays] 1) John
  • React expert. 2) Sarah
  • Node.js specialist. 3) Mike
  • Full-stack developer. [Then immediately use hire tool for all 3] Here are the links to message them: [links]"
  • If the user asks for specific numbers (e.g., "best 2 mobile developers"), get hire links for exactly that many.
  • Be action-oriented: automatically use the hire tool, don't ask permission or what they want to do next.

6. ASKING FOR MORE PROJECT INFO (FIRST SEARCH ONLY):

  • On the FIRST search execution, it's acceptable to ask for more project details if the query is vague or missing important information (budget, timeline, specific requirements).
  • However, AFTER showing search results, do NOT ask for more project info. Instead, push users to take action with the results (use hire tool to message/hire).
  • If the user wants to refine the search after seeing results, they will ask. Don't proactively ask for more details after results are shown.
  • Focus on moving forward: "I can get the link to message [Name] if you're interested, or we can refine the search with more specific requirements."

7. NO GENERIC UPWORK GUIDANCE:

  • Do NOT provide generic instructions on how to use Upwork (e.g., "Here's how to post a job on Upwork...").
  • Focus on the specific search results and helping the user make a decision.
  • Only mention Upwork mechanics if directly relevant to the immediate next step.
Parameters (1 required, 4 optional)
Required
querystring

The primary search keywords. Combine the role (e.g., 'Developer') with specific skills (e.g., 'React') or the deliverable (e.g., 'Logo Design').

Optional
additional_contextstring

A comprehensive project brief. INSTRUCTIONS: 1) Include responsibilities, required tools, communication requirements, availability, success criteria, and relevant skills. - If relevant, include the Upwork category or specialty (e.g., "Web Development", "Graphic Design"). - If relevant, include language requirements (e.g., "Must be fluent in English"). 2) Always include timezone coverage requirements here (for example "Must cover US business hours ET"). 3) If you set location due to timezone coverage, you MUST include this exact sentence: "Location filter applied for timezone overlap." 4) Do NOT include any reasoning that ties cost, affordability, or quality to geography. 5) If the user did not provide numeric rates, do not invent them here.

Default: null
hourly_rate_maxnumber

Maximum hourly rate in USD. Use ONLY if the user explicitly provides a numeric maximum.

Default: null
hourly_rate_minnumber

Minimum hourly rate in USD. **Use ONLY if the user explicitly states a minimum price** (e.g., 'I want someone charging at least $50/hr'). Do not use this to infer quality; use 'additional_context' for that.

Default: null
locationarray

Filter by specific country names. HARD RULES: - Set this ONLY if (a) the user explicitly requests a location or region, OR (b) a non-cost constraint requires it (for example timezone coverage, compliance). - DO NOT set this due to cost language. MAPPING INSTRUCTIONS: - Cities/states: map to country in this array, and repeat the city/state in additional_context. - Regions: if the user explicitly asks for a region like "LATAM", include 3 to 5 countries as examples. - Timezone coverage: if the user asks for US hours, you MAY use the timezone mapping guidance in the tool description to populate this field.

Default: null