Upwork Freelancer & Talent Scraper avatar

Upwork Freelancer & Talent Scraper

Pricing

from $19.00 / 1,000 results

Go to Apify Store
Upwork Freelancer & Talent Scraper

Upwork Freelancer & Talent Scraper

Scrapes Upwork freelancer profiles by search term and returns each one as a flat row with title, hourly rate, skills, location, and job success score.

Pricing

from $19.00 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

32

Total users

7

Monthly active users

12 days ago

Last modified

Share

ParseForge

Upwork Freelancer & Talent Scraper

Scrape Upwork freelancer profiles from any talent search, up to a million per run. Every profile comes with its title, rate, skills, location, and job success score. No login or API key. Export to CSV, JSON, Excel, or XML.

Upwork's official API needs a developer account, OAuth tokens, and strict rate limits. This reads the public talent search results directly, filtered by your keywords, and returns each freelancer card in one fixed schema. Build a candidate pipeline without touching the API.

Who uses itWhat they scrape Upwork for
RecruitersBuild a shortlist of freelancers matching a specific skill set.
Sales teamsFind independent contractors who may need your SaaS tool.
Market researchersTrack the supply and average rates of a skill in a region.
Agency ownersBenchmark competitor freelancer profiles and their rates.

What it does

This Actor collects Upwork freelancer profiles by search term and returns each one as a flat row.

  • πŸ” Keyword-driven search: feed it one search term or a list of hundreds, and it harvests every public freelancer card Upwork returns.
  • πŸ“Š Flat row output: each freelancer lands as one row with title, hourly rate, skills, location, and job success score, ready for a spreadsheet.
  • ⚑ High-volume runs: set maxItems up to 1,000,000 and let the Actor paginate through results until it hits your cap or the search runs dry.
  • πŸ”„ Stateless design: no cookies, no sessions, no logins. Every run starts fresh from the public talent marketplace.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Upwork data

πŸ‘₯ Build a candidate pipeline.

A recruiter searches for 'react developer' and 'node.js developer', collects 500 profiles, and filters by job success score to invite the top 20 to an interview.

πŸ“ˆ Track freelance rate trends.

A market analyst runs the Actor weekly for 'UI designer' and 'UX researcher', then plots the average hourly rate over time to advise a pricing report.

🎯 Find prospects for your tool.

A SaaS founder searches for 'virtual assistant' and 'bookkeeper', collects 1,000 profiles, and enriches the list with contact data for a cold outreach campaign.

🏒 Benchmark your agency against the market.

An agency owner scrapes profiles for 'copywriter' and 'SEO specialist', compares their own rates and skills to the top 100 results, and adjusts their service packages.

Why choose this scraper

What you get
No API registrationSkip the OAuth dance and developer account setup.
Full freelancer cardTitle, rate, skills, location, and job success score in every row.
Bulk search termsPaste a list of 50 skills and collect candidates for all of them in one run.
Predictable schemaEvery run returns the same columns, so your pipeline never breaks.

How it compares

This Actor focuses on freelancer profiles from talent search, while the competitors below target job postings or offer a different input method for talent data.

FeatureParseForgeUpwork Job Extractor ⚑Upwork Talent Search ScraperUpwork Jobs Scraper 2026
Scrapes freelancer profilesYesNot listedYesNot listed
Keyword-based search inputYesNot listedNot listedNot listed
Scrapes job postingsNot listedYesNot listedYes
No API key requiredYesNot listedNot listedNot listed
Accepts direct Upwork URLNot listedNot listedYesNot listed

Configure the run

Drive the Actor from one or more search terms, and set a hard cap on how many profiles to collect per run. The Input tab lists every parameter.

A first run with the defaults:

{
"searchTerms": [
"react developer"
],
"maxItems": 10
}

A larger pull:

{
"searchTerms": [
"react developer"
],
"maxItems": 200
}

Pricing

Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.

Results collectedApproximate cost
100 results$2.10
1,000 results$21.00
10,000 results$210.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Upwork Freelancer & Talent Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Upwork through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/upwork-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your search terms match how Upwork lists skills. Try a broader term like 'developer' instead of a very niche phrase. Also verify that maxItems is set to at least 1.

The run stopped early and I didn't get my full maxItems count.

Upwork may have returned fewer results than your cap for that search term. The Actor collects everything available and then stops. Try a more common search term or remove location filters.

I'm getting errors or empty rows after a few hundred results.

Upwork may be rate-limiting your IP. Add Apify proxy configuration to your run to rotate IP addresses, and increase the run's timeout if needed.

The hourly rate field is empty for some freelancers.

Some freelancers do not publish their hourly rate on their public card. The Actor leaves the field blank when Upwork does not show it.

Can I filter by job success score or hourly rate inside the Actor?

The Actor collects all results for your search terms. To filter by score or rate, export the dataset to a spreadsheet and sort or filter there, or use a downstream Apify Actor to process the data.

FAQ

QuestionAnswer
Do I need an Upwork account or API key to run this?No. The Actor reads the public talent search pages that anyone can see in a browser. No login, no API key, no OAuth.
What data do I get for each freelancer?You get the freelancer's title, hourly rate, skills list, location, job success score, and other visible profile card fields. The exact columns are shown in the sample output on the Actor's page.
Can I scrape a specific freelancer's full profile page?This Actor collects the cards from the talent search results page. It does not open individual profile pages, so you get the summary data that appears in the search listing.
How many profiles can I collect in one run?You set the maxItems limit, up to 1,000,000. The Actor stops when it reaches your cap or when Upwork has no more results for your search terms.
Can I search for more than one skill at a time?Yes. Add multiple search terms in the input, and the Actor runs each one sequentially, appending all results to the same dataset.
Does this work for any country or location?The Actor returns whatever Upwork shows for your search. You can include location keywords in your search terms, like 'react developer Germany', to narrow results.
Will I get blocked by Upwork?The Actor uses standard HTTP requests with reasonable delays. For very large runs, consider using Apify proxies to rotate IP addresses and reduce the chance of rate-limiting.
What output formats are supported?You can export your dataset to CSV, JSON, Excel, or XML from the Apify console or via the API.
Can I schedule this to run automatically?Yes. Use Apify's scheduler to run the Actor daily, weekly, or on a custom cron expression, and have fresh freelancer data waiting for you.
How is this different from the Upwork Jobs Scraper?This Actor scrapes freelancer profiles from the talent search. The Jobs Scraper scrapes job postings from the project catalog. They target opposite sides of the marketplace.

Browse the full ParseForge collection for more scrapers.

πŸ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Upwork Global Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.