Upwork Job Scraper
Pricing
$23.00/month + usage
Upwork Job Scraper
Scrape recent and relevant Upwork.com jobs, bypasses captchas. No cookie scrapes = no ban risk.
Pricing
$23.00/month + usage
Rating
4.9
(8)
Developer
Matthew James
Maintained by CommunityActor stats
28
Bookmarked
536
Total users
3
Monthly active users
5 days ago
Last modified
Categories
Share
Collect Upwork job listings as structured data for research, monitoring, and analysis.
Features
- Optional cookies: Use current Upwork cookies to request additional client details.
- Flexible proxies: Use Apify Proxy or your own proxy URLs.
- Custom searches: Use a supported Upwork search URL or configure a search query and filters.
- Pagination controls: Select the number of jobs per page and the number of pages.
- Advanced filters: Filter by experience, project length, weekly hours, hourly rates, and fixed-price budgets.
Input guidance
- Use a residential proxy and current cookies for the most reliable, detailed results.
- A custom search URL overrides the search query and other search filters.
- The search query is ignored when you provide a custom search URL.
- Export the full cookie set from a logged-in Upwork browser session. Treat the export as a secret.
- If cookies are incomplete, expired, or rejected, the Actor logs a warning and continues with standard results.
- Runs without valid cookies can return fewer jobs and fewer pages.
- The available input filters work with and without cookies.
- Unavailable field values are
null.
Invalid inputs fail before the scrape starts. A custom URL must be an HTTPS Upwork job-search URL. Page counts must be between 1 and 100. Custom URL page sizes must be between 1 and 50. Budgets cannot be negative, and each minimum budget must not exceed its maximum.
Standard result fields
- Date Scraped
- Job ID
- Time Posted
- Project Payment Type
- Budget
- Skill Level
- Skills
- Title
- URL
- Description
- Project Length
- Weekly Hours
Standard result example
{"Date Scraped": "2025-01-16T12:09:25.591Z","Job ID": "7769492930342982627","Time Posted": "2025-01-16T12:07:35.591Z","Project Payment Type": "Hourly","Budget": "$20.00 - $40.00","Skill Level": "Entry Level","Skills": ["Administrative Support", "Microsoft Excel", "Microsoft Word", "Google Workspace", "Data Entry"],"Title": "Administrative Assistant Needed for Letter Mailing in New York, USA","URL": "https://www.upwork.com/url","Description": "Lorem ipsum","Location": null,"Total Spent": null,"Feedback": null,"Proposals": null,"Project Length": "3 to 6 months","Weekly Hours": "Less than 30 hrs/week"}
Additional fields with valid cookies
- Location
- Total Spent
- Feedback
- Proposals
Upwork can omit these values for some jobs. An omitted value appears as null.
Detailed result example
{"Date Scraped": "2025-01-18T10:16:41.649Z","Job ID": "7769492930342982627","Time Posted": "2025-01-17T10:12:21.649Z","Project Payment Type": "Hourly","Budget": "$7.00 - $25.00","Skill Level": "Intermediate","Title": "Web Scraping Specialist for Real Estate Data","URL": "https://www.upwork.com/jobs/url","Description": "Lorem ipsum","Location": "United States","Total Spent": "$4,588.28","Feedback": 4.99,"Proposals": 8,"Project Length": "Less than 1 month","Weekly Hours": "Less than 30 hrs/week","Skills": ["Python","Statistical Analysis","Microsoft Excel","Machine Learning","CI/CD","Data Engineering","Deep Learning"]}
Output
Results are available in the run's default dataset. Each dataset item contains one job and follows the 16-field structure shown above.