Upwork Job Search Scraper avatar

Upwork Job Search Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Upwork Job Search Scraper

Upwork Job Search Scraper

Scrape Upwork job postings without limits. No cookies or login required — session is acquired automatically. Filter by keyword, category, experience level, job type, budget, location, and more.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

CRW

CRW

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Stop manually refreshing Upwork search pages. The Upwork Job Search Actor pulls fresh, structured job postings for you — no setup required.

Whether you're a freelancer tracking niche opportunities or an agency monitoring demand in your market, this Actor turns Upwork into a clean, structured data feed you can actually work with.


Key Features

  • No setup required — just enter your search criteria and run
  • Rich filter support — keyword, experience level, job type, budget, location, category, and more
  • Up to 1,000 jobs per run with automatic pagination
  • Structured output — clean JSON with job details, budget, skills, and timestamps

Input

FieldTypeDefaultDescription
keywordstringSearch keyword (e.g. "React developer"). Leave empty to browse all.
maxResultsinteger100Maximum number of jobs to collect (max: 1,000)
sortstringrelevance+descSort order: relevance+desc or recency
contractorTierarrayExperience level: EntryLevel, IntermediateLevel, ExpertLevel
jobTypearrayJob type: hourly, fixed
hourlyRateMinintegerMinimum hourly rate (USD) — applies when jobType includes hourly
hourlyRateMaxintegerMaximum hourly rate (USD) — applies when jobType includes hourly
fixedBudgetRangesarrayFixed budget preset ranges: 0-99, 100-499, 500-999, 1000-4999, 5000-
fixedBudgetMinintegerCustom fixed budget minimum (USD)
fixedBudgetMaxintegerCustom fixed budget maximum (USD)
clientHiresarrayClient hire history: 0 (no hires), 1-9, 10-
clientLocationobject{ "regions": [...], "countries": [...] }
clientTimezonesarrayFilter by client timezone (e.g. "(UTC+09:00) Tokyo, Osaka, Sapporo, Seoul")
durationV3arrayProject length: week, month, semester, ongoing
workloadarrayHours per week: as_needed, part_time, full_time
contractToHirebooleanfalseInclude only Contract-to-Hire roles
categorystringJob category (see supported categories below)
subcategorystringJob subcategory — only valid when category is also set

Example Input

{
"keyword": "backend developer",
"maxResults": 50,
"sort": "recency",
"contractorTier": ["IntermediateLevel", "ExpertLevel"],
"jobType": ["hourly"],
"hourlyRateMin": 30,
"hourlyRateMax": 100,
"category": "Web, Mobile & Software Dev",
"subcategory": "Web Development",
"durationV3": ["month", "semester", "ongoing"],
"workload": ["full_time"]
}

Output

Each item in the dataset represents one job posting.

FieldTypeDescription
idstringUpwork internal job ID
ciphertextstringJob URL identifier (e.g. ~022xxx)
titlestringJob title
descriptionstringFull job description
skillsstring[]Required skills
jobTypestringHOURLY or FIXED
contractorTierstring | nullEntryLevel, IntermediateLevel, or ExpertLevel
hourlyBudgetMinnumber | nullMin hourly rate (HOURLY jobs only)
hourlyBudgetMaxnumber | nullMax hourly rate (HOURLY jobs only)
hourlyEngagementTypestring | nullFULL_TIME, PART_TIME, AS_NEEDED (HOURLY only)
engagementDurationLabelstring | nullContract duration label (HOURLY only)
engagementDurationWeeksnumber | nullContract duration in weeks (HOURLY only)
fixedPriceAmountnumber | nullFixed price in USD (FIXED jobs only)
fixedPriceDurationLabelstring | nullProject duration label (FIXED only)
fixedPriceDurationWeeksnumber | nullProject duration in weeks (FIXED only)
createTimestringJob creation timestamp (ISO 8601)
publishTimestringJob publish timestamp (ISO 8601)

Example Output

