Work.ua Scraper — Ukraine Vacancies, Salary & Firms avatar

Work.ua Scraper — Ukraine Vacancies, Salary & Firms

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Work.ua Scraper — Ukraine Vacancies, Salary & Firms

Work.ua Scraper — Ukraine Vacancies, Salary & Firms

Scrape vacancies from Work.ua, Ukraine's largest job board: title, employer with verified badge and type, location, advertised salary with a sortable numeric floor, hot and deferment flags and the ad link. Keyless. JSON, CSV or Excel.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

13

Total users

1

Monthly active users

3 days ago

Last modified

Share

Export vacancies from Work.ua, Ukraine's largest job board — employer, location, advertised salary and ad link — to JSON, CSV or Excel. Keyless, no login.

What does Work.ua Scraper do?

Work.ua serves plain server-rendered HTML with no JSON API behind it, so this Actor parses the listing cards directly and walks the pagination until your target is met. No API key, no account, no cookies.

The card layout is the reason most Work.ua scrapers ship dirty data: the employer name and the salary use the same CSS class, and the location line ends with either a city or a "8.8 km from center" distance chip. Pick "the first matching element" and every ad that advertises pay lands its salary in the company column. This Actor anchors on the icon inside each block — hryvnia for salary, company for employer — so the two never swap, and it splits the distance chip into its own field instead of passing it off as a city.

Salaries are written with thin-space separators (60 000 – 80 000 UAH). The Actor keeps the original label and derives a sortable numeric floor, so you can filter by pay without parsing strings yourself.

Who is it for?

  • Recruitment agencies tracking who is hiring in Ukraine and at what rate.
  • Salary researchers building pay benchmarks by role and city.
  • B2B sales teams using hiring activity as a growth signal.
  • Job boards and aggregators that need a Ukrainian feed.
  • Relocation and remote-work platforms sourcing roles open to remote candidates.

Use cases

  • Build a salary benchmark for drivers or developers across Kyiv, Lviv and Poltava.
  • List every verified employer currently hiring in a category, with ad links.
  • Track how many vacancies offer deferment, week over week.
  • Filter to ads that publish pay and rank them by advertised floor.
  • Feed a niche board with fresh Ukrainian listings.

Why use this Actor?

  • Keyless — nothing to sign up for.
  • 20 structured fields, with salary, employer and location cleanly separated.
  • Sortable salary — original label plus a numeric floor.
  • Verified-employer flag straight from Work.ua's own badge.
  • Hot and deferment flags, useful signals in the current Ukrainian market.
  • English or Ukrainian interface language.

What data can you extract?

FieldTypeDescription
jobIdstringWork.ua vacancy ID
titlestringJob title
jobUrlstringPublic ad page
employerNamestringEmployer name
employerTypestringEmployer type, e.g. Agency
employerVerifiedbooleanWork.ua verified identity
employerLogoUrlstringEmployer logo
locationstringCity or "Remote"
isRemotebooleanThe ad is for remote work
requirementsstringExperience and schedule line, e.g. "Experience more than 2 years · Standard schedule: 5/2"
salaryLabelstringSalary exactly as advertised
salaryNotestringWork.ua's own note, e.g. "Above average"
salaryFromnumberNumeric floor for sorting and filtering
salaryTonumberUpper end when the ad gives a range
distanceFromCentrestringDistance chip, when the ad shows one
currencystringUAH when a salary is present
isHotbooleanMarked as a hot vacancy
hasDefermentbooleanEmployer offers deferment
badgesstringAll badges on the card
postedLabelstringPosting date as shown
postedDatestringPosting date as ISO YYYY-MM-DD
descriptionSnippetstringOpening lines of the ad text
employerHiddenbooleanThe employer chose to hide its name
countrystringUkraine
sourcestringAlways work_ua
scrapedAtstringRun timestamp (ISO 8601)

Example output

{
"jobId": "8240196",
"title": "Водій категорії СЕ",
"jobUrl": "https://www.work.ua/en/jobs/8240196/",
"employerName": "Арія Транс",
"employerVerified": true,
"location": "Kyiv",
"salaryLabel": "40 000 – 60 000 UAH",
"salaryNote": "Above average",
"salaryFrom": 40000,
"distanceFromCentre": "8.8 km from center",
"currency": "UAH",
"hasDeferment": true,
"country": "Ukraine",
"source": "work_ua"
}

