Skip to main content
Glama
theYahia

HuntFlow MCP Server

by theYahia

MCP-сервер для Huntflow — вакансии, кандидаты и резюме ATS через ИИ

Если вы искали, как подключить Huntflow к нейросети, найти кандидата и прочитать его резюме не листая карточки в ATS — это оно. 14 инструментов и 2 скилла: вакансии, кандидаты, резюме, этапы подбора, справочники, аккаунты. Спрашиваете «кто застрял на этапе техинтервью» — получаете список, а не выгрузку в CSV.

npm CI License: MIT

Часть серии WWmcp (46 серверов).

Установка

Claude Desktop (stdio)

{
  "mcpServers": {
    "huntflow": {
      "command": "npx",
      "args": ["-y", "@theyahia/huntflow-mcp"],
      "env": {
        "HUNTFLOW_TOKEN": "ваш-access-token",
        "HUNTFLOW_REFRESH_TOKEN": "ваш-refresh-token"
      }
    }
  }
}

Streamable HTTP

HUNTFLOW_TOKEN=ваш-токен npx @theyahia/huntflow-mcp --http
# POST /mcp, GET /health на 127.0.0.1:3000 (PORT=...)

Smithery

npx @smithery/cli install @theyahia/huntflow-mcp

Related MCP server: HeadHunter API MCP Server

Получение токена

Настройки HuntFlow → вкладка «API-токены» (API Tokens) → создать токен. Выданная пара включает access-токен (живёт ~7 дней) и refresh-токен (~14 дней). Сервер автоматически обновляет access-токен через POST /token/refresh при истечении и сохраняет ротированную пару в файл состояния (HUNTFLOW_TOKEN_FILE), переживая рестарты. Если задать только HUNTFLOW_TOKEN без refresh — сервер проработает до истечения access-токена (~7 дней), затем потребуется новый токен.

Переменные окружения

Переменная

Обяз.

Описание

HUNTFLOW_TOKEN

да

Access-токен (Настройки → API-токены)

HUNTFLOW_REFRESH_TOKEN

нет

Refresh-токен — включает авто-обновление при 401

HUNTFLOW_TOKEN_FILE

нет

Файл для хранения ротированной пары (по умолчанию ~/.huntflow-mcp/token.json)

HUNTFLOW_BASE_URL

нет

По умолчанию https://api.huntflow.ru/v2

HUNTFLOW_USER_AGENT

нет

User-Agent (обязателен для API; есть дефолт)

HUNTFLOW_TIMEOUT_MS

нет

Таймаут запроса, мс (по умолчанию 10000)

HUNTFLOW_DISABLE_RATELIMIT

нет

1 — отключить клиентский лимит 10 req/s

PORT

нет

Порт HTTP-сервера (по умолчанию 3000)

HUNTFLOW_HTTP_HOST

нет

Хост привязки HTTP (по умолчанию 127.0.0.1)

HUNTFLOW_HTTP_SECRET

нет

Если задан — требует Authorization: Bearer <secret> на /mcp

HUNTFLOW_ALLOWED_HOSTS

нет

Список host:port для защиты от DNS-rebinding

Инструменты (14)

Инструмент

Описание

list_accounts

Список доступных аккаунтов

list_vacancies

Список вакансий (фильтры opened/state/mine, пагинация)

get_vacancy

Полная информация о вакансии

search_applicants

Поиск кандидатов (q + фильтры vacancy/status/tag)

list_vacancy_applicants

Кандидаты, прикреплённые к конкретной вакансии

get_applicant

Полная информация о кандидате

get_applicant_resumes

Список резюме (external) кандидата

get_resume

Полное тело конкретного резюме (external)

list_stages

Этапы воронки подбора (статусы вакансий)

list_coworkers

Сотрудники/рекрутеры аккаунта

list_sources

Справочник источников кандидатов

list_rejection_reasons

Справочник причин отказа

list_divisions

Справочник подразделений

list_tags

Справочник тегов

Списочные инструменты возвращают курированный набор полей (экономия токенов) + structuredContent; передайте raw: true для полного сырого ответа. Пагинация — параметры page/count.

Скиллы (Prompts)

Скилл

Описание

skill-applicants

Кандидаты на вакансию — таблица с этапами и сводкой

skill-vacancy-stats

