
Upwork Job Scraper
Pricing
$25.00/month + usage

Upwork Job Scraper
Scrape Upwork jobs without limits π Bypass CAPTCHAs & apply custom filters.
4.7 (7)
Pricing
$25.00/month + usage
17
Total users
177
Monthly users
140
Runs succeeded
98%
Issues response
10 hours
Last modified
21 hours ago
Upwork Job Listings Scraper
Introduction
Are you tired of manually searching for freelance gigs on Upwork? Introducing the Upwork Job Listings Scraper, your automated solution to find freelance opportunities tailored to your skills and preferences. Whether you're a developer, designer, writer, or consultant, our tool helps you filter and find jobs that match your expertise and expected pay range.
Perfect for freelancers who need to efficiently monitor new postings and for companies looking for specific talents on Upwork, this scraper simplifies your search and saves you valuable time.
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.
- Cookie Authentication: Use cookies from your Upwork account to bypass protection mechanisms and access more job details.
- 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:
-
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)
- Provide authentication cookies (optional, improves scraping reliability)
-
Run the Scraper: Launch the scraper and let it gather the job listings for you.
-
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:
{"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:
["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:
[{"key": "title","operator": "includes","value": "python"},{"key": "experienceLevel","operator": "equals","value": "Expert"},{"key": "tags","operator": "notIncludes","value": "wordpress"}] -
Example Using Arrays with Includes Operator:
[{"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):
[{"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:
[{"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):
[{"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
For improved reliability and access to more job details, you can provide your Upwork cookies. This helps bypass protection mechanisms and gives you access to jobs as if you were logged in.
How to Get Your Cookies:
- Log in to Upwork in your browser
- Open the developer tools (F12 or right-click β Inspect)
- Go to the Application tab (Chrome) or Storage tab (Firefox)
- In the left panel, expand "Cookies" and select "www.upwork.com"
- Copy the 3 required cookies:
master_access_token
oauth2_global_js_token
UniversalSearchNuxt_vt
Cookies Format:
Provide cookies as an array of objects with this structure:
[{"name": "master_access_token","value": "your-cookie-value-here","domain": "www.upwork.com","path": "/","secure": true,"httpOnly": false},{"name": "oauth2_global_js_token","value": "another-cookie-value","domain": "www.upwork.com","path": "/","secure": true,"httpOnly": false},{"name": "UniversalSearchNuxt_vt","value": "third-cookie-value","domain": "www.upwork.com","path": "/","secure": true,"httpOnly": false}]
Only the name
and value
fields are required; the others will be filled automatically if not provided.
Example:
{"query": "web scraping","cookies": [{"name": "master_access_token","value": "ABC123XYZ"},{"name": "oauth2_global_js_token","value": "def456uvw"},{"name": "UniversalSearchNuxt_vt","value": "ghi789rst"}]}
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
.
On this page
Share Actor: