Upwork Job Scraper – AI Insights, Real-Time Feed & 59+ Filters avatar

Upwork Job Scraper – AI Insights, Real-Time Feed & 59+ Filters

Pricing

$5.00/month + usage

Go to Apify Store
Upwork Job Scraper – AI Insights, Real-Time Feed & 59+ Filters

Upwork Job Scraper – AI Insights, Real-Time Feed & 59+ Filters

Scrape Upwork jobs with AI-scored urgency, complexity & quality at $2 per 1,000 results. Real-time feed with 59+ filters (skills, budget, client rating, hire intent), automatic deduplication, and notifications-only mode for NEW jobs since your last run. For freelancers, agencies, and job boards.

Pricing

$5.00/month + usage

Rating

0.0

(0)

Developer

Hyperbach

Hyperbach

Maintained by Community

Actor stats

0

Bookmarked

15

Total users

1

Monthly active users

8 days ago

Last modified

Share

Scrape Upwork jobs with AI-scored urgency, complexity & client quality. Only $2 per 1,000 results — no monthly fee.

What makes this scraper different

This scraperTypical Upwork scraper
AI enrichment✅ Each job scored for urgency, complexity, technical requirements❌ Raw data only
Filters✅ 59+ fields (skills, budget, client country, hire rate, payment verified, English level, …)⚠️ ~5–15 filters
Job score (0–100)✅ Every job ranked by price, client reputation, spending, location❌ No ranking — you sift the noise yourself
Screening questions✅ Captured per job (when present) — feed straight into your auto-proposal generator❌ Hidden until you open the posting
Notifications mode✅ Returns only NEW jobs since your last call (cursor tracking per client)❌ Returns everything every time
Deduplication✅ Automatic⚠️ Manual
Pricing✅ $2 / 1,000 results, no monthly fee⚠️ $5–$30 / month + usage

🚀 Quick Start

1. Basic Usage

{
"limit": 10
}

2. With Smart Filtering

{
"limit": 20,
"skills": "React",
"price_min": ">=50",
"buyer_score": ">=4.0",
"ai_urgency": "Urgent"
}

3. Notification Mode (Only New Jobs)

{
"notifications_only": "true",
"limit": 50
}

⚡ Performance

  • Median run duration: ~25 seconds for 100 results
  • Smart caching keeps repeated queries responsive
  • Success rate is currently improving with active reliability work — see the Issues tab for status

⚙️ Input Configuration

All parameters are optional.

ParameterTypeDescription
limitnumberNumber of jobs to return (1-100, default: 10)
notifications_onlybooleanIf true, only returns NEW jobs since last call

⚠️ Filter Quality — Read This Before Filtering

Upwork only requires title, description, skills, and price-type from the client. Almost everything else is optional, and clients fill it in inconsistently. If you filter on a field that's empty for most jobs, you exclude all the matching jobs that simply didn't supply the value — not just the non-matching ones.

Field density measured on the last 30 days (~135K postings):

  • Always-filled (safe to filter): title, description, skills, price_type, category_name, subcategory_name, experience_level, qual_pref_english, qual_type, client_location, hire_rate, company_size, open_jobs (all ≥99%)
  • Mostly filled (mild loss): buyer_contract_date (~82%), buyer_payment_verified (~78%), ai_explicit_mention_of_agency (~73%)
  • Half-filled (use carefully): price / price_min / price_max (~40% — fixed-price jobs leave hourly bounds null and vice versa), buyer_score, buyer_feedback_count, total_spent, industry, engagement_label, ai_summary, ai_technical_skills (30-70%)
  • Sparse (filter at your own risk): ai_urgency (~14%), ai_duration (~27%), ai_deadline (~12%), qual_portfolio_required (~7%), qual_rising_talent (~12%) — most jobs are not tagged

Recommendation: filter on dense fields, then use sparse fields for post-fetch sorting / scoring / display. Combining sparse filters compounds the loss multiplicatively.

