Upwork Scrapper V2
Pricing
Pay per usage
Go to Apify Store
Upwork Scrapper V2
scrap data
0.0 (0)
Pricing
Pay per usage
4
19
3
Last modified
a month ago
Upwork Job Scraper
This Apify Actor scrapes job listings from Upwork based on a wide range of search criteria. It automates the login process, bypasses anti-bot measures, and extracts detailed information for each job into a structured format.
Features
- Advanced Search: Filter jobs by keywords, job type, budget, client history, expertise level, and more.
- Secure Login: Handles Upwork authentication securely.
- Captcha Solving: Integrates captcha solving to handle Cloudflare challenges.
- Detailed Data Extraction: Scrapes over 50 data points for each job, including client information, job requirements, budget, and skills.
- Flexible Input: Configure the scraper using a simple JSON input.
- Structured Output: Provides results in a clean, machine-readable format (JSON).
Input Schema
The actor is configured using a JSON object with the following properties.
Credentials (Required)
You must provide your Upwork login credentials.
{"credentials": {"username": "YOUR_UPWORK_EMAIL","password": "YOUR_UPWORK_PASSWORD"}}
Search Parameters
Define your job search criteria within the search object. All fields below are supported:
{"search": {"query": "Workflow Automation","search_any": "make.com n8n tines Zapier","search_exact": "","search_none": "","search_title": "","category": ["Web, Mobile & Software Dev", "civil & structural engineering"],"projectDuration": ["week", "month", "semester", "ongoing"],"fixed": true,"hires_min": 1,"hires_max": 10,"hourly": true,"hourly_max": 70,"hourly_min": 10,"limit": 70,"payment_verified": true,"contract_to_hire": false,"previous_clients": false,"fixed_price_catagory_num": ["3"],"fixed_max": 100,"fixed_min": 30,"proposal_min": 0,"proposal_max": 0,"sort": "relevance","expertise_level_number": ["1", "2", "3"],"workload": []}}
All Search Fields
query(string): The primary keyword for the search (e.g., "web developer").search_any(string): Space-separated words; jobs must contain at least one (e.g., "make.com n8n zapier").search_exact(string): The exact phrase the job must contain.search_none(string): Space-separated words to exclude from the search.search_title(string): Words that must appear in the job title.category(array of strings): List of job categories to include.projectDuration(array of strings): List of durations. Options:week,month,semester,ongoing.fixed(boolean): Include fixed-price jobs.hires_min(integer): Minimum number of client hires.hires_max(integer): Maximum number of client hires.hourly(boolean): Include hourly jobs.hourly_max(integer): Maximum hourly rate.hourly_min(integer): Minimum hourly rate.limit(integer): The maximum number of jobs to scrape.payment_verified(boolean): Only jobs from clients with verified payment.contract_to_hire(boolean): Only contract-to-hire jobs.previous_clients(boolean): Only jobs from your previous clients.fixed_price_catagory_num(array of strings): Pre-defined budget ranges."1"($0-99),"2"($100-499),"3"($500-999),"4"($1k-5k),"5"($5k+).fixed_max(integer): Maximum fixed price budget.fixed_min(integer): Minimum fixed price budget.proposal_min(integer): Minimum number of proposals.proposal_max(integer): Maximum number of proposals.sort(string): The order to sort results. Options:relevance,newest,client_total_charge,client_rating.expertise_level_number(array of strings): List of expertise levels."1"(Entry),"2"(Intermediate),"3"(Expert).workload(array of strings): List of workload preferences. Options:part_time,full_time.
Output
The actor returns a dataset where each item represents a scraped job.
Example Job Output Item
{"job_id": "01abcdef1234567890","url": "https://www.upwork.com/jobs/~01abcdef1234567890","title": "Build a simple web scraper for product data","description": "We need a script that can scrape product names, prices, and availability from an e-commerce website...","type": "Fixed-price","level": "INTERMEDIATE","fixed_budget_amount": 500,"hourly_min": 0,"hourly_max": 0,"duration": "Less than a month","skills": ["Web Scraping", "Python", "Beautiful Soup"],"applicants": "10","connects_required": 6,"payment_verified": true,"phone_verified": true,"client_country": "United States","buyer_location_city": "New York","buyer_location_localTime": "10:30 am","client_total_spent": 2500,"client_hires": 5,"client_rating": 4.95,"client_reviews": "12 reviews","ts_publish": "2023-10-27T10:00:00.000Z"}
Output Fields
The actor extracts the following fields for each job, when available:
- Job Details:
job_id,url,title,description,type(Hourly/Fixed-price),level,duration,hourly_commitment,skills,qualifications,questions,category_name,isContractToHire,premium,enterpriseJob. - Budget:
fixed_budget_amount,hourly_min,hourly_max,currency. - Timestamps:
ts_create,ts_publish. - Job Activity:
applicants,clientActivity_invitationsSent,clientActivity_unansweredInvites,clientActivity_totalInvitedToInterview,lastBuyerActivity. - Client Info:
payment_verified,phone_verified,client_country,buyer_location_city,buyer_location_localTime,client_industry,client_company_size,client_member_since,client_hours_worked,client_active_status. - Client Stats:
client_total_spent,client_hires,client_rating,client_reviews,buyer_jobs_postedCount,buyer_jobs_openCount,buyer_avgHourlyJobsRate_amount,buyer_stats_hoursCount. - Contract Details:
contract_to_hire_details(detailed description of contract-to-hire opportunities).
Usage
- Navigate to the Actor page on the Apify platform.
- Click "Try actor".
- Enter your input configuration in the JSON editor. At a minimum, provide your
credentials. - Click "Start" to run the actor.
- Once the run is complete, view and download the results from the "Dataset" tab.
On this page
Share Actor:
