HeadHunter (hh.ru) Scraper: Russia & CIS Jobs avatar

HeadHunter (hh.ru) Scraper: Russia & CIS Jobs

Pricing

Pay per event

Go to Apify Store
HeadHunter (hh.ru) Scraper: Russia & CIS Jobs

HeadHunter (hh.ru) Scraper: Russia & CIS Jobs

Scrape job listings from HeadHunter (hh.ru, hh.kz, hh.uz, hh.by) via the official public REST API. Returns title, employer, location, RUB/USD/EUR salary, schedule, experience, key skills, and contacts. Russia's #1 job board (90M+ monthly visits) + Kazakhstan, Uzbekistan, Belarus. No anti-bot.

Pricing

Pay per event

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

HeadHunter (hh.ru) Job Scraper

Extract job listings from HeadHunter -- Russia's #1 job board and the largest employment platform in the CIS region. Powered by the official, MIT-licensed HeadHunter public REST API (api.hh.ru). No browser required, no anti-bot hurdles.

A single actor covers all four HeadHunter national sites via the hostRegion input:

RegionSiteCountry
ru (default)hh.ruRussia (~90M monthly visits)
kzhh.kzKazakhstan
uzhh.uzUzbekistan
byhh.byBelarus

What you get

Each result includes:

  • Job details: title, vacancy URL, vacancy code (employer internal reference), publication date, last-updated date
  • Employer: name, HeadHunter employer ID, profile URL, logo, trusted-employer flag, employer category (COMPANY / PRIVATE_INDIVIDUAL / AGENCY), company website (from SERP), IT accreditation badge, employer review rating and review count
  • Location: city, region, region code (HeadHunter area ID), full address, nearest metro stations (Moscow / Saint-Petersburg)
  • Salary: min/max range, currency (RUB / USD / EUR / KZT), gross/net flag, salary mode (Monthly / Per project / Hourly), salary frequency (Monthly / Twice per month / Weekly / Per project), human-readable text
  • Schedule: fullDay / shift / flexible / remote / flyInFlyOut (normalized to English)
  • Employment type: Full-time / Part-time / Project / Volunteer / Probation
  • Employment form: Full-time / Part-time / Internship / Side job / Project (more granular than employment type)
  • Work schedule by days: 5/2, 2/2, 3/3, 4/3, 6/1
  • Working hours: 8 hours / 10 hours / 12 hours / Flexible
  • Civil-law contracts: Self-employed, Individual entrepreneur, Individual person
  • Experience level: No experience / 1-3 yrs / 3-6 yrs / 6+ yrs
  • Flags: night_shifts, is_internship, accept_temporary, accept_labor_contract, accept_incomplete_resumes, has_test, response_letter_required
  • Full description (plain text, HTML stripped) -- with includeJobDetails: true
  • Key skills, professional roles, language requirements, driver licenses -- with includeJobDetails: true
  • Contact info: name, email, phones -- from the vacancy detail endpoint
  • Company profile (website, about, industry, open vacancy count) -- with includeCompanyDetails: true

Input

{
"searchQueries": ["программист", "аналитик данных"],
"hostRegion": "ru",
"location": "Москва",
"experience": "between1And3",
"schedule": "remote",
"includeJobDetails": true,
"includeCompanyDetails": false,
"maxResults": 100,
"maxResultsPerQuery": 50
}
FieldTypeDefaultDescription
searchQueriesstring[]--Keywords to search. Leave empty for all vacancies.
searchUrlsstring[]--Paste any hh.ru search URL to replicate exact filters.
hostRegionstring"ru"ru / kz / uz / by
locationstring--City or region name, e.g. Москва, Санкт-Петербург, Алматы.
schedulestring--fullDay / shift / flexible / remote / flyInFlyOut
employmentstring--full / part / project / volunteer / probation
experiencestring--noExperience / between1And3 / between3And6 / moreThan6
includeJobDetailsbooltrueFetch full description, skills, contacts per vacancy.
includeCompanyDetailsboolfalseFetch employer profile (website, about, industry).
maxResultsint5Global results cap.
maxResultsPerQueryint5Per-query results cap.

Sample output