📊 Available Filter Fields

You can filter jobs by 59 different fields across these categories:

📋 Essential Job Information

Core job details like title, description, pricing

Available fields: title, description, skills, price_type, price, price_min, price_max, category_name, subcategory_name, date_posted, url, keywords, exclude_keywords

📋 Job Requirements

Experience level, qualifications, and constraints

Available fields: experience_level, engagement_label, engagement_weeks, qual_min_hours_week, qual_min_success_score, qual_pref_english, qual_rising_talent, qual_portfolio_required, qual_type

📋 Client Information

Details about the client posting the job

Available fields: client_location, jobs_posted, hire_rate, avg_hourly_rate, open_jobs, total_spent, hires, active_hires, total_hours, industry, company_size, buyer_city, buyer_feedback_count, buyer_score, buyer_contract_date, buyer_payment_verified

📋 AI-Powered Insights

AI-generated analysis of job requirements and urgency

Available fields: ai_urgency, ai_duration, ai_deadline, ai_technical_skills, ai_inferred_technical_skills, ai_explicit_mention_of_agency, ai_clients_technical_understanding, ai_summary

📋 System Metadata

Internal tracking and system fields

Available fields: id, created_at, questions, job_score, job_score_breakdown

FieldTypeExampleDescription
skillstext"React"Filter by required skills
price_minnumeric">=50"Minimum hourly rate
buyer_scorenumeric">=4.0"Client rating (1-5 stars)
experience_levelselect"Intermediate"Required experience level
ai_urgencyselect"Urgent"AI-detected project urgency
date_posteddate">=2025-01-01"Job posting date

Tip: job_score (0–100) is included in every response. It is not a filter input, but you can sort/threshold items client-side: jobs ≥ 70 are typically high-value; < 30 are usually safe to skip.

🎛️ Filter Syntax Guide

Different field types support different filtering options:

📝 Text Fields (skills, title, description)

  • Contains search: "React" → finds jobs mentioning React
  • Case-insensitive: automatically handled
  • Empty check: "=null" → finds jobs with empty/null values
  • Non-empty check: "!=null" → finds jobs with content

🔢 Numeric Fields (price, price_min, buyer_score)

  • Exact match: "1000" → exactly 1000
  • Operators: ">=50", "<=100", ">25", "<75"
  • Ranges: "500-2000" → between 500 and 2000 (inclusive)

✅ Boolean Fields (buyer_payment_verified, qual_rising_talent, qual_portfolio_required)

  • True: "true" or "1"
  • False: "false" or "0"

📅 Date Fields (date_posted, created_at)

  • Exact date: "2025-01-15"
  • Operators: ">=2025-01-01", "<=2025-12-31"
  • ISO format: "2025-01-15T10:30:00Z"

🎯 Select Fields (experience_level, ai_urgency)

  • Exact match: "Intermediate", "Urgent"
  • Case-sensitive: use exact values from field options (e.g. "Urgent", not "urgent" or "high")

📋 Complete Field Reference

Essential Job Information

