π₯ Upwork Jobs Scraper
Pricing
$25.00/month + usage
π₯ Upwork Jobs Scraper
Scrape Upwork job listings at scale β titles, budgets, hourly rates, skills, and client details. Filter by keyword, client location, experience level, job type, and budget. Bypasses Cloudflare with residential proxies. Export to JSON, CSV, or Excel.
Pricing
$25.00/month + usage
Rating
2.2
(13)
Developer
Pedrock LLC
Maintained by CommunityActor stats
74
Bookmarked
1.9K
Total users
5
Monthly active users
48 days
Issues response
6 days ago
Last modified
Share
Upwork Jobs Scraper π₯
Scrape Upwork.com job listings at scale β titles, budgets, hourly rates, skills, client details, and more. Bypasses Cloudflare with residential proxies. Filter by keyword, location, experience level, budget, and job type.
Perfect for freelancers hunting new gigs, agencies tracking demand, and analysts studying the freelance market. Enter a keyword, pick your filters, and get a clean structured dataset (JSON, CSV, Excel) in minutes.
β¨ Why this scraper
- Actually works β parses Upwork's current layout and clears the Cloudflare "Just a moment" challenge with residential proxies + Turnstile handling.
- Powerful filtering β keyword, client location, experience level, hourly-rate range, job type (hourly/fixed), payment-verified-only, and sort order.
- Rich data β title, full description, budget/hourly rate, skills, experience level, estimated time, posting time, and a stable job ID.
- Bring your own filters β paste any Upwork search URL directly via Start URLs.
- Optional logged-in mode β supply session cookies to unlock client fields (total spent, payment verified, rating, proposals).
- No duplicates β results are de-duplicated by job URL automatically.
π How to use
- Enter one or more Job keywords (e.g.
React developer,logo design). - (Optional) Add Client locations, Experience level, Job type, hourly-rate range, or payment-verified only.
- Set Max results (and optionally Max results per search to spread results across locations).
- Keep the default Residential proxy. Click Start.
- Download your data as JSON, CSV, or Excel β or pull it via the API.
π‘ Tip: To scrape a very specific search, run it once on upwork.com, copy the URL from your browser, and paste it into Start URLs β every filter you set on Upwork is respected.
π Filtering options
| Filter | Input field | Notes |
|---|---|---|
| Keyword | Job keywords | One search per keyword |
| Client location | Client locations | Country or region |
| Experience level | Experience level | Entry / Intermediate / Expert |
| Contract type | Job type | Hourly / Fixed / Any |
| Hourly rate | Min / Max hourly rate | Applies to hourly jobs |
| Payment verified | Payment-verified only | Verified clients only |
| Sort | Sort by | Most recent / Relevance |
| Raw search | Start URLs | Paste any Upwork search URL |
π€ Output fields
Each job in the dataset includes:
| Field | Description |
|---|---|
jobId | Stable Upwork job identifier |
title | Job title |
url | Direct link to the job posting |
description | Full job description |
postedAt | When it was posted (e.g. "Posted 13 minutes ago") |
contractType | e.g. "Hourly: $60.00 - $85.00" or "Fixed price" |
hourlyRate | Hourly range (hourly jobs) |
fixedPriceBudget | Budget (fixed-price jobs) |
experienceLevel | Entry / Intermediate / Expert |
estimatedTime | Duration & weekly hours |
tags | Required skills |
searchQuery, searchLocation | The search that produced the row |
Logged-in mode (cookies) additionally populates: clientPaymentVerified, clientSpent, clientLocation, clientRating, proposals.
Example output
{"jobId": "2076800888120589296","title": "Python/FastAPI + React Developer for small feature update","url": "https://www.upwork.com/jobs/...","postedAt": "Posted 13 minutes ago","description": "We're looking for a developer to add 2 small features...","contractType": "Hourly: $60.00 - $85.00","hourlyRate": "$60.00 - $85.00","fixedPriceBudget": "","experienceLevel": "Expert","estimatedTime": "Less than 1 month, Less than 30 hrs/week","tags": ["React", "Python", "FastAPI", "AWS Lambda"],"searchQuery": "react developer","searchLocation": "United States"}
π Unlocking client data (optional)
Client stats (spend, payment verification, ratings, proposals) are only visible to logged-in Upwork users. To include them:
- Log in to Upwork in your browser.
- Export your
upwork.comcookies with a cookie-export extension (Cookie-Editor, EditThisCookie). - Paste the exported JSON array into the Upwork login cookies input.
Leave it empty to scrape anonymously (all non-client fields still work).
π‘ Use cases
- Freelancers β monitor fresh, relevant postings without refreshing Upwork all day.
- Agencies β track demand and pricing for your services across regions.
- Market research β analyze rates, skills in demand, and hiring trends.
- Lead generation β build lists of clients actively hiring in your niche.
π Supported locations
Any country or region Upwork supports (Americas, Europe, Asia, Africa, Oceania, and individual countries such as United States, United Kingdom, Canada, Germany, Australia, India, etc.).
π API & integrations
Run this Actor from the Apify API, the CLI, or any integration (Make, Zapier, n8n, webhooks). Schedule it to run daily/weekly to keep a live feed of new jobs.
π€ Use with AI agents (MCP)
This Actor is available as a tool for AI agents through the Apify MCP server. Agents built with Claude, ChatGPT, or any MCP-compatible client can call it directly to fetch live Upwork jobs β no glue code needed.
- MCP endpoint:
https://mcp.apify.com - Tool / Actor ID:
kobimantzur/upwork-jobs-scraper - The structured input schema (keywords, filters) and output schema (typed job fields) let agents call it and parse results reliably.
Typical agent uses: "find fresh React jobs paying $50+/hr from verified US clients", monitoring pipelines, or feeding a job-matching assistant.
Not affiliated with Upwork. Scrapes only publicly available job-listing data. Use responsibly and in line with applicable terms and laws.