{
"_type": "job",
"id": "98765432",
"title": "Python-разработчик",
"job_url": "https://hh.ru/vacancy/98765432",
"source_platform": "hh.ru",
"host_region": "ru",
"company_name": "Яндекс",
"company_id": "1740",
"company_url": "https://hh.ru/employer/1740",
"company_trusted": true,
"company_category": "COMPANY",
"company_website": "https://yandex.ru",
"company_accredited_it": true,
"company_rating": "4.6",
"company_reviews_count": 234,
"location": "Москва, ул. Льва Толстого, 16",
"country": "RU",
"region": "Москва",
"region_code": "1",
"city": "Москва",
"address": "Москва, ул. Льва Толстого, 16",
"metro_stations": ["Парк культуры"],
"posted_at_datetime": "2026-08-25T07:14:18Z",
"updated_at_datetime": "2026-08-31T07:37:16Z",
"employment_type": "Full-time",
"schedule": "Remote",
"schedule_id": "remote",
"employment": "Full-time",
"employment_form": "Full-time",
"experience_level": "1-3 years",
"experience_level_id": "between1And3",
"work_formats": ["Remote"],
"work_schedule_by_days": ["5/2"],
"working_hours": ["8 hours"],
"civil_law_contracts": [],
"salary_min": 150000,
"salary_max": 250000,
"salary_currency": "RUB",
"salary_gross": true,
"salary_mode": "Monthly",
"salary_frequency": "Twice per month",
"salary_text": "150000 - 250000 RUB (gross)",
"description": "Требования:\nОпыт работы с Python от 1 года\nЗнание Django или FastAPI\nПонимание REST API\n\nУсловия:\nУдалённая работа\nГибкий график",
"key_skills": ["Python", "Django", "PostgreSQL", "Docker", "REST API"],
"professional_roles": ["Программист, разработчик"],
"industries": [],
"languages": [],
"driver_licenses": [],
"working_days": [],
"working_time_modes": [],
"accept_temporary": false,
"accept_labor_contract": true,
"accept_incomplete_resumes": false,
"night_shifts": false,
"is_internship": false,
"has_test": false,
"response_letter_required": false,
"is_archived": false,
"contact_name": "Анна Иванова",
"contact_emails": [],
"contact_phones": [],
"vacancy_code": null,
"search_query": "программист in Москва",
"scraped_at": "2026-08-25T10:00:00Z"
}

Pricing (Pay Per Event)

EventWhen chargedPrice
actor-startOnce per run$0.001
job-serp-resultPer vacancy (SERP only, includeJobDetails: false)$0.003
job-detail-resultPer vacancy (with full detail, includeJobDetails: true)$0.005
company-detail-resultPer vacancy (with company profile, includeCompanyDetails: true)$0.005

Example costs:

  • 1,000 SERP listings (no details): ~$3.00
  • 1,000 listings with full job details: ~$5.00
  • 1,000 listings with job + company details: ~$5.00 + $5.00 = ~$10.00

Why HeadHunter?

HeadHunter (hh.ru) is the dominant job platform across Russia and the CIS, with:

  • ~90 million monthly visits on hh.ru alone
  • 1M+ active vacancies at any time
  • Coverage across all 89 Russian federal subjects
  • Official, documented, MIT-licensed public API -- no scraping workarounds needed
  • Salary data in RUB, USD, and EUR with gross/net distinction
  • Rich structured data: key skills, professional role taxonomy, language requirements
  • IT accreditation badge (critical for Russian tech employers -- signals tax breaks and mobilization exemptions for staff)
  • Employer ratings and review counts directly in SERP data

For Kazakhstan: hh.kz covers Almaty, Nur-Sultan, and 14 oblasts.

Region coverage

The hostRegion input selects which HeadHunter national site to search. All regions share the same API endpoint (api.hh.ru) -- the region determines the area dictionary and the job URL domain in output.

Set location to a city in the correct country. For example:

  • hostRegion: "kz" + location: "Алматы" for Kazakhstan jobs in Almaty
  • hostRegion: "by" + location: "Минск" for Belarus jobs in Minsk

Issues and support

Found a bug or need a field added? Open an issue via the Issues tab.

Questions? contact@nanoscrape.com