FieldTypeOperatorsExamplesDescription
titletextcontains, =null, !=nullBuild a React Dashboard with Real-time Analytics, Virtual Assistant for Email Management, Logo Design for Tech StartupThe job posting title as written by the client. Contains the main description of what work needs to be done.
descriptiontextcontains, =null, !=nullWe need an experienced React developer to build a ..., Looking for a Python expert who can integrate machine learning models ...Full job description text as written by the client. Contains detailed requirements, expectations, and project scope.
skillstextcontains, =null, !=nullJavaScript, React, Node.js, Python, Machine Learning, TensorFlowComma-separated list of required skills and technologies for the job as specified by the client.
price_typeselectequalsFixed-price, HourlyHow the job is priced: Fixed Price (one-time payment) or Hourly (paid per hour worked).
pricenumeric>=, <=, >, <, =, ranges500, 1200, 50The budget amount for the fixed-price job.
price_minnumeric>=, <=, >, <, =, ranges25, 50, 100Minimum budget or hourly rate for the job. Lower bound of the client's budget range.
price_maxnumeric>=, <=, >, <, =, ranges75, 150, 500Maximum budget or hourly rate for the job. Upper bound of the client's budget range.
category_nameselectequalsAccounting & Consulting, Admin Support, Customer Service, Data Science & Analytics, Design & Creative, +7 moreMain category of the job (e.g., Web Development, Data Science, Design). Upwork's primary job classification.
subcategory_nameselectequals3D Modeling & CAD, AI & Machine Learning, AI Apps & Integration, Accounting & Bookkeeping, Art & Illustration, +45 moreSpecific subcategory within the main category (e.g., Front-End Development, Machine Learning). More granular classification.
date_posteddate>=, <=, >, <, =, equals2024-01-15, 2024-01-20T14:30:00ZWhen the job was posted on Upwork. Use this to find recent opportunities or analyze posting patterns.
urltextcontains, =null, !=nullhttps://www.upwork.com/jobs/~01234567890abcdef, https://www.upwork.com/jobs/~987654321fedcba09Direct link to the job posting on Upwork. Use this to view the full job details or apply.
keywordstextcontainspython machine learning, react javascript typescript, design ui ux figma, marketing seo content, data analysis sql pythonFull-text search across job title, description, skills, categories, location, industry, and AI-generated fields. Uses PostgreSQL full-text search for fast performance on millions of jobs.
exclude_keywordstextcontainswordpress php, data entry copy paste, logo design graphic, social media marketing, excel spreadsheet manualExclude jobs containing any of these keywords. Uses the same full-text search across job title, description, skills, categories, location, industry, and AI-generated fields. Perfect for filtering out unwanted job types or technologies.

Job Requirements

FieldTypeOperatorsExamplesDescription
experience_levelselectequalsEntry_level, Expert, IntermediateRequired experience level for the job: Entry Level, Intermediate, or Expert.
engagement_labelselectequals1 to 3 months, 3 to 6 months, Less than 1 month, More than 6 monthsExpected duration or type of engagement (e.g., 1 to 3 months, 3 to 6 months, Less than 1 month, Less than 1 week, More than 6 months).
engagement_weeksselectequals3, 9, 18, 52Project duration in weeks. Options: 1, 3, 9, 18, 52 weeks.
qual_min_hours_weekselectequals0, 10, 30, 40Minimum hours per week required for hourly jobs. Options: 10, 30, 40.
qual_min_success_scoreselectequals0, 80, 90Minimum Upwork success score required to apply for the job.
qual_pref_englishselectequalsANY, CONVERSATIONAL, FLUENT, NATIVEClient's preferred English proficiency level for freelancers.
qual_rising_talentbooleanequalsTrue, FalseWhether the job is open to Upwork Rising Talent (newer freelancers with potential).
qual_portfolio_requiredbooleanequalsTrue, FalseWhether the client requires a portfolio or work samples to apply.
qual_typeselectequalsAGENCY, ANY, INDEPENDENTType of freelancer the client is looking for: Agency (team/company), Independent (solo freelancer), or Any (no preference).

Client Information

