Skip to main content
Glama
iraguzov

HH MCP Server

by iraguzov

HH MCP Server

MCP-сервер для автоматизации работы с hh.ru через браузерную автоматизацию (Playwright).

Возможности

  • Поиск вакансий — по ключевым словам, городу, зарплате, опыту, графику (удалёнка/офис/гибрид)

  • Просмотр деталей вакансий — полное описание, требования, стек, условия

  • Управление резюме — просмотр списка и содержимого своих резюме

  • Отклики на вакансии — с сопроводительным письмом и ответами на вопросы работодателя

  • Отслеживание откликов — статусы всех отправленных откликов

  • Информация о работодателях — карточка компании

Related MCP server: HeadHunter API MCP Server

Требования

  • Python 3.12+

  • uv (менеджер пакетов)

Установка

cd hh-mcp-server
uv sync
uv run playwright install chromium

Авторизация

Перед первым использованием нужно авторизоваться на hh.ru:

uv run hh-mcp-server --login

Откроется браузер — войдите в свой аккаунт hh.ru. Сессия сохранится в ~/.hh-mcp/profile/state.json.

Запуск

Как MCP-сервер (stdio, для Claude Code)

uv run hh-mcp-server

С видимым браузером (для отладки)

uv run hh-mcp-server --no-headless

HTTP-транспорт

uv run hh-mcp-server --transport streamable-http --port 8766

Настройка в Claude Code

Добавьте в .claude/settings.json:

{
  "mcpServers": {
    "hh": {
      "command": "/path/to/uv",
      "args": ["run", "--directory", "/path/to/hh-mcp-server", "hh-mcp-server"]
    }
  }
}

MCP-инструменты

Инструмент

Описание

search_vacancies

Поиск вакансий по ключевым словам (keywords, area, salary, experience, schedule)

get_recommended_vacancies

Подходящие вакансии для резюме (алгоритм hh.ru, до 1000 вакансий)

get_vacancy_details

Детали вакансии по ID

get_my_resumes

Список резюме пользователя

get_resume

Полное содержимое резюме

apply_to_vacancy

Отклик на вакансию (с письмом и ответами на вопросы)

get_responses

Статусы откликов

get_employer_info

Информация о компании

close_session

Закрытие браузера и сохранение сессии

Рекомендованные вакансии

Инструмент get_recommended_vacancies использует алгоритм hh.ru для подбора вакансий на основе резюме (аналог страницы "Подходящие вакансии"):

get_recommended_vacancies(
    resume_id="0fe69243ff063cb4720039ed1f574b71676a55",
    max_pages=50  # до 1000 вакансий (20 на страницу)
)

Это значительно точнее, чем keyword search — hh.ru анализирует опыт, навыки и должность из резюме.

Отклик на вакансию (двухшаговый flow)

Некоторые вакансии имеют обязательные вопросы от работодателя:

  1. Первый вызов без question_answers — возвращает список вопросов

  2. Второй вызов с question_answers — отправляет отклик

# Шаг 1: получить вопросы
apply_to_vacancy(vacancy_id="12345")
# → {"status": "questions_required", "questions": [...]}

# Шаг 2: отправить с ответами
apply_to_vacancy(
    vacancy_id="12345",
    resume_id="abc123",
    cover_letter="Текст письма",
    question_answers={"task_123_text": "Ответ на вопрос"}
)

Структура проекта

hh_mcp_server/
├── cli_main.py       # CLI точка входа (--login, --no-headless, --transport)
├── server.py         # FastMCP сервер, регистрация инструментов
├── constants.py      # URL, пути, маппинги (города, графики, опыт)
├── exceptions.py     # Кастомные исключения
├── drivers/
│   └── browser.py    # Playwright: контекст, страница, сохранение сессии
├── tools/
│   ├── vacancy.py    # Инструменты поиска и просмотра вакансий
│   ├── apply.py      # Инструмент отклика на вакансию
│   ├── resume.py     # Инструменты работы с резюме
│   ├── employer.py   # Информация о работодателе
│   └── responses.py  # Отслеживание откликов
├── scraping/
│   ├── selectors.py  # CSS-селекторы для парсинга hh.ru
│   ├── extractor.py  # Утилиты извлечения данных со страниц
│   ├── apply.py      # Логика отклика (cookies, вопросы, письмо, submit)
│   └── resume.py     # Парсинг страниц резюме
└── utils/
    └── auth.py       # Авторизация (login flow, проверка сессии)

Логирование

uv run hh-mcp-server --log-level DEBUG

Уровни: DEBUG, INFO, WARNING (по умолчанию), ERROR.

Available Tools

9 tools
apply_to_vacancyApply to VacancyA

Apply to a vacancy on hh.ru.

Two-pass flow for vacancies with questions:

  1. First call without question_answers -> returns questions list

  2. Second call with question_answers filled -> submits application

