Work.ua Scraper
Pricing
from $2.00 / 1,000 results
Work.ua Scraper
Scrape job listings from Work.ua — Ukraine's #1 job board with 50,000+ active vacancies. Search by keyword, city, and date range. Returns titles, salaries, companies, skills, and full descriptions. No API key required.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
2
Bookmarked
16
Total users
5
Monthly active users
0.32 hours
Issues response
2 days ago
Last modified
Categories
Share
Extract job listings from Work.ua — Ukraine's #1 job board with over 50,000 active vacancies. Search by keyword, city, and date range. Returns structured job data including title, company, salary, location, skills, and full description. No API key required.

Why use this scraper?
- Full-text search across 800,000+ job listings by keyword and city
- Structured salary data — parsed min/max values in UAH, with salary type (fixed, bonus, etc.)
- Skills extraction — tagged skills listed per vacancy
- Repost detection — cross-run deduplication via a 90-day ID cache prevents counting the same vacancy twice
- Date filtering — limit results to the last 1, 7, 14, or 30 days
- Verified company badge — flag vacancies from Work.ua-verified employers
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
keywords | String | — | Search keyword(s), e.g. python, менеджер, developer |
location | String | — | City in English or Ukrainian, e.g. Kyiv, Одеса, Lviv |
daysOld | Integer | — | Filter by posting date: 1, 7, 14, or 30 |
sortBy | String | date | Sort by date or salary |
maxItems | Integer | 100 | Maximum number of results |
fetchDescription | Boolean | true | Visit detail page for full description, skills, and employment type |
startUrls | Array | — | Direct Work.ua search or job URLs (overrides keywords/location) |
Example input
{"keywords": "python developer","location": "Kyiv","daysOld": 7,"maxItems": 200,"fetchDescription": true}
Output schema
Each result contains the following fields:
| Field | Type | Description |
|---|---|---|
jobId | String | Unique Work.ua job ID |
title | String | Job title |
url | String | Direct link to the job listing |
publishDate | String | Publication date (YYYY-MM-DD) |
company | String | Employer name |
companyId | String | Work.ua employer ID |
companyUrl | String | Link to employer's job listings |
companyVerified | Boolean | Whether company is verified by Work.ua |
companyLogoUrl | String | URL to employer logo image |
companyIndustry | String | Industry/sector of the employer |
companySize | String | Number of employees (e.g. 50–250 співробітників) |
location | String | Work location / city and address |
salaryRaw | String | Salary as displayed (e.g. 45 000 – 60 000 грн) |
salaryMin | Integer | Minimum salary in local currency |
salaryMax | Integer | Maximum salary in local currency |
currency | String | Currency code (UAH, USD, EUR) |
salaryType | String | Salary structure (e.g. Ставка + бонус) |
employmentType | String | Employment type (e.g. Повна зайнятість) |
isHot | Boolean | Whether the vacancy is marked as urgent/hot |
labels | Array | All labels on the listing (hot, etc.) |
skills | Array | Tagged skills required for the role |
descriptionHtml | String | Full job description as HTML |
descriptionText | String | Full job description as plain text |
descriptionSnippet | String | Short preview from the search results page |
scrapedAt | String | ISO timestamp of when the data was collected |
Example output
{"jobId": "7906185","title": "Python Developer","url": "https://www.work.ua/jobs/7906185/","publishDate": "2026-04-07","company": "TechCorp Ukraine","companyId": "23527","companyUrl": "https://www.work.ua/jobs/by-company/23527/","companyVerified": true,"companyIndustry": "IT, комп'ютери, інтернет","companySize": "50–250 співробітників","location": "Київ","salaryRaw": "80 000 – 120 000 грн","salaryMin": 80000,"salaryMax": 120000,"currency": "UAH","salaryType": "Ставка","employmentType": "Повна зайнятість","isHot": false,"skills": ["Python", "Django", "PostgreSQL", "Docker"],"descriptionText": "We are looking for a Python Developer...","scrapedAt": "2026-04-08T14:00:00.000Z"}
Pricing
$2.00 per 1,000 results — billed only for results you receive.
| Scenario | Results | Estimated cost |
|---|---|---|
| Quick market snapshot | 500 | ~$1.00 |
| Full keyword category | 2,000 | ~$4.00 |
| Daily monitoring (7 days) | 500/day | ~$7.00/week |
| Monthly full crawl | 50,000 | ~$100.00 |
Flat-rate alternatives charge $49–$299/month regardless of usage. This scraper charges only for what you use.
Performance
| Configuration | Speed | Notes |
|---|---|---|
fetchDescription: false | ~100 jobs/min | List data only, no detail pages |
fetchDescription: true | ~30 jobs/min | Full data including description and skills |
| Large run (5,000+ jobs) | ~25 jobs/min | Stable with deduplication active |
Known limitations
- Work.ua uses a mobile JSON API — no browser or proxy required; this keeps costs minimal
- Salary is not displayed for all vacancies; the
salaryRawfield will benullwhen not shown - Phone numbers in job descriptions are partially masked by Work.ua behind a login wall
- The Ukrainian language is used in most field values (location, employment type, etc.)
- Run time scales linearly with
maxItemswhenfetchDescription: true
Technical details
- Runs on lightweight HTTP (got-scraping) — no Playwright, no proxy
- 90-day cross-run deduplication via Apify Key-Value Store (
JobDedup) - Cloudflare storm-abort circuit breaker (5 consecutive blocks → safe exit)
- Gaussian sleep between requests to mimic human browsing patterns
- Memory: 256 MB
Additional services
Need a custom integration, scheduled feed, or data pipeline from Work.ua? Contact us at info@unfencedgroup.nl.
unfenced-group · Work.ua Scraper v1.0.0