FieldTypeOperatorsExamplesDescription
client_locationtextcontains, =null, !=nullUnited States, United Kingdom, CanadaGeographic location of the client posting the job.
jobs_postednumeric>=, <=, >, <, =, ranges1, 10, >50Total number of jobs the client has posted on Upwork.
hire_ratenumeric>=, <=, >, <, =, ranges75, 90, 50Percentage of freelancers the client has hired from total applications. Higher rates indicate clients who actively hire rather than just browse.
avg_hourly_ratenumeric>=, <=, >, <, =, ranges45.50, 75.00, >=100Average hourly rate this client typically pays freelancers. Based on their historical hiring patterns.
open_jobsnumeric>=, <=, >, <, =, ranges0, 2, <5Number of jobs the client currently has open/active.
total_spentnumeric>=, <=, >, <, =, ranges100, 500, >=1000000Total amount the client has spent on Upwork across all their projects.
hiresnumeric>=, <=, >, <, =, ranges1, 10, >50Total number of freelancers hired by the client.
active_hiresnumeric>=, <=, >, <, =, ranges1, 10, >50Number of freelancers currently hired by the client.
total_hoursnumeric>=, <=, >, <, =, ranges100, 500, >=1000Total number of hours the client has worked on Upwork across all their projects.
industryselectequals``, Aerospace, Agriculture & Forestry, Art & Design, Automotive, +15 moreMain industry the client operates in. Select from available choices.
company_sizeselectequals0, 1, 10, 100, 1000, +4 moreSize of the client's company. Predefined option for company size. Select from available choices.
buyer_citytextcontains, =null, !=nullNew York, London, Paris, Tokyo, Sydney, Berlin, Rome, Madrid, Amsterdam, Mumbai, Beijing, Delhi, MumbaiCity where the client is located.
buyer_feedback_countnumeric>=, <=, >, <, =, ranges1, 10, >=2Number of feedbacks the client has received.
buyer_scorenumeric>=, <=, >, <, =, ranges>=4.7, 5.0Score of the client's performance on Upwork.
buyer_contract_datedate>=, <=, >, <, =, equals2024-01-15, 2024-01-20T14:30:00ZDate when the client first registered their account on Upwork. Indicates how long the client has been active on the platform.
buyer_payment_verifiedbooleanequalsTrue, FalseBoolean flag indicating whether the client has verified their payment method on Upwork.

AI-Powered Insights

FieldTypeOperatorsExamplesDescription
ai_urgencyselectequalsImmediate, Long-Term, Moderately Urgent, Not Urgent, Urgent, Very UrgentAI-detected urgency level of the job based on language and posting patterns.
ai_durationselectequalsFlexible, Flexible Deadline, Long-Term, Mid-Term, Part-Time, Short-TermAI-detected project duration based on job description analysis. Indicates expected length and type of engagement.
ai_deadlineselectequalsFixed Deadline, Flexible Deadline, Immediate Deadline, No DeadlineAI-detected deadline type for the job based on urgency indicators and time-sensitive language in the job description.
ai_technical_skillstextcontains, =null, !=nullJavaScript, React, Node.js, Python, Django, PostgreSQL, AWS, Docker, KubernetesTechnical skills explicitly mentioned in the job description, extracted using AI. These are skills directly stated by the client as requirements or preferences.
ai_inferred_technical_skillstextcontains, =null, !=nullGit, REST APIs, Testing, Database Design, Security, Responsive Design, SEOTechnical skills inferred by AI from the job description context, even when not explicitly mentioned. These are skills likely needed based on project requirements and industry patterns.
ai_explicit_mention_of_agencyselectequalsAgencies Welcome, No Agencies, No MentionAI-detected explicit mention of agency preferences in the job posting. Indicates whether the client welcomes agencies, prefers individual freelancers, or has no specific preference.
ai_clients_technical_understandingselectequalsExpert, High, Low, ModerateAI-detected assessment of the client's technical understanding based on how they describe their project requirements. Helps identify whether the client has deep technical knowledge, moderate understanding, basic knowledge, or expert-level expertise in the domain.
ai_summarytextcontains, =null, !=nullThis job is a full-stack developer role for a startup. The ideal candidate will have experience with React, Node.js, and PostgreSQL., This job is a data analyst role for a consulting firm. The ideal candidate will have experience with SQL, Python, and data visualization tools.AI-generated summary of the job description. Provides a concise overview of the job requirements and responsibilities.

System Metadata

