Upwork Jobs Scraper
Pricing
from $1.50 / 1,000 results
Upwork Jobs Scraper
Extract detailed Upwork jobs together with **client history and competition data**. Search by URL or filters, narrow opportunities using budget, applicants, client quality and more, then run searches repeatedly to discover new jobs.
Pricing
from $1.50 / 1,000 results
Rating
5.0
(1)
Developer
Mox
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
19 days ago
Last modified
Categories
Share
Upwork Jobs API & Monitor
| β‘ Real-Time | π§ ~10MB RAM | π Integrate to anything | π° ~$2 / 1k results |
|---|
Monitor Upwork in real time, find new opportunities, and get detailed client & competition data.

- β‘ True Real-Time Data (No Stale DBs): We scrape Upwork live on request. Get the newest jobs milliseconds after they are posted, not hours later from a cached database.
- π Micro-Compute Efficiency: Built on a highly concurrent architecture consuming just ~10MB of RAM. You pay almost nothing for Apify compute, making this the most cost-effective real-time scraper on the Store.
- π‘οΈ Zero-Friction Authentication: Proxies and cookies are handled entirely in-house. Paste a URL and get data. Zero ban risk to your personal Upwork account.
- π Instant Job Alerts: Push matches to Telegram, Discord, Slack, or any custom webhook you choose.
β¨ Why use this Actor?
Stop repeatedly searching Upwork for new jobs.
This Actor lets you monitor Upwork searches and automatically receive only new matching jobs β with detailed information about the job, client, budget, competition, and more
π§ Stupidly easy to use
- Prompt with a profile: Use your own Upwork profile link (or any freelancer's) as a prompt. We extract their skills and find relevant jobs matching their expertise.
- Paste a search URL: Reproduce any Upwork search instantly.
- Apply powerful filters: Budget ranges, applicant counts, client hire rates, countries, and moreβall rendered in the UI below.
β‘ Ultra fast and realtime
Instant job search on request with lower usage. You get data while it's still fresh enough to be the first applicant.

π¦ Every possible detail
We don't just scrape titles. We pull the full picture so you can bid with confidence.
| Job Details | Client Analytics | Competition Signals |
|---|---|---|
| Title, Description, ID | Payment method verification | Number of applicants |
| Date posted | Phone verification status | Number invited to interview |
| Payment type (Fixed/Hourly) | Location (Country & City) | Invitations sent |
| Fixed budget amount | Jobs posted & Open jobs | Unanswered invitations |
| Hourly budget (Min/Max) | Hire rate (%) | Number of positions to hire |
| Category & Subcategory | Total spent & Total hires | Number already hired |
| Engagement duration | Active projects | (All in one clean payload!) |
| Screening questions | Total hours & Avg rate paid | |
| Attachments | Full work history & previous feedback |
π Supported Integrations & Webhooks
Push matching jobs instantly to your favorite platform. Available integrations:
Telegram
Discord
Slack
WhatsApp- πͺ Generic Webhook (push to
Zapier,
Make, your custom server, etc.)
π― Fetch specific jobs by ID
Have a list of Upwork job IDs? Provide them directly, and we return every single detail for those exact postingsβno search needed.
π§ Smart Incremental State
When you enable onlyNewJobs, the Actor automatically saves the latest Job IDs to your Apify Key-Value store. On the next run, it checks this state and only pushes jobs it hasn't seen before. No duplicate alerts, ever.
πΈ Pricing that actually makes sense
$2 per 1,000 job listing pulls. You can make hundreds of job pulls for less than a cent.
Avoid the hidden Apify costs for RAM and CPU usage. Our actor is super lightweight and runs on ~10MB of RAMβso your compute costs are practically zero.
π Why this one is different
Most scrapers on the market fall into two traps: they are either heavy Node.js browser automations that drain your Apify compute credits, or they rely on pre-indexed databases that feed you stale data. We built a third option.
| Feature | β‘ Upwork Jobs API (This Actor) | Traditional Node.js Scrapers | Cached Database Scrapers |
|---|---|---|---|
| Architecture | Lightweight Engine | Heavy Puppeteer / Playwright | Database querying |
| Data Freshness | True Real-Time (Live) | Live (but slow to boot) | Stale (Hours to days old) |
| RAM Footprint | ~10MB (Costs pennies) | 500MB β 1GB+ (Expensive) | Varies |
| Native Webhooks | Yes (Discord, Slack, Telegram) | No (Requires Zapier) | No (Requires Zapier) |
| Anti-Bot / Proxies | 100% Handled In-House | Often requires your cookies | Not applicable |
| Avg. Cost per 1k | ~$2.00 | ~$3.00 β $4.00 | ~$3.50 β $4.50 |
π Quickstart
Here are 3 ways to run this Actor, depending on what you need.
Example 1: The "Paste & Go" (Search URL)
Just paste your Upwork search URL. We handle the rest.
{"searchUrl": "https://www.upwork.com/nx/search/jobs/?q=python+fastapi","maxItems": 50}
Example 2: Profile-Powered Search
Paste a freelancer profile link. We analyze their skills and title to find matching jobs automatically.
{"freelancerProfileUrl": "https://www.upwork.com/freelancers/~01234XXXXXXXXXX","paymentType": "HOURLY","minHourlyRate": 50,"maxApplicants": 10,"paymentVerified": true,"maxItems": 25}
Example 3: The "Monitor & Push" (Webhook + Dedupe)
Run this every 5 minutes. We'll only return new jobs and push them directly to your custom endpoint.
{"searchUrl": "https://www.upwork.com/nx/search/jobs/?q=ai+developer","onlyNewJobs": true,"telegramBotToken": "12345:XXXXXXXXXXXXXXXXXXX","telegramChatId": "1234567""minClientTotalSpent": 10000,"minHireRate": 80,"maxItems": 10}
π€ Output Example
π Support & Custom Integrations
Upwork updates their platform frequently, and we update this engine just as fast.
Found a bug? Open an Issue in the Apify Console.
Need a custom integration? We can easily add custom webhook formats, new data fields, or private instances. Reach out via the Apify Issues tab!