hh.ru Jobs Search Scraper
Pricing
from $2.99 / 1,000 job details
hh.ru Jobs Search Scraper
Scrape job listings from hh.ru (HeadHunter Russia) via the official public REST API. Extract detailed job info including salary, company details, location, experience level, and employment conditions.
Pricing
from $2.99 / 1,000 job details
Rating
0.0
(0)
Developer
Jobs API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Extract structured public vacancies from HH.ru through its public REST API. The Actor supports keyword search, multiple searches, and direct vacancy IDs or URLs, with bounded pagination, optional detail enrichment, retries, and proxy routing.
Why use this Actor?
- Collect current HH.ru vacancies without browser automation.
- Enrich results with descriptions, skills, salary, employer, schedule, and location data.
- Run one search, several searches, one vacancy, or a bounded list of vacancies.
- Deduplicate records by stable HH.ru vacancy ID and inspect a machine-readable run summary.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search, searchMultiple, single, or multiple. |
keywords | string | Python developer | Search query; query is a legacy alias. |
queries | string[] | - | One to ten queries for searchMultiple. |
jobUrls / vacancyIds | string[] | - | One to 100 public vacancies for direct modes. |
area | string | 113 | HH.ru area ID: 113 Russia, 1 Moscow, 2 Saint Petersburg. |
experience, employment, schedule | string | any | Official HH.ru filter IDs. |
salaryFrom / onlyWithSalary | integer / boolean | - / false | Salary filters. |
orderBy | string | relevance | Relevance, newest, or salary ordering. |
maxItems | integer | 50 | Global cap from 1 to 500; maxJobs is a legacy alias. |
maxPages | integer | 5 | Per-query page cap from 1 to 20. |
includeDetails | boolean | true | Fetch full vacancy details; direct modes always do. |
detailConcurrency | integer | 5 | Detail concurrency from 1 to 10. |
requestTimeoutSecs / maxRetries | integer | 30 / 3 | Bounded network controls. |
requestDelayMs | integer | 250 | Delay between search pages. |
proxyConfiguration | object | direct | Optional Apify Proxy or custom proxy configuration. |
{"mode": "search","keywords": "Python developer","area": "113","maxItems": 25,"maxPages": 2,"includeDetails": true,"proxyConfiguration": { "useApifyProxy": false }}
For direct extraction, set mode to single or multiple and provide jobUrls or vacancyIds.
Output
Each dataset row is one unique vacancy. Records include identity and URLs, employer, location, salary, experience, employment, schedule, descriptions, skills, languages, roles, publication dates, source metadata, and runtime metadata.
detailStatus is explicit: fetched, not-requested, or failed. A failed search detail may be preserved as a marked partial record. Direct modes fail instead of reporting false success when no requested detail can be retrieved. OUTPUT in the default key-value store contains record, request, proxy, environment, and runtime counts.
Local use
npm ciapify actor:run --input-file INPUT.jsonnpm run validate:dataset
Direct access may be restricted by region or network. Configure an authorized proxy if needed. Credentials are never written to logs or output. Keep item, page, retry, concurrency, and proxy limits bounded to control cost and source load.
Responsible use
Collect only public vacancy data. Respect HH.ru terms, API limits, robots directives, and applicable privacy and employment laws. Do not use this Actor for authenticated content, candidate data, spam, discrimination, or automated applications.