Russia Jobs Feed Вакансии: hh.ru, Habr Career, Rabota.ru & More
Pricing
from $1.12 / 1,000 job postings
Russia Jobs Feed Вакансии: hh.ru, Habr Career, Rabota.ru & More
Russian job vacancies (вакансии) from hh.ru, Habr Career (Хабр Карьера), Rabota.ru, Работа России (Trudvsem) and Zarplata.ru in one feed. Same fields from every board: RUB pay with the gross or net flag, 85 regions, metro, duplicate groups, and new, updated or closed jobs on each scheduled run.
Pricing
from $1.12 / 1,000 job postings
Rating
0.0
(0)
Developer
GetAScraper
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🇷🇺 Russia Jobs Feed Вакансии: hh.ru, Habr Career, Rabota.ru & More
|
Five Russian job boards. One clean feed. Search hh.ru, Хабр Карьера, Работа.ру, Работа России and Зарплата.ру in one run. Every job comes back in the same format, with rouble pay, the employer's own gross or net flag, region and metro, and what changed since your last run. |
| 🗂️ One format Same fields from every board, so you sort and compare without cleanup. | 💰 Gross or net, stated До вычета налогов or на руки, only when the employer says so. | 🔔 What changed New, updated and closed jobs between scheduled runs. | 🧬 One row per job The same job on two boards shares a group id, or keep just one copy. |
Recruiters and analysts who follow the Russian job market usually open one board at a time and then line up pay, places and titles by hand. This feed reads hh.ru (HeadHunter), Хабр Карьера (Habr Career), Работа.ру (Rabota.ru), Работа России (the government job portal) and Зарплата.ру (Zarplata.ru) in a single run. It applies the same filters to all of them and returns one table you can sort, export or schedule.
🔎 What does Russia Jobs Feed do?
You give it keywords, cities or regions, and filters. It searches every board you select, turns what each board publishes into the same fields, and marks which rows are new since your last run. Russian and English keywords both work. Nothing is guessed: if a board does not publish a value, the field is left out.
| Board | Strongest for | Good to know |
|---|---|---|
| hh.ru HeadHunter | The largest general board: every industry, every region | Pay with the employer's gross or net flag, metro, work format, schedule, employer rating and reviews. Shows at most 2,000 jobs per search, so very wide searches are best narrowed by keyword or region. On by default. |
| Habr Career Хабр Карьера | IT jobs: developers, QA, analysts, DevOps, designers | Skills, seniority (Junior to Lead) and specialisation on every job. Few jobs publish pay; Habr's own pay estimate is kept apart and labelled as an estimate. On by default. |
| Rabota.ru Работа.ру | Mass-market and blue-collar jobs: drivers, warehouse, retail, sales | Pay on most jobs, often with a gross or net flag. Searches one city at a time (Moscow, Saint Petersburg, Moscow and Leningrad regions and 14 large cities). |
| Работа России Trudvsem | The government portal, strong in the regions and the public sector | Pay on almost every job. The slowest board: each page of results takes several seconds. |
| Zarplata.ru Зарплата.ру | Extra regional listings | Most of its jobs are the same hh.ru postings. With hh.ru also selected, only the jobs posted on Zarplata.ru itself are delivered, so nothing comes twice. |
hh.ru and Habr Career are selected by default. Add Rabota.ru, Работа России and Zarplata.ru under Job boards when you need them.
🎯 Who uses it
- I am a recruiter sourcing Python and Java developers in Moscow and Kazan, comparing what employers offer on hh.ru and Habr Career in one table.
- I am a compensation analyst benchmarking rouble pay by region and role, and I need to know which figures are before tax and which are take-home.
- I am a labour-market researcher tracking how many jobs open and close each week, by region and federal district, with scheduled runs.
- I run an HR team at a company with Russian offices and watch what local competitors advertise for the roles we hire.
- I build job data pipelines and want one stable row format and a group id that stops one posting from showing up twice.
🚀 How it works
| STEP 1 Pick boards and a search Choose boards, keywords, cities and filters, or paste a board link. | STEP 2 Get one table Every row has the same fields, whichever board it came from. | STEP 3 Schedule it Name a monitor and each run flags new, updated and closed jobs. |
Start small. The default search (hh.ru and Habr Career, Python, Moscow, 25 rows) finishes in seconds. Raise the limits once the rows look right.
Places
Enter cities or regions in Russian or English: Moscow, Санкт-Петербург, Казань, Татарстан, Свердловская область, Подмосковье. All 85 federal subjects and about 170 cities are known. Every row gets its region in Russian and English, the region code and the federal district. Enter Remote for remote jobs, or Russia (or leave the list empty) for the whole country. An unknown place is reported with suggestions and never widened to the whole country.
Pay you can compare
- The original salary wording is kept, for example "от 150 000 ₽ за месяц на руки".
salaryMinandsalaryMaxkeep the published figures in their own currency and period.salaryGrossOrNetisgross(до вычета налогов) ornet(на руки), only when the board states it. hh.ru and Rabota.ru state it on most paid jobs.salaryMinMonthlyRubandsalaryMaxMonthlyRubgive one monthly rouble figure for comparison. Yearly pay is divided by 12. Hourly and shift pay is never converted by guesswork; where hh.ru publishes its own monthly figure for it, that figure is used.- A salary without a stated period is read as monthly, the usual practice on Russian boards, and the row says so (
salaryPeriodAssumed). - Habr Career's own pay estimate is kept in
platformData.habrSalaryEstimateand labelled as an estimate. It never fills the salary fields or the pay filters.
Filters that work on every board
- Pay: minimum and maximum monthly roubles, or only jobs that show pay.
- Job type and work format: full time, part time, project work, internship, temporary, rotation (вахта) or volunteer, and remote or hybrid jobs.
- Experience and education: the four hh.ru experience bands (no experience, 1 to 3, 3 to 6, more than 6 years), and "at least" an education level.
- Freshness and words: posted within N days, words to exclude, and company names to keep.
- Unknown values: a job that does not state the value you filter on is dropped, so a filter never lets unchecked rows through. Habr Career does not state experience, and Rabota.ru states it only on the job page (turn on full descriptions), so an experience filter mostly returns hh.ru and Работа России rows.
Same job on several boards
Rows that share a title, employer and region get the same clusterId. Legal forms such as ООО, АО or ПАО and quotation marks are ignored when names are compared. Turn on uniqueOnly to keep one row per job, the one with the most information. A Cyrillic company name and its Latin spelling are not treated as the same employer, so some repeats stay separate.
Monitoring over time
Give monitorScope a name and reuse it on a schedule. Each row is marked NEW, UPDATED, UNCHANGED or REOPENED. A job is marked CLOSED only after two complete scans in a row did not find it, and a scan that stopped at your row limit never counts as complete. Choose changesOnly to receive just the rows that changed. On Работа России a monitor run with a city or region reads only the jobs changed since the previous run, which keeps it fast. If a run reaches its time limit it returns the rows it already has, marks them PARTIAL and leaves your saved history untouched.
Moving from our single-board hh.ru or Habr Career scrapers? Their saved monitor history does not carry over, so the first run here marks every job as new.
Privacy
Recruiter names, phone numbers and e-mail addresses are never collected from any board, also not in the optional source record. When an hh.ru employer is a private person rather than a company, the employer name is left out.
⚙️ Input
| Field | Type | Required | Description |
|---|---|---|---|
sources | array of enum | No | Boards to read: hh-ru, habr-career, rabota-ru, trudvsem, zarplata-ru. Default hh.ru and Habr Career. |
startUrls | array of URLs | No | Board links to read as they are: searches, specialisation and skill pages, or single jobs. |
keywords | array of strings | No | Job titles or skills in Russian or English. Empty browses the newest jobs. |
expandKeywords | boolean | No | Also search Russian titles for common English ones (developer: разработчик, программист). |
cities | array of strings | No | Cities or regions in Russian or English, Remote, or Russia for the whole country. |
employmentKind | array of enum | No | Full time, part time, project, internship, temporary, rotation, volunteer. |
remoteOnly | boolean | No | Only remote or hybrid jobs. |
experience | enum | No | Any, no experience, 1 to 3, 3 to 6, or more than 6 years. |
education | enum | No | Minimum education: secondary, vocational, higher, master, PhD. |
minMonthlySalaryRub | integer | No | Minimum monthly pay in roubles. |
maxMonthlySalaryRub | integer | No | Maximum monthly pay in roubles. |
onlyDisclosedSalary | boolean | No | Drop jobs without published pay. |
postedWithinDays | integer | No | Only jobs posted or updated within this many days. |
companyNames | array of strings | No | Keep only these employers (part of the name is enough). |
excludeKeywords | array of strings | No | Drop jobs that mention any of these words. |
includeDescription | boolean | No | Add the description, key skills and listing end date (one extra page per job on most boards). |
includeRecruiterSignals | boolean | No | Add viewer and response counts where the board shows them. |
includeSourceFields | boolean | No | Attach the board's own record, without personal contacts. |
convertToUsd | boolean | No | Add monthly pay in US dollars at the current exchange rate. |
monitorScope | string | No | Name for tracking new, updated and closed jobs across runs. |
outputMode | enum | No | All rows, only new and changed rows, or compact rows. |
uniqueOnly | boolean | No | Keep one row per job across boards. |
includeClosed | boolean | No | Add a short row for each job that closed (monitoring). |
maxTotalRows | integer | No | Rows for the whole run, shared fairly between boards. Default 25. |
maxItemsPerSource | integer | No | Rows per board. Default 25. |
maxPagesPerSource | integer | No | Result pages per search. Default 5. |
proxyConfiguration | object | No | Optional proxy for every board. Not needed for normal runs. |
boardOptions | object | No | Per-board settings, for example the hh.ru sort order or the Habr Career seniority level. |
🧪 Example inputs
Copy one into the Input tab (JSON view) and change the values.
Recruiter shortlist: Python and Java developers with published pay
{"sources": ["hh-ru", "habr-career"],"keywords": ["Python developer", "Java developer"],"expandKeywords": true,"cities": ["Moscow", "Kazan"],"minMonthlySalaryRub": 200000,"onlyDisclosedSalary": true,"postedWithinDays": 14,"uniqueOnly": true,"maxTotalRows": 100}
Pay benchmark: drivers across all five boards
{"sources": ["hh-ru", "habr-career", "rabota-ru", "trudvsem", "zarplata-ru"],"keywords": ["водитель"],"cities": ["Moscow", "Saint Petersburg", "Kazan"],"employmentKind": ["fulltime"],"maxTotalRows": 300,"maxItemsPerSource": 100}
Weekly market watch: what opened, changed and closed in Moscow
{"keywords": ["data analyst"],"cities": ["Moscow"],"monitorScope": "moscow-data-analysts","outputMode": "changesOnly","includeClosed": true,"maxTotalRows": 300}
Paste a board link instead of filling the form
{"startUrls": [{ "url": "https://hh.ru/search/vacancy?text=python&area=1" }],"includeDescription": true,"maxTotalRows": 50}
📤 Output
One row per job. A real row from hh.ru (description shortened):
{"listingKey": "hh-ru:138679153","source": "hh-ru","sourceJobId": "138679153","title": "Преподаватель программирования Python","companyName": "АНО ДО Московская школа программистов","companyRating": 4.1,"companyReviewCount": 44,"trustedEmployer": true,"region": "Москва","regionEn": "Moscow","regionCode": "77","federalDistrict": "Central","city": "Москва","district": "Щукино","address": "Москва, улица Берзарина, 16","metroStation": "Октябрьское поле","isRemote": true,"remoteType": "partial","salaryGrossOrNet": "gross","salaryCurrency": "RUB","salaryMax": 130000,"salaryPeriod": "month","salaryMaxMonthlyRub": 130000,"experienceRaw": "Опыт 1-3 года","experienceMinYears": 1,"experienceMaxYears": 3,"employmentTypeRaw": "Частичная занятость","employmentTypeEn": "Part-time","employmentKind": ["parttime"],"schedule": "По выходным, Свободный график, Другой график, 2 ч, 4 ч, 6 ч, 8 ч","skills": ["Python", "Преподавание", "Математика", "Программирование", "C++"],"description": "Нам более 25 лет, мы учим детей программированию. Наши выпускники получают работу в ведущих ИТ-компаниях мира...","postedAt": "2026-10-26T15:42:15.511Z","expiresAt": "2026-11-19T15:42:15.511Z","listingUrl": "https://hh.ru/vacancy/138679153","recruiterSignals": { "viewers": 2, "responses": 225 },"lifecycleStatus": "NEW"}
Each run also writes RUN_SUMMARY (rows per board, limits, monitor state) and RUN_HEALTH (per-board status and plain-language notes) to the run's key-value store.
📋 Data table
| Field | Type | Description |
|---|---|---|
listingKey | string | Board id plus the board's job id. Use it to join runs. |
source | string | Board the row came from. |
title | string | Job title as published. |
companyName | string | Employer as published. |
companyRating, companyReviewCount | number | Employer rating out of 5 and number of reviews, where the board shows them. |
trustedEmployer | boolean | The board marks the employer as verified or accredited. |
region, regionEn, regionCode, federalDistrict | string | Federal subject in Russian and English, its code and the federal district. |
city, cityEn, district, address, metroStation | string | Place details as published. |
isRemote, remoteType | boolean, string | Remote, hybrid (partial) or on-site (none). |
salaryRaw | string | Salary wording as published. |
salaryMin, salaryMax, salaryCurrency, salaryPeriod | number, string | Published pay figures, currency and period. |
salaryGrossOrNet | string | gross (before tax) or net (take-home), when the board states it. |
salaryMinMonthlyRub, salaryMaxMonthlyRub | number | Monthly pay in roubles for comparison. |
salaryMinUsd, salaryMaxUsd | number | Monthly pay in US dollars (USD salaries, or with convertToUsd). |
experienceRaw, experienceMinYears, experienceMaxYears | string, number | Required experience as published and in years. |
educationRaw, educationEn | string | Required education in Russian and English. |
employmentTypeRaw, employmentTypeEn, employmentKind | string, array | Employment type in Russian, English and as categories. |
schedule | string | Work schedule as published. |
seniorityRaw, seniority | string, array | Seniority level, where the board states it. |
skills, tags | array | Key skills and labels. |
description | string | Full description (with includeDescription). |
postedAt, updatedAt, expiresAt | string | Publication, last change and end date. |
listingUrl | string | Link to the job. |
clusterId, clusterSize, isCanonical | string, number, boolean | Same-job group across boards. |
lifecycleStatus, lifecycleChangedFields, firstSeenAt, lastSeenAt | string, array | Change tracking between runs. |
platformData | object | Every other board-specific value, for example the Habr pay estimate or the Работа России company tax number. |
💰 Pricing
You pay per job row delivered. Runs that find nothing cost nothing, and there is no subscription. Free plan runs are limited to 25 rows per run, 3 runs per day, and a short wait between runs.
⭐ Enjoying Russia Jobs Feed?
|
⭐ ⭐ ⭐ ⭐ ⭐ Five boards in one table saves an afternoon of copying and lining up pay by hand. A 5-star rating takes 10 seconds and helps other recruiters and analysts find it. Your feedback also tells us which board to add next. |
| ★ Rate this Actor on Apify |
❓ FAQ
Как выгрузить вакансии с hh.ru и Хабр Карьеры в одну таблицу? Select hh.ru and Habr Career, enter your keywords and cities, and run. Every job comes back in the same format, so you can export both boards as one spreadsheet. Schedule the run to get new jobs every day.
Парсер вакансий с зарплатой: does it show pay before or after tax?
Yes, when the employer says. salaryGrossOrNet is gross for "до вычета налогов" and net for "на руки". hh.ru and Rabota.ru state it on most paid jobs. When a board does not say, the field is left empty rather than guessed.
Do I need an hh.ru account, an API key or cookies? No. The Actor reads public job listings only. No login, key or cookie is needed.
Why do I get fewer rows than my limit?
Filters drop jobs that do not state the value you filter on, and some searches simply have fewer jobs. RUN_HEALTH explains per board what happened. Zarplata.ru with hh.ru selected can return few rows, because most of its jobs are hh.ru postings that are delivered once from hh.ru.
Can I get Habr Career salary statistics? This feed returns job rows. For Habr Career's salary survey by seniority, use our Habr Career Scraper, which has a separate salary benchmarks dataset.
🔗 Other actors
- HH.ru Jobs Scraper ↗ - hh.ru vacancies with salaries, skills and employer ratings.
- Habr Career Scraper ↗ - Habr Career IT vacancies plus the Habr salary survey by seniority.
- China Jobs Feed ↗ - the main Chinese job boards in one run, with the same monitoring.
- Japan Jobs Feed ↗ - Japanese job boards in one run, with yen pay and prefecture labels.
- Israel Jobs Feed ↗ - Israeli job boards in one run, with change tracking.