Pricing
from $0.50 / 1,000 results
Upwork Jobs Scraper - $0.5 per 1k
Scrape job listings from Upwork search results by URL or filters. Export titles, descriptions, budgets, skills, experience level and more to JSON, CSV or Excel.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Upwork Job Scraper
Collect job listings from Upwork search results — no login, no manual copy‑pasting. Give it an Upwork search URL or pick a few filters, and the scraper returns clean, structured job data ready to export as JSON, CSV, or Excel.
Great for freelancers tracking new opportunities, agencies building lead lists, and analysts researching the freelance market.
What you can do
- 🔎 Scrape jobs from any Upwork search — just paste the search URL from your browser.
- 🎛️ Or build a search right here using simple filters (keyword, budget, experience level, and more).
- 📄 Get the full job details: title, description, budget, required skills, experience level, and post date.
- 🔗 Get a direct link to every job.
- 📊 Export to JSON, CSV, Excel, or push the data to your own apps.
- 🔁 Run it on a schedule to catch new jobs automatically.
How to use it
- Click Try for free.
- Either:
- paste one or more Upwork search URLs into Search URLs, or
- type a keyword and choose any filters you want.
- Set Max jobs (how many results to collect).
- Click Start and download your results when the run finishes.
Getting a search URL (easiest method)
- Go to upwork.com/nx/search/jobs and search as you normally would.
- Apply any filters you like (job type, budget, experience level, client location…).
- Copy the full address from your browser's address bar and paste it into Search URLs.
Every filter you set on Upwork is kept in that URL, so the scraper returns exactly what you see on the site.
Input
You can use search URLs, filters, or both. Filters are only needed if you don't provide a URL.
| Field | Description |
|---|---|
| Search URLs | One or more Upwork job‑search URLs copied from your browser. |
| Search keyword | Free‑text keyword (e.g. react native, logo design). |
| Sort by | Most recent or most relevant. |
| Job type | Hourly, fixed price, or weekly retainer. |
| Experience level | Entry level, intermediate, or expert. |
| Hourly rate range | Client's hourly budget, e.g. 10-50 (or 20- for $20+). |
| Fixed‑price budget | Budget brackets, e.g. under $100 up to $5,000+. |
| Client hires | Filter by how many people the client has hired before. |
| Client location(s) | Regions or countries, e.g. Americas, Oceania. |
| Project duration | Less than a month up to 6+ months. |
| Workload | As needed, part time, or full time. |
| Contract‑to‑hire only | Only show contract‑to‑hire roles. |
| Payment‑verified clients only | Only show jobs from payment‑verified clients. |
| Max jobs | How many jobs to collect (0 = as many as available). |
Example input
{"startUrls":["https://www.upwork.com/nx/search/jobs/?q=full%20stack&sort=recency&t=0,1&contractor_tier=2,3"],"maxItems":100}
Or with filters instead of a URL:
{"searchQuery":"react native","jobType":["1"],"experienceLevel":["3"],"fixedBudget":["500-999","1000-4999"],"sort":"recency","maxItems":50}
Output
Each job is saved as one record. Example:
{"id":"2070162917228783082","url":"https://www.upwork.com/jobs/~022070162917228783082","title":"React TypeScript Developer / Full Stack Web App","description":"We're looking for an experienced developer to build…","jobType":"FIXED","contractorTier":"ExpertLevel","hourly":null,"fixedPrice":{"amount":"1360.0","currency":"USD","duration":"Less than 1 month"},"skills":["React","TypeScript","Node.js","Web Development"],"publishTime":"2026-06-25T15:14:18.014Z","createTime":"2026-06-25T15:11:16.284Z","searchUrl":"https://www.upwork.com/nx/search/jobs/?q=full%20stack&sort=recency","scrapedAt":"2026-06-25T15:33:35.349Z"}
| Field | Description |
|---|---|
title | Job title |
url | Direct link to the job on Upwork |
description | Full job description |
jobType | HOURLY, FIXED, or weekly retainer |
contractorTier | Experience level required (Entry / Intermediate / Expert) |
hourly | Hourly budget range, engagement type, and duration (for hourly jobs) |
fixedPrice | Amount, currency, and duration (for fixed‑price jobs) |
skills | Skills requested for the job |
publishTime / createTime | When the job was posted |
searchUrl | The search this job came from |
scrapedAt | When the record was collected |
Tips
- Get more results per keyword by sorting by Most recent and running on a schedule, so you keep catching newly posted jobs.
- Combine searches by adding several URLs at once — all results land in the same dataset.
- Export anywhere — download as Excel/CSV/JSON from the run, or connect the dataset to Make, Zapier, Google Sheets, and more.
FAQ
Do I need an Upwork account? No. The scraper reads publicly visible job listings.
Will it return every matching job? It collects up to Max jobs, within the number of results Upwork makes available for a search. Narrow your filters to focus on the most relevant jobs.
Is scraping Upwork allowed? Only collect publicly available data and use it responsibly, in line with Upwork's terms and applicable laws.