Статистика по вакансии — воронка, сроки, конверсия

Разработка

npm install
npm test           # vitest
npm run typecheck  # tsc --noEmit
npm run lint       # eslint
npm run format     # prettier --write
npm run dev        # tsx src/index.ts
npm run build      # tsc

Лицензия

MIT


Часть WWmcp · Telegram: @vhodvai

Available Tools

14 tools
get_applicantC

Полная информация о кандидате.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYesID аккаунта
applicant_idYesID кандидата

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It only states 'full information' without mentioning return format, side effects, authentication needs, or rate limits, which is insufficient for a read operation.

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 a single concise sentence with no wasted words. However, its brevity sacrifices completeness, as it fails to provide necessary behavioral context.

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

Completeness2/5

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

The description is incomplete for a tool with no output schema or annotations. It does not explain what 'full information' entails or how the returned data differs from sibling tools, leaving the agent with insufficient context for proper invocation.

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

Parameters3/5

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

Schema coverage is 100% and both parameters have clear descriptions. The tool description adds no additional meaning beyond the schema, but the baseline is 3 given the high 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 the tool returns full details about a candidate, distinguishing it from sibling tools like get_applicant_resumes which is more specific. However, the verb is implied by the tool name rather than explicitly stated in the description.

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 (e.g., search_applicants for filtered queries, get_applicant_resumes for resumes only). The description lacks context for appropriate invocation.

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

get_applicant_resumesC

Резюме кандидата (все прикреплённые external).

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoВернуть полный сырой ответ без курирования
account_idYesID аккаунта HuntFlow
applicant_idYesID кандидата

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageNo
countNo
itemsNo
totalNo
total_itemsNo
next_page_cursorNo

TDQS

C2.9/5.0
Behavior2/5

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

The description does not disclose any behavioral aspects beyond the basic function. It does not mention that this is a read-only operation, nor any details about filtering, sorting, pagination, or response format. Since there are no annotations, the description carries the full burden and falls short.

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 extremely concise, consisting of a single short phrase. It contains no redundant words or unnecessary details, making it efficient and to the point.

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

Completeness2/5

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

The description lacks critical context such as clarifying what 'external' means, whether the response includes multiple items, or any indication of the response structure. It is too sparse for an agent to understand the full scope of the tool without additional inference.

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

Parameters3/5

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

Parameter descriptions are provided for all three parameters (account_id, applicant_id, raw), covering 100% of the schema. The tool description itself adds no extra context about how these parameters are used, so the baseline score of 3 is appropriate.

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 states the tool retrieves a candidate's resume, specifically all attached external ones. Although brief, it clearly identifies the resource and distinguishes it from other tools like get_resume which likely retrieves a single resume. The verb is implied by the tool name and the description.

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 such as get_resume or get_applicant. It does not mention any conditions, prerequisites, or typical scenarios, leaving the agent to infer usage from the name and parameter structure.

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

get_resumeB

Полное тело конкретного резюме (external) кандидата.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYesID аккаунта
external_idYesID резюме (external) из get_applicant_resumes
applicant_idYesID кандидата

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. The description is a noun phrase and does not explicitly state whether the operation is read-only or has side effects, though the 'get' prefix suggests it is safe. It does not mention any potential errors, rate limits, or other behavioral considerations.

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, concise sentence that conveys the essential purpose without any extraneous words. It is efficiently structured and easy to read.

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 simplicity of the tool, the description is largely complete for understanding what it does and what inputs it requires. It does not specify the output format, but no output schema is provided, and the description's brevity is acceptable for a straightforward retrieval. However, it could benefit from a note about when this tool is appropriate, particularly in relation to sibling resume-related tools.

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

Parameters3/5

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

All three parameters have descriptions that identify them as IDs, but they are terse and do not explain the relationships between account_id, applicant_id, and external_id. The external_id description references get_applicant_resumes, which provides some context, but the need for all three parameters remains unclear. The descriptions cover the basic meaning but lack detail about how the parameters interact.

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 that the tool retrieves the full body of a specific external resume for a candidate. It is distinct from sibling tools like get_applicant_resumes, which likely lists resumes, and the mention of 'external' adds specificity. However, it does not explicitly use a verb like 'gets' or 'fetches', though the tool name implies this.

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 gives no explicit guidance on when to use this tool versus alternatives such as get_applicant_resumes. It does not mention that the external_id must come from a prior call to get_applicant_resumes, although the parameter description hints at this. The agent is left to infer the appropriate use case without direct instructions.

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

