Robota.ua Scraper avatar

Robota.ua Scraper

Pricing

from $1.80 / 1,000 results

Go to Apify Store
Robota.ua Scraper

Robota.ua Scraper

[💰 $1.8 / 1K] Extract job listings from robota.ua, Ukraine's largest job board. Search by keyword and location, filter by experience, work schedule, salary, and remote work, and get structured jobs with titles, companies, salaries, descriptions, contacts, and apply links.

Pricing

from $1.80 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

0

Monthly active users

11 days ago

Last modified

Share

Pull job listings from robota.ua — Ukraine's largest job board — at scale: titles, employers, salary ranges in UAH, work schedules, full descriptions, required skills, recruiter contacts, and map coordinates for every vacancy. Search by keyword and city, narrow with filters, or paste robota.ua URLs directly and let the data come to you as clean, structured rows. Built for Ukrainian recruiters, HR-tech platforms, and labor-market analysts who need fresh robota.ua vacancy data without copy-pasting listings one page at a time.

Why This Scraper?

  • 40 structured fields per vacancy — every job is flattened into one tidy row: title, company, salary, schedule, robota.ua's own job level (Worker through Top manager), city in both Ukrainian and English, geo, description, skills, contacts, apply link, and posting time.
  • 7 work schedules you can actually filter on — full-time (90,000+ live listings), on-site (86,000+), shift work, part-time, hybrid, remote and project-based, each selectable by name with no numeric IDs to look up. Internship and seasonal/temporary are still offered because robota.ua still lists them, but no employer currently posts under either, so choosing one tells you that in the run instead of finishing empty with no explanation.
  • Salary ranges in UAH with min/max — parsed salaryMin and salaryMax in Ukrainian hryvnia, plus a salaryHidden flag so you can separate disclosed pay from "salary on request".
  • Map coordinates on every located job — latitude and longitude, plus city, district, and nearest metro station, ready to plot or geo-filter.
  • Full descriptions in text and HTML — both a clean plain-text version and the original formatted HTML, alongside listed skills and listing badges.
  • Every city name in English as well as UkrainiancityEn gives you "Kyiv", "Lviv", "Dnipro" resolved from robota.ua's own 3,751-city directory, so a spreadsheet filter or a join against your CRM works without transliterating Cyrillic by hand.
  • Sortable UTC posting times on every row — robota.ua shows ages as "2 дні тому"; every row here carries a real postedDate timestamp in UTC (plus the original wording in postedDateRaw), so freshness sorting and date filters just work.
  • Recruiter contacts extracted for you — contact person (about 85% of listings) and phone (about 60-65%), plus any emails, phones, and social profiles (LinkedIn, Telegram, Viber, Facebook) published in the listing.
  • Search the way you already work — keywords in any language ("developer", "менеджер", "бухгалтер") with a city filter like Kyiv, Lviv, or Odesa, or paste a tuned robota.ua search or vacancy link and the filters baked into it are honored exactly.
  • Deduplicated by vacancy ID — each job comes back once even when it appears across several pages or overlapping keyword searches, so you never pay twice for the same listing.

Use Cases

Recruitment & Sourcing

  • Build candidate-facing job feeds for a niche, city, or industry
  • Pull recruiter contact details to reach hiring managers directly
  • Track which employers are actively hiring for a given role
  • Mirror a dialed-in robota.ua search and refresh it on a schedule

Labor-Market Research

  • Map vacancy volume by city, district, and work schedule
  • Measure remote vs. on-site vs. hybrid demand across Ukraine
  • Track entry-level hiring with the no-experience filter
  • Spot which skills employers ask for most in a profession

Salary Benchmarking

  • Compile UAH salary ranges by role and region
  • Compare disclosed vs. undisclosed pay across employers
  • Benchmark min/max offers for a job title over time
  • Feed compensation models with structured salary data

Job-Board Aggregation

  • Power a vertical job aggregator or meta-search with fresh listings
  • Sync new vacancies into your own database or ATS
  • Keep a curated board updated with deduplicated postings

Lead Generation for HR-Tech

  • Identify companies posting many roles as outreach targets
  • Capture verified-employer signals for account scoring
  • Build prospect lists of actively hiring organizations

Getting Started

Search by Keyword

The simplest run — one keyword across all of Ukraine:

{
"keywords": ["developer"],
"maxResults": 100
}

Keyword + City with Filters

Remote developer roles in Kyiv paying at least 50,000 UAH:

{
"keywords": ["developer", "data analyst"],
"location": "Kyiv",
"employmentType": ["remote"],
"minSalary": 50000,
"maxResults": 200
}

Paste robota.ua URLs

Already have a search tuned on the website? Paste the link — search, city and vacancy URLs all work:

{
"startUrls": [
"https://robota.ua/zapros/developer/ukraine",
"https://robota.ua/kyiv",
"https://robota.ua/company123456/vacancy7654321"
],
"includeDescription": true,
"maxResults": 300
}

