Skip to content

Work.ua Jobs Scraper

Try for free

Scrape work.ua job listings in Ukraine by keyword, city or region, category and salary, or from work.ua search, company and job links. Get the full description, salary, recruiter name and phone, skills, languages, employer website, industry and size.

🇺🇦 Work.ua Jobs Scraper

Scrape job listings from work.ua, Ukraine's largest job site: title, salary, employer, address and coordinates, the full description, recruiter name and phone, skills, languages, and the employer's website, industry and size. Search by keyword, city, category and salary, or paste work.ua links. No login, no browser, and 1,000 detailed jobs take about 20 seconds.

✨ Why use Work.ua Jobs Scraper?

  • ⚡ Fast: reads work.ua's own job data directly, so 1,000 jobs with full details arrive in about 20 seconds.
  • 📞 Recruiter contacts included: the contact person and phone number the employer published, plus emails and links found in the description.
  • 💰 Clean salaries: salaryMin, salaryMax, currency and period as numbers, plus the "above market average" flag and the employer's salary note.
  • 🧭 Every site filter: city or region (or remote), category, employer industry, employment type, salary range, education, languages, posting date, and the flags for students, veterans, people with disabilities, retirees and military deferment.
  • 🔗 Paste links: work.ua search pages keep their filters, company pages list all of the employer's jobs, and single job links are scraped directly.
  • 🔁 Monitoring mode: scheduled runs can save only the jobs that are new or changed since the last run, and unchanged jobs cost nothing.

🎯 Use cases

  • 🧲 Recruiting and lead generation: build lists of Ukrainian employers that are hiring now, with the recruiter's name and phone, website, industry and company size.
  • 📊 Salary research: compare pay by city, category, experience and education across thousands of listings.
  • 📈 Labour-market analysis: track demand for skills, remote and hybrid work, or jobs open to veterans and students.
  • 🔔 Job alerts: schedule a daily run with monitoring mode and send only new jobs to your sheet, CRM or chat.
  • 🏢 Competitor hiring: follow every open position of specific companies with their work.ua company links.

🚀 How to use

  1. Enter one or more search terms (e.g. developer, бухгалтер, менеджер з продажу) and, optionally, locations (Kyiv, Lviv, Odesa Region, Remote). You can also paste work.ua URLs.
  2. Set Max jobs per search (e.g. 20, or 0 for every match).
  3. Optionally narrow the search in Filters (posting date, category, salary, employment type, ...).
  4. Click Start. Jobs appear in the dataset as they are scraped.
  5. Download the results as JSON, CSV, Excel or HTML, or read them with the API.

📥 Input

FieldWhat it does
searchTermsJob titles or keywords, one per line (Ukrainian, English or Russian)
locationsCities or regions in Ukraine, or Remote; empty = the whole country
startUrlswork.ua search, company or job links
maxResultsJobs per search term x location, search URL or company URL (0 = all)
includeDetailsFull job record (description, recruiter, skills, employer info); off = search cards only, faster
postedWithin1, 7, 14 or 30 days
categories, industries, employmentTypes, languages, educationThe site's own filters
minSalary, maxSalary, salaryOnlyMonthly salary in UAH
noExperience, studentFriendly, veteranFriendly, disabilityFriendly, retireeFriendly, defermentAvailable, hybridOnly, noResumeNeededJob flags
includeKeywords, excludeKeywordsKeep or skip jobs by words in the title, company or description
sortBydate (newest first) or salary
onlyNewJobs, stateKeyMonitoring mode for scheduled runs
{
  "searchTerms": ["developer", "QA"],
  "locations": ["Kyiv", "Remote"],
  "maxResults": 50,
  "postedWithin": "7",
  "minSalary": 40000,
  "includeDetails": true
}

📤 Output

One row per job. The main fields:

FieldExample
titleПрограміст 1C
company, companyId, companyUrl, companyWebsiteVatag Group, 3008971, ...
companyIndustry, companySize, companyIsConfirmedFood industry, 250-1,000 employees, false
location, city, street, latitude, longitudeКиїв, вулиця Красилівська, 9
regionName, regionNameEn, isRemoteКиїв, Kyiv, false
salaryText, salaryMin, salaryMax, salaryCurrency30000–40000 грн, 30000, 40000, UAH
categories, employmentTypes, experience, educationIT, computers, internet; Full-time; 2+ years
descriptionText, descriptionHtml, descriptionMarkdownThe full description in three formats
contactPerson, contactPhoneThe recruiter the employer named
skills, languagesKey skills, required languages with level
isHot, isHybrid, isStudentFriendly, isVeteranFriendly, isDefermentEligible, ...Job flags
postedAt, url, jobIdPublication time, job page, work.ua id

