
Upwork Search and Job(s) Scraper (No Cookies)
Pricing
$15.00/month + usage

Upwork Search and Job(s) Scraper (No Cookies)
Extract detailed Upwork job listings with our scraper. Get job descriptions, budgets, required skills, client history, and engagement terms in a structured format. Perfect for market research and competitive analysis.
0.0 (0)
Pricing
$15.00/month + usage
2
Total users
14
Monthly users
14
Runs succeeded
>99%
Last modified
21 days ago
Upwork Jobs Scraper
Extract structured job listings from Upwork.com. Ideal for job seekers, recruiters, and market researchers looking to analyze job market trends, skills in demand, and competitive insights.
Features
- Comprehensive Job Scraping:
- Extract detailed job postings including titles, descriptions, budgets, and requirements.
- Support for various job types (hourly, fixed-price) and experience levels.
- Advanced Search Filters:
- Filter by location, job type, budget range, client history, and more.
- Support for complex search queries with multiple parameters.
- Performance Optimized:
- Configurable concurrency and retry settings for reliable scraping.
- Built-in proxy rotation with residential IP support to avoid blocks.
- Structured Data Output:
- Clean, normalized data in JSON format ready for analysis.
- Consistent schema for easy integration with databases and analytics tools.
Getting Started
Basic Usage
-
Configure Input:
- Add Upwork job URLs to the
startUrls
array. - Set your preferred scraping limits and proxy settings.
- Add Upwork job URLs to the
-
Run the Scraper:
- Execute the scraper via Apify platform or CLI.
- Monitor progress through the Apify dashboard.
-
Export Data:
- Download results in JSON, CSV, or other supported formats.
- Use webhooks or API to integrate with your workflow.
Example Input
{"startUrls": [{ "url": "https://www.upwork.com/jobs/~0123456789abcdef" },{ "url": "https://www.upwork.com/freelance-jobs/apply/Pitchbook-Data-Extraction-for-Paddle-Companies_~021933418908659249795/" },{ "url": "https://www.upwork.com/nx/search/jobs/?q=web+development" }],"maxItems": 100,"maxConcurrency": 10,"minConcurrency": 1,"maxRequestRetries": 100,"proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Input Configuration
Input Fields Explained
Parameter | Description | Default |
---|---|---|
startUrls | Array of Upwork job URLs or search result pages to start scraping. | [] |
maxItems | Maximum number of job listings to scrape per run. | 100 |
maxConcurrency | Maximum number of pages to process simultaneously. | 10 |
minConcurrency | Minimum number of pages to keep in processing queue. | 1 |
maxRequestRetries | Number of times to retry failed requests before giving up. | 100 |
proxy | Proxy configuration for making requests. Residential proxies recommended. | Apify Proxy |
cookies | (Optional) Authentication cookies if accessing protected content. | [] |
Supported URL Formats
1. Job Search URLs
Search for jobs using Upwork's search functionality:
https://www.upwork.com/nx/search/jobs/?q=airbnb
2. Individual Job Postings
Scrape specific job postings using these URL formats:
https://www.upwork.com/freelance-jobs/apply/Pitchbook-Data-Extraction-for-Paddle-Companies_~021933418908659249795/https://www.upwork.com/jobs/~021897592604309915141
3. Advanced Search with Filters
Use Upwork's advanced search parameters:
https://www.upwork.com/nx/search/jobs/?q=full+stack+data+scientist&sort=recency&location=Americas,Europe
Advanced Search Parameters
The scraper supports various Upwork search parameters that can be included in your start URLs:
q
: Search query (e.g.,web+development
)sort
: Sort order (recency
,relevance
)location
: Filter by location (comma-separated values)t
: Job type (0
for hourly,1
for fixed-price)amount
: Budget range (e.g.,100-500
)client_hires
: Client hiring history (e.g.,0,1-9,10-
)payment_verified
: Show only verified payments (1
for true)timezone
: Filter by timezone (comma-separated values)
Example with multiple filters:
https://www.upwork.com/nx/search/jobs/?q=react&sort=recency&location=Americas,Europe&t=1&amount=100-500&payment_verified=1
Output Structure
{"hiredApplicantNames": null,"opening": {"job": {"status": "ACTIVE","postedOn": "2025-06-22T08:27:45.795Z","publishTime": "2025-06-22T08:27:46.991Z","sourcingTime": null,"startDate": null,"deliveryDate": null,"workload": null,"contractorTier": "INTERMEDIATE","description": "We are Nova9 Marketing, a fast-growing digital marketing startup based in Seychelles, focused on helping Airbnbs, boutique hotels, and short-term rentals grow their online presence and increase direct bookings.\n\nOur services range from OTA listing optimization and dynamic pricing to social media management, visual branding, and Meta (Facebook/Instagram) ads.\n\nWe’re now looking to bring on a Social Media Manager with strong experience in Instagram and Facebook content creation, especially for brands in hospitality, real estate, travel, or lifestyle.\n\nThis is a long-term, remote position with the opportunity to manage multiple client accounts as we grow. You’ll be working closely with our video editor, virtual assistant, and creative director to deliver premium social media experiences for our clients.\n\n🛠 What You’ll Be Responsible For:\n\t•\tCreating monthly content plans (feed + story + Reel structure)\n\t•\tWriting engaging, branded captions with CTAs and emojis\n\t•\tSelecting and suggesting photos or clips from client shoot folders\n\t•\tCoordinating 6 Reels/month (our editor will handle the video – you guide the direction)\n\t•\tScheduling content via Later, Metricool, or similar\n\t•\tMonitoring basic engagement (replying to DMs/comments 2–3 times per week)\n\t•\tDelivering monthly performance reports using in-platform analytics\n\n✅ Requirements:\n\t•\t1+ year experience managing Instagram and Facebook for clients (travel/hospitality preferred)\n\t•\tConfident writing engaging, on-brand captions in English\n\t•\tBasic understanding of Reels hooks, trends, and storytelling\n\t•\tComfortable using Canva, Later/Metricool/Buffer, and Google Drive\n\t•\tHighly organized and proactive communicator\n\t•\tBonus: Familiarity with TikTok and short-form video trends\n💼 Scope & Rate:\n\t•\tWe’re offering $250–$300/month to start per client\n\t•\tFirst project will be a trial month for 1 property account\n\t•\tIf successful, we’ll increase workload and scale you into multiple accounts\n\t•\tFlexible working hours – we care more about quality and reliability than timezone\n\n🌴 Why Work With Us:\n\t•\tWe’re a creative team building something big in a niche with global growth potential\n\t•\tYou’ll work with beautiful, high-quality content (tropical hotels, beach villas, aerial shots)\n\t•\tDirect line of communication with the founder – no corporate fluff\n\t•\tRemote, independent, outcome-driven environment\n\t•\tLong-term growth opportunities — we want team players, not gig hoppers","info": {"ciphertext": "~021936702637394960044","id": "1936702637394960044","type": "FIXED","access": "PUBLIC_INDEX","title": "Social Media Manager for Airbnb & Hotels","hideBudget": false,"createdOn": "2025-06-22T08:27:45.795Z","notSureProjectDuration": false,"notSureFreelancersToHire": false,"notSureExperienceLevel": false,"notSureLocationPreference": false,"premium": false},"segmentationData": [{"customValue": null,"label": "Ongoing project","name": "Employment","sortOrder": 1,"type": "EMPLOYMENT","value": "EMPLOYMENT_POSITION","skill": null}],"sandsData": {"occupation": {"freeText": null,"ontologyId": "upworkOccupation:socialmediamarketing","prefLabel": "Social Media Marketing","id": "1017484851352698999","uid": "1017484851352698999"},"ontologySkills": [{"groupId": "1549040540813496320","id": "1045317701570953216","freeText": null,"prefLabel": "Travel & Hospitality","groupPrefLabel": "Industry"}],"additionalSkills": [{"groupId": null,"id": "1052162208978227208","freeText": null,"prefLabel": "Facebook"},{"groupId": null,"id": "1052162208978227206","freeText": null,"prefLabel": "Instagram"},{"groupId": null,"id": "1204836476859301888","freeText": null,"prefLabel": "Social Media Content Creation"},{"groupId": null,"id": "1031626781101637632","freeText": null,"prefLabel": "Social Media Management"}]},"category": {"name": "Digital Marketing","urlSlug": "digital-marketing"},"categoryGroup": {"name": "Sales & Marketing","urlSlug": "sales-marketing"},"budget": {"amount": 300,"currencyCode": "USD"},"annotations": {"tags": ["jsi_contractToHire","contractToHireSet","searchable","C2HJobsOptInEducation"]},"engagementDuration": {"label": "1 to 3 months","weeks": 9},"extendedBudgetInfo": {"hourlyBudgetMin": null,"hourlyBudgetMax": null,"hourlyBudgetType": null},"attachments": [],"clientActivity": {"lastBuyerActivity": "2025-06-22T08:52:15.177Z","totalApplicants": 20,"totalHired": 0,"totalInvitedToInterview": 0,"unansweredInvites": 0,"invitationsSent": 0,"numberOfPositionsToHire": 1}},"qualifications": {"countries": null,"earnings": null,"groupRecno": null,"languages": null,"localDescription": null,"localFlexibilityDescription": null,"localMarket": false,"minJobSuccessScore": 0,"minOdeskHours": 0,"onSiteType": null,"prefEnglishSkill": "ANY","regions": null,"risingTalent": false,"shouldHavePortfolio": false,"states": null,"tests": null,"timezones": null,"type": "ANY","locationCheckRequired": false,"group": null,"location": null,"locations": null},"questions": []},"buyer": {"enterprise": false,"isPaymentMethodVerified": false,"info": {"location": {"offsetFromUtcMillis": 0,"countryTimezone": "Etc/UTC (UTCZ)","city": null,"country": "Seychelles"},"stats": {"totalAssignments": 0,"activeAssignmentsCount": 0,"hoursCount": 0,"feedbackCount": 0,"score": 0,"totalJobsWithHires": 0,"totalCharges": null},"company": {"name": null,"companyId": "1931041000145612262","isEDCReplicated": null,"contractDate": "2025-06-06T00:00:00.000Z","profile": {"industry": "Travel & Hospitality","size": 1}},"jobs": {"openCount": 3,"postedCount": 3,"openJobs": [{"id": "1936712169910544263","uid": "1936712169910544263","isPtcPrivate": false,"ciphertext": "~021936712169910544263","title": "Meta Ads Specialist for Airbnb & Boutique Hotels","type": "FIXED"},{"id": "1936698126381745887","uid": "1936698126381745887","isPtcPrivate": false,"ciphertext": "~021936698126381745887","title": "OTA Listing & Pricing Optimization Expert (Airbnb/Booking/VRBO)","type": "FIXED"}]},"avgHourlyJobsRate": null},"workHistory": []},"currentUserInfo": {"owner": false,"freelancerInfo": {"profileState": "AUTO_ACCEPTED","applied": null,"devProfileCiphertext": "~01d7fa411418639c50","hired": null,"application": null,"pendingInvite": null,"contract": null,"hourlyRate": {"amount": 99},"qualificationsMatches": {"matches": [{"clientPreferred": "all","clientPreferredLabel": "Any","freelancerValue": "IC","freelancerValueLabel": "Not Specified","qualification": "FreelancerType","qualified": true},{"clientPreferred": "0","clientPreferredLabel": "At least 0%","freelancerValue": "0","freelancerValueLabel": "0%","qualification": "MinimumJobSuccessScore","qualified": true},{"clientPreferred": "0","clientPreferredLabel": "Any","freelancerValue": "4","freelancerValueLabel": "Native Or Bilingual","qualification": "EnglishLevel","qualified": true},{"clientPreferred": "0","clientPreferredLabel": "At least 0 hours","freelancerValue": "0","freelancerValueLabel": "0","qualification": "HoursBilled","qualified": true},{"clientPreferred": "ANY","clientPreferredLabel": "Any","freelancerValue": "0.00","freelancerValueLabel": "0.00","qualification": "Earnings","qualified": true},{"clientPreferred": "Any","clientPreferredLabel": null,"freelancerValue": "en","freelancerValueLabel": "English","qualification": "Language","qualified": true}]}}},"similarJobs": [],"workLocation": {"onSiteCity": null,"onSiteCountry": null,"onSiteReason": null,"onSiteReasonFlexible": null,"onSiteState": null,"onSiteType": null},"phoneVerificationStatus": {"status": "VERIFIED"},"applicantsBidsStats": null,"specializedProfileOccupationId": "1017484851352698999","applicationContext": {"freelancerAllowed": false,"clientAllowed": true},"basicInfo": {"id": "1936702637394960044","title": "Social Media Manager for H^Airbnb^H & Hotels","description": "We are Nova9 Marketing, a fast-growing digital marketing startup based in Seychelles, focused on helping Airbnbs, boutique hotels, and short-term rentals grow their online presence and increase direct bookings.\n\nOur services range from OTA listing optimization and dynamic pricing to social media management, visual branding, and Meta (Facebook/Instagram) ads.\n\nWe’re now looking to bring on a Social Media Manager with strong experience in Instagram and Facebook content creation, especially for brands in hospitality, real estate, travel, or lifestyle.\n\nThis is a long-term, remote position with the opportunity to manage multiple client accounts as we grow. You’ll be working closely with our video editor, virtual assistant, and creative director to deliver premium social media experiences for our clients.\n\n🛠 What You’ll Be Responsible For:\n\t•\tCreating monthly content plans (feed + story + Reel structure)\n\t•\tWriting engaging, branded captions with CTAs and emojis\n\t•\tSelecting and suggesting photos or clips from client shoot folders\n\t•\tCoordinating 6 Reels/month (our editor will handle the video – you guide the direction)\n\t•\tScheduling content via Later, Metricool, or similar\n\t•\tMonitoring basic engagement (replying to DMs/comments 2–3 times per week)\n\t•\tDelivering monthly performance reports using in-platform analytics\n\n✅ Requirements:\n\t•\t1+ year experience managing Instagram and Facebook for clients (travel/hospitality preferred)\n\t•\tConfident writing engaging, on-brand captions in English\n\t•\tBasic understanding of Reels hooks, trends, and storytelling\n\t•\tComfortable using Canva, Later/Metricool/Buffer, and Google Drive\n\t•\tHighly organized and proactive communicator\n\t•\tBonus: Familiarity with TikTok and short-form video trends\n💼 Scope & Rate:\n\t•\tWe’re offering $250–$300/month to start per client\n\t•\tFirst project will be a trial month for 1 property account\n\t•\tIf successful, we’ll increase workload and scale you into multiple accounts\n\t•\tFlexible working hours – we care more about quality and reliability than timezone\n\n🌴 Why Work With Us:\n\t•\tWe’re a creative team building something big in a niche with global growth potential\n\t•\tYou’ll work with beautiful, high-quality content (tropical hotels, beach villas, aerial shots)\n\t•\tDirect line of communication with the founder – no corporate fluff\n\t•\tRemote, independent, outcome-driven environment\n\t•\tLong-term growth opportunities — we want team players, not gig hoppers","relevanceEncoded": "{\"position\":\"3\"}","ontologySkills": [{"uid": "1045317701570953216","parentSkillUid": null,"prefLabel": "Travel & Hospitality","prettyName": "Travel & Hospitality","freeText": null,"highlighted": false},{"uid": "1052162208978227208","parentSkillUid": null,"prefLabel": "Facebook","prettyName": "Facebook","freeText": null,"highlighted": false},{"uid": "1052162208978227206","parentSkillUid": null,"prefLabel": "Instagram","prettyName": "Instagram","freeText": null,"highlighted": false},{"uid": "1204836476859301888","parentSkillUid": null,"prefLabel": "Social Media Content Creation","prettyName": "Social Media Content Creation","freeText": null,"highlighted": false},{"uid": "1031626781101637632","parentSkillUid": null,"prefLabel": "Social Media Management","prettyName": "Social Media Management","freeText": null,"highlighted": false}],"isSTSVectorSearchResult": false,"connectPrice": 8,"applied": false,"upworkHistoryData": {"client": {"paymentVerificationStatus": null,"country": "Seychelles","totalReviews": 0,"totalFeedback": 0,"hasFinancialPrivacy": false,"totalSpent": null},"freelancerClientRelation": {"lastContractRid": null,"companyName": null,"lastContractTitle": null}},"jobTile": {"job": {"id": "1936702637394960044","ciphertext": "~021936702637394960044","jobType": "FIXED","weeklyRetainerBudget": null,"hourlyBudgetMax": null,"hourlyBudgetMin": null,"hourlyEngagementType": null,"contractorTier": "IntermediateLevel","sourcingTimestamp": null,"createTime": "2025-06-22T08:27:45.795Z","publishTime": "2025-06-22T08:27:46.991Z","enterpriseJob": false,"personsToHire": 1,"premium": false,"totalApplicants": 20,"hourlyEngagementDuration": null,"fixedPriceAmount": {"isoCurrencyCode": null,"amount": "300.0"},"fixedPriceEngagementDuration": {"id": "474250516458926082","rid": 3,"label": "1 to 3 months","weeks": 9,"ctime": "2014-06-04T17:59:10.123Z","mtime": "2014-06-04T17:59:10.123Z"}}}}}
Field Explanations
Job Opening Details
Field | Type | Description | Example/Notes |
---|---|---|---|
opening.job.status | String | Current status of the job posting | ACTIVE , CLOSED , etc. |
opening.job.postedOn | String | When the job was originally posted | ISO 8601 format |
opening.job.publishTime | String | When the job was published | ISO 8601 format |
opening.job.description | String | Full job description including requirements and responsibilities | HTML/text content |
opening.job.contractorTier | String | Experience level required | INTERMEDIATE , EXPERT , etc. |
opening.job.workload | String | Expected workload | FULL_TIME , PART_TIME , etc. |
opening.job.info.title | String | Job title | Plain text |
opening.job.info.ciphertext | String | Encoded job identifier | Used in URLs |
opening.job.info.type | String | Job type | FIXED , HOURLY |
opening.job.budget.amount | Number | Budget amount | Currency specified in budget.currencyCode |
opening.job.budget.currencyCode | String | Currency code | USD , EUR , etc. |
opening.job.engagementDuration.weeks | Number | Expected project duration in weeks | |
opening.job.engagementDuration.label | String | Human-readable duration | e.g., "1 to 3 months" |
opening.job.clientActivity.totalApplicants | Number | Total number of applicants | |
opening.job.clientActivity.totalHired | Number | Number of candidates hired | |
opening.job.clientActivity.lastBuyerActivity | String | Timestamp of last buyer activity | ISO 8601 format |
Skills & Categories
Field | Type | Description | Example/Notes |
---|---|---|---|
opening.job.sandsData.occupation.prefLabel | String | Main job category | e.g., "Social Media Marketing" |
opening.job.sandsData.occupation.ontologyId | String | Internal category ID | |
opening.job.sandsData.ontologySkills[] | Array | Industry/topical skills | Array of skill objects |
opening.job.sandsData.additionalSkills[] | Array | Specific skills/tools | Array of skill objects |
opening.job.category.name | String | Job category | e.g., "Digital Marketing" |
opening.job.categoryGroup.name | String | Category group | e.g., "Sales & Marketing" |
Client/Buyer Information
Field | Type | Description | Example/Notes |
---|---|---|---|
buyer.info.location.country | String | Client's country | |
buyer.info.location.countryTimezone | String | Client's timezone | |
buyer.info.stats.totalAssignments | Number | Total jobs posted by client | |
buyer.info.stats.hoursCount | Number | Total hours worked by client | |
buyer.info.stats.feedbackCount | Number | Number of feedback entries | |
buyer.info.stats.score | Number | Client's rating score | |
buyer.info.company.profile.industry | String | Client's industry | |
buyer.info.company.profile.size | Number | Company size | |
buyer.info.jobs.openCount | Number | Currently open jobs | |
buyer.info.jobs.postedCount | Number | Total jobs posted | |
buyer.info.jobs.openJobs[] | Array | List of client's other open jobs | Array of job objects |
Application & Engagement
Field | Type | Description | Example/Notes |
---|---|---|---|
currentUserInfo.freelancerInfo.profileState | String | Current user's application state | e.g., "AUTO_ACCEPTED" |
currentUserInfo.freelancerInfo.hourlyRate.amount | Number | User's hourly rate | |
currentUserInfo.freelancerInfo.qualificationsMatches.matches[] | Array | How user matches job requirements | Array of qualification objects |
applicationContext.freelancerAllowed | Boolean | If current user can apply | |
applicationContext.clientAllowed | Boolean | If current user can manage the job |
Job Metadata
Field | Type | Description | Example/Notes |
---|---|---|---|
basicInfo.id | String | Unique job ID | |
basicInfo.title | String | Job title | |
basicInfo.description | String | Full job description | |
basicInfo.connectPrice | Number | Cost to apply (in Connects) | |
basicInfo.ontologySkills[] | Array | Skills associated with the job | Array of skill objects |
basicInfo.jobTile.job.jobType | String | Type of job | FIXED , HOURLY |
basicInfo.jobTile.job.totalApplicants | Number | Number of applicants | |
basicInfo.jobTile.job.fixedPriceAmount.amount | String | Fixed price amount | If job type is FIXED |
basicInfo.jobTile.job.hourlyBudgetMin | Number | Minimum hourly rate | If job type is HOURLY |
basicInfo.jobTile.job.hourlyBudgetMax | Number | Maximum hourly rate | If job type is HOURLY |
basicInfo.jobTile.job.contractorTier | String | Required experience level |
Support
- For issues or feature requests, please use the Issues section of this actor.
- If you need customization or have questions, feel free to contact the author:
- Author's website: https://muhamed-didovic.github.io/
- Email: muhamed.didovic@gmail.com
Additional Services
- Request customization or whole dataset: muhamed.didovic@gmail.com
- If you need anything else scraped, or this actor customized, email: muhamed.didovic@gmail.com
- For API services of this scraper (no Apify fee, just usage fee for the API), contact: muhamed.didovic@gmail.com