get_vacancyC

Полная информация о вакансии.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYesID аккаунта
vacancy_idYesID вакансии

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, and the description is minimal. It does not disclose that this is a read operation, nor does it mention authentication, side effects, or rate limits, leaving the agent uninformed.

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?

A single sentence is concise and to the point. However, it is not front-loaded with the most critical information for an agent.

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 two simple parameters and no output schema, the description is minimally adequate. It does not explain what 'full information' includes, but for a straightforward retrieval tool, it may suffice.

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

Parameters3/5

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

Input schema covers 100% of parameters with descriptions for account_id and vacancy_id. The tool description adds no additional meaning beyond the schema, resulting in a baseline score.

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 tool retrieves full vacancy details. The verb 'get' and specific resource distinguish it from list_vacancies, though no explicit contrast is made.

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 like list_vacancies. The description lacks context for appropriate usage or exclusions.

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

list_accountsC

Список доступных аккаунтов HuntFlow.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoВернуть полный сырой ответ без курирования

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageNo
countNo
itemsNo
totalNo
total_itemsNo
next_page_cursorNo

TDQS

C2.5/5.0
Behavior1/5

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

With no annotations, the description is the sole source of behavioral info. It only indicates a listing operation but doesn't disclose read-only nature, return format, or any 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.

Conciseness4/5

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

The description is a single sentence with no redundancy. It is appropriately concise, though it could benefit from a more explicit verb structure.

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

Completeness2/5

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

Given the tool's simplicity, the description is minimal. It lacks context about what accounts are, what the output looks like, or any use-case information, making it incomplete for a user unfamiliar with the system.

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

Parameters3/5

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

The schema description covers the 'raw' parameter fully, and the tool description adds no extra meaning. Since coverage is 100%, the baseline score of 3 is appropriate.

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 states 'List of available HuntFlow accounts', which clearly identifies the action (list) and the resource (accounts). It is concise but lacks a verb form; however, the meaning is unambiguous.

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

Usage Guidelines1/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 sibling tools like list_vacancies or list_coworkers. There is no mention of scenarios or prerequisites.

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

list_coworkersC

Сотрудники/рекрутеры аккаунта.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoВернуть полный сырой ответ без курирования
pageNoНомер страницы (с 1)
countNoКол-во на странице
account_idYesID аккаунта HuntFlow

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageNo
countNo
itemsNo
totalNo
total_itemsNo
next_page_cursorNo

TDQS

C2.5/5.0
Behavior1/5

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

With no annotations present, the description must carry the burden of disclosing side effects. The description only states the topic and does not indicate whether the operation is read-only, whether it modifies data, or has any other behavioral implications. No such information is given.

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 extremely concise, composed of a single short phrase. It wastes no words and is easy to parse. While it could be slightly more structured with a verb, the brevity aligns with the goal of super-tools.

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

Completeness2/5

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

Given the simplicity of the tool (4 parameters, output schema present), the description is minimal. It does not explain the output structure beyond the schema, nor does it provide practical context such as when to use pagination or how to interpret results. The description is too sparse to be considered complete from a usage standpoint.

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

Parameters3/5

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

The schema provides descriptions for all four parameters (account_id, page, count, raw), achieving 100% coverage. The tool description adds no additional parameter semantics, so a baseline score of 3 is appropriate. The parameter descriptions themselves are clear enough.

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 'Employees/recruiters of the account' clearly identifies the resource (employees/recruiters) and the scope (an account). It effectively conveys the purpose of listing coworkers, though it lacks an explicit verb. It is distinct enough from sibling tools like list_accounts or list_vacancies.

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

Usage Guidelines1/5

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

No usage guidance is provided. The description does not state when to use this tool, nor does it contrast with alternatives such as list_accounts or search_applicants. It offers no context about pagination, filtering, or typical use cases.

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

list_divisionsB

Справочник подразделений (отделов).

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoВернуть полный сырой ответ без курирования
account_idYesID аккаунта HuntFlow

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageNo
countNo
itemsNo
totalNo
total_itemsNo
next_page_cursorNo

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It does not state whether the operation is read-only, what the response format is, or if any side effects occur. The 'list_' prefix suggests read-only, but this is not explicit.

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 extremely concise, containing only a single noun phrase with no redundant words. It earns full marks for brevity and absence of fluff.

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 description is minimal, lacking details about the response structure or any special behavior (e.g., pagination, ordering). While the tool name and sibling context provide some context, the description alone does not fully equip an agent to understand edge cases or expected output.

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?

Both parameters are described clearly: raw indicates returning the full uncurated response, and account_id specifies the HuntFlow account ID. The schema covers 100% of parameters with meaningful descriptions, exceeding the baseline for high 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 'Directory of divisions (departments)' clearly indicates the tool returns a list of divisions, matching its name. It is concise but sufficient to understand the core purpose, though a more explicit verb like 'retrieve' would be clearer.

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 sibling tools such as list_stages or list_sources. No prerequisites or contextual usage hints are given, leaving the agent to infer applicability from the name alone.

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

list_rejection_reasonsD

Справочник причин отказа.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoВернуть полный сырой ответ без курирования
account_idYesID аккаунта HuntFlow

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageNo
countNo
itemsNo
totalNo
total_itemsNo
next_page_cursorNo

TDQS

D1.4/5.0
Behavior1/5

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

There are no annotations, and the description gives no indication of behavior such as read-only, side effects, or data returned. The tool could perform any operation; the single phrase does not disclose whether it is safe, deterministic, or what side effects might occur.

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

Conciseness2/5

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

The description is extremely brief (one phrase), which is concise in word count but too sparse to convey any actionable meaning. It is front-loaded but fails to include even a verb, so it does not effectively earn its place as a tool description.

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

Completeness1/5

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

Given the tool's simplicity, the description is grossly incomplete. It does not specify what the tool returns (e.g., a list of rejection reasons), any filtering or ordering, or how it relates to other tools. An agent cannot infer the tool's basic function from this description.

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

Parameters3/5

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

The input schema fully documents both parameters: 'account_id' is described as the HuntFlow account ID, and 'raw' is described as returning the full raw response without curation. Since schema coverage is 100%, the baseline of 3 applies. The description adds no further semantic value beyond the schema.

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

Purpose1/5

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

The description 'Справочник причин отказа' is a noun phrase meaning 'Reference book of rejection reasons.' It does not state any verb or action, so it is unclear whether the tool lists, retrieves, or modifies data. This fails to convey the tool's fundamental purpose.

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

Usage Guidelines1/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 compared to the many sibling tools (e.g., list_vacancies, search_applicants). It does not mention any conditions, contexts, or alternatives, leaving an agent without direction on selection.

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

list_sourcesC

Справочник источников кандидатов.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoВернуть полный сырой ответ без курирования
account_idYesID аккаунта HuntFlow

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageNo
countNo
itemsNo
totalNo
total_itemsNo
next_page_cursorNo

TDQS

C2.1/5.0
Behavior1/5

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

No annotations are present, and the description gives no information about side effects, read-only behavior, authentication requirements, pagination, or rate limits. The agent cannot infer the behavioral contract from this description alone.

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 very brief and contains no redundant or excessive content. It is front-loaded with the core resource name, though it lacks action-oriented wording.

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

Completeness1/5

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

The description is too minimal to be contextually complete. It omits expected list-behavior details such as pagination, ordering, filtering, return shape, and any relationship to the account_id parameter. An agent would likely need to inspect the output schema or make assumptions.

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

Parameters3/5

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

The input schema fully describes the two parameters (account_id and raw) with their types and descriptions, so schema coverage is high. The description adds no additional meaning beyond the schema, keeping this at the baseline.

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

Purpose3/5

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

The tool name 'list_sources' clearly indicates a listing action for source resources, but the description 'Справочник источников кандидатов' is a noun phrase rather than an explicit verb phrase. It identifies the resource but does not fully state what the tool does.

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

Usage Guidelines1/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 the many sibling list tools such as list_vacancies, list_stages, or list_tags. No use cases or alternative selection criteria are mentioned.

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

list_stagesD