{
"id": "2054308449345801268",
"ciphertext": "~022054308449345801268",
"title": "Backend Developer (Node.js + n8n)",
"description": "We're looking for a backend developer with deep expertise in n8n...",
"skills": ["Node.js", "API", "JavaScript", "MySQL"],
"jobType": "HOURLY",
"contractorTier": "IntermediateLevel",
"hourlyBudgetMin": 30,
"hourlyBudgetMax": 60,
"hourlyEngagementType": "FULL_TIME",
"engagementDurationLabel": "More than 6 months",
"engagementDurationWeeks": 52,
"fixedPriceAmount": null,
"fixedPriceDurationLabel": null,
"fixedPriceDurationWeeks": null,
"createTime": "2026-05-12T21:11:16.591Z",
"publishTime": "2026-05-12T21:12:10.479Z"
}

Use Cases

  • Job hunting — Monitor opportunities matching your exact skill set without manual searching
  • Market research — Analyze demand for specific skills and typical budget ranges
  • Rate benchmarking — Collect hourly rate data across experience levels and categories
  • Job alert pipelines — Feed results into Slack, email, or a database for real-time alerts

Supported Categories

CategorySubcategories (sample)
Accounting & ConsultingAccounting & Bookkeeping, Financial Planning, Recruiting & Human Resources, …
Admin SupportData Entry & Transcription Services, Virtual Assistance, Project Management, …
Customer ServiceCustomer Service & Tech Support, Community Management & Tagging
Data Science & AnalyticsAI & Machine Learning, Data Analysis & Testing, Data Mining & Management, …
Design & CreativeArt & Illustration, Branding & Logo Design, Video & Animation, …
Engineering & ArchitectureCivil & Structural Engineering, Electrical & Electronic Engineering, 3D Modeling & CAD, …
IT & NetworkingDevOps & Solution Architecture, Information Security & Compliance, Network & System Administration, …
LegalCorporate & Contract Law, Finance & Tax Law, International & Immigration Law, …
Sales & MarketingDigital Marketing, Lead Generation & Telemarketing, Marketing, PR & Brand Strategy
TranslationTranslation & Localization Services, Language Tutoring & Interpretation
Web, Mobile & Software DevWeb Development, Mobile Development, AI Apps & Integration, Ecommerce Development, …
WritingContent Writing, Editing & Proofreading Services, Professional & Business Writing, …

Supported Client Locations

Regions

Africa · Americas · Antarctica · Asia · Europe · Oceania

Countries

Albania · Algeria · Argentina · Armenia · Australia · Austria · Azerbaijan · Bahrain · Bangladesh · Belgium · Bolivia · Bosnia and Herzegovina · Brazil · Bulgaria · Cambodia · Cameroon · Canada · Chile · China · Colombia · Costa Rica · Croatia · Cyprus · Czech Republic · Denmark · Dominican Republic · Ecuador · Egypt · El Salvador · Estonia · Ethiopia · Finland · France · Georgia · Germany · Ghana · Greece · Guatemala · Honduras · Hong Kong · Hungary · Iceland · India · Indonesia · Ireland · Israel · Italy · Jamaica · Japan · Jordan · Kazakhstan · Kenya · Kuwait · Kyrgyzstan · Latvia · Lebanon · Lithuania · Luxembourg · Malaysia · Malta · Mexico · Moldova · Mongolia · Montenegro · Morocco · Myanmar · Nepal · Netherlands · New Zealand · Nicaragua · Nigeria · Norway · Oman · Pakistan · Panama · Paraguay · Peru · Philippines · Poland · Portugal · Qatar · Romania · Rwanda · Saudi Arabia · Senegal · Serbia · Singapore · Slovakia · Slovenia · South Africa · South Korea · Spain · Sri Lanka · Sweden · Switzerland · Taiwan · Tanzania · Thailand · Tunisia · Turkey · Ukraine · United Arab Emirates · United Kingdom · United States · Uruguay · Uzbekistan · Venezuela · Vietnam · Zimbabwe · and more.


Limitations

  • Search results are limited to publicly visible job postings (visitor-level access)
  • Maximum 1,000 jobs per run
  • subcategory is only effective when category is also specified
  • fixedBudgetRanges and fixedBudgetMin/fixedBudgetMax can be combined and are merged together
  • Multiple timezones with the same UTC offset are automatically deduplicated