FieldTypeOperatorsExamplesDescription
idtextcontains, =null, !=null~01234567890abcdef, ~987654321fedcba09Unique identifier for the job posting on Upwork. Use this to track specific jobs or avoid duplicates.
created_atdate>=, <=, >, <, =, equals2024-01-20T14:30:00ZTimestamp when this job record was created in our system (not the Upwork posting date).
questionsarray(read-only, not a filter input)['Name one long-tail keyword you would target for a UK mortgage and investment app and explain why?', 'Share a specific SEO or ASO result you have driven. Include the numbers?'], ['Are you willing to undergo a background check, in accordance with local law/regulations?', 'How soon can be available for work?', 'What is your level of proficiency in English?', 'Briefly describe your experience with Oracle Fusion HCM']Upwork screening questions captured for the job, as written by the client. Empty array [] for ~83% of postings (jobs without screening questions). When present, contains 1-6 question strings. Feed straight into a proposal-answer generator to pre-write answers, or surface as an application checklist.
job_scorenumeric(read-only, not a filter input)85, 62, 47, 12, 0Rule-based 0–100 score that ranks the job by attractiveness. Weighted across price (20), client reputation (42), client spending (40), premium status (5), and location (10). Computed per request from the row's own fields — no DB lookup needed. Use to sort or threshold client-side.
job_score_breakdownobject(read-only, not a filter input)-Always-included explanation of the job_score: per-category raw/normalized/weight, ranked top_contributors, and penalties. Use to surface why a job ranked high in UI, or to debug threshold filters. See Output Format below.

📤 Output Format

Each dataset item is a flat job record. Real example from a fresh posting (job_score: 94):

{
"id": "022053503680858460814",
"title": "Senior React Native / Cloud Backend Engineer for iOS Video App",
"url": "https://www.upwork.com/jobs/~022053503680858460814",
"description": "We are looking for a senior engineer to join a small, fast-moving team building a live iOS app in React Native with heavy cloud backend connectivity and cloud-based video processing. This is not a web app project. We need someone experienced with real iOS apps on real devices, App Store/TestFlight workflows, mobile-to-cloud video uploads, client/server sync, and production-safe feature deployment...",
"date_posted": "2026-05-10T15:53:24Z",
"created_at": "2026-05-10T15:59:01Z",
"price_type": "Hourly",
"price_min": 70,
"price_max": 100,
"skills": "React Native, iOS, Mobile App Development, Google Cloud Platform, Python, AI Development",
"category_name": "Web, Mobile & Software Dev",
"subcategory_name": "Web Development",
"experience_level": "Expert",
"engagement_label": "3 to 6 months",
"qual_pref_english": "ANY",
"client_location": "United States",
"buyer_city": "Miami",
"buyer_score": 4.93,
"buyer_feedback_count": 44,
"buyer_payment_verified": true,
"jobs_posted": 57,
"hires": 55,
"hire_rate": 100,
"total_spent": 54226.41,
"avg_hourly_rate": 55.35,
"total_hours": 473,
"open_jobs": 1,
"ai_clients_technical_understanding": "High",
"ai_technical_skills": "React Native, iOS app development, App Store/TestFlight workflows, mobile video/photo upload, camera roll/photo library permissions, cloud backend (GCP preferred, AWS acceptable), async jobs/queues/workers, client/server state sync, production logging/debugging, AI-assisted development",
"ai_inferred_technical_skills": "Slack, Markdown documentation, real device testing",
"ai_explicit_mention_of_agency": "No Mention",
"ai_summary": "You'll build and maintain a production iOS app in React Native focused on cloud-connected video/photo uploads, delivering fully tested features on real devices with App Store/TestFlight workflows. The client expects a senior engineer with deep mobile iOS experience (real-device testing with a personal iPhone), cloud backend knowledge (preferably GCP), daily collaboration, and an AI-driven development workflow, working 4 hours daily in the 9–5 ET window. Be aware this role demands intense communication, real-device testing with large media libraries, and rapid iteration cycles, so if you prefer solo deep work or lack the hardware/setup, it's not a fit.",
"job_score": 94,
"job_score_breakdown": {
"categories": {
"price": { "raw_score": 18, "normalized_score": 18, "weight": 20 },
"client_reputation": { "raw_score": 42, "normalized_score": 42, "weight": 42 },
"client_spending": { "raw_score": 24, "normalized_score": 24, "weight": 40 },
"location": { "raw_score": 10, "normalized_score": 10, "weight": 10 }
},
"top_contributors": [
{ "attribute": "price_min,price_max", "value": "$70-$100/hr", "score": 18, "category": "price" },
{ "attribute": "hire_rate", "value": "100% (57 jobs)", "score": 15, "category": "client_reputation" },
{ "attribute": "buyer_score", "value": "4.93 (44 reviews)", "score": 15, "category": "client_reputation" },
{ "attribute": "avg_hourly_rate", "value": "$55.35/hr", "score": 15, "category": "client_spending" },
{ "attribute": "buyer_payment_verified", "value": true, "score": 12, "category": "client_reputation" },
{ "attribute": "client_location", "value": "United States", "score": 10, "category": "location" },
{ "attribute": "total_spent", "value": "$54,226.41", "score": 6, "category": "client_spending" },
{ "attribute": "total_hours", "value": "473 hours", "score": 3, "category": "client_spending" }
],
"penalties": []
},
"questions": [
"Describe a React Native iOS app you worked on that was live in TestFlight or the App Store. What parts of the client/server flow did you personally build or maintain, especially around photo/video uploads, auth, sync, or backend job status?",
"Do you personally have an iPhone with a large real photo/video library that you can use for testing? What model and how many photos/videos in your camera roll?",
"How are you currently using AI as a developer?",
"How do you prevent regression?"
]
}