Этапы воронки подбора (статусы вакансий).

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoВернуть полный сырой ответ без курирования
account_idYesID аккаунта HuntFlow

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageNo
countNo
itemsNo
totalNo
total_itemsNo
next_page_cursorNo

TDQS

D1.9/5.0
Behavior1/5

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

The description gives no information about side effects, required permissions, output format, pagination, or error behavior. Since no annotations are present, the description carries the full burden but fails to disclose any behavioral details beyond the basic name.

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

Conciseness2/5

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

The description is extremely short, consisting of a single noun phrase. While it is concise, it lacks any structural elements such as a verb, a sentence, or additional context. It is too minimal to be considered well-structured.

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

Completeness1/5

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

The description is incomplete for a tool with many siblings. It does not specify what the stages are, how they relate to vacancies, whether they are ordered, or what format the response will be in. Without an output schema or additional explanation, the context is insufficient for an agent to understand the tool's full behavior.

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

Parameters3/5

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

The parameter descriptions in the input schema are complete (100% coverage) for both 'raw' and 'account_id', but the tool description adds no additional meaning. The description of 'raw' is provided only in the schema, not in the tool description, so the tool description itself does not enhance understanding.

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

Purpose3/5

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

The description 'Stages of the recruitment funnel (vacancy statuses)' clearly identifies the purpose of listing funnel stages, but it is a noun phrase rather than an explicit action verb. It conveys the general concept without specifying what is returned or how it differs from similar listing tools.

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

Usage Guidelines1/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 such as list_sources, list_rejection_reasons, or list_divisions. There is no mention of typical use cases, prerequisites, or scenarios where this tool should be preferred.

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

list_tagsD

Справочник тегов аккаунта.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoВернуть полный сырой ответ без курирования
account_idYesID аккаунта HuntFlow

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageNo
countNo
itemsNo
totalNo
total_itemsNo
next_page_cursorNo

TDQS

D1.8/5.0
Behavior1/5

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

The description gives no indication of side effects, read-only nature, permissions required, or any behavioral constraints. It does not mention what the response contains or whether any data is modified.

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

Conciseness2/5

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

The description is extremely short (one phrase), which is concise but too vague to be informative. The structure is simple, but the lack of substance makes it ineffective.

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

Completeness2/5

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

The description does not provide enough context for an agent to understand the expected output, pagination, sorting, or any special behavior. Even though an output schema exists, the description itself lacks essential details.

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

Parameters3/5

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

Both parameters have descriptions: 'raw' explains it returns the full raw response without curation, and 'account_id' identifies the HuntFlow account. However, the descriptions are minimal and do not clarify default values or when 'raw' should be set to true.

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

Purpose2/5

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

The description 'Справочник тегов аккаунта' (Account tags directory) is vague and does not explicitly state that the tool lists tags. While the tool name suggests listing, the description alone does not clearly convey the primary purpose.

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

Usage Guidelines1/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 typical use cases or relationships to sibling tools like list_sources or list_rejection_reasons.

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

list_vacanciesC

Список вакансий в HuntFlow (по умолчанию открытые).

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoВернуть полный сырой ответ без курирования
mineNoТолько вакансии, где я участник
pageNoНомер страницы (с 1)
countNoКол-во на странице (макс 100)
stateNoФильтр по состоянию (альтернатива opened)
openedNoТолько открытые вакансии
account_idYesID аккаунта HuntFlow

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageNo
countNo
itemsNo
totalNo
total_itemsNo
next_page_cursorNo

TDQS

C2.5/5.0
Behavior1/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions no side effects, permissions, rate limits, or pagination behavior, leaving the agent without insight into what happens when the tool is invoked.

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 a single, concise sentence without redundant information. It is appropriately sized for a simple list operation, though it lacks additional structure to highlight key aspects.

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

Completeness2/5

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

Given the tool has multiple parameters (including filters like state, opened, mine) and an output schema, the description is too sparse. It does not mention response format, pagination, or how the parameters relate to the returned data, leaving significant gaps for the agent.

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

Parameters3/5

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

The schema already provides full descriptions for all 7 parameters (100% coverage). The tool description adds no additional meaning or clarification beyond the schema, so the baseline score of 3 is appropriate.

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 tool lists vacancies in HuntFlow, with a note about default open state. It is distinct enough from siblings like get_vacancy and list_accounts, though it does not explicitly contrast them.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives such as search_applicants or get_vacancy. The description only provides a basic list function without any usage context or conditions.

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

