Upwork Talent Scraper avatar

Upwork Talent Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Upwork Talent Scraper

Upwork Talent Scraper

Scrape freelancer profiles from Upwork talent search. Returns name, title, hourly rate, skills, earnings, hours billed, location, and badge status. Filter by keyword, region, timezone, talent type, rate range, and more — up to 1,000 profiles per run. No login required.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

CRW

CRW

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

4

Monthly active users

a day ago

Last modified

Share

Upwork Talent Search Scraper

Search Upwork's entire talent pool and export clean, structured data — without an account, without a browser, without copy-pasting.

No Upwork account required. No login. No browser.


Why this exists

Upwork's talent search is built for hiring one person. It's not built for:

  • Pulling 200 React developers to compare rates across regions
  • Researching how Top Rated designers price themselves in Europe vs. Asia
  • Building a prospect list of freelancers who might need your SaaS tool
  • Tracking how supply and skill distribution shifts over time

For any of that, you'd be clicking and copying for hours. This scraper does it in minutes.


How to Run

  1. Click Try for free above
  2. Set your filters in the input form (or paste JSON)
  3. Click Start
  4. Download as JSON, CSV, or Excel — or pull via API

Speed: ~100 profiles/minute. A 500-profile run takes about 5 minutes.


Sample Output

Real data from an actual run (personal identifiers removed):

{
"title": "Senior AI Engineer | LLM Apps, RAG & Agents | 12 Yrs Full-Stack",
"location": {
"country": "India",
"region": "Asia",
"timezone": "UTC+05:30 Mumbai, Kolkata, Chennai, New Delhi"
},
"hourlyRate": 68,
"currency": "USD",
"skills": [
"Python", "LangChain", "LLM Prompt Engineering", "OpenAI API",
"Azure OpenAI Service", "AI Agent Development", "FastAPI",
"Next.js", "Full-Stack Development", "PostgreSQL"
],
"totalEarnings": 375762.13,
"totalHours": 11933.67,
"totalHourlyJobs": 44,
"totalFixedJobs": 31,
"topRated": "top_rated",
"topRatedPlus": "top_rated_plus",
"idVerified": false,
"portfolioCount": 50,
"profileUrl": "https://www.upwork.com/freelancers/..."
}

Example Inputs

Simplest possible run — just a keyword:

{
"keyword": "python developer",
"maxResults": 50
}

Top Rated Python developers in Asia, $60+/hr, 1,000+ hours billed in last 6 months:

{
"keyword": "python",
"maxResults": 100,
"regions": ["Asia"],
"talentBadges": ["Top Rated", "Top Rated Plus"],
"hourlyRateRange": "60+",
"hoursBilled": "1000",
"hoursBilledRecentOnly": true,
"languages": ["English"]
}

US/Canada UX designers working Eastern or Pacific hours:

{
"keyword": "UX designer",
"maxResults": 50,
"countries": ["United States", "Canada"],
"timezones": [
"(UTC-07:00) Pacific Time (US & Canada); Los Angeles",
"(UTC-04:00) Eastern Time (US & Canada)"
],
"hourlyRateRange": "60+",
"englishLevel": 3
}

Rising Talent video editors — for rate benchmarking:

{
"keyword": "video editor",
"maxResults": 500,
"talentBadges": ["Rising Talent"],
"talentType": "independent"
}

Who uses this

Recruiters & hiring managers Before posting a job, pull 100 matching profiles. Know the typical rate range, where supply is concentrated, and what skills top candidates highlight — before you write a single word of your job post.

Agencies Benchmark your positioning against competitors. See how Top Rated Plus freelancers in your niche describe themselves, what they charge, and what skills they lead with.

Market researchers & analysts Track freelancer supply by region, skill, and rate tier. Export clean datasets for analysis in Excel, Python, or any BI tool.

Sales & growth teams Build prospect lists of freelancers who work in your target vertical. Filter by earnings, hours billed, and badge status to focus on the ones worth reaching out to.


Filters

Search & Volume

InputDescription
keywordSkill, title, or any search term
maxResults1–1,000 profiles per run

Location

InputOptions
regionsAfrica, Americas, Asia, Europe, Oceania
subregionse.g. South-Eastern Asia, Western Europe
countries200+ countries (full list in input form)
timezonesMatch by local working hours

Talent Quality

InputOptions
talentBadgesTop Rated Plus, Top Rated, Rising Talent
minEarningsany / 1 / 100 / 1000 / 10000 / none
hoursBilledany / 1 / 100 / 1000
hoursBilledRecentOnlytrue = last 6 months only
englishLevel1 Basic · 2 Conversational · 3 Fluent · 4 Native

Rate & Type

InputOptions
hourlyRateRangeany / 0-10 / 10-30 / 30-60 / 60+
talentTypeall / independent / agency
languagese.g. "English", "Japanese", "French"

Output Fields

FieldTypeDescription
titlestringProfessional title
descriptionstringFull profile bio
hourlyRatenumberHourly rate (USD)
currencystringAlways "USD"
skillsarrayFull tagged skill list
location.countrystringCountry
location.regionstringe.g. "Asia"
location.timezonestringe.g. "UTC+05:30 ..."
totalEarningsnumberLifetime earnings (USD). Note: Upwork hides exact amounts above certain thresholds — a value of 0 may mean the freelancer has opted to hide earnings, not that they have none.
totalHoursnumberTotal hours billed on platform
totalHourlyJobsnumberNumber of hourly contracts
totalFixedJobsnumberNumber of fixed-price contracts
totalCompletedJobsnumberCompleted contracts
topRatedstring"top_rated", "eligible", or empty
topRatedPlusstring"top_rated_plus", "tr_plus_eligible", or empty
idVerifiedbooleanIdentity verification status
portfolioCountnumberNumber of portfolio items
profileUrlstringDirect link to Upwork profile

Limits

  • Max 1,000 profiles per run — Upwork's public search cap
  • Data is from Upwork's non-logged-in talent search (same view as a visitor without an account)

Filter Reference

Hourly Rate

"any" · "0-10" · "10-30" · "30-60" · "60+"

Earned Amount

"any" · "1" ($1+) · "100" ($100+) · "1000" ($1K+) · "10000" ($10K+) · "none" (no earnings yet)

Hours Billed

"any" · "1" · "100" · "1000"

English Level

1 Basic · 2 Conversational · 3 Fluent · 4 Native/Bilingual

Timezone Examples

  • "(UTC-07:00) Pacific Time (US & Canada); Los Angeles"
  • "(UTC+05:30) Mumbai, Kolkata, Chennai, New Delhi"
  • "(UTC+09:00) Tokyo, Osaka, Sapporo, Seoul"

Multiple timezones with the same UTC offset are automatically deduplicated.