Upwork Job Scraper

Upwork Job Scraper

by neatrat

Tired of manually checking Upwork for new job postings? This scraper does the tedious work for you, pulling fresh opportunities directly from the plat...

344,954 runs
1,554 users
Try This Actor

Opens on Apify.com

About Upwork Job Scraper

Tired of manually checking Upwork for new job postings? This scraper does the tedious work for you, pulling fresh opportunities directly from the platform so you can focus on crafting winning proposals. It grabs all the key details—job title, description, budget, client info, and posting date. You can filter results by keywords, category, or job type to get only the most relevant leads hitting your dashboard. The tool handles CAPTCHAs automatically, so you get consistent, uninterrupted data collection. I use it to build targeted lead lists for my freelance business. It's perfect for freelancers looking to streamline their job hunt, agencies sourcing projects for their teams, or anyone analyzing job market trends on Upwork. Set it to run on a schedule, and you'll get a steady stream of new job alerts without ever having to refresh the site yourself. Stop searching and start applying. Get the Upwork job data you need, formatted and ready to use.

What does this actor do?

Upwork Job Scraper is a web scraping and automation tool available on the Apify platform. It's designed to help you extract data and automate tasks efficiently in the cloud.

Key Features

  • Cloud-based execution - no local setup required
  • Scalable infrastructure for large-scale operations
  • API access for integration with your applications
  • Built-in proxy rotation and anti-blocking measures
  • Scheduled runs and webhooks for automation

How to Use

  1. Click "Try This Actor" to open it on Apify
  2. Create a free Apify account if you don't have one
  3. Configure the input parameters as needed
  4. Run the actor and download your results

Documentation

