# hh.ru Resumes CV Scraper - бюджетный Low-cost💲🔥🇷🇺💼 (`delectable_incubator/hh-ru-resumes-cv-scraper-byudzhetnyy-low-cost`) Actor

Scrape HeadHunter (hh.ru) resume search results 🇷🇺🧑‍💼 with a powerful talent sourcing scraper. Extract candidate profiles, resume URLs, job titles, ages, experience details & more from search results. Ideal for recruiter sourcing, talent pipeline building & recruitment intelligence 📊🚀

- **URL**: https://apify.com/delectable\_incubator/hh-ru-resumes-cv-scraper-byudzhetnyy-low-cost.md
- **Developed by:** [Prime Scrape](https://apify.com/delectable_incubator) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00005 / actor start

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

<p align="center">
<img src="https://i.ibb.co/jkNS73wX/readme.png" alt="HeadHunter Russia Resume Scraper" width="100%">
</p>

---

## 🇷🇺🧑‍💼 HeadHunter Russia Resume Scraper | hh.ru CV Scraper | Bulk Resume Extraction | Apify Actor

### 🚀 Extract hh.ru Resume Data in Seconds (No Code)

The **HeadHunter Russia Resume Scraper (Apify Actor)** is a powerful, scalable and SEO-optimized recruitment data extraction tool designed to scrape candidate resumes from hh.ru (HeadHunter Russia) in bulk.

Extract structured candidate information from multiple hh.ru resume search URLs and export clean datasets for recruitment, talent sourcing, executive search, HR analytics, labor market intelligence, AI datasets, and candidate lead generation.

Perfect for recruiters, staffing agencies, HR teams, executive search firms, talent acquisition professionals, and labor market researchers.

---

### 🔥 Why This hh.ru Resume Scraper?

✔ Best HeadHunter Resume Scraper on Apify

✔ Supports bulk resume search URLs (multi-search mode)

✔ Fast & scalable candidate data extraction

✔ Automated pagination handling

✔ Structured JSON / CSV / Excel export

✔ Ideal for recruitment intelligence

✔ Perfect for HR analytics & sourcing

✔ No coding required

✔ Cloud-based execution on Apify

---

### 🎯 What This Scraper Does (HeadHunter Resume Data Extraction)

This Apify Actor extracts structured candidate data directly from hh.ru resume search results.

#### 📌 Core Features

✅ Scrape hh.ru resumes in bulk

✅ Multiple search URLs in one run

✅ Bulk candidate sourcing workflow

✅ Automatic pagination handling

✅ Extract candidate profile metadata

✅ Extract work experience indicators

✅ Extract professional specializations

✅ Extract activity and availability information

✅ Export structured recruitment datasets

✅ High-speed extraction engine

---

### ⚡ Input Configuration (Simple & Powerful)

#### 🔥 BULK SEARCH MODE (SEO BOOST 🚀)

````

{
"urls": \[
"https://yaroslavl.hh.ru/search/resume?text=python\&area=1",
"https://yaroslavl.hh.ru/search/resume?text=java\&area=1",
"https://yaroslavl.hh.ru/search/resume?text=data+analyst\&area=1"
],
"maxitemsPerUrl": 40
}

```

---

### 📊 Extracted Resume Data (Structured Output)

| Field           | Description                   |
| --------------- | ----------------------------- |
| resumeId        | Unique resume identifier      |
| title           | Candidate desired position    |
| link            | Resume URL                    |
| age             | Candidate age                 |
| lastVisit       | Last visit date               |
| lastUpdate      | Resume update date            |
| status          | Candidate availability status |
| totalExperience | Total experience              |
| professions     | Professional specializations  |
| lastCompany     | Latest employer               |
| lastPosition    | Latest position               |
| lastPeriod      | Duration at latest position   |

---

### 💡 Use Cases (High Demand SEO Keywords)

This HeadHunter Resume Scraper is used for:

💼 Recruitment automation

🎯 Candidate sourcing

👥 Talent acquisition

🏢 Executive search

📊 HR analytics

📈 Labor market research

🤖 AI recruitment datasets

📡 Candidate lead generation

🔍 Resume database building

⚡ Bulk CV extraction

---

### 🚀 Key Features (Apify SEO Optimized)

⚡ Bulk URL scraping support

👥 Candidate sourcing automation

📌 Smart pagination system

🧠 Structured resume datasets

📊 High-speed extraction engine

🔁 Auto retry & stability system

💾 Export-ready data

⚙️ Scalable cloud execution

🌍 Russian job market coverage

---

### 📤 Output Formats Supported

✔ JSON (API ready)

✔ CSV (Excel compatible)

✔ Excel XLSX

✔ XML

✔ HTML

✔ Apify Dataset

---

### 📦 Example Output

```

{
"resumeId": "123456789",
"title": "Python Developer",
"link": "https://hh.ru/resume/123456789",
"age": "29",
"lastVisit": "2026-02-14",
"lastUpdate": "2026-02-10",
"status": "Open to offers",
"totalExperience": "6 years 4 months",
"professions": \[
"Software Developer",
"Backend Engineer"
],
"lastCompany": "Tech Solutions LLC",
"lastPosition": "Senior Python Developer",
"lastPeriod": "2021–2026"
}

````

---

### 🔥 Why This is the BEST HeadHunter Resume Scraper on Apify?

✔ Optimized for Apify search ranking

✔ High-performance scraping engine

✔ Bulk URL support (rare feature)

✔ Candidate sourcing ready

✔ Enterprise-grade scalability

✔ Structured recruitment datasets

✔ Perfect for staffing agencies

✔ Ideal for HR intelligence projects

---

### 💸 Pricing

This scraper runs on a **pay per events subscription model**.

You only pay for **successful runs**.

💳 **Price:** $5.99 / 1000 results

---

### ❓ FAQ (SEO BOOST SECTION)

#### Can I scrape multiple hh.ru search URLs at once?

Yes — bulk URL mode is fully supported.

#### Can I extract candidate experience information?

Yes — the scraper extracts total experience, last employer, latest role, and professional specializations.

#### Is pagination supported?

Yes — automatic pagination is included.

#### Is coding required?

No — this is a 100% no-code Apify Actor.

#### Can I export data?

Yes — JSON, CSV, Excel, XML, HTML, and Apify Dataset exports are supported.

#### Can recruiters use this for sourcing?

Absolutely. The actor was built specifically for recruiters, HR teams, and executive search professionals.

---

### ⚠️ Disclaimer

This tool is not affiliated with, endorsed by, or sponsored by HeadHunter (hh.ru).

It is an independent data extraction solution developed for research, recruitment intelligence, and automation purposes.

---

### 🔗 Related Actors (Recruitment Intelligence Ecosystem)

We are building a complete PrimeScrape Recruitment Intelligence Suite.

👉 More recruitment, staffing, resume, company, and job scraping tools coming soon.

---

### 🌍 PrimeScrape Ecosystem

Built for data extraction, recruitment intelligence, lead generation, AI datasets, and large-scale automation.

📊 Recruitment data

👥 Candidate sourcing

🏢 Company intelligence

📈 Labor market analytics

🤖 AI training datasets

⚙️ Automation workflows

🚀 Cloud scraping infrastructure

---

### 📬 Support

⭐⭐⭐⭐⭐ Leave a review if you enjoy this scraper.

📩 Contact us for custom scraping solutions, enterprise projects, recruitment intelligence systems, and large-scale data extraction requirements.

# Actor input Schema

## `urls` (type: `array`):

List of search URLs from hh.ru resume search (e.g. https://hh.ru/search/resume...)
## `maxitemsPerUrl` (type: `integer`):

Maximum number of resume listings to scrape per URL from hh.ru 📊

## Actor input object example

```json
{
  "urls": [
    "https://yaroslavl.hh.ru/search/resume?text=python&area=1",
    "https://yaroslavl.hh.ru/search/resume?text=java&area=1"
  ],
  "maxitemsPerUrl": 40
}
````

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://yaroslavl.hh.ru/search/resume?text=python&area=1",
        "https://yaroslavl.hh.ru/search/resume?text=java&area=1"
    ],
    "maxitemsPerUrl": 40
};

// Run the Actor and wait for it to finish
const run = await client.actor("delectable_incubator/hh-ru-resumes-cv-scraper-byudzhetnyy-low-cost").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": [
        "https://yaroslavl.hh.ru/search/resume?text=python&area=1",
        "https://yaroslavl.hh.ru/search/resume?text=java&area=1",
    ],
    "maxitemsPerUrl": 40,
}

# Run the Actor and wait for it to finish
run = client.actor("delectable_incubator/hh-ru-resumes-cv-scraper-byudzhetnyy-low-cost").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://yaroslavl.hh.ru/search/resume?text=python&area=1",
    "https://yaroslavl.hh.ru/search/resume?text=java&area=1"
  ],
  "maxitemsPerUrl": 40
}' |
apify call delectable_incubator/hh-ru-resumes-cv-scraper-byudzhetnyy-low-cost --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=delectable_incubator/hh-ru-resumes-cv-scraper-byudzhetnyy-low-cost",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "hh.ru Resumes CV Scraper - бюджетный Low-cost💲🔥🇷🇺💼",
        "description": "Scrape HeadHunter (hh.ru) resume search results 🇷🇺🧑‍💼 with a powerful talent sourcing scraper. Extract candidate profiles, resume URLs, job titles, ages, experience details & more from search results. Ideal for recruiter sourcing, talent pipeline building & recruitment intelligence 📊🚀",
        "version": "0.0",
        "x-build-id": "yoiSbfTluwJmAbduT"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/delectable_incubator~hh-ru-resumes-cv-scraper-byudzhetnyy-low-cost/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-delectable_incubator-hh-ru-resumes-cv-scraper-byudzhetnyy-low-cost",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/delectable_incubator~hh-ru-resumes-cv-scraper-byudzhetnyy-low-cost/runs": {
            "post": {
                "operationId": "runs-sync-delectable_incubator-hh-ru-resumes-cv-scraper-byudzhetnyy-low-cost",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/delectable_incubator~hh-ru-resumes-cv-scraper-byudzhetnyy-low-cost/run-sync": {
            "post": {
                "operationId": "run-sync-delectable_incubator-hh-ru-resumes-cv-scraper-byudzhetnyy-low-cost",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "hh.ru resume search URLs 🔗 (e.g. https://hh.ru/search/resume...)",
                        "type": "array",
                        "description": "List of search URLs from hh.ru resume search (e.g. https://hh.ru/search/resume...)",
                        "items": {
                            "type": "string"
                        },
                        "default": [
                            "https://yaroslavl.hh.ru/search/resume?text=python&area=1",
                            "https://yaroslavl.hh.ru/search/resume?text=java&area=1"
                        ]
                    },
                    "maxitemsPerUrl": {
                        "title": "Maximum number of resumes per URL 📊",
                        "type": "integer",
                        "description": "Maximum number of resume listings to scrape per URL from hh.ru 📊",
                        "default": 40
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
