Upwork Jobs Scraper avatar

Upwork Jobs Scraper

Pricing

from $1.50 / 1,000 jobs

Go to Apify Store
Upwork Jobs Scraper

Upwork Jobs Scraper

Scrapes Upwork freelance job listings by keyword with full search filters (sort, experience, job type, budget, hourly rate, client history, location, timezone, project duration, workload).

Pricing

from $1.50 / 1,000 jobs

Rating

0.0

(0)

Developer

Scraptivo

Scraptivo

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Upwork Jobs Scraper collects freelance job listings from Upwork and turns them into structured data for lead generation, market research, and competitive analysis. Provide search keywords, run the Actor, and export job titles, budgets, hourly rates, experience levels, skills, and full descriptions to JSON, CSV, Excel, or your preferred integration. Use it to find qualified projects, monitor demand for your services, and study freelance market rates. Each job result costs $0.002.

What can you automate with Upwork Jobs Scraper?

  • Find qualified freelance projects — search keywords and filter by budget, experience level, job type, and client history.
  • Monitor demand for your services — schedule recurring keyword searches to catch new projects early.
  • Study market rates — export hourly and fixed-price budgets to benchmark freelance pricing.
  • Build lead lists — collect job URLs, skills, and descriptions for outreach.
  • Feed a pipeline — export to CSV or a CRM and deduplicate by job ID.

Who is this scraper for?

TeamWorkflow
Freelancers and agenciesFind and filter projects that match skills and budget.
Market researchersTrack demand and rates across freelance categories.
Sales and recruiting teamsBuild lists of active buyers and open requirements.
Competitor analystsWatch which skills and projects clients are posting.

What data can you collect from Upwork?

Data groupExample fieldsHow it helps
Job identitytitle, url, id, searchQueryIdentify and link the posting.
Budget signalsjobType, fixedPriceAmount, hourlyBudgetMin, hourlyBudgetMaxAssess project value.
Requirementsskills, contractorTier, descriptionMatch skills and experience.
TimingpublishTime, projectDurationGauge urgency and length.

How to use Upwork Jobs Scraper

  1. Open the Actor in the Scraptivo account.
  2. Enter one or more search keywords.
  3. Optionally apply filters for budget, experience, job type, and location.
  4. Run the Actor.
  5. Export the dataset to JSON, CSV, Excel, or your integration.
{ "searchQueries": ["scraping"], "sort": "newest", "maxItems": 20 }

Example workflow

Get new web-scraping projects every morning

  1. Run a "scraping" search every morning with sort: newest.
  2. Keep fixed-price jobs above $500 or hourly jobs over $30/hour.
  3. Send new records to a CRM or Google Sheet.
  4. Deduplicate using the stable id.

Automate and integrate your results

  • Schedule hourly or daily runs per keyword using Apify's Scheduler or the API.
  • Webhooks after a successful run to trigger your downstream pipeline.
  • Export to Google Sheets, Make, Zapier, Slack, or a database.
  • Deduplicate using the stable id field.
curl "https://api.apify.com/v2/acts/scraptivo~upwork-jobs-scraper/run-sync" -H "Content-Type: application/json" -d '{"searchQueries":["scraping"],"maxItems":20}'

Input reference

FieldTypeRequiredDefaultWhat it controls
searchQueriesarrayyesKeywords to search on Upwork job listings.
sortstringnorelevanceSort by relevance or newest.
jobTypesarrayno[]Filter by hourly and/or fixed-price jobs.
experienceLevelsarrayno[]Filter by entry, intermediate, or expert.
category2Uidsarrayno[]Upwork category UID values (optional).
locationsarrayno[]Client location country names.
timezonesarrayno[]Client time-zone codes (e.g. EST, PST).
clientHiresarrayno[]Filter by client hire history (0, 1-9, 10+).
budgetRangesarrayno[]Fixed-price budget filters.
hourlyRatestringno""Hourly rate range in Upwork format (e.g. 20-50).
hourlyRateMinintegernoMinimum hourly rate in USD.
hourlyRateMaxintegernoMaximum hourly rate in USD.
projectDurationsarrayno[]Project duration filters.
workloadsarrayno[]Weekly workload filters.
contractToHirebooleannofalseOnly return contract-to-hire jobs.
pageSizeintegerno10Jobs per API page (max 50).
maxItemsintegerno0Max job records to scrape (0 = unlimited).
proxyConfigurationobjectnoRESIDENTIALResidential proxy for GraphQL API requests.

Output example

{
"id": "2075247703436095883",
"title": "Fix Cloudflare Bypass & Cookie Expiration in Existing Web Scraper",
"url": "https://www.upwork.com/jobs/~022075247703436095883",
"searchQuery": "scraping",
"jobType": "FIXED",
"contractorTier": "ExpertLevel",
"fixedPriceAmount": "50.0",
"projectDuration": "Less than 1 month",
"publishTime": "2026-07-09T16:00:42.559Z",
"skills": ["Data Scraping", "Python", "Node.js", "Cloudflare"]
}

How much does it cost to scrape Upwork?

Upwork Jobs Scraper uses pay-per-event billing on Apify:

  • $0.002 per job result (the headline result event).
  • $0.00005 per run for the actor-start event.

Examples: 100 jobs cost about $0.20; 1,000 jobs cost about $2.00 plus the start fee. Free Apify plan users are limited to 10 jobs per run. Residential proxy traffic is billed separately by Apify according to your plan.

Reliability and responsible use

  • A residential proxy is used for all requests and enabled by default.
  • Filter fields are optional; leave them empty to return all matching jobs.
  • hourlyBudgetMin and hourlyBudgetMax apply only when hourlyRate is empty.
  • Scrape only public job data and follow Upwork's terms of service.

Frequently asked questions

Can I filter Upwork jobs by budget?

Yes. Use budgetRanges for fixed-price jobs and hourlyRate (or hourlyRateMin/hourlyRateMax) for hourly jobs.

Can I schedule Upwork Jobs Scraper to run automatically?

Yes. Use Apify's Scheduler or the API to run keywords on an hourly or daily cadence.

What counts as one result?

One job listing. The dataset records each job as a single dataset-item event.

Why did my run stop at 10 jobs?

Free Apify plan users are limited to 10 jobs per run. Upgrade your plan to scrape more.

How do I avoid duplicate records?

Deduplicate on the stable id field before writing to your CRM or spreadsheet.

Do I need a proxy?

A residential proxy is enabled by default for the GraphQL API requests.

Support and custom workflows

Need a different field, source, or delivery workflow? Contact Scraptivo at scraptivo@gmail.com. Include the Actor name, a sample URL, the required fields, and expected volume so we can assess the request.