← Back to all apps

Upwork

Businessby Upwork
Launched Mar 10, 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

Hire a Freelancer

upwork_hire_freelancer
Full Description

Get a direct link to message or hire a specific freelancer on Upwork. Provide a freelancer profile ID to receive their Upwork profile URL where you can initiate contact and hiring.


Instructions for ChatGPT:
Use this tool when:
  • The user wants to get a link to message or hire a specific freelancer
  • The user asks for "the best", "top X", or recommendations after seeing search results
  • The user specifies freelancers they want to contact (e.g., "give me the link for John")
  • You've shown search results and the user wants to take action
Do NOT use this tool when:
  • The user wants to search for freelancers (use upwork_search_freelancers instead)
  • The user asks about finding a job for themselves (this tool is for clients hiring freelancers)
  • The user wants to post jobs, manage contracts, or access their Upwork account

Tool Behavior:

READ-ONLY: This tool performs read-only data retrieval. It has no side effects, does not modify any data, does not access user accounts, and does not perform any actions. It only returns a URL link to a freelancer profile page.

REDIRECT ONLY: This tool returns a URL that redirects the user to Upwork. All interactions (buttons, links, messages, hiring) only redirect to the Upwork environment where the user performs all actions themselves. The tool never sends messages, hires freelancers, or takes any actions on behalf of the user.


Capability Boundary:
  • This tool ONLY returns a read-only URL link for a specific freelancer profile ID. No actions are performed.
  • 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, hire anyone, or take any actions on the user's behalf.
  • This tool does NOT access, modify, or interact with the user's Upwork account in any way.
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.

Search for Freelancers

upwork_search_freelancers
Full Description

Search and discover freelancers on Upwork based on skills, location, and project requirements. Get detailed profiles with rates, experience, and job success scores to find the right talent for any project.


Instructions for ChatGPT:
Use this tool when:
  • The user wants to find, search for, or hire a freelancer for a project or task
  • The user asks queries like:
    • "Help me find a freelancer who can [task]"
    • "Can you search for a freelancer who can [task]"
    • "I want to hire a freelancer to [task]"
    • "I need someone to [task]"
    • "Find me a [role/skill] freelancer"
    • "Search for freelancers who can [deliverable]"
    • "Who can help me with [project type]"
    • "I'm looking for a freelancer to [task]"
Do NOT use this tool when:
  • The user asks about finding a job for themselves (this tool is for hiring freelancers, not job searching)
  • The user wants to post a job or manage job posts
  • The user asks to send messages, create contracts, or manage payments
  • The user asks to interpret images, files, or screenshots

Tool Behavior:

READ-ONLY: This tool performs read-only data retrieval from Upwork. It has no side effects, does not modify any data, does not access user accounts, and does not perform any actions on behalf of the user. It only searches and returns publicly available freelancer profile information.

ALL INTERACTIONS ARE REDIRECTS: Any buttons, links, or interactive elements in the search results widget only redirect the user to the Upwork website. The tool never sends messages, hires freelancers, or performs any actions. All actual actions (hiring, messaging, viewing profiles) are performed by the user themselves in the Upwork environment after they are redirected.

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.


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.

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:

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 (USE HIRE TOOL WHEN REQUESTED):

  • After showing search results, you MAY mention that the user can get direct links to message or hire freelancers using the upwork_hire_freelancer tool, but do NOT automatically call it unless the user explicitly requests it.
  • The hire tool provides a direct link to the freelancer's profile where they can message or hire them.
  • CRITICAL: Only use the hire tool when the user explicitly:
    • Asks for "the best", "top X", or specific recommendations (e.g., "give me the best 2 mobile app developers")
    • Requests links to contact or hire specific freelancers (e.g., "give me the link for John" or "I want to contact the top 3")
    • Asks to message or hire someone after seeing the results
    • When the user requests recommendations or links, immediately call the hire tool for the freelancers mentioned, then provide the links.
    • Example flow when user asks for recommendations: "Here are the top 3 matches. [Widget displays] 1) John
    • React expert. 2) Sarah
    • Node.js specialist. 3) Mike
    • Full-stack developer. [Then 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.
    • If the user just asks to "find" or "search" for freelancers without requesting links or recommendations, show the search results and wait for their next instruction.

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 unless the user explicitly wants to refine the search.
  • 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.
  • You may offer to help: "I can get the link to message any of these freelancers 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