Args: vacancy_id: hh.ru vacancy ID resume_id: Resume ID to use (from get_my_resumes) cover_letter: Cover letter text question_answers: Dict mapping question label to answer text

ParametersJSON Schema
NameRequiredDescriptionDefault
resume_idNo
vacancy_idYes
cover_letterNo
question_answersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses the two-pass flow and that the first call returns a questions list. However, it omits behavioral traits like authorization requirements, potential side effects (e.g., irreversible submission), or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, well-structured, and front-loaded with the core purpose. It uses two concise paragraphs: one for the two-pass flow and one for parameter definitions, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a mutating tool with a two-pass workflow, the description covers the main flow and parameter usage. However, it lacks details on prerequisites (e.g., must have a resume), error scenarios, and output structure. An output schema exists but is not shown; its presence partially mitigates the need for return value explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It explains all four parameters: vacancy_id as hh.ru ID, resume_id with source hint, cover_letter as text, and question_answers as dict mapping label to answer. This adds meaningful context beyond the schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Apply to a vacancy on hh.ru', which is a specific verb and resource. It distinguishes the tool from siblings like search_vacancies and get_responses by focusing on the application action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains the two-pass flow for vacancies with questions, guiding the agent on when to call without and with question_answers. It also references get_my_resumes for resume_id. However, it doesn't explicitly state when not to use this tool or compare to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

close_sessionClose SessionA

Close the browser session and save state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden. It discloses that state is saved, but does not mention side effects such as whether unsaved work is lost or if the session can be reopened.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence that is front-loaded with the key action. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with an output schema, the description is adequate. It covers the core purpose and side effect (saving state), though could mention whether the session is destroyed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so schema coverage is 100%. The description adds no param info, which is acceptable given zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'close' and the resource 'browser session', and mentions saving state. It is distinct from sibling tools which deal with vacancies and resumes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor any preconditions or context about when closing the session is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_employer_infoGet Employer InfoB

Get company/employer information.

Args: employer_id: hh.ru employer ID

ParametersJSON Schema
NameRequiredDescriptionDefault
employer_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description does not disclose any behavioral traits such as side effects, rate limits, or return format. It merely states the basic action, leaving the agent uninformed about the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and to the point, but it could include more useful information without becoming verbose. It is adequately sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity and the presence of an output schema, the description is minimally complete. However, it omits details about the returned information, which could be inferred but is not explicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter 'employer_id' is described as 'hh.ru employer ID', adding specific meaning beyond the schema's type 'string'. This clarifies the expected value, which is valuable given 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get company/employer information', which specifies the verb (get) and resource (employer info). The tool name and title reinforce this, and the sibling tools are all different in function, so it distinguishes adequately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, conditions, or exclusions relative to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_resumesGet My ResumesA

Get list of user's resumes on hh.ru.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It only states 'get list', implying read-only, but lacks details on authentication needs, rate limits, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence accurately conveys the purpose with no extraneous words. For a zero-parameter tool, this is optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and an existing output schema, the description is mostly complete. However, it omits mention of authentication requirements, though implied by 'user's resumes'. Still, minimal for context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description does not need to add parameter details; baseline score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get list of user's resumes', specifying the verb and resource. It effectively distinguishes from sibling tools like get_resume (singular) and get_responses, as it refers to the user's own resumes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as get_resume or get_responses. The description offers no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_responsesGet My ResponsesA

Get list of user's job applications/responses on hh.ru.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and description adds minimal behavioral info. Does not disclose authentication, data scope, or any side effects. Output schema exists but description doesn't elaborate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, directly to the point, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with no parameters and output schema present, but description is minimal. Lacks details like return type or that it returns for the authenticated user. Adequate but could be improved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema (0 params), so description doesn't need to add param info. Baseline 4 for 0 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool retrieves a list of user's job applications/responses on hh.ru, using specific verb and resource. Distinct from sibling 'get_my_resumes' which deals with resumes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use versus siblings like 'apply_to_vacancy' or 'get_my_resumes'. Implied usage for viewing applications, but no explicit context or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_resumeGet ResumeA

Get full resume content.

Args: resume_id: Resume ID (from get_my_resumes)

ParametersJSON Schema
NameRequiredDescriptionDefault
resume_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description is the sole source. It describes a read operation without side effects, which is clear. But it does not mention any access restrictions, data sensitivity, or behavior beyond retrieval. Adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no redundant words. The argument list format is concise and clear. Every sentence contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, read-only, output schema exists), the description covers the key aspects: what it does and parameter source. Could add more about output but output schema handles that. Nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage for resume_id. The description adds value by stating the parameter is 'Resume ID (from get_my_resumes)', linking to sibling tool for acquisition. This meaningfully extends the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states 'Get full resume content', which clearly identifies the action (get) and resource (resume) and specifies the scope (full content). Distinguishes from sibling 'get_my_resumes' which lists resume IDs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Indicates resume_id comes from 'get_my_resumes', providing context on origin. However, it does not explicitly state when to use this tool versus alternatives, nor provide conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vacancy_detailsGet Vacancy DetailsA