list_vacancy_applicantsC

Кандидаты, прикреплённые к конкретной вакансии.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoВернуть полный сырой ответ без курирования
pageNoНомер страницы (с 1)
countNoКол-во на странице (макс 100)
statusNoФильтр по ID этапа подбора
account_idYesID аккаунта HuntFlow
vacancy_idYesID вакансии

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageNo
countNo
itemsNo
totalNo
total_itemsNo
next_page_cursorNo

TDQS

C2/5.0
Behavior1/5

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

The description provides no information about side effects, pagination, filtering, or output format. With no annotations, this leaves the agent uninformed about behavioral aspects.

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 extremely brief, consisting of a single noun phrase. While concise, it lacks essential verbs and clarifiers, making it under-informative rather than effectively concise.

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

Completeness1/5

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

The description fails to mention that the tool supports pagination (page, count), filtering by status, and raw output. Given the tool's moderate complexity, this information is necessary for correct usage, and its absence makes the description incomplete.

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

Parameters3/5

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

The schema descriptions cover all six parameters with clear definitions. The tool description adds no additional context about parameters, so it neither improves nor detracts from the schema coverage.

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

Purpose3/5

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

The description 'Candidates attached to a specific vacancy' identifies the resource (candidates) and scope (vacancy) but does not explicitly state the action (list/get). This makes it somewhat clear but relies on the tool name to infer the operation.

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

Usage Guidelines1/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 like search_applicants. The description lacks any conditional usage instructions.

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

search_applicantsB

Поиск кандидатов по имени/email/телефону и фильтрам (вакансия, этап, тег).

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoПоиск по имени, email или телефону
rawNoВернуть полный сырой ответ без курирования
tagNoФильтр по ID тега
pageNoНомер страницы (с 1)
countNoКол-во на странице (макс 100)
statusNoФильтр по ID этапа подбора
vacancyNoФильтр по ID вакансии
account_idYesID аккаунта HuntFlow

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageNo
countNo
itemsNo
totalNo
total_itemsNo
next_page_cursorNo

TDQS

B3.2/5.0
Behavior3/5

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

The description clearly indicates a search operation, implying read-only behavior. However, with no annotations, the description carries the full burden for behavioral transparency; it does not explicitly state side effects (e.g., no modification) or mention result format nuances like the 'raw' parameter's effect.

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, concise sentence that immediately conveys the tool's core function and filtering criteria with no redundancy or unnecessary details.

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 simplicity of the tool and the rich schema documentation, the description is largely complete for an agent to understand the purpose. It could slightly benefit from explicitly stating that results are a list of candidates or that pagination is supported, but these are indirectly inferable from the parameters.

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

Parameters3/5

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

Schema coverage is 100% and each parameter has a meaningful description. The tool description itself adds no extra parameter insight beyond what the schema already provides, so the baseline of 3 is appropriate.

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?

States a specific verb (search) and resource (candidates) with clear filtering dimensions (name/email/phone, vacancy, stage, tag). However, it does not explicitly differentiate from sibling tools like list_vacancy_applicants, which may also return candidate lists in a narrower context.

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

Usage Guidelines1/5

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

