Upwork Freelancers & Jobs Scraper
Search Upwork talent and jobs. Extract freelancer profiles (hourly rate, total earned, job success, skills, location) and job posts (budget, type, skills). Export to JSON, CSV or Excel.
{ "title": "Python Full-Stack Developer", "url": "https://www.upwork.com/jobs/~02207444872177208…", "type": "Hourly", "description": "Job Title: Python Full Stack Developer About t…", "currency": "USD", "duration": "3 to 6 months", "engagement": "Part Time", "experienceLevel": "Expert", "premium": false }
每次运行都返回干净、带类型的记录,可直接用于你的 CRM、表格或数据库。
- 每个结果对应一条干净记录,已去重并规范化
- JSON、CSV 或 Excel 的稳定结构,也可通过 Apify API 读取
- 在云端按用量付费,无需安装或维护
一条真实的示例记录,正是你收到的结构。
| Title | Url | Type | Description |
|---|---|---|---|
| Python Full-Stack Developer | https://www.upwork.com/jobs/~0220… | Hourly | Job Title: Python Full Stack Deve… |
| Python Developer | https://www.upwork.com/jobs/~0220… | Fixed | Position- Python Developer Exp- 4… |
| Expert Python Developer | https://www.upwork.com/jobs/~0220… | Fixed | Looking for an experienced Python… |
| Hiring Python Developer | https://www.upwork.com/jobs/~0220… | Hourly | Strong proficiency in Python and … |
{ "title": "Python Full-Stack Developer", "url": "https://www.upwork.com/jobs/~02207444872177208…", "type": "Hourly", "description": "Job Title: Python Full Stack Developer About t…", "currency": "USD", "duration": "3 to 6 months", "engagement": "Part Time", "experienceLevel": "Expert", "premium": false }
常见问题
Which Upwork data can this scraper collect?
It reads two public surfaces: the talent search (freelancer profiles) and the job search (job posts). Set the search type, enter a keyword, and it returns clean records with rates, earnings, job success, skills, budgets and more.
How many results can I get per keyword?
Popular keywords return tens of thousands of freelancers and thousands of jobs. The talent search exposes up to about 191,000 profiles per keyword. Use the Max Items input to cap how many records you collect.
Do I need an Upwork login or cookies?
No. The scraper only reads publicly available search pages and needs no account, cookie or token from you.
Why are some job budgets or hourly ranges empty?
Some hourly jobs are posted with an open budget and some client details are hidden on public posts, so those values come through empty. Every field that is always empty on public data is left out of the output entirely.
Can I search freelancers and jobs in the same run?
Each run collects one type. Run the actor once with the search type set to freelancers and again with it set to jobs, or schedule two separate tasks.