Оформление
Кандидаты
GET /integration/v1/candidatesОбласть доступа candidates:read. Метод отдаёт персональные данные живых людей — выдавайте эту область только системам, которым она действительно нужна.
Параметры
Общие — since, limit, cursor, см. синхронизацию. Плюс свой:
| Параметр | Значение |
|---|---|
vacancyId | отклики только на эту вакансию |
Ответ
json
{
"items": [
{
"id": "clx9m4r0000def",
"vacancyId": "clx7k2p0000abc",
"vacancyTitle": "Frontend-разработчик (React)",
"stage": "NEW",
"source": "hh",
"externalId": null,
"coverLetter": null,
"candidate": {
"name": "Иванов Иван",
"email": "ivan@example.com",
"phone": "+7 777 000 00 00",
"location": "Алматы",
"birthDate": "1995-03-01",
"gender": "Мужской",
"citizenship": ["Казахстан"]
},
"resume": {
"role": "Frontend-разработчик",
"summary": "…",
"experienceYears": 5,
"skills": ["React", "TypeScript"],
"skillsDescription": "…",
"experience": [
{
"company": "ТОО «Пример»",
"role": "Разработчик",
"period": "2020-01 — наст. время",
"description": "…"
}
],
"education": [
{ "institution": "КазНУ", "degree": "Бакалавр", "period": "2017" }
],
"additionalEducation": [],
"languages": [],
"certificates": [],
"portfolio": [],
"expectedSalary": 900000,
"expectedSalaryCurrency": "KZT",
"preferredWorkFormat": ["Удалённо"],
"preferredEmployment": "Полная занятость",
"relocation": "Готов к переезду",
"sourceUrl": "https://hh.kz/resume/abc"
},
"referral": null,
"createdAt": "2026-07-25T10:12:00.000Z",
"updatedAt": "2026-08-01T09:30:00.000Z"
}
],
"nextCursor": null
}Что здесь стоит понимать
stage — колонка канбана, на которой карточка стоит сейчас: NEW, AI_DIALOG, INTERVIEW, OFFER, ONBOARDING, REJECTION и произвольные колонки компании. Это внутренний ход найма, а не статус для показа кандидату.
source говорит, откуда человек пришёл. hh — импорт с hh.ru, manual — рекрутёр завёл карточку руками, любое другое значение — метка, которую прислала ваша система в приёме откликов.
coverLetter у кандидатов с hh всегда null. Платформа не хранит текст сопроводительного письма — у вакансии есть только признак «письмо требуется». Заполненным это поле приходит лишь у откликов, присланных через приём.
Файла резюме нет. Ни ссылки на PDF, ни вложения: платформа хранит распознанное содержимое, а не бинарь. Ссылки hh.ru требуют авторизации и живут недолго, поэтому мы их не отдаём — отдавать ссылку, которая у вас не откроется, хуже, чем не отдавать ничего. Структурного резюме в ответе достаточно, чтобы показать человека целиком; resume.sourceUrl ведёт на его страницу на hh.
AI-оценка наружу не идёт. Скоринг, автоматические вопросы, сильные и слабые стороны — это наше суждение о человеке, а не его данные, и в контракте их нет.
Переносы между вакансиями не приходят. Когда кандидата переводят на другую позицию, внутри платформы появляется техническая карточка. В выдачу она не попадает: иначе один отклик посчитался бы дважды.
Один человек — несколько кандидатов. Откликнувшийся на две вакансии приедет двумя записями с разными id. Склеивать их по email на своей стороне можно, но помните, что почта в резюме — поле необязательное.