job_score is the rule-based 0–100 rank. Category weights: price (20) + client_reputation (42) + client_spending (40) + premium (5) + location (10). Each category is capped at its weight, then summed and bounded to 0–100.

job_score_breakdown is always included and explains which fields contributed how many points. Use it to build UI that highlights why a job ranked high, or to debug your score-threshold filters. top_contributors is sorted descending; penalties lists negative contributions (e.g., unverified payment, low hire rate on a client with many jobs posted).

questions is the array of Upwork screening questions captured for the job — empty [] for ~83% of postings, 1–6 strings when the client included them. Feed it into your auto-proposal generator.

Empty/missing AI fields are returned as null (not every job goes through full AI enrichment).

For the full list of fields with types and operator support, see Complete Field Reference above.

💰 Pricing

$2.00 per 1,000 results. No monthly subscription. No platform usage fees. Runs that return zero results cost nothing.

🎯 Smart Usage Patterns

💼 Freelancer Job Alerts

// High-value React jobs from quality clients
{
"notifications_only": "true",
"skills": "React",
"price_min": ">=60",
"buyer_score": ">=4.0",
"buyer_payment_verified": "true",
"ai_urgency": "Urgent"
}
// Entry-level opportunities for new freelancers
{
"experience_level": "Entry Level",
"price_min": ">=15",
"buyer_payment_verified": "true",
"exclude_keywords": "data entry copy paste"
}
// Remote-friendly design jobs
{
"keywords": "design ui ux figma",
"price_type": "Fixed-price",
"price": "500-5000",
"ai_complexity_score": "Moderate"
}

🏢 Agency Lead Generation

// Jobs explicitly seeking agencies or teams
{
"ai_explicit_mention_of_agency": "Agencies Welcome",
"ai_complexity_score": "High",
"price_min": ">=100",
"total_spent": ">=10000",
"ai_budget_estimation_indicators": "High Budget"
}
// Enterprise projects with team requirements
{
"ai_explicit_mention_of_agency": "Agencies Preferred",
"engagement_label": "More than 6 months",
"ai_portfolio_requirements": "Required",
"company_size": ">=1000",
"ai_clients_technical_understanding": "High"
}
// High-value development projects for agencies
{
"ai_explicit_mention_of_agency": "Agencies Only",
"keywords": "react node.js typescript",
"price": ">=25000",
"ai_complexity_score": "High",
"ai_duration": "Long-Term",
"buyer_score": ">=4.5"
}

