Upwork Jobs Scraper avatar

Upwork Jobs Scraper

Pricing

from $1.00 / 1,000 job scrapeds

Go to Apify Store
Upwork Jobs Scraper

Upwork Jobs Scraper

Scrape job listings from Upwork search results. Returns title, description, budget, skills, experience level, duration, and posting time. Bypasses Cloudflare automatically — no proxy needed.

Pricing

from $1.00 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Giorgio Pasquale

Giorgio Pasquale

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Extract job listings from Upwork search results automatically. No API key, no login, no proxy required — just enter a search query and get structured job data instantly.

Bypasses Cloudflare protection automatically using a real browser fingerprint.


🚀 What it does

  • Searches Upwork for jobs matching your keyword
  • Extracts structured data from each listing
  • Returns results in JSON — ready for n8n, Make, Zapier, Google Sheets, or any pipeline
  • Runs in ~60 seconds per query

📦 Output fields

FieldDescriptionExample
jobIdUnique job ID (use for deduplication)022027586354497239213
titleJob titleGoogle Ads Specialist
descriptionJob description (up to 600 chars)Looking for an expert...
contractTypeContract type + hourly rateHourly: $60.00 - $120.00
budgetBudget for fixed-price jobs$2,500.00
experienceLevelRequired experienceExpert
durationEstimated project duration3 to 6 months, < 30 hrs/week
postedOnTime since posting21 minutes ago
skillsRequired skills list["Google Ads", "PPC", ...]
extraSkillsNumber of hidden skills3
urlDirect link to the jobhttps://www.upwork.com/jobs/~...

⚙️ Input

FieldTypeRequiredDefaultDescription
querystringweb scrapingSearch keyword (e.g. python developer, google ads specialist)
max_jobsinteger10Max jobs to return (1–50)

Example input

{
"query": "google ads specialist",
"max_jobs": 10
}

📊 Example output

[
{
"jobId": "022027586354497239213",
"title": "Meta + Google Ads help for established ecommerce brand",
"description": "Looking for someone who understands how to grow a real brand without burning money...",
"contractType": "Hourly: $60.00 - $120.00",
"budget": "$60.00 - $120.00",
"experienceLevel": "Expert",
"duration": "More than 6 months, Less than 30 hrs/week",
"postedOn": "13 hours ago",
"skills": ["Google Ads", "PPC Campaign Setup & Management", "Pay Per Click Advertising"],
"extraSkills": 7,
"url": "https://www.upwork.com/jobs/~022027586354497239213"
}
]

💡 Use cases

  • Freelancers — Monitor new job postings matching your skills and apply early
  • AI pipelines — Feed job data into LLMs (ChatGPT, Gemini) to filter, score, and generate proposals automatically
  • Automation — Connect to n8n or Make to receive Telegram/Slack alerts for new jobs
  • Market research — Track demand trends for specific skills and technologies
  • Lead generation — Identify businesses actively hiring for services you offer

🔄 Automating with n8n / Make

  1. Add an HTTP Request node → POST to this actor's API endpoint
  2. Pass { "query": "your keyword", "max_jobs": 10 } as JSON body
  3. Use the jobId field to deduplicate against a Google Sheet
  4. Feed new jobs into an AI agent for filtering and proposal generation
  5. Send matched jobs to Telegram or Slack

💰 Pricing

$1 per 1,000 jobs scraped.

  • 10 jobs = $0.01
  • 100 jobs = $0.10
  • 1,000 jobs = $1.00

Pay only for what you use. No subscriptions.


⚠️ Notes & limitations

  • Cloudflare bypass: Works automatically with no proxy needed. If Upwork updates their bot detection, results may vary — open an issue if you encounter problems.
  • Client data (country, payment verified, proposals count): Not available without a logged-in session. This will be added in a future version with cookie-based authentication.
  • Results per run: Upwork shows 10 jobs per search page by default. Set max_jobs up to 50 to get more.
  • Rate limiting: Avoid running more than 1 concurrent run on the same query to prevent IP blocks.

🛠️ Built with


📬 Support

Found a bug or need a feature? Open an issue or reach out via the Apify community.