hr
HR-инструменты: поиск кандидатов, оценка match, интервью, управление рекрутментом.
使うべきか
品質と安全性
検出事項(2)
- LOWask_about_experience 内
- LOWget_faq 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"hr": {
"url": "https://meetslava.ru/mcp"
}
}
}リモートエンドポイント
https://meetslava.ru/mcpstreamable-httpできること
ツール一覧
ツール(13)
⚪recruiter_context(email, company, name, role, notes, ...)
Представьтесь: компания, имя, роль. Кандидат увидит, кто им интересуется, а вам откроются контакты (get_contacts). Укажите email, под которым вошли. / Introduce yourself to unlock contacts.
入力スキーマ
{
"type": "object",
"properties": {
"email": {
"description": "Email рекрутёра (ключ лида)",
"type": "string"
},
"company": {
"description": "Компания",
"type": [
"string",
"null"
],
"default": null
},
"name": {
"description": "Имя рекрутёра",
"type": [
"string",
"null"
],
"default": null
},
"role": {
"description": "Роль/должность",
"type": [
"string",
"null"
],
"default": null
},
"notes": {
"description": "Заметки: что ищете, контекст",
"type": [
"string",
"null"
],
"default": null
},
"candidate": {
"description": "Slug кандидата (из search_candidates). В личном режиме не обязательно: отправьте null или не передавайте параметр.",
"type": [
"string",
"null"
],
"default": null
}
},
"required": [
"email"
]
}🟢get_contacts(candidate)
Прямые контакты кандидата (телефон, email, мессенджеры). Выдаются после того, как вы представились через recruiter_context. / Direct contacts; introduce yourself via recruiter_context first.
入力スキーマ
{
"type": "object",
"properties": {
"candidate": {
"description": "Slug кандидата (из search_candidates). В личном режиме не обязательно: отправьте null или не передавайте параметр.",
"type": [
"string",
"null"
],
"default": null
}
}
}⚪ask_about_experience(question, candidate)
Точечный вопрос про опыт кандидата: «работал ли с X?», «что делал в Y?». Сервер отдаёт релевантные данные — вывод формирует ассистент. / Ask a specific question about the candidate's background.
入力スキーマ
{
"type": "object",
"properties": {
"question": {
"description": "Вопрос рекрутёра, до 1000 символов",
"type": "string"
},
"candidate": {
"description": "Slug кандидата (из search_candidates). В личном режиме не обязательно: отправьте null или не передавайте параметр.",
"type": [
"string",
"null"
],
"default": null
}
},
"required": [
"question"
]
}🟡message_candidate(text, recruiterContact, subject, conversationId, candidate)
Переписка с кандидатом. Без параметров text/conversationId — список тредов; с conversationId — история треда; с text — отправить сообщение (кандидат отвечает в мессенджере). / Messaging: list threads, read a thread, or send a message.
入力スキーマ
{
"type": "object",
"properties": {
"text": {
"description": "Текст сообщения, до 3000 символов. Не указан — режим чтения (треды/история)",
"type": [
"string",
"null"
],
"default": null
},
"recruiterContact": {
"description": "Контакт рекрутёра для ответа (обязателен при открытии нового треда)",
"type": [
"string",
"null"
],
"default": null
},
"subject": {
"description": "Тема треда (обязательно при открытии нового треда), до 200 символов",
"type": [
"string",
"null"
],
"default": null
},
"conversationId": {
"description": "Id существующего треда, чтобы дописать в него или прочитать историю",
"type": [
"integer",
"null"
],
"default": null
},
"candidate": {
"description": "Slug кандидата (из search_candidates). В личном режиме не обязательно: отправьте null или не передавайте параметр.",
"type": [
"string",
"null"
],
"default": null
}
}
}🟡send_vacancy(company, vacancyText, recruiterContact, vacancyId, candidate, ...)
Отправить кандидату вакансию — первый шаг, если он вам подходит. В личном режиме кандидат один: параметр candidate указывать НЕ нужно. recruiterContact тоже можно не указывать — подставится ваш email из авторизации. Кандидат получит уведомление и сможет ответить. / Send a vacancy; candidate and recruiterContact are optional here.
入力スキーマ
{
"type": "object",
"properties": {
"company": {
"description": "Название компании (для инлайн-отправки; при vacancyId игнорируется)",
"type": "string"
},
"vacancyText": {
"description": "Описание вакансии до 3000 символов (для инлайн; при vacancyId игнорируется)",
"type": "string"
},
"recruiterContact": {
"description": "Контакт рекрутёра для ответа. Можно не указывать — возьмётся ваш email из авторизации.",
"type": [
"string",
"null"
],
"default": null
},
"vacancyId": {
"description": "id сохранённой вакансии (из list_vacancies). Указан — берётся она + HR-профиль, инлайн-текст игнорируется",
"type": [
"integer",
"null"
],
"default": null
},
"candidate": {
"description": "Slug кандидата (из search_candidates). В личном режиме не обязательно: отправьте null или не передавайте параметр.",
"type": [
"string",
"null"
],
"default": null
},
"resumeId": {
"description": "ID резюме кандидата (из list_resumes). Если не указано — используется primary резюме.",
"type": [
"integer",
"null"
],
"default": null
}
},
"required": [
"company",
"vacancyText"
]
}🟢get_references(candidate)
Рекомендации о кандидате от бывших коллег и руководителей (с их согласия) — trust-сигнал перед офером. / References from former colleagues and managers.
入力スキーマ
{
"type": "object",
"properties": {
"candidate": {
"description": "Slug кандидата (из search_candidates). В личном режиме не обязательно: отправьте null или не передавайте параметр.",
"type": [
"string",
"null"
],
"default": null
}
}
}🟢get_profile(lang, candidate)
Визитка кандидата: имя, город, краткое описание + ссылки (GitHub, LinkedIn, сайт, образцы работ). Начните знакомство отсюда. lang: ru (по умолчанию) или en. / Candidate overview: name, city, summary, GitHub/LinkedIn/website links.
入力スキーマ
{
"type": "object",
"properties": {
"lang": {
"description": "Язык: ru или en",
"type": [
"string",
"null"
],
"default": null
},
"candidate": {
"description": "Slug кандидата. В личном режиме не обязательно: отправьте null или не передавайте параметр.",
"type": [
"string",
"null"
],
"default": null
}
}
}⚪match_vacancy(vacancyText, lang, candidate)
Вставьте текст описания вакансии — получите структурированную оценку соответствия: совпавшие навыки, сеньорность, условия выхода. / Paste a job description to evaluate candidate fit.
入力スキーマ
{
"type": "object",
"properties": {
"vacancyText": {
"description": "Текст описания вакансии, до 5000 символов",
"type": "string"
},
"lang": {
"description": "Язык публичных секций: ru (по умолчанию) или en",
"type": [
"string",
"null"
],
"default": null
},
"candidate": {
"description": "Slug кандидата (из search_candidates). В личном режиме не обязательно: отправьте null или не передавайте параметр.",
"type": [
"string",
"null"
],
"default": null
}
},
"required": [
"vacancyText"
]
}🔴manage_interview(action, proposedSlots, companyName, channel, interviewType, ...)
Назначить кандидату интервью и управлять им. action=propose — предложить слоты (нужны companyName, proposedSlots ISO-8601 UTC, channel, interviewType, recruiterContact); action=reschedule — заменить слоты (нужны conversationId, proposedSlots); action=cancel — отозвать приглашение (нужен conversationId). / Propose, reschedule or cancel an interview with the candidate.
入力スキーマ
{
"type": "object",
"properties": {
"action": {
"description": "Действие: propose | reschedule | cancel",
"type": "string"
},
"proposedSlots": {
"description": "1-5 слотов в ISO-8601 UTC, напр. ['2026-07-17T15:00:00Z'] (propose/reschedule)",
"type": [
"array",
"null"
],
"items": {
"type": [
"string",
"null"
]
},
"default": null
},
"companyName": {
"description": "Название компании (propose)",
"type": [
"string",
"null"
],
"default": null
},
"channel": {
"description": "Канал связи: Zoom, Google Meet, Phone, ... (propose)",
"type": [
"string",
"null"
],
"default": null
},
"interviewType": {
"description": "Тип интервью: intro, technical, cultural, final (propose)",
"type": [
"string",
"null"
],
"default": null
},
"recruiterContact": {
"description": "Контакт рекрутёра для подтверждения (propose)",
"type": [
"string",
"null"
],
"default": null
},
"durationMinutes": {
"description": "Длительность в минутах (propose/reschedule, опц.)",
"type": [
"integer",
"null"
],
"default": null
},
"notes": {
"description": "Заметки: что обсуждаем, кто на звонке (propose, опц.)",
"type": [
"string",
"null"
],
"default": null
},
"conversationId": {
"description": "conversationId треда интервью из message_candidate (reschedule/cancel)",
"type": [
"integer",
"null"
],
"default": null
},
"reason": {
"description": "Причина отмены (cancel, опц.)",
"type": [
"string",
"null"
],
"default": null
},
"candidate": {
"description": "Slug кандидата. В личном режиме не обязательно: отправьте null или не передавайте параметр.",
"type": [
"string",
"null"
],
"default": null
}
},
"required": [
"action"
]
}🟡assessment(action, title, body, recruiterContact, deadlineIso, ...)
Тестовое задание кандидату. action=send — отправить (нужны title, body, recruiterContact; кандидат загрузит решение файлом); action=status — статус и ссылка на скачивание решения (нужен assessmentId). / Send a take-home assessment or check its status and download link.
入力スキーマ
{
"type": "object",
"properties": {
"action": {
"description": "Действие: send | status",
"type": "string"
},
"title": {
"description": "Короткое название задания, до 200 символов (send)",
"type": [
"string",
"null"
],
"default": null
},
"body": {
"description": "Текст задания, до 5000 символов (send)",
"type": [
"string",
"null"
],
"default": null
},
"recruiterContact": {
"description": "Контакт рекрутёра для вопросов (send)",
"type": [
"string",
"null"
],
"default": null
},
"deadlineIso": {
"description": "Опц. дедлайн в ISO-8601 UTC (send)",
"type": [
"string",
"null"
],
"default": null
},
"assessmentId": {
"description": "assessmentId из ответа send (status)",
"type": [
"integer",
"null"
],
"default": null
},
"candidate": {
"description": "Slug кандидата. В личном режиме не обязательно: отправьте null или не передавайте параметр.",
"type": [
"string",
"null"
],
"default": null
}
},
"required": [
"action"
]
}🟢get_resume(candidate, resumeId)
Полное резюме кандидата: опыт по местам работы, достижения, навыки. Начните отсюда, если нужна полная картина. / Full resume: work history, achievements, skills.
入力スキーマ
{
"type": "object",
"properties": {
"candidate": {
"description": "Slug кандидата (из search_candidates). В личном режиме не обязательно: отправьте null или не передавайте параметр.",
"type": [
"string",
"null"
],
"default": null
},
"resumeId": {
"description": "ID резюме (из list_resumes). Если не указано — возвращается primary резюме кандидата.",
"type": [
"integer",
"null"
],
"default": null
}
}
}🟢get_conditions(lang, candidate)
На каких условиях кандидат готов выйти: зарплатные ожидания (base, бонус, equity, deal-breakers), срок выхода, формат работы, гео/таймзона, виза, релокация. lang: ru (по умолчанию) или en. / Candidate's terms: compensation expectations, notice period, work format, location, visa.
入力スキーマ
{
"type": "object",
"properties": {
"lang": {
"description": "Язык: ru или en",
"type": [
"string",
"null"
],
"default": null
},
"candidate": {
"description": "Slug кандидата. В личном режиме не обязательно: отправьте null или не передавайте параметр.",
"type": [
"string",
"null"
],
"default": null
}
}
}🟢get_faq(lang, candidate)
Ответы кандидата на типовые вопросы рекрутёров — проверьте здесь, прежде чем писать ему. / Candidate's answers to common recruiter questions.
入力スキーマ
{
"type": "object",
"properties": {
"lang": {
"description": "Язык: ru или en",
"type": [
"string",
"null"
],
"default": null
},
"candidate": {
"description": "Slug кандидата (из search_candidates). В личном режиме не обязательно: отправьте null или не передавайте параметр.",
"type": [
"string",
"null"
],
"default": null
}
}
}推奨プロンプト
get_contactsget_contactsコミュニティ
エビデンス