Input Reference

ParameterTypeDefaultDescription
keywordsarray["developer"]Job titles, roles, or keywords to search for (e.g. "developer", "менеджер", "accountant"). Each keyword runs its own search. Up to 50 per run.
locationstring""City or region to search in (e.g. "Kyiv", "Lviv", "Odesa"). Leave empty to search all of Ukraine.
startUrlsarray[]Paste full robota.ua search-result, city (https://robota.ua/kyiv) or individual vacancy URLs to collect them directly. Any filters baked into the URL are respected, and a vacancy you name by URL is always collected first. Up to 50 per run.

Filters & Limits

ParameterTypeDefaultDescription
noExperienceOnlybooleanfalseWhen on, only show jobs open to candidates with no prior experience (entry-level roles).
employmentTypearray[]Only return jobs with these work schedules: Full-time, Part-time, Remote, Project-based, Shift work, Hybrid, On-site. Leave empty for all. Internship and Seasonal / Temporary are also offered, but no employer currently posts under either — pick one and the run says so rather than finishing empty.
remoteOnlybooleanfalseOnly show jobs that can be done remotely.
minSalaryintegernullOnly show jobs offering at least this monthly salary in UAH. Jobs without a disclosed salary are excluded when this is set.
maxResultsinteger100Maximum listings to collect per keyword (or per start URL). Set to 0 to collect all available results.
onlyUniqueJobsbooleantrueReturn each job once even if it appears across several pages or searches. Deduplicates by vacancy ID.

Output

ParameterTypeDefaultDescription
includeDescriptionbooleantrueInclude the full job description (text and HTML), plus contact info, skills, industry, geo, and company verification from each vacancy page. Turn off for lighter, faster records — note the description-only fields (including industry, companyUrl, companyVerified, contacts and geo) are empty when off.

Output

Each job is one flat row. Example (trimmed for readability):

{
"jobId": "7654321",
"title": "Python Developer",
"company": "Tech Solutions LLC",
"companyId": "123456",
"companyUrl": "https://robota.ua/company123456",
"companyVerified": true,
"industry": "IT, computers, internet",
"location": "Київ",
"city": "Київ",
"cityEn": "Kyiv",
"district": "Печерський",
"metro": "Печерська",
"address": "вул. Хрещатик, 1",
"latitude": 50.4501,
"longitude": 30.5234,
"salary": "60000-90000 UAH",
"salaryMin": 60000,
"salaryMax": 90000,
"salaryCurrency": "UAH",
"salaryHidden": false,
"employmentType": "Full-time, Remote",
"experienceLevel": "Senior specialist",
"isRemote": true,
"isHot": true,
"description": "We are looking for an experienced Python developer...",
"descriptionHtml": "<p>We are looking for an experienced Python developer...</p>",
"skills": ["Python", "Django", "PostgreSQL"],
"badges": ["Verified employer"],
"contactPerson": "Olena Koval",
"contactPhone": "+380671234567",
"contactEmail": "",
"extractedEmails": [],
"extractedPhones": ["+380671234567", "+380951234567"],
"socialProfiles": { "telegram": "https://t.me/techsolutions_hr" },
"applyUrl": "https://robota.ua/company123456/vacancy7654321",
"jobUrl": "https://robota.ua/company123456/vacancy7654321",
"postedDate": "2026-06-10T09:30:00Z",
"postedDateRaw": "3 дні тому",
"searchQuery": "developer",
"scrapedAt": "2026-06-13T12:00:00Z"
}

Core Fields

FieldTypeDescription
jobIdstringrobota.ua vacancy ID (the deduplication key).
titlestringVacancy title.
employmentTypestringWork schedule(s) in English, e.g. "Full-time, Remote". Identical whether or not full descriptions are fetched.
experienceLevelstringrobota.ua's job level for the role: Worker, Entry-level specialist, Specialist, Senior specialist, Head of department or Top manager. Filled on effectively every vacancy — only the ~1.6% of listings where the employer left the level unset come back empty. Identical whether or not full descriptions are fetched.
isRemotebooleanTrue when the job can be done remotely.
isHotbooleanTrue for "hot" / featured listings.
postedDatestringWhen the job was published, as a UTC ISO-8601 timestamp. With full descriptions on, this is robota.ua's exact publication time. With them off, robota.ua reveals only the listing's age ("3 days ago"), so the value is the most recent moment that age allows: exact to the minute for jobs posted in the last hour, to the hour for jobs posted today, and within a day for anything older.
postedDateRawstringThe posting age exactly as robota.ua worded it, e.g. "3 дні тому" or the site's own timestamp.
searchQuerystringThe keyword or URL that produced this row.
scrapedAtstringISO timestamp of when the row was collected.

Company

FieldTypeDescription
companystringEmployer / company name.
companyIdstringCompany ID on robota.ua.
companyUrlstringCompany profile URL.
companyVerifiedbooleanWhether the employer is verified.
industrystringEmployer's industry / job category (e.g. "IT, computers, internet"). Populated when full descriptions are fetched.

Salary

FieldTypeDescription
salarystringHuman-readable salary label (e.g. "60000-90000 UAH").
salaryMinnumberParsed minimum salary.
salaryMaxnumberParsed maximum salary.
salaryCurrencystringCurrency (UAH when an amount is disclosed).
salaryHiddenbooleanTrue when the salary is not disclosed.

Location & Geo

FieldTypeDescription
locationstringFree-text location label for the job, as robota.ua shows it (Ukrainian).
citystringCity name in Ukrainian, e.g. "Київ".
cityEnstringThe same city in English, e.g. "Kyiv" — resolved from robota.ua's city directory. Filter and group on this one.
districtstringDistrict (raion) when present.
metrostringNearest metro station when present.
addressstringStreet address when present.
latitudenumberLatitude when present.
longitudenumberLongitude when present.

Description & Skills

FieldTypeDescription
descriptionstringFull job description in plain text.
descriptionHtmlstringFull job description in original HTML.
skillsarrayListed skills and tags.
badgesarrayListing badges (e.g. verified employer).
FieldTypeDescription
contactPersonstringRecruiter / contact name. Published on roughly 85% of listings.
contactPhonestringPrimary contact phone, in international +380... form. Published on roughly 60% of listings.
contactEmailstringContact email. Ukrainian employers rarely publish one on robota.ua — expect it on only 1-2% of listings, so plan outreach around the contact name and phone instead.
extractedEmailsarrayAny email addresses found in the listing text (same 1-2% coverage as contactEmail).
extractedPhonesarrayEvery phone number on the listing, in the same +380... form: the published contact number first, then any extra numbers the employer listed or wrote into the ad text. Always includes contactPhone when there is one.
socialProfilesobjectDetected social links (LinkedIn, Telegram, Viber, Facebook, etc.).
applyUrlstringApply / "respond" URL.
jobUrlstringCanonical vacancy URL.

Tips for Best Results

  • Type city names however you know them. "Kyiv" and "Київ" both resolve, as do "Lviv"/"Львів", "Odesa"/"Одеса" and older spellings like "Kiev" or "Kharkov". If nothing matches, the run stops and suggests the closest real cities instead of quietly returning jobs from all over Ukraine.
  • Sort by postedDate to get the freshest listings first. It is a UTC timestamp on every row, and postedDateRaw keeps robota.ua's own wording next to it. Turn on full descriptions when you need the exact publication minute rather than the age the listing page shows.
  • Mirror a tuned website search with startUrls. Set your filters on robota.ua, copy the address-bar URL, and paste it in — schedule and experience filters baked into the link are honored exactly. A plain city page such as https://robota.ua/lviv works the same way and covers every job in that city.
  • Setting minSalary hides "salary on request" jobs. A salary floor excludes every listing that doesn't disclose pay, so leave it empty if you want undisclosed-salary postings too.
  • Turn off includeDescription for fast, lightweight runs. When you only need titles, companies, locations, salaries, and apply links, skipping the full description makes each run faster and leaner.
  • Use multiple keywords to cover synonyms. "developer", "розробник", and "програміст" surface different listings; add them all and onlyUniqueJobs keeps the merged result clean.
  • Set maxResults to 0 to sweep an entire search. Useful for full market snapshots; the run stops once a search is exhausted.
  • Filter for entry-level talent with noExperienceOnly, then split the results by experienceLevel. robota.ua's search offers one no-experience switch rather than graduated bands, but every row carries the site's own job level — Worker through Top manager — so you can separate junior from senior after the run without reading a single description.

Pricing

From $1.80 per 1,000 results — flat, pay-only-for-what-you-collect pricing that undercuts comparable robota.ua data tools. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

ResultsNo discountBronzeSilverGold
100$0.22$0.20$0.19$0.18
1,000$2.15$2.00$1.90$1.80
10,000$21.50$20.00$19.00$18.00
100,000$215.00$200.00$190.00$180.00

A "result" is one job row pushed to your dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n — Workflow automation
  • Google Sheets — Direct spreadsheet export
  • Slack / Email — Notifications on new results
  • Webhooks — Trigger custom workflows on run completion
  • Apify API — Full programmatic access

This scraper collects publicly available job-listing data for legitimate business purposes such as recruitment, market research, and analytics. You are responsible for using the collected data in compliance with robota.ua's terms of service, applicable data-protection laws (including the GDPR where it applies), and any restrictions on processing personal data such as recruiter contact details. Use the data responsibly, respect individuals' privacy, and do not use it for spam or unsolicited outreach that violates local regulations.