🔍 Market Research & Analysis

// Track AI/ML job trends and pricing
{
"keywords": "machine learning artificial intelligence",
"date_posted": ">=2025-01-01",
"limit": 100
}
// Monitor mobile app development market
{
"skills": "iOS Android React Native",
"price_type": "Fixed-price",
"date_posted": ">=2024-12-01",
"experience_level": "Intermediate"
}
// Analyze client spending patterns
{
"total_spent": ">=100000",
"hire_rate": ">=90",
"buyer_payment_verified": "true",
"limit": 50
}

🎯 Specialized Niches

// Blockchain & crypto projects with quality clients
{
"keywords": "blockchain cryptocurrency solidity ethereum",
"exclude_keywords": "scam pyramid scheme",
"ai_complexity_score": "High",
"ai_clients_technical_understanding": "High",
"ai_budget_estimation_indicators": "High Budget",
"price_min": ">=50"
}
// Technical writing with portfolio requirements
{
"keywords": "technical writing documentation",
"ai_portfolio_requirements": "Required",
"ai_clients_technical_understanding": "Moderate",
"experience_level": "Intermediate",
"price_min": ">=30",
"qual_pref_english": "FLUENT"
}
// Urgent fixes for immediate delivery
{
"ai_urgency": "Immediate",
"ai_deadline": "Fixed Deadline",
"keywords": "bug fix maintenance urgent",
"ai_duration": "Short-Term",
"price_min": ">=40",
"date_posted": ">=2025-01-01"
}

🚀 Notification & Automation

// Daily new job alerts for Python developers
{
"notifications_only": "true",
"skills": "Python",
"price_min": ">=45",
"buyer_score": ">=3.5",
"limit": 20
}
// Weekend side project hunting
{
"engagement_label": "Less than 1 month",
"price_type": "Fixed-price",
"price": "1000-10000",
"ai_complexity_score": "Low"
}

📈 Use Cases

  • 💼 Freelancer Job Alerts: Get notified of relevant opportunities
  • 🏢 Agency Lead Generation: Find high-value projects for your team
  • 📊 Market Research: Track pricing and demand trends
  • 🤖 Automation: Build job boards, alerts, and matching systems
  • 📱 Mobile Apps: Power job discovery applications
  • 🔍 Competitive Analysis: Monitor competitor job requirements

🚨 Common Issues & Solutions

Issue: "No jobs returned"

  • Solution: Check your filters aren't too restrictive
  • Tip: Start with broader filters and narrow down

Issue: "Same jobs appearing"

  • Solution: Use notifications_only: true for new jobs only
  • Tip: Cursor tracking is automatic per user session

Issue: "Rate limit exceeded"

  • Solution: Add delays between requests
  • Tip: Use higher limit values to reduce request frequency

🔗 Integration Examples

Webhook Integration

// Set up webhook to receive new job notifications
const webhook = await apifyClient.webhooks().create({
eventTypes: ['ACTOR.RUN.SUCCEEDED'],
requestUrl: 'https://your-app.com/webhook/new-jobs'
});

Slack Bot Integration

// Post new jobs to Slack channel
const jobs = await actor.call({
notifications_only: 'true',
skills: 'React',
price_min: '>=50'
});
jobs.items.forEach(job => {
slack.postMessage({
channel: '#job-alerts',
text: `🚀 New ${job.skills} job: ${job.title} - $${job.price_min}+/hr`
});
});

📊 Need historical data?

For research or model training, the live scraper isn't the right tool. We also publish a historical Upwork jobs dataset with 1.9M+ records from 2024–2025 in CSV, JSON, Parquet, SQLite, and DuckDB formats — with the same AI-enriched fields. See the Upwork Jobs Dataset on Gumroad for details.

🆘 Support

Found an issue or have a feature request? Open an issue on the Issues tab. We respond within ~48 hours.

Contact: apify@hyperbach.com