Upwork Job Listings Scraper ## Why This Scraper? Stop manually refreshing Upwork search pages and guessing which filters to use. The Upwork Job Listings Scraper continuously pulls fresh, fully authenticated job data for you — safely, reliably, and without any complex setup. Whether you're a freelancer tracking niche opportunities or an agency monitoring demand in your niche, this scraper turns Upwork into a clean, structured data feed you can actually work with. ## 🚀 Key Advantages (Read This First) - ✅ Automatic Authentication (In‑House Cookies) – You now get fully authenticated results by default. No need to paste your own cookies anymore. - 🔐 0‑Hassle Anti‑Bot HandlingAutomatic CAPTCHA solving and automatic rotating proxies are built in, so you don't have to fight Upwork's protection. - 🧊 0 Ban Risk – All traffic goes through our managed infrastructure (in‑house cookies + proxies), dramatically reducing the risk to your own account. - 📊 More Data, Same Price – Authenticated sessions unlock richer job and client details at no extra cost. - ⚙️ Still Flexible – Advanced filters, raw URL support, and custom rules let you shape the exact feed you want. > Already live: These protections and automatic authentication are active for all runs — you don't need to change anything to benefit. ## What's New (Latest Update) Great news! We've rolled out a significant upgrade to the Upwork Scraper that makes your life easier and your data richer. ### 🔑 Automatic In‑House Cookies - ✅ Automatic Authentication – You now get fully authenticated results by default. - ✅ Zero Setup Required – No need to provide your own cookies anymore. - ✅ Richer Data – Access to more job details and client information. - ✅ Lower Ban Risk – Our rotating in‑house cookie system keeps you safe. - ✅ Same Price – All these benefits at no additional cost. This feature is already active on your account. The next time you run the scraper, you'll automatically benefit from: - More comprehensive job details - Enhanced client statistics - Better data quality - Improved reliability ### Still Want to Use Your Own Cookies? No problem! You can still provide your own cookies in the input if you prefer. The scraper will use them instead of our in‑house system. --- ## Core Features - Customizable Searches: Enter specific keywords, categories, budget ranges, and other criteria to tailor your job search. - Flexible Filtering Options: Filter jobs by experience level, job type (hourly or fixed-price), budget ranges, client history, and location. - Advanced Custom Filters: Apply custom filters to any job property using conditions like "includes", "equals", "notIncludes", and "notEquals". - Job Age Filtering: Filter out jobs older than a specific time threshold (minutes, hours, days, or weeks). - Location-Based Filtering: Target jobs by regions, subregions, or specific countries worldwide. - Raw URL Support: Directly use specific Upwork search URLs instead of constructing them from parameters. - Automatic Authentication (In‑House Cookies): Managed cookie pool for authenticated sessions without requiring your own cookies. - Automatic Proxies & CAPTCHA Solving: Built‑in proxy rotation and CAPTCHA bypass keep runs stable and resilient. - Detailed Information Extraction: Pulls comprehensive job information including title, description, client statistics, budget details, required skills, and posting time. - Modern Architecture: Built with TypeScript and Node.js for reliability and maintainability. - Cloudflare / Protection Bypass: Advanced techniques to reliably access Upwork job data. - Case-Insensitive Matching: All filtering is case-insensitive for more intuitive search experiences. ## Use Cases - Targeted Job Hunting: Find exactly the kind of projects you're qualified for without spending hours manually searching. - Market Research: Understand what services are in demand and how much clients are willing to pay for different skills. - Competitive Analysis: Track which skills are most requested in your field to guide your professional development. - Opportunity Alerts: Stay updated with the latest job postings that match your skill set without the need for constant manual searching. - Fresh Job Alerts: Focus only on recent job postings by filtering out older listings. - Complex Search Criteria: Combine multiple filter conditions to find highly specific job matches. ## How to Use Getting started with the Upwork Job Listings Scraper is easy: 1. Set Your Parameters: - Enter your search query (optional if raw URL provided) - Provide a raw Upwork search URL (optional, overrides other search parameters) - Set maximum job age to filter out older jobs (e.g., 24 hours, 3 days) - Define custom filters for precise job matching - Choose which page to start from (default: 1) - Set results per page (default: 10) - Select sorting order (newest or relevance) - Filter by experience level (entry, intermediate, expert) - Specify job type (fixed or hourly) - Set budget ranges for both fixed and hourly jobs - Filter by client hiring history - Filter by location (regions, subregions, or countries) - (Optional) Provide your own authentication cookies if you want to override the in‑house system. 2. Run the Scraper: Launch the scraper and let it gather the job listings for you. Automatic cookies, proxies, and CAPTCHA solving are applied behind the scenes. 3. Analyze the Results: Review the detailed job data to find the perfect opportunities. ## Output Format After each run, the scraper generates a dataset of Upwork jobs with the following information: - Job ID and URL: Unique identifiers and direct links to job listings - Title and Description: Detailed information about what the job entails - Budget Information: Fixed price amount or hourly rate ranges - Client Statistics: Total spent, number of hires, feedback scores, etc. - Job Requirements: Experience level, skills needed, and category - Posting Time: When the job was published - Additional Details: Tags, contract type, engagement duration, and more ## Supported Filtering Options ### Standard Filters - Experience Levels: Entry Level, Intermediate, Expert - Job Types: Fixed Price, Hourly Rate - Client History: No previous hires, 1-9 previous hires, 10+ previous hires - Maximum Job Age: Filter by minutes, hours, days, or weeks - Locations: Filter by regions, subregions, or specific countries - Payment Verification: Filter jobs by whether the client has verified payment methods Example Maximum Job Age Filter: json { "value": 24, "unit": "hours" } This example would filter out jobs older than 24 hours. Supported units are "minutes", "hours", "days", and "weeks". Example Location Filter: json ["United States", "Europe", "Australia"] This example would filter jobs to only show those from the United States, Europe, and Australia regions. ### Custom Filters Custom filters allow you to filter jobs based on any job property: - Available Properties: - title - description - jobType - experienceLevel - budget - tags - relativeDate - absoluteDate - paymentVerified - clientLocation - allowedApplicantCountries - Available Operators: - includes - checks if the value is included in the property (supports both single string and array of strings) - equals - checks if the value exactly matches the property - notIncludes - checks if the value is not included in the property (supports both single string and array of strings) - notEquals - checks if the value does not exactly match the property - Example Custom Filters: json [ { "key": "title", "operator": "includes", "value": "python" }, { "key": "experienceLevel", "operator": "equals", "value": "Expert" }, { "key": "tags", "operator": "notIncludes", "value": "wordpress" } ] - Example Using Arrays with Includes Operator: json [ { "key": "title", "operator": "includes", "value": ["react", "vue", "angular"] }, { "key": "description", "operator": "includes", "value": ["typescript", "javascript"] } ] This example will find jobs that have any of "react", "vue", or "angular" in the title AND have either "typescript" or "javascript" in the description. Using arrays with the includes operator allows you to efficiently search for multiple terms without creating separate filters for each term. ## Filtering Jobs by Eligible Countries One of the most powerful features of this scraper is the ability to filter jobs based on which countries are eligible to apply. The allowedApplicantCountries property contains an array of country names that the client has explicitly restricted the job to - meaning only applicants from these countries are allowed to apply, and applicants from all other countries are excluded. ### Using the allowedApplicantCountries Filter To find jobs that specifically allow applicants from your country (and exclude those that don't): json [ { "key": "allowedApplicantCountries", "operator": "includes", "value": "United States" } ] This example will only show jobs that explicitly allow applicants from the United States. Jobs that don't include the United States in their allowed countries list will be filtered out. ### Finding Jobs Open to Multiple Specific Countries You can search for jobs that allow applicants from any of several countries using an array: json [ { "key": "allowedApplicantCountries", "operator": "includes", "value": ["United States", "United Kingdom"] } ] This example will show jobs that allow applicants from either the United States OR the United Kingdom (or both). The job must allow at least one of these countries to be included in the results. ### Finding Jobs Open to All Countries To find jobs that are open to applicants from all countries (no country restrictions): json [ { "key": "allowedApplicantCountries", "operator": "equals", "value": null } ] When a job has no country restrictions (allowedApplicantCountries is null), it means the job is open to applicants from any country. ## Using Authentication Cookies (Optional) You do not need to provide cookies anymore – the scraper uses in‑house cookies automatically. However, if you prefer to use your own Upwork cookies (for example, to see results exactly as a specific account), you still can. ### Required Cookies If you decide to override the in‑house cookies, provide at least these two from your logged‑in Upwork session: - master_access_token - oauth2_global_js_token ### Cookies Format Provide cookies as an array of objects with this structure: json [ { "name": "master_access_token", "value": "your-cookie-value-here" }, { "name": "oauth2_global_js_token", "value": "another-cookie-value" } ] Only the name and value fields are required; the others are handled automatically. ### Example json { "query": "web scraping", "cookies": [ { "name": "master_access_token", "value": "ABC123XYZ" }, { "name": "oauth2_global_js_token", "value": "def456uvw" } ] } ## Supported Regions and Countries Search The scraper supports filtering jobs from various regions and countries: ### Regions - Africa - Americas - Antarctica - Asia - Europe - Oceania ### Subregions - Australia and New Zealand - Caribbean - Central America - Central Asia - Eastern Africa - Eastern Asia - Eastern Europe - Melanesia - Micronesia - Middle Africa - Northern Africa - Northern America - Northern Europe - Polynesia - South America - South-Eastern Asia - Southern Africa - Southern Asia - Southern Europe - Western Africa - Western Asia - Western Europe ### Countries - Albania - Algeria - American Samoa - Andorra - Angola - Anguilla - Antigua and Barbuda - Argentina - Armenia - Aruba - Australia - Austria - Azerbaijan - Bahamas - Bahrain - Bangladesh - Barbados - Belgium - Belize - Benin - Bermuda - Bhutan - Bolivia - Bonaire, Sint Eustatius and Saba - Bosnia and Herzegovina - Botswana - Bouvet Island - Brazil - British Indian Ocean Territory - British Virgin Islands - Brunei Darussalam - Bulgaria - Burkina Faso - Burundi - Cambodia - Cameroon - Canada - Cape Verde - Cayman Islands - Central African Republic - Chad - Chile - China - Christmas Island - Cocos (Keeling) Islands - Colombia - Comoros - Congo - Congo, the Democratic Republic of the - Cook Islands - Costa Rica - Cote d'Ivoire - Croatia - Curacao - Cyprus - Czech Republic - Denmark - Djibouti - Dominica - Dominican Republic - Ecuador - Egypt - El Salvador - Equatorial Guinea - Eritrea - Estonia - Ethiopia - Falkland Islands - Faroe Islands - Fiji - Finland - France - French Guiana - French Polynesia - French Southern and Antarctic Lands - Gabon - Gambia - Georgia - Germany - Ghana - Gibraltar - Greece - Greenland - Grenada - Guadeloupe - Guam - Guatemala - Guernsey - Guinea - Guinea-Bissau - Guyana - Haiti - Heard Island and McDonald Islands - Holy See - Honduras - Hong Kong - Hungary - Iceland - India - Indonesia - Ireland - Isle of Man - Israel - Italy - Jamaica - Japan - Jersey - Jordan - Kazakhstan - Kenya - Kiribati - Kuwait - Kyrgyzstan - Laos - Latvia - Lebanon - Lesotho - Liechtenstein - Lithuania - Luxembourg - Macao - Macedonia - Madagascar - Malawi - Malaysia - Maldives - Mali - Malta - Marshall Islands - Martinique - Mauritania - Mauritius - Mayotte - Mexico - Micronesia, Federated States of - Moldova - Monaco - Mongolia - Montenegro - Montserrat - Morocco - Mozambique - Myanmar - Namibia - Nauru - Nepal - Netherlands - Netherlands Antilles - New Caledonia - New Zealand - Nicaragua - Niger - Nigeria - Niue - Norfolk Island - Northern Mariana Islands - Norway - Oman - Pakistan - Palau - Palestinian Territories - Panama - Papua New Guinea - Paraguay - Peru - Philippines - Pitcairn - Poland - Portugal - Puerto Rico - Qatar - Reunion - Romania - Rwanda - Saint Barthelemy - Saint Helena - Saint Kitts and Nevis - Saint Lucia - Saint Martin (French part) - Saint Pierre and Miquelon - Saint Vincent and the Grenadines - Samoa - San Marino - Sao Tome and Principe - Saudi Arabia - Senegal - Serbia - Seychelles - Sierra Leone - Singapore - Sint Maarten (Dutch part) - Slovakia - Slovenia - Solomon Islands - Somalia - South Africa - South Korea - Spain - Sri Lanka - Suriname - Svalbard and Jan Mayen - Swaziland - Sweden - Switzerland - Taiwan - Tajikistan - Tanzania - Thailand - Timor-Leste - Togo - Tokelau - Tonga - Trinidad and Tobago - Tunisia - Turkey - Turkmenistan - Turks and Caicos Islands - Tuvalu - Uganda - Ukraine - United Arab Emirates - United Kingdom - United States - United States Minor Outlying Islands - United States Virgin Islands - Uruguay - Uzbekistan - Vanuatu - Venezuela - Vietnam - Wallis and Futuna - Western Sahara - Yemen - Zambia - Zimbabwe > Note: For locations with spaces, enter them exactly as they appear. In the URL, spaces will be encoded as %2520.

Common Use Cases

Market Research

Gather competitive intelligence and market data

Lead Generation

Extract contact information for sales outreach

Price Monitoring

Track competitor pricing and product changes

Content Aggregation

Collect and organize content from multiple sources

Ready to Get Started?

Try Upwork Job Scraper now on Apify. Free tier available with no credit card required.

Start Free Trial

Actor Information

Developer
neatrat
Pricing
Paid
Total Runs
344,954
Active Users
1,554
Apify Platform

Apify provides a cloud platform for web scraping, data extraction, and automation. Build and run web scrapers in the cloud.

Learn more about Apify

Need Professional Help?

Couldn't solve your problem? Hire a verified specialist on Fiverr to get it done quickly and professionally.

Find a Specialist

Trusted by millions | Money-back guarantee | 24/7 Support