Get full details of a specific vacancy.

Args: vacancy_id: hh.ru vacancy ID (e.g., "12345678")

ParametersJSON Schema
NameRequiredDescriptionDefault
vacancy_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states the operation. It does not disclose behavioral traits such as authentication requirements, rate limits, or whether it returns full details (e.g., includes description, contacts). Minimal disclosure beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no waste. The first sentence states the purpose clearly. The second provides parameter details in a structured format. Could be slightly improved with bullet points, but efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one parameter) and has an output schema, so the description need not detail return values. However, it lacks context about prerequisites (e.g., authentication) and when to use vs. siblings. Adequate but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no description on the vacancy_id parameter (0% coverage). The description adds an example ('12345678') and clarifies it's an hh.ru vacancy ID, providing format and platform-specific context that aids correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Get full details of a specific vacancy,' using a specific verb and resource. This clearly distinguishes it from siblings like search_vacancies (listing) and apply_to_vacancy (action).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: when you have a vacancy ID and need full details. However, no explicit guidance on when not to use or alternatives like search_vacancies for initial discovery. No prerequisites or context are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_vacanciesSearch VacanciesA

Search for vacancies on hh.ru.

Args: keywords: Search keywords (e.g., "QA Automation Engineer") area: Location filter (e.g., "москва", "россия") salary_from: Minimum salary salary_to: Maximum salary experience: Experience level (no_experience, 1-3, 3-6, 6+) schedule: Work schedule (remote, office, hybrid, flexible, shift) max_pages: Maximum pages to load (1-10, default 3)

ParametersJSON Schema
NameRequiredDescriptionDefault
areaNo
keywordsYes
scheduleNo
max_pagesNo
salary_toNo
experienceNo
salary_fromNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully convey behavioral traits. It explains the search functionality and the max_pages parameter with a default of 3, but does not disclose whether the operation is read-only, any authentication needs, rate limits, or side effects. The description is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the purpose. The parameter list is clearly formatted with each on a new line and default values. It is well-structured for an AI agent to parse, though could be slightly more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool complexity (7 parameters), absence of annotations, and presence of an output schema, the description is sufficiently complete. It covers all parameters and their valid ranges. The output schema handles return value description, so the description need not expand on that. However, it could mention that the area parameter expects location names in Russian.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description provides detailed explanations for all 7 parameters, including examples (e.g., 'QA Automation Engineer' for keywords) and valid values (e.g., 'no_experience, 1-3, 3-6, 6+' for experience). This compensates for the missing schema descriptions, though minor details like currency for salary are omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search for vacancies on hh.ru', specifying the verb 'search' and resource 'vacancies'. The parameter list enumerates filtering options, distinguishing it from sibling tools like get_vacancy_details (single vacancy) and apply_to_vacancy (application).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates usage for searching vacancies with filters, but lacks explicit guidance on when to use this tool versus alternatives, such as get_recommended_vacancies. No when-not or context exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv0.1.0
    • First observedapply_to_vacancy
    • First observedclose_session
    • First observedget_employer_info
    • First observedget_my_resumes
    • First observedget_recommended_vacancies
    • First observedget_responses
    • First observedget_resume
    • First observedget_vacancy_details
    • First observedsearch_vacancies

TDQS

A3.8/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: searching vacancies, getting details, applying, managing resumes, employer info, and responses. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., search_vacancies, get_resume, apply_to_vacancy). No mixing of styles.

Tool Count5/5

9 tools are well-scoped for a job application platform, covering all core operations without being excessive or too sparse.

Completeness4/5

The tool set covers the essential job search and application workflow. Minor gaps like resume creation/editing are absent but can be handled externally.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search job vacancies, manage resumes, and apply to jobs on HeadHunter (hh.ru), Russia's largest job search platform. Includes OAuth 2.0 integration for secure job applications and an automated vacancy hunter agent with intelligent matching.
    30
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables AI assistants to access and manage HeadHunter job platform data, including vacancies, resumes, negotiations, and employer settings via 167+ tools.
    112 npm
    5
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables searching for jobs in Russia and remote positions from AI assistants using multiple job platforms (hh.ru, Trudvsem, SuperJob, and remote job aggregators).
    1
    -
  • A
    license
    A
    quality
    A
    maintenance
    Enables searching and retrieving job vacancies, resumes, employers, and salary statistics from the hh.ru API (Russia/CIS) via 19 tools, with optional token access for resume search.
    19
    67 npm
    4
    MIT