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

Scrape HeadHunter (hh.ru) job listings 🇷🇺💼 with a powerful job scraper. Extract job titles, company names, salaries, locations, experience requirements, employment types, and job URLs. Ideal for recruitment intelligence, hiring trend tracking, salary benchmarking, & talent acquisition datasets 📊

- **URL**: https://apify.com/delectable\_incubator/hh-ru-jobs-scraper-byudzhetnyy-low-cost.md
- **Developed by:** [Prime Scrape](https://apify.com/delectable_incubator) (community)
- **Categories:** Jobs, Lead generation, Integrations
- **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 Job Scraper" width="100%">
</p>

---

## 🇷🇺💼 HeadHunter Russia Job Scraper | hh.ru Jobs Scraper | Bulk Job Data Extraction

### 🚀 Extract HeadHunter (hh.ru) Job Listings in Seconds (No Code)

The **HeadHunter Russia Job Scraper (Apify Actor)** is a powerful, scalable and **SEO-optimized job scraping tool for Russia job market data extraction**.

It allows you to **scrape hh.ru job listings in bulk**, extract structured hiring data, monitor recruitment trends, analyze salaries, and export datasets for **recruitment, HR analytics, job aggregation, market intelligence, AI training datasets, lead generation, and competitive hiring research**.

---

### 🔥 Why This HeadHunter Jobs Scraper?

✔ Best hh.ru job scraper on Apify

✔ Supports bulk job extraction

✔ Extract hiring trends across Russia

✔ Fast & scalable data collection

✔ Automatic pagination handling

✔ Structured JSON / CSV / Excel output

✔ Salary intelligence ready

✔ Ideal for recruiters, startups & analysts

✔ No coding required

---

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

This Apify Actor extracts **real-time job listings from HeadHunter Russia (hh.ru)** search result pages.

#### 📌 Core Features:

✅ Scrape hh.ru job listings

✅ Bulk job data extraction

✅ Search by keyword & filters

✅ Location-based job scraping

✅ Automatic pagination handling

✅ Extract company names

✅ Extract salary information

✅ Extract experience requirements

✅ Extract employment type

✅ Extract response statistics

✅ Extract direct vacancy URLs

✅ Clean structured dataset output

✅ High-speed extraction engine

---

### ⚡ Input Configuration (Simple & Powerful)

#### 🔥 BULK JOB EXTRACTION MODE (SEO BOOST 🚀)

````

{
"url": "https://yaroslavl.hh.ru/search/vacancy?text=ai\&area=1",
"maxitems": 150
}

```

---

### 📊 Extracted Job Data (Structured Output)

| Field           | Description             |
| --------------- | ----------------------- |
| id              | Unique job identifier   |
| title           | Job title               |
| company         | Hiring company          |
| area            | Job location            |
| address         | Job address             |
| publicationTime | Publication date        |
| link            | Direct job URL          |
| employmentType  | Employment type         |
| experience      | Required experience     |
| salaryMin       | Minimum salary          |
| salaryMax       | Maximum salary          |
| currency        | Salary currency         |
| noSalary        | Salary disclosed or not |
| responsesCount  | Number of applications  |

---

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

This HeadHunter Job Scraper is used for:

💼 Russia job scraping

📊 Russian labor market analysis

🎯 Recruitment automation

📈 Hiring trend monitoring

💰 Salary benchmarking

🏢 Company hiring intelligence

🤖 AI training datasets

📡 Job aggregation platforms

🔍 Competitive recruitment monitoring

⚡ Bulk vacancy extraction

---

### 🚀 Key Features (Apify SEO Optimized)

⚡ Bulk vacancy extraction

🇷🇺 Russia-wide job market coverage

📌 Smart pagination system

🧠 Clean structured output

📊 High-speed scraping engine

🔁 Auto retry & stability system

💾 Export-ready datasets

⚙️ Scalable cloud execution (Apify Actor)

💰 Salary intelligence extraction

---

### 📤 Output Formats Supported

✔ JSON (structured API ready)

✔ CSV (Excel analysis)

✔ Excel XLSX (business reports)

✔ XML (data pipelines)

✔ HTML (dashboards)

---

### 📦 Example Output

```

{
"id": 119404718,
"title": "Старший PR-менеджер (IT, AI, инвестиции)",
"company": "Фащевских Дарья Николаевна",
"area": "Москва",
"address": "N/A",
"publicationTime": "2025-04-10T20:29:03.292+03:00",
"link": "https://yaroslavl.hh.ru/vacancy/119404718",
"employmentType": "FULL",
"experience": "between3And6",
"salaryMin": 130000,
"salaryMax": "N/A",
"currency": "RUR",
"noSalary": false,
"responsesCount": 23
}

````

---

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

✔ Optimized for Apify marketplace ranking

✔ High-performance extraction engine

✔ Reliable pagination handling

✔ Salary intelligence support

✔ Clean structured dataset output

✔ Enterprise-ready scalability

✔ Perfect for recruitment analytics

✔ Ideal for Russia hiring intelligence

---

### 💸 Pricing

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

You only pay for **successful runs**.

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

---

### ❓ FAQ (SEO BOOST SECTION)

#### Can I scrape jobs from any hh.ru search URL?

Yes — simply paste any valid HeadHunter search URL.

#### Does the scraper support pagination?

Yes — pagination is handled automatically.

#### Can I extract salary information?

Yes — salary ranges and salary availability are extracted when available.

#### Is coding required?

No — 100% no-code Apify Actor.

#### Can I export data?

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

#### Can I use this for recruitment analytics?

Absolutely. The scraper is built for hiring intelligence and labor market analysis.

---

### ⚠️ Disclaimer

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

It is an independent data extraction solution designed for public information collection, recruitment intelligence, and market research.

---

### 🔗 Related Actors (PrimeScrape Job Intelligence Suite)

We are building a complete **PrimeScrape Recruitment Intelligence Ecosystem**:

👉 Coming Soon 🚀

---

### 🌍 PrimeScrape Ecosystem

Built for **job scraping, recruitment intelligence, market analytics, AI datasets, automation, and lead generation at scale**.

💼 Job data extraction

🏢 Company intelligence

📈 Labor market analytics

🤖 AI training datasets

📊 Recruitment dashboards

⚙️ Automation pipelines

🚀 Lead generation systems

---

### 📬 Support

⭐⭐⭐⭐⭐ Leave a review if you like this scraper

📩 Contact us for custom scraping solutions, enterprise automation, or private actors

🚀 PrimeScrape — Data Extraction at Scale

# Actor input Schema

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

One or more search URLs from hh.ru (e.g. https://hh.ru/search/vacancy?text=python&area=1). You can also enter a single URL as a string.
## `maxitems` (type: `integer`):

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

## Actor input object example

```json
{
  "urls": [
    "https://yaroslavl.hh.ru/search/vacancy?text=python&area=1",
    "https://yaroslavl.hh.ru/search/vacancy?text=ai&area=1"
  ],
  "maxitems": 150
}
````

# 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/vacancy?text=python&area=1",
        "https://yaroslavl.hh.ru/search/vacancy?text=ai&area=1"
    ],
    "maxitems": 150
};

// Run the Actor and wait for it to finish
const run = await client.actor("delectable_incubator/hh-ru-jobs-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/vacancy?text=python&area=1",
        "https://yaroslavl.hh.ru/search/vacancy?text=ai&area=1",
    ],
    "maxitems": 150,
}

# Run the Actor and wait for it to finish
run = client.actor("delectable_incubator/hh-ru-jobs-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/vacancy?text=python&area=1",
    "https://yaroslavl.hh.ru/search/vacancy?text=ai&area=1"
  ],
  "maxitems": 150
}' |
apify call delectable_incubator/hh-ru-jobs-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-jobs-scraper-byudzhetnyy-low-cost",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "hh.ru Jobs Scraper - бюджетный Low-cost💲🔥🇷🇺💼",
        "description": "Scrape HeadHunter (hh.ru) job listings 🇷🇺💼 with a powerful job scraper. Extract job titles, company names, salaries, locations, experience requirements, employment types, and job URLs. Ideal for recruitment intelligence, hiring trend tracking, salary benchmarking, & talent acquisition datasets 📊",
        "version": "0.0",
        "x-build-id": "pX12rYzimyHVdPaHS"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/delectable_incubator~hh-ru-jobs-scraper-byudzhetnyy-low-cost/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-delectable_incubator-hh-ru-jobs-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-jobs-scraper-byudzhetnyy-low-cost/runs": {
            "post": {
                "operationId": "runs-sync-delectable_incubator-hh-ru-jobs-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-jobs-scraper-byudzhetnyy-low-cost/run-sync": {
            "post": {
                "operationId": "run-sync-delectable_incubator-hh-ru-jobs-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 search URLs 🔗",
                        "type": "array",
                        "description": "One or more search URLs from hh.ru (e.g. https://hh.ru/search/vacancy?text=python&area=1). You can also enter a single URL as a string.",
                        "default": [
                            "https://yaroslavl.hh.ru/search/vacancy?text=python&area=1",
                            "https://yaroslavl.hh.ru/search/vacancy?text=ai&area=1"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxitems": {
                        "title": "Maximum number of jobs to scrape per URL 📊",
                        "type": "integer",
                        "description": "Maximum number of job listings to scrape per URL from hh.ru 📊",
                        "default": 150
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