Example (from a test run, trimmed; the contact is replaced with a fictional one):

{
  "jobId": "8288025",
  "title": "Програміст 1C",
  "company": "Vatag Group",
  "companyId": "3008971",
  "companyUrl": "https://www.work.ua/jobs/by-company/3008971/",
  "companyLogo": "https://assets.work.ua/employer_design/3008971/company_logo_v1.png",
  "companyWebsite": "https://www.vatag.com.ua",
  "companyIndustry": "Food industry",
  "companySize": "250-1,000 employees",
  "location": "Київ, вулиця Красилівська, 9",
  "city": "Київ",
  "latitude": 50.3945191,
  "longitude": 30.5070768,
  "regionId": 39,
  "regionNameEn": "Kyiv",
  "isRemote": false,
  "categories": ["IT, computers, internet"],
  "employmentTypes": ["Full-time"],
  "experience": "2+ years",
  "descriptionText": "Вимоги:\n\n- Досвід роботи від 2 років;\n- Вища освіта;\n...",
  "salaryText": null,
  "salaryMin": null,
  "isHot": true,
  "skills": ["Користувач 1С", "Ведення бухгалтерського обліку", "Програмування", "Програмування 1С"],
  "languages": [],
  "contactPerson": "Олена Коваль",
  "contactPhone": "0670000000",
  "postedAt": "2026-10-14T13:01:15+03:00",
  "url": "https://www.work.ua/jobs/8288025/",
  "searchQuery": "developer",
  "detailFetched": true
}

The dataset has three views: Jobs, Contacts & employers and Salaries.

💰 Pricing

You pay $1.50 per 1,000 jobs saved ($0.0015 per job), plus a small platform usage fee for compute and proxy traffic.

  • 1,000 jobs with full details ≈ $1.50 + about $0.01 of usage. Measured: 10,000 detailed jobs took 200 seconds and 0.045 GB of datacenter traffic.
  • Jobs skipped by your salary or keyword filters, unchanged jobs in monitoring mode, and invalid links are not charged.
  • Set a maximum cost per run and the scraper stops cleanly when it is reached.

❓ FAQ

Is it legal to scrape work.ua? The scraper only reads public job listings that anyone can see without an account. You are responsible for how you use the data, especially personal data such as recruiter names and phone numbers; follow the GDPR and Ukrainian data protection law where they apply.

Do I need a work.ua account or a proxy? No login is needed. The scraper uses the platform's datacenter proxy by default and switches to Ukrainian residential exits on its own if work.ua starts refusing requests.

How many jobs can I get? Every job a search shows on work.ua. Set maxResults to 0 for all of them; one broad search can return tens of thousands of jobs.

Why are some fields empty? Employers fill in different things. Salary, address, skills and languages are only present when the employer gave them, anonymous employers have no company name, and recruiter contacts, skills and employer details need Full job details on.

Which languages can I search in? Ukrainian, English and Russian keywords all work, and so do city names in all three languages (Kyiv, Київ, Киев).

Can I schedule it or use the API? Yes. Schedule runs in the console, call the actor with the API, or connect it to webhooks and integrations. Turn on Only new or changed jobs for daily alerts.

⚠️ Limits

  • Only public listings: resumes and anything behind a work.ua login are not scraped.
  • work.ua keeps about 30 days of jobs; older jobs are not available.
  • Salary filters use the site's salary steps; other amounts are checked on the stated salary, and jobs without a salary do not pass a salary filter.
  • Company pages are read through the employer's job list (/jobs/by-company/<id>/); the company profile text is not included.
  • Results follow work.ua's own ranking for the chosen sort order.
  • Memory grows with very large runs: the default 512 MB covers runs of about 30,000 jobs. For bigger crawls, give the run more memory (about 1 GB per 100,000 jobs); if memory runs low, the run stops cleanly and keeps every job saved so far.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.