Hh Resume Search Scraper
Pricing
Pay per usage
Hh Resume Search Scraper
Scrape resume profiles from hh.ru's search engine with precision. Collect candidate names, skills, salary expectations, job search status, and 20+ professional attributes in structured JSON — perfect for recruiters, HR teams, and talent acquisition platforms.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Soft Alexist
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
HH.ru Resume Search Scraper: Extract Candidate Data at Scale
About HH.ru
HH.ru is Russia's largest job search platform, connecting millions of job seekers with employers across industries. Its resume search feature allows deep mining of candidate data — but manual extraction is slow and error-prone. The HH.ru Resume Search Scraper automates this workflow, delivering structured candidate profiles ready for analysis, recruitment workflows, or talent database integration.
Overview
The HH.ru Resume Search Scraper extracts candidate resume profiles from HH.ru's resume search results pages. It transforms unstructured HTML into clean JSON records containing 26+ candidate attributes. Ideal for:
- Recruiters sourcing candidates by skills, experience, and location
- HR automation platforms building talent pools for active hiring
- Talent acquisition teams conducting market research and competitor benchmarking
- HR analytics providers creating candidate datasets for insights
- Career platform developers aggregating resume data for job matching engines
The scraper handles pagination gracefully, supports error tolerance via ignore_url_failures, and scales to hundreds of profiles per search query.
Input Format
The scraper accepts a JSON configuration:
{"urls": ["https://hh.ru/search/resume?from=footer_new&hhtmFromLabel=footer_new&hhtmFrom=main"],"ignore_url_failures": true,"max_items_per_url": 200}
Input Field Definitions
| Parameter | Type | Description | Example |
|---|---|---|---|
urls | Array | URLs of HH.ru resume search result pages to scrape. Add filtered search URLs (by skills, experience, location, salary) | https://hh.ru/search/resume?... |
ignore_url_failures | Boolean | If true, the scraper continues running even if some URLs fail. Useful for bulk scraping. | true |
max_items_per_url | Integer | Maximum number of resume profiles to extract per URL. Limits data volume and API costs. | 200 |
Pro tip: Use HH.ru's native filters to create targeted search URLs—by skill (Python, JavaScript), location (Moscow, St. Petersburg), salary range, or job search status. Paste multiple filtered URLs to build comprehensive candidate datasets.
Output Format
Sample output
{"forbidden": null,"age": [{"string": 50}],"fields_view_status": [{"contact_view_status": null,"vacancy_permissions": [],"role_permissions": []}],"gender": [{"string": "male"}],"has_photo": [{"string": true}],"hidden_fields": [],"job_search_status": [{"job_search_status": {"name": "active_search","last_change_time": "2026-03-12T12:58:10.704538Z"}}],"key_skills": [{"string": "Ремонтные работы"},{"string": "Сварочные работы"},{"string": "Слесарные работы"},{"string": "каркасное строительство"},{"string": "штукатурка стен"},{"string": "Водительское удостоверение категории B"},{"string": "Точность и внимательность к деталям"},{"string": "Работа в команде"},{"string": "Кайдзен"}],"lang": [{"string": "ru"}],"last_activity_time": "2026-07-09T20:28:03.052+03:00","last_change_time_details": [{"year": "2026","month": "7","day": "9","hour": "20","minute": "28","date": 1783618080000}],"last_topic": [],"phone_preview": [{"type": "cell","country": "7","city": "903","verified": true}],"predicted_salary": [{"amount": 33816,"currency": "RUR"}],"salary": [{"amount": 75000,"currency": "RUR"}],"title": [{"string": "Оператор линии,разнорабочий,подсобный рабочий"}],"total_experience": [{"string": 80}],"folders": [],"favorite_folders": [],"search_rid": "1783619489027c5ea6b90d352b43d006","negotiation_links": {"invite": {"state_links": [],"default_link": "/employer/negotiations/change_topic?r=8f9df6e700033f211c0039ed1f537878384951"},"invite_another": {"state_links": [],"default_link": "/employer/negotiations/change_topic?r=8f9df6e700033f211c0039ed1f537878384951&allVacancies=True&toAnother=True"}},"is_online": false,"resume_contacts_opening": null,"can_open_contacts": false,"has_unpaid_pfp_topics": false,"webcall_enabled": false,"from_url": "https://hh.ru/search/resume?from=footer_new&hhtmFromLabel=footer_new&hhtmFrom=main"}
Each resume profile returns a rich record with 26+ candidate attributes:
Profile Identification
| Field | Meaning | Example |
|---|---|---|
Title | Candidate's professional title or job target | "Senior Python Developer" |
Age | Candidate's age (if publicly disclosed) | 28 |
Has Photo | Whether the profile includes a profile photo | true |
Gender | Candidate's gender (if disclosed) | "M" or "F" |
Is Online | Whether the candidate is currently active on HH.ru | true |
Experience & Skills
| Field | Meaning | Example |
|---|---|---|
Total Experience | Years of professional work experience | 5 |
Key Skills | Array of candidate's listed professional competencies | ["Python", "Django", "PostgreSQL"] |
Language | Languages spoken by the candidate | ["Russian", "English"] |
Job Search Status | Current job search intent (active, passive, not searching) | "LOOKING_FOR_JOB" |
Compensation & Preferences
| Field | Meaning | Example |
|---|---|---|
Salary | Expected salary explicitly stated by candidate | "150000 RUB" |
Predicted Salary | HH.ru's algorithm-estimated salary based on skills/experience | "160000 RUB" |
Conditions | Work conditions the candidate is open to | ["Remote", "Relocation"] |
Contact & Access
| Field | Meaning | Example |
|---|---|---|
Can Open Contacts | Whether you have permission to view contact details | true |
Resume Contacts Opening | Type of contact opening (anonymous, by request, etc.) | "OPEN" |
Phone Preview | Partially masked phone number (privacy protection) | "+7 (9XX) XXX-XX-45" |
Negotiation Links | Links to initiate salary/offer negotiations | [URL] |
Webcall Enabled | Whether the candidate accepts video interview requests | true |
Activity & Visibility
| Field | Meaning | Example |
|---|---|---|
Last Activity Time | Timestamp of candidate's last HH.ru login | "2024-01-15T10:30:00Z" |
Last Change Time Details | When the resume was last updated | "2024-01-10T14:22:00Z" |
Last Topic | Last message topic or interaction | "Job inquiry from recruiter" |
Fields View Status | Which resume fields are visible to non-registered users | {...} |
Account Features & Attributes
| Field | Meaning | Example |
|---|---|---|
Attributes | Special profile badges (e.g., "Top candidate", "Premium resume") | ["Top Professional"] |
Defaults | Default settings for profile visibility and contact opening | {...} |
Hidden Fields | Which resume sections are hidden from public view | ["Desired Salary"] |
Has Unpaid PFP Topics | Whether candidate used unpaid premium features | false |
Forbidden | Access restrictions on the profile | null or restrictions object |
Folders | Candidate's saved job search folders | ["Data Science Jobs"] |
Favorite Folders | Most-used or starred folders | ["Data Science Jobs"] |
Search RID | Unique request ID for tracking this search result | "abc123def456" |
How to Use
- Build a search URL — Visit HH.ru/search/resume and use filters (skills, location, experience, salary). Copy the resulting URL.
- Add URLs to input — Paste one or more search URLs into the
urlsarray. Add multiple filters for segmented datasets. - Set max items — Adjust
max_items_per_url(default: 200) based on your data needs and time constraints. - Enable error tolerance — Set
ignore_url_failures: truefor production runs to avoid interruptions. - Run the scraper — Start the actor and monitor the run log in real time.
- Export results — Download data as JSON, CSV, or Excel for CRM, ATS, or analytics platforms.
Best practices:
- Create separate runs for different job functions (backend, frontend, data science) using filtered URLs.
- Use salary and experience filters to target mid-to-senior level candidates.
- Check
Can Open Contactsfield before reaching out—some profiles restrict direct contact. - Respect
ForbiddenandHidden Fields—do not attempt to bypass privacy settings.
Use Cases & Business Value
- Active recruitment: Build talent pools by skill set and experience level for faster hiring
- Competitive analysis: Monitor candidate availability and salary expectations in your market
- Talent pipelining: Create evergreen candidate databases for future vacancies
- Salary benchmarking: Analyze predicted salaries to set competitive compensation
- Candidate research: Identify passive candidates and market trends in technical talent
- API integration: Feed resume data into ATS platforms, recruitment workflows, or ML models
The HH.ru Resume Search Scraper eliminates weeks of manual candidate research, enabling data-driven hiring decisions and scaled talent acquisition operations.
Conclusion
The HH.ru Resume Search Scraper is a powerful tool for anyone recruiting talent in Russia or Eastern Europe. With support for 200+ profiles per search and rich candidate attributes, it transforms HH.ru's resume database into actionable intelligence. Combine with targeted search filters to build qualified talent pipelines faster than manual sourcing.