Upwork | Search |Job(s) | Scraper (No Cookies) (Richest output)
by memo23
Extract detailed Upwork job listings with our scraper. Get job descriptions, budgets, required skills, client history, and engagement terms in a struc...
Opens on Apify.com
About Upwork | Search |Job(s) | Scraper (No Cookies) (Richest output)
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.
What does this actor do?
Upwork | Search |Job(s) | Scraper (No Cookies) (Richest output) 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
- Click "Try This Actor" to open it on Apify
- Create a free Apify account if you don't have one
- Configure the input parameters as needed
- Run the actor and download your results
Documentation
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 1. Configure Input: - Add Upwork job URLs to the startUrls array. - Set your preferred scraping limits and proxy settings. 2. Run the Scraper: - Execute the scraper via Apify platform or CLI. - Monitor progress through the Apify dashboard. 3. Export Data: - Download results in JSON, CSV, or other supported formats. - Use webhooks or API to integrate with your workflow. ### Example Input json { "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 json { "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
Categories
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 | Search |Job(s) | Scraper (No Cookies) (Richest output) now on Apify. Free tier available with no credit card required.
Start Free TrialActor Information
- Developer
- memo23
- Pricing
- Paid
- Total Runs
- 14,256
- Active Users
- 56
Related Actors
Company Employees Scraper
by build_matrix
🔥 LinkedIn Jobs Scraper
by bebity
Linkedin Company Detail (No Cookies)
by apimaestro
Linkedin Profile Details Batch Scraper + EMAIL (No Cookies)
by apimaestro
Apify provides a cloud platform for web scraping, data extraction, and automation. Build and run web scrapers in the cloud.
Learn more about ApifyNeed Professional Help?
Couldn't solve your problem? Hire a verified specialist on Fiverr to get it done quickly and professionally.
Trusted by millions | Money-back guarantee | 24/7 Support