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
13
Total users
8
Monthly active users
25 days ago
Last modified
Categories
Features
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!