hh-radar
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DATABASE_URL | Yes | PostgreSQL connection string for the hh-radar database, e.g. postgresql+psycopg://hh:hh@localhost:5433/hh_radar |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_vacanciesA | Полнотекстовый поиск вакансий по словам в названии и описании (Postgres tsvector, синтаксис websearch: кавычки для точной фразы, минус перед словом — исключить его). Используйте, когда запрос содержит конкретные термины: должность, технологию, компанию. Для поиска по смыслу и синонимам без точных слов используйте semantic_search. Пустой query — не ошибка, вернутся вакансии по фильтрам, отсортированные по дате публикации. Описание в каждом результате обрезано; полный текст — через get_vacancy по id. |
| get_vacancyA | Полная карточка одной вакансии по её id из hh.ru: незакрытое описание, работодатель, все требуемые навыки, ссылка на hh.ru. Используйте после search_vacancies/semantic_search, чтобы изучить конкретную вакансию подробно, или перед compare_to_profile. |
| skill_statsA | Статистика по навыкам: какие технологии чаще всего требуются в подходящих под фильтр вакансиях, их доля и медианная зарплата вакансий, где навык нужен. Используйте для вопросов «что сейчас востребовано» или «что учить». Не возвращает список вакансий — для него используйте search_vacancies. |
| market_overviewA | Общий срез рынка по фильтру: сколько вакансий, у скольких указана зарплата и её персентили (p25/p50/p75), доля удалённых, разбивка по требуемому опыту и топ-10 работодателей. Используйте для агрегированных вопросов вида «какие сейчас зарплаты» или «много ли удалёнки» — не для списка конкретных вакансий. |
| compare_to_profileA | Честно сопоставляет вакансию с профилем кандидата (profile.yaml): verdict good/stretch/no, совпавшие и недостающие навыки, а если verdict «no» — конкретные причины отказа (blockers): зарплата ниже минимума, требуемый опыт выше принимаемого, не подходящая занятость, не удалённая работа, стоп-слово из red_flags. Используйте перед тем, как рекомендовать вакансию кандидату как хороший вариант — не оценивайте пригодность вакансии самостоятельно. По умолчанию грузит profile.yaml из корня проекта (шаблон — profile.example.yaml); profile_path позволяет указать другой файл. |
| semantic_searchA | Поиск вакансий по смыслу через векторные эмбеддинги описаний, а не по точным словам. Используйте, когда запрос описывает задачу своими словами или ищет по концепции без гарантии, что в вакансии есть именно эти слова. Для поиска по конкретным терминам используйте search_vacancies — он быстрее и не требует установленного extra |
| db_statusA | Служебная информация о состоянии базы: сколько вакансий/работодателей/навыков загружено, сколько описаний уже проиндексировано эмбеддингами, какой моделью они посчитаны, за какой период данные и когда их в последний раз собирали. Вызывайте в начале работы, чтобы понимать границы доступных данных и не выдумывать вакансии или статистику, которых в базе нет. Параметров не принимает. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool targets a distinct function: lexical vs semantic search, individual vacancy detail, skill statistics, market aggregates, candidate-fit comparison, and database metadata. The overlapping search/stat tools explicitly cross-reference each other to prevent misselection.
Most names are lowercase snake_case and use clear noun/verb tokens, but the pattern is mixed: search_vacancies/get_vacancy/compare_to_profile are verb-first, while skill_stats/market_overview/db_status are noun-first. Still predictable and readable.
Seven tools cover the job-search niche without redundancy; each one serves a clear use case and none feel like filler.
The surface covers the full workflow: discover via search/semantic search, inspect via get_vacancy, analyze via skills/market tools, evaluate fit via compare_to_profile, and understand data boundaries via db_status. No critical missing operation for the stated purpose.