Skip to main content
Glama
theYahia

@theyahia/hh-mcp

by theYahia

search_vacancies

Search hh.ru vacancies using filters for keywords, region, role, industry, salary, experience, and work format. Returns a compact paginated summary or full JSON with raw=true.

Instructions

Search job vacancies on hh.ru by keywords, region, professional role, industry, metro, salary, experience, employment form, work format, date range and labels. Returns a compact paginated summary (pass raw:true for full JSON).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rawNoReturn the full raw hh.ru JSON instead of the compact summary.
areaNoRegion code (1=Moscow, 2=Saint Petersburg). Use get_areas / suggest_areas to find codes.
pageNoPage number (0-based)
textNoSearch query. Supports hh.ru query language (quotes, AND/OR/NOT, field:). e.g. "python AND django"
labelNoVacancy label filter (replaces the deprecated only_with_salary — use with_salary).
metroNoMetro station or line id. Use get_metro to find ids.
periodNoOnly vacancies published within the last N days (1-30). Mutually exclusive with date_from/date_to.
salaryNoDesired salary amount (sent together with currency).
date_toNoPublished up to this date (ISO 8601). Mutually exclusive with period.
currencyNoSalary currency (RUR, USD, EUR). Only applied when salary is set; defaults to RUR.
industryNoIndustry id (employer industry). Use get_industries to find ids.
order_byNoSort order
per_pageNoResults per page (1-100)
scheduleNoDEPRECATED by hh.ru — prefer work_format. Still accepted.
date_fromNoPublished from this date (ISO 8601, e.g. 2026-06-01). Mutually exclusive with period.
employmentNoDEPRECATED by hh.ru — prefer employment_form. Still accepted.
experienceNoRequired experience level
employer_idNoRestrict results to a single employer id.
work_formatNoWork format (modern replacement for schedule=remote etc.).
search_fieldNoRestrict the text search to a single field.
excluded_textNoExclude vacancies matching this text.
employment_formNoEmployment form (modern replacement for the deprecated `employment`).
professional_roleNoProfessional role id. Use get_professional_roles / suggest_positions to find ids.
Behavior3/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 behavioral disclosure. It discloses the return format ('compact paginated summary') and the raw:true option for full JSON, which is useful. However, it does not mention any other behavioral traits such as default sorting, pagination limits, or the fact that search is read-only. For a tool with no safety annotations, this is a moderate gap, but the mention of output format provides some transparency.

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, compact sentence that front-loads the primary purpose and then mentions the return format. It is efficient with no fluff, though it lists many filters which makes it slightly long. Still, it earns a high score for conciseness and structure.

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 tool's complexity (23 parameters, no output schema, no annotations), the description is relatively thin. It does not explain the contents of the 'compact summary' or any prerequisites for using certain filters (though schema descriptions cover those). For such a complex tool, the description could provide more high-level guidance, but the comprehensive schema descriptions mitigate the gap, resulting in a mid-range score.

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 description coverage is 100%, meaning every parameter already has a description. The tool description adds no additional semantic meaning beyond what the schema provides; it only lists filter categories. Per the rubric, with high schema coverage, the baseline is 3, and the description does not elevate it further.

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 the tool's verb and resource ('Search job vacancies on hh.ru') and enumerates a comprehensive list of filters (keywords, region, professional role, industry, metro, salary, experience, employment form, work format, date range, labels). It effectively distinguishes itself from sibling tools like get_vacancy (which retrieves a specific vacancy) and search_resumes (which searches resumes), making its purpose unmistakable.

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 implies usage for searching vacancies but does not explicitly mention when to use alternatives such as get_vacancy when a specific vacancy ID is known, or search_resumes for resume search. No exclusions or alternative conditions are stated, leaving the agent to infer the appropriate context from the sibling tool names and the tool's own purpose.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/theYahia/hh-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server