Skip to content

Кандидаты ​

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 на своей стороне можно, но помните, что почта в резюме — поле необязательное.