Provides no guidance on when to use this tool versus alternatives such as list_vacancy_applicants or get_applicant. An agent is left to infer the appropriate context from the tool's name and description alone.

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. 12 tool updatesv1.1.1
    • Changedget_applicant_resumes2 fields changed
      • addedInput schema / properties / raw
        Added value: +{
        +  "description": "Вернуть полный сырой ответ без курирования",
        +  "type": "boolean"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "count": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "items": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "account_source": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "auth_type": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "created": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "id": {
        +            "type": "number"
        +          },
        +          "updated": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "next_page_cursor": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "page": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "total": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "total_items": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
    • Addedget_resume
    • Changedlist_accounts3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / raw
        Added value: +{
        +  "description": "Вернуть полный сырой ответ без курирования",
        +  "type": "boolean"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "count": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "items": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "id": {
        +            "type": "number"
        +          },
        +          "member_type": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "name": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "nick": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "next_page_cursor": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "page": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "total": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "total_items": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
    • Addedlist_coworkers
    • Addedlist_divisions
    • Addedlist_rejection_reasons
    • Addedlist_sources
    • Changedlist_stages2 fields changed
      • addedInput schema / properties / raw
        Added value: +{
        +  "description": "Вернуть полный сырой ответ без курирования",
        +  "type": "boolean"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "count": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "items": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "id": {
        +            "type": "number"
        +          },
        +          "name": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "order": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "removed": {
        +            "type": [
        +              "boolean",
        +              "null"
        +            ]
        +          },
        +          "type": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "next_page_cursor": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "page": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "total": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "total_items": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
    • Addedlist_tags
    • Changedlist_vacancies6 fields changed
      • changedInput schema / properties / count / description
        Previous value: -"Количество"New value: +"Кол-во на странице (макс 100)"
      • addedInput schema / properties / mine
        Added value: +{
        +  "description": "Только вакансии, где я участник",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / page
        Added value: +{
        +  "default": 1,
        +  "description": "Номер страницы (с 1)",
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / raw
        Added value: +{
        +  "description": "Вернуть полный сырой ответ без курирования",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / state
        Added value: +{
        +  "description": "Фильтр по состоянию (альтернатива opened)",
        +  "enum": [
        +    "OPEN",
        +    "CLOSED",
        +    "HOLD"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "count": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "items": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "company": {
        +            "anyOf": [
        +              {
        +                "type": [
        +                  "string",
        +                  "number"
        +                ]
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "created": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "id": {
        +            "type": "number"
        +          },
        +          "money": {
        +            "$ref": "#/properties/items/items/properties/company"
        +          },
        +          "position": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "priority": {
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "state": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "next_page_cursor": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "page": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "total": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "total_items": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
    • Addedlist_vacancy_applicants
    • Changedsearch_applicants8 fields changed
      • changedInput schema / properties / count / description
        Previous value: -"Количество"New value: +"Кол-во на странице (макс 100)"
      • addedInput schema / properties / page
        Added value: +{
        +  "default": 1,
        +  "description": "Номер страницы (с 1)",
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • changedInput schema / properties / q / description
        Previous value: -"Поиск по имени или email"New value: +"Поиск по имени, email или телефону"
      • addedInput schema / properties / raw
        Added value: +{
        +  "description": "Вернуть полный сырой ответ без курирования",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / status
        Added value: +{
        +  "description": "Фильтр по ID этапа подбора",
        +  "type": "number"
        +}
      • addedInput schema / properties / tag
        Added value: +{
        +  "description": "Фильтр по ID тега",
        +  "type": "number"
        +}
      • addedInput schema / properties / vacancy
        Added value: +{
        +  "description": "Фильтр по ID вакансии",
        +  "type": "number"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "count": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "items": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "created": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "email": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "first_name": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "id": {
        +            "type": "number"
        +          },
        +          "last_name": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "middle_name": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "phone": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "position": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "next_page_cursor": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "page": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "total": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    },
        +    "total_items": {
        +      "type": [
        +        "number",
        +        "null"
        +      ]
        +    }
        +  },
        +  "type": "object"
        +}
  2. 7 tool updatesv1.1.0
    • First observedget_applicant
    • First observedget_applicant_resumes
    • First observedget_vacancy
    • First observedlist_accounts
    • First observedlist_stages
    • First observedlist_vacancies
    • First observedsearch_applicants

TDQS

C2.8/5.0

Scored across 14 tools

Disambiguation5/5

Each tool has a clear, unique purpose covering vacancies, applicants, resumes, and reference data with no overlapping functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., get_vacancy, list_tags, search_applicants), making them predictable and readable.

Tool Count5/5

14 tools is within the recommended 3-15 range and appropriate for the breadth of recruitment data exposed; no redundant or unnecessary tools.

Completeness2/5

The toolkit is entirely read/search/list-oriented; it lacks write operations such as creating or updating applicants/vacancies, changing statuses, or adding notes, which are core to a recruitment workflow.

Maintenance

ActivityMaintained
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.
    83 npm
    5
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables to interact with hh.ru (a Russian job platform) through browser automation, allowing users to search for jobs, manage resumes, apply to vacancies with cover letters, and track application statuses via natural language.
    9
    3
    -
  • F
    license
    Not graded
    quality
    C
    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
    -