HH.ru Russia & CIS Job Listing Scraper avatar

HH.ru Russia & CIS Job Listing Scraper

Pricing

from $0.80 / 1,000 record scrapeds

Go to Apify Store
HH.ru Russia & CIS Job Listing Scraper

HH.ru Russia & CIS Job Listing Scraper

Scrape live job vacancies from HH.ru across Russia, Ukraine, Kazakhstan, Belarus, Georgia, Azerbaijan, Kyrgyzstan, and Uzbekistan. Returns titles, salaries (gross/net), employer ratings, schedules, and full requirement/responsibility text for every listing.

Pricing

from $0.80 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

Scrape live job vacancies from HH.ru, the dominant job board across Russia and the CIS. Returns titles, salaries (gross vs. net), employer ratings, work schedules, and full requirement/responsibility text for every listing across Russia, Ukraine, Kazakhstan, Belarus, Georgia, Azerbaijan, Kyrgyzstan, and Uzbekistan.


HH.ru Scraper Features

  • Covers all 9 areas on HH.ru's own facet — Russia plus 8 CIS countries — in a single run
  • Extracts gross-vs-net salary distinction, not just a single number
  • Returns employer trust flag, review rating, and review count per listing
  • Filters by free-text keyword the same way HH.ru's own search box does
  • Splits requirement and responsibility text out of the full job description where the posting is structured that way
  • Includes work format (remote/hybrid/onsite), schedule, and employment type
  • Handles pagination automatically across every selected area — you get the full result set, not one page

Who Uses HH.ru Job Data?

  • Recruiters and staffing agencies — benchmark salary ranges across regions before making an offer
  • Compensation analysts — build pay bands from real gross/net postings instead of self-reported surveys
  • Market researchers — track hiring demand by industry, region, or employment type across the CIS
  • Job board aggregators — feed structured vacancy data into a meta-search product
  • Relocation and remote-work platforms — filter for remote/hybrid postings across a specific country
  • Labor economists — study wage dispersion and job growth patterns across Russia and neighboring states

How HH.ru Scraper Works

  1. Pick which areas to crawl (Russia, Ukraine, Kazakhstan, etc.) and an optional search keyword.
  2. The scraper walks HH.ru's own search results for each selected area, page by page.
  3. Each vacancy's detail page is visited for the fields the search results don't carry — schedule, employment type, publish date, and the requirement/responsibility split.
  4. Records land in your dataset as they're collected, so you can start using data before the run finishes.

Input

{
"areas": ["113"],
"query": "python developer",
"maxItems": 100
}
FieldTypeDefaultDescription
areasarrayallWhich HH.ru areas to crawl: Russia, Ukraine, Kazakhstan, Azerbaijan, Belarus, Georgia, Kyrgyzstan, Uzbekistan, or Other regions. Leave empty to crawl every area.
querystringnoneOptional free-text keyword, matching HH.ru's own search box (e.g. python developer). Leave blank to crawl every vacancy in the selected areas.
maxItemsinteger10Maximum number of vacancies to return.

Crawl all CIS countries with no keyword filter

{
"maxItems": 5000
}

Resuming a large crawl

Every run emits a resumeCursor in its Output. If a large crawl stops before it finishes — because it hit maxItems, your spend cap (maxTotalChargeUsd), or was aborted — start a new run with the same input plus that resumeCursor to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

  • You are not re-charged for records the earlier run already delivered.
  • Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its resumeCursor is no longer valid.
  • resumeCursor is opaque — supply it unmodified.

HH.ru Scraper Output Fields

{
"vacancy_id": "136008171",
"title": "Водитель фронтального погрузчика",
"employer_name": "РосРегион Развитие",
"employer_id": "1238295",
"employer_is_trusted": true,
"employer_review_rating": 4,
"employer_review_count": 37,
"area_name": "Russia",
"address": "Новосибирск",
"metro_station": "Речной вокзал",
"salary_min": 92000,
"salary_max": 92000,
"salary_currency": "RUB",
"salary_is_gross": false,
"experience_required": "Опыт 1-3 года",
"vacancy_url": "https://hh.ru/vacancy/136008171",
"work_schedule": "3/3",
"work_format": "onsite",
"employment_type": "Полная занятость",
"snippet_requirement": "опыт работы не менее 1 года наличие прав категория Д ОБЯЗАТЕЛЬНО ...",
"snippet_responsibility": "работа по погрузке щебня на территории карьера проведение ремонтных работ ...",
"published_at": "2026-08-19T11:39:02.107+03:00",
"has_response_letter": false,
"scraped_at": "2026-08-20T06:14:02.507Z"
}
FieldTypeDescription
vacancy_idstringHH.ru's own vacancy ID
titlestringJob title
employer_namestringHiring company name
employer_idstringHH.ru's own employer ID
employer_is_trustedbooleanWhether HH.ru has verified this employer
employer_review_ratingnumberAverage employer review rating, when the employer has reviews
employer_review_countnumberNumber of employer reviews
area_namestringCountry-level area this vacancy was crawled under
addressstringCity or district shown on the listing
metro_stationstringNearest metro station, when applicable
salary_minnumberMinimum stated salary
salary_maxnumberMaximum stated salary
salary_currencystringSalary currency (e.g. RUB)
salary_is_grossbooleantrue if the salary is stated before tax, false if net take-home
experience_requiredstringRequired experience level
vacancy_urlstringDirect link to the vacancy on HH.ru
work_schedulestringWork schedule (e.g. 5/2, 3/3)
work_formatstringremote, hybrid, onsite, or the source's own wording when it doesn't map cleanly
employment_typestringEmployment type (full-time, part-time, etc.)
snippet_requirementstringRequirements text extracted from the job description, when the posting uses a standard section header
snippet_responsibilitystringResponsibilities text extracted from the job description, when the posting uses a standard section header
published_atdatetimeWhen the vacancy was published
has_response_letterbooleanWhether HH.ru requires a cover letter to apply
scraped_atdatetimeWhen this record was scraped

FAQ

How do I scrape HH.ru job listings?

Run this actor with no input beyond the defaults and it crawls every open vacancy across Russia and the CIS. Set areas to narrow it to specific countries, or add a query keyword to filter by role.

How much does HH.ru Scraper cost to run?

Pricing is pay-per-result at a standard per-record rate — check the Pricing tab on this actor's page for the current rate. There's no separate charge for the areas or keyword filters.

What data can I get from HH.ru?

Job title, employer name and trust status, salary (with the gross-vs-net distinction most competitors skip), location, work schedule and format, experience level, and the full requirement/responsibility text where the posting is structured that way.

Can I filter by country or region?

Yes. Set areas to one or more of Russia, Ukraine, Kazakhstan, Azerbaijan, Belarus, Georgia, Kyrgyzstan, or Uzbekistan. Leave it empty to crawl all of them in one run.

Do I need an account or API key for HH.ru?

No. HH.ru Scraper reads public vacancy pages — no HH.ru login or API key required.


Need More Features?

Need custom fields, filters, or a different target site? File an issue or get in touch.

Why Use HH.ru Scraper?

  • Full CIS coverage — one run reaches Russia and 8 neighboring countries on the same facet, not just the Russian market.
  • Salary detail competitors flatten away — most HH.ru scrapers return one salary number; this one keeps the gross/net distinction and the min/max range separately, which is the difference between a usable comp dataset and a guess.
  • Employer signal included — trust flag, review rating, and review count ride along with every listing, so you can screen postings without a second lookup.