How to use it

  1. Enter a keyword, or leave it empty to walk the full listing.
  2. Optionally narrow by category slug, city ID or minimum salary.
  3. Switch on Only ads with a salary when you are building a pay benchmark.
  4. Set Maximum results and run, then export JSON, CSV or Excel.

Input example

{
"query": "driver",
"withSalaryOnly": true,
"maxResults": 1000
}

Notes and limits

  • Roughly 7 in 10 vacancies publish a salary. The rest leave salaryLabel, salaryFrom and currency as null — that is the ad, not a parsing gap. Use Only ads with a salary to drop them.
  • distanceFromCentre appears only on ads that show a distance chip; it is deliberately kept out of the location column.
  • Work.ua renders 14 cards per page; the Actor stops when a page returns fewer, meaning the listing is exhausted.
  • Listing text is in Ukrainian even with the English interface, because employers write the ads.
  • You are responsible for how you use employer data, including under GDPR.

FAQ

Do I need a Work.ua account? No. The listings are public and this Actor needs nothing from you.

Is the salary usable for sorting? Yes. salaryFrom is a real number derived from the advertised range's lower bound.

Why is location sometimes "Remote"? Because the employer listed the role as remote; Work.ua shows that in place of a city.

Does it fetch the full job description? No. This Actor exports the listing cards, which is what makes bulk runs fast and cheap. Open jobUrl for the full text.

How am I charged? Pay per result — you pay for the vacancies delivered.


*Maintained: last verified 2026-09-01 — checked end-to-end against live run history (reliability, output fields and types, and time/memory budgets).


Other Actors from the same collection:

Scheduling and integrations

Run this Actor on a schedule — hourly, daily or weekly — and have every run append to the same dataset, which is how you turn a one-off export into a time series. Results can be pushed straight into Google Sheets, Slack, Zapier, Make, Airtable or any Webhook.

How much Work.ua data can you extract in one run?

A single run returned 572 job ads in 524 seconds on the example input. That is roughly 65 job ads a minute. Widen the search — more queries, more pages, a broader location — and the same run goes deeper.

There is no hard ceiling built into this Actor. What bounds a run is the result limit you set, the breadth of the input you give it, and how much Work.ua itself publishes. Because billing is per result, a wider run costs proportionally more and a narrow one costs almost nothing — so it is worth starting small and scaling once the output looks right.

Work.ua scraping — frequently asked questions

Do I need a Work.ua API key, account or login?

No. This Actor reads publicly available pages and feeds, so there is nothing to register for and no credentials to manage.

How do I export Work.ua data to CSV, Excel, JSON or Google Sheets?

Open the Storage tab after a run and pick the format you want — CSV, Excel, JSON, XML or an HTML table. For Google Sheets, Airtable or a database, use the dataset URL or the Apify API so the sheet refreshes itself on every run.

Can I schedule this Work.ua scraper to run daily or hourly?

Yes. Use the Schedules tab and pick a cadence. Daily is enough for most tracking work; pick hourly only if the job ads you care about really do change that fast.

How many job ads can I get, and what does it cost?

See the volume section above for a measured figure. Billing is per result, so you pay for the rows you actually receive and a run that finds nothing costs nothing.

This Actor collects only information that Work.ua publishes publicly. It does not log in, does not defeat access controls and does not touch private data. You remain responsible for how you use the output, including under GDPR and similar rules where personal data is involved.

What happens if Work.ua blocks the run or changes its layout?

A refused exit IP is swapped for a fresh one within a quarter of a second and retried, and rate limiting is waited out rather than fought. If nothing gets through, the run fails with the reason instead of reporting success with zero rows — so an empty result always means "no matches", never "the source would not answer".

Can I use this with an AI agent, LangChain or an MCP client?

Yes. The Actor is callable over the Apify API and through Apify's MCP server, so an agent can run it and read the dataset back as a tool call.

This Actor collects publicly available information from Work.ua only. It does not log in, does not circumvent access controls, and collects no private data. You are responsible for using the output lawfully, including under GDPR and comparable regimes where the rows contain personal data, and for respecting Work.ua's terms where they apply to you.