487 scrapers live51.8K runs1,601 usersRebuilt in the last 30 days: 487 of 487

Scrapers / Jobs & Recruiting

Upwork Jobs Scraper logo

Upwork Jobs Scraper

hipersoft/upwork-scraper

Scrape Upwork job listings by keyword: title, description, hourly range or fixed budget, experience level, duration, workload, skills and posting date. Filter by type, level and location. Export to JSON, CSV or Excel.

Total users

2

Monthly users

1

Total runs

7

Per job scraped

$0.002

Last rebuilt

Nov 4, 2026

Overview

Upwork Jobs Scraper extracts public freelance job listings from Upwork by keyword: title, description, hourly range or fixed budget, experience level, project length, workload, skills and posting date. Filter by job type, level, length and client location, then export to JSON, CSV or Excel.

Upwork Jobs Scraper input — searches, job type, level and filters

What does Upwork Jobs Scraper do?

It runs your Upwork job searches and returns one clean row per job. Run several searches at once; a job found by two searches is delivered and charged once. A test run collected 1,168 unique jobs across five searches in about two minutes.

Client details aren't included. This actor returns the job listing itself, not client spend, reviews or payment verification.

What data can you scrape from Upwork?

Data Fields
Job jobId, title, description, url, publishedAt
Pay jobType, hourlyMin, hourlyMax, fixedBudget
Requirements experienceLevel, skills, duration, workload
Context searchQuery, collectedAt

Use cases

  • Freelancers and agencies: catch new jobs that match your skills, on a schedule.
  • Rate research: see what clients offer for a skill.
  • Skill demand: track which tools and skills clients ask for.
  • Lead generation: spot project demand in your niche.
  • Job alerts: send new listings to Slack, Sheets or email with integrations.

How to scrape Upwork jobs

  1. Open Upwork Jobs Scraper.
  2. Add your job searches.
  3. Pick any filters.
  4. Click Start.
  5. Export to JSON, CSV, Excel or XML.

Input

{
  "queries": ["react developer"],
  "sort": "recency",
  "jobType": "0",
  "experienceLevel": ["2", "3"],
  "workload": "full_time",
  "minHourlyRate": 30,
  "maxAgeHours": 720,
  "maxResultsPerSearch": 40
}
Field Description
queries What to search for.
maxResultsPerSearch Jobs per search (default 100).
sort recency (newest) or relevance.
jobType any, 0 (hourly) or 1 (fixed price).
experienceLevel 1 entry, 2 intermediate, 3 expert.
duration week, month, semester or ongoing.
workload as_needed, part_time or full_time.
locations Client regions or countries.
clientHires 0, 1-9 or 10-.
minFixedBudget Drop fixed-price jobs below this (USD).
minHourlyRate Drop hourly jobs whose top rate is below this (USD).
maxAgeHours Only jobs posted in the last N hours.

Output

A real row from a test run, with the description shortened.

Upwork Jobs Scraper output example — jobs with pay, level and link

{
  "jobId": "2118006378163258089",
  "title": "Seeking a Full-Stack Developer to Develop an AI-Based SaaS Product",
  "url": "https://www.upwork.com/jobs/~022118006378163258089",
  "jobType": "hourly",
  "hourlyMin": 56,
  "hourlyMax": 68,
  "fixedBudget": null,
  "experienceLevel": "Expert",
  "duration": "More than 6 months",
  "workload": "Full time",
  "skills": [
    "Next.js",
    "Node.js",
    "AI Development",
    "API Integration",
    "Web Development",
    "PostgreSQL",
    "AI Model Integration",
    "Full-Stack Development",
    "SaaS Development"
  ],
  "description": "We are looking for an experienced Full-Stack Developer to build an AI-powered SaaS invoici…",
  "publishedAt": "2026-11-04T15:45:47.099Z",
  "searchQuery": "react",
  "collectedAt": "2026-11-04T21:06:16.882481+00:00"
}

Output schema

Field Type Description
jobId string Upwork job ID.
title string Job title.
url string (URL) Link to the job.
jobType string hourly or fixed.
hourlyMin / hourlyMax number Hourly range in USD, when the client set one.
fixedBudget number Fixed budget in USD, when set.
experienceLevel string Entry level, Intermediate or Expert.
duration string Project length.
workload string Hours per week. Not set on fixed-price jobs.
skills array Skills on the listing.
description string Job description.
publishedAt string (ISO date) When it was posted.
searchQuery string The search that found it.
collectedAt string (ISO date) When the row was collected.

Need more freelance and job data?

FAQ

How much does it cost? You pay per job delivered, shown on the Pricing tab. Set a maximum cost per run and it stops cleanly at that limit, storing only what you paid for.

How many jobs can I get? That depends on the search. Popular searches returned 400 or more in testing, and narrower ones fewer. Run several searches for broader coverage.

Can I get only new jobs? Yes. Schedule a run with sort Newest and a Posted within window.

Can I connect this to other tools? Yes, through integrations on the Apify platform: Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API and webhooks.

Is it legal to scrape Upwork? It returns publicly listed jobs. You are responsible for how you use them, including Upwork's terms and privacy law.

Notes

Independent tool, not affiliated with Upwork. Returns only public data; you are responsible for how you use it.

Feedback

How did it go? Good or bad, a review helps other users decide and tells us what to improve. Something broken or missing? Open an issue and we'll look at it.

Input

FieldTypeDescription
queries
Job searches
arrayWhat to search for, one per line.
maxResultsPerSearch
Max jobs per search
integerHow many jobs to collect per search.
Default: 100
sort
Sort
string · relevance, recencyResult order.
Default: "recency"
jobType
Job type
string · any, 0, 1Hourly or fixed price.
Default: "any"
experienceLevel
Experience level
arrayEmpty keeps all.
duration
Project length
string · any, week, month, semester, ongoingHow long the project runs.
Default: "any"
workload
Workload
string · any, as_needed, part_time, full_timeHours per week.
Default: "any"
locations
Client location
arrayRegions or countries, such as Americas, Europe, Singapore.
clientHires
Client hires
string · any, 0, 1-9, 10-How many freelancers the client has hired.
Default: "any"
minFixedBudget
Minimum fixed budget
integerDrop fixed-price jobs below this amount (USD).
minHourlyRate
Minimum hourly rate
integerDrop hourly jobs whose top rate is below this (USD).
maxAgeHours
Posted within (hours)
integerOnly jobs posted in the last N hours. Use with sort Newest.
proxyConfiguration
Proxy
objectOptional.

API

curl -X POST "https://api.apify.com/v2/acts/hipersoft~upwork-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "queries": [
    "python developer"
  ]
}'

Pricing

EventPricePaid plans from
Job scraped
One job listing delivered.
$0.002$0.001

You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.

Related scrapers

Dribbble Shots Scraper

Scrape public design shots from Dribbble: title, high-res image, tags, likes, views and designer credit. Filter by category or sort, export JSON, CSV or Excel.

368 runs · 5 users · $0.003 / shot scraped

Computrabajo Scraper

Scrape Computrabajo job listings across Latin America (Mexico, Colombia, Argentina, Chile, Peru and more): title, company, location, salary, posted date and apply URL. Filter by country and keyword. No setup.

210 runs · 4 users · $0.002 / listing scraped

Kraken Market Data Scraper

Fetch Kraken spot market data in bulk: ticker stats (ask, bid, last, 24h high/low/volume/vwap), OHLC candles for any interval, order book depth (top bids/asks), and tradable pair metadata. Fast, clean and cheap.

168 runs · 4 users · $0.001 / pair scraped

Bayt Scraper

Scrape Bayt.com job listings across the Middle East (UAE, Saudi Arabia, Egypt, Qatar and more): title, company, location, posted date and apply URL. Filter by country and keyword.

136 runs · 4 users · $0.003 / job scraped

GitHub Scraper

Search GitHub and scrape repositories (stars, forks, language, topics, license, dates) or user profiles (name, company, location, bio, followers, public email, repos). Uses the GitHub REST API; optional token for higher rate limits. For developer lead generation, OSS research and recruiting.

134 runs · 7 users · $0.0008 / item scraped

Hacker News Scraper

Scrape Hacker News stories, comments, Ask HN, Show HN, jobs and polls by keyword, points, comments and date range. Sort by relevance or newest. Title, URL, author, points, comment count, text and HN link. Fast clean HTTP via the HN Algolia API, no setup.

133 runs · 2 users · $0.004 / item scraped
Need a source that isn't here?

Send the site and the fields. We build it and you get it first.

Request a build