Документация по переписке для работодателя доступна в отдельной статье.
В процессе использования сайта соискатели выбирают вакансии. Для того чтобы связаться с работодателем на предмет трудоустройства, соискатель может откликнуться на выбранную вакансию. Так же и работодатель, найдя интересное резюме, может предложить соискателю рассмотреть вакансию (приглашение).
Для указанных целей служат специальные сущности — отклики/приглашения. В них
может быть указана вакансия, резюме и переписка соискателя с работодателем, в
каждый момент времени такие сущности находятся в одном из состояний. Переход
между состояниями сопровождается появлением сообщений с опциональным текстовым
описанием и прочими полями. Сообщения со статусом null
не переводят весь
отклик в новое состояние.
- Получение списка откликов
- Получение списка активных откликов
- Откликнуться на вакансию
- Просмотр отклика/приглашения
- Скрыть отклик
- Просмотр списка сообщений в отклике
- Отправка нового сообщения
- Редактирование сообщения в отклике
GET /negotiations
Помимо стандартных параметров пагинации page
и per_page
, поддерживаются:
Имя | Обязательный | Описание |
---|---|---|
order_by | нет | тип сортировки, возможные значения указаны в справочнике negotiations_order |
order | нет | направление сортировки. Возможные значения: asc , desc . |
vacancy_id | нет | фильтр по id вакансии |
status | строка | учитывать только отклики находящиеся в определенном статусе. Возможные значения указаны в справочнике applicant_negotiation_status |
has_updates | boolean | учитывать только отклики для которых есть непросмотренные сообщения |
По умолчанию отклики сортируются по последнему обновлению от новых к старым.
Успешный ответ приходит с кодом 200 OK
и содержит:
{
"found": 1,
"pages": 1,
"per_page": 20,
"page": 0,
"items": [
{
"id": "123",
"state": {
"id": "invitation",
"name": "Приглашение"
},
"hidden": false,
"created_at": "2013-10-05T19:51:38+0400",
"updated_at": "2013-10-07T18:30:57+0400",
"url": "https://api.hh.ru/negotiations/123",
"resume": {},
"vacancy": {},
"has_updates": true,
"viewed_by_opponent": true,
"messaging_status": "ok",
"decline_allowed": true
}
// , .....
]
}
где:
Имя | Тип | Описание |
---|---|---|
found | число | Количество найденных откликов ( ≥ 0 ) |
pages | число | Количество страниц с откликами ( ≥ 1 ) |
per_page | число | Количество элементов на страницу ( > 0 ) |
page | число | Номер текущей страницы ( ≥ 0 ) |
В элементе items
содержатся данные о откликах:
Имя | Тип | Описание |
---|---|---|
id | строка | Идентификатор отклика |
state | объект | Текущее состояние отклика. Разрешенные значения находятся в справочнике /dictionaries в разделе negotiations_state |
hidden | логический | Скрыт ли текущий отклик (True - отклик скрыт, False - отклик активен) |
created_at | строка | Дата и время создания отклика |
updated_at | строка | Дата и время последнего обновления отклика |
url | строка | Ссылка на полную версию отклика |
resume | объект, null | Короткое представление резюме |
vacancy | объект, null | Короткое представление вакансии |
has_updates | логический | Есть ли непросмотренные сообщения в отклике. Флаг сбрасывается при различных действиях по отклику, например, просмотре списка сообщений. |
viewed_by_opponent | логический | Был ли отклик просмотрен работодателем |
messaging_status | строка | Текущий статус переписки. Возможные значения находятся в справочнике messaging_status . |
decline_allowed | Логический | Возможно ли скрыть отклик вместе с сообщением работодателю об отказе |
В объекте вакансии ключи url
и alternate_url
могут быть null
, если вакансия недоступна (удалена).
Для получения списка активных откликов используйте параметр status=active
в запросе списка откликов
GET /negotiations?status=active
До 20.04.20 для запроса активных вакансий использвался ресурс:
GET /negotiations/active
В настоящее время он является устаревшим и поддерживается для обратной совместимости.
Для того чтобы узнать, какими резюме возможно откликнуться на конкретную вакансию, можно воспользоваться списком подходящих резюме.
POST /negotiations
Запрос нужно отправить с Content-Type = multipart/form-data
и следующими параметрами:
Имя | Обязательный | Описание |
---|---|---|
vacancy_id | да | Идентификатор вакансии, на которую происходит отклик |
resume_id | да | Идентификатор резюме, которым производится отклик |
message | да | Сопроводительное письмо к отклику. Является обязательным, если в вакансии указано, что обязательно сопроводительное письмо, максимальная длина - 10000 символов |
В случае успеха приходит статус 201 Created
, а в заголовке Location
ответа
будет содержаться ссылка на созданный отклик (кроме direct
вакансий, см. ниже)
HTTP/1.1 201 Created
...
Location: /negotiations/123
...
Для вакансий, у которых тип direct
, ответ будет приходить с кодом
303 See Other
.
HTTP/1.1 303 See Other
...
Location: http://example.com/respond/vacancy
...
Вакансии с типом direct
– это вакансии с прямым откликом. У данных вакансий
непустой response_url
– внешний url на сайт работодателя, который отдается в
заголовке Location
при попытке откликнуться. Используйте response_url
, чтобы
предложить пользователю откликнуться на вакансию на сайте работодателя вместо
стандартного механизма откликов.
400 Bad Request
– если указанные вакансия или резюме не существуют; либо для отклика необходимо пройти тест или заполнить сопроводительное письмо; либо работодатель закрыл возможность присылать отклики на вакансию; либо количество откликов в день для пользователя превышено.403 Forbidden
- если на указанную вакансию не возможно откликнуться, по причине отсутствия доступа к ней или из-за того, что уже был отклик ранее или если настройки видимости выбранного резюме не позволяют откликнуться на вакансию.
Дополнительно к HTTP коду сервер может вернуть описание причины ошибки.
GET /negotiations/{nid}
где nid - идентификатор отклика.
Возвращаемый объект полностью идентичен отдельному отклику, получаемому в списке откликов
Для скрытия отклика необходимо выполнить запрос:
DELETE /negotiations/active/{nid}
где:
- nid - идентификатор отклика
Параметры
Имя | Тип | Обязательный | Описание |
---|---|---|---|
with_decline_message | логический | нет | Должно ли быть отправлено работодателю сообщение об отказе, по умолчанию false. Возможность отправить сообщение об отказе определяется полем decline_allowed получаемым при запросе списка откликов или одного отклика |
Успешный ответ приходит с кодом 204 No Content
.
403 Forbidden
- невозможно отправить сообщение об отказе.404 Not Found
- отклик не существует.
Дополнительно к HTTP коду сервер может вернуть описание причины ошибки.
GET /negotiations/{nid}/messages
где:
- nid - идентификатор отклика
Параметры
Имя | Тип | Обязательный | Описание |
---|---|---|---|
page | число | нет | Номер страницы, значение по умолчанию 0 |
per_page | число | нет | Количество элементов на страницу, по умолчанию 20 |
{
"found": 1,
"pages": 1,
"per_page": 20,
"page": 0,
"items": [
{
"id": "123",
"viewed_by_me": true,
"viewed_by_opponent": true,
"created_at": "2013-10-07T18:30:57+0400",
"text": "Вас приглашает очень крупный иностранный банк на зарплату, о которой мечтают арабские шейхи",
"state": {
"id": "invitation",
"name": "Приглашение"
},
"author": {
"participant_type": "employer"
},
"address": null,
"assessments": [
{
"id": "123",
"name": "Динамический тест числовых способностей",
"actions": [
{
"id": "proceed",
"name": "Перейти к тестированию",
"enabled": true,
"alternate_url": "https://hh.ru/applicant/assessment/123"
}
]
}
],
"editable": false
},
{
"id": "124",
"viewed_by_me": true,
"viewed_by_opponent": false,
"created_at": "2013-10-08T10:12:23+0400",
"text": "Верблюда и коня мне!",
"state": {
"id": "text",
"name": "Текст"
},
"author": {
"participant_type": "applicant"
},
"address": null,
"editable": false
}
]
}
где:
Имя | Тип | Описание |
---|---|---|
found | число | Количество найденных сообщений |
pages | число | Количество найденных страниц с сообщениями |
per_page | число | Количество элементов на страницу |
page | число | Номер текущией страницы (начинается с 0) |
items | массив | Массив сообщений, см. ниже |
Отдельное сообщение имеет следующую структуру:
Имя | Тип | Описание |
---|---|---|
id | строка | Идентификатор сообщения |
viewed_by_me | логический | Прочитано ли сообщение смотрящим (для сообщений отправленных соискателем - всегда true ) |
viewed_by_opponent | логический | Прочитано ли сообщение работодателем (для сообщений работодателя - true ) |
editable | логический | Можно ли редактировать текст сообщения |
created_at | строка | Дата и время создания сообщения |
text | строка | Текст сообщения |
state | объект | Текущее состояние отклика. Возможные значения находятся в справочнике /dictionaries в разделе negotiations_state |
author | объект | Кто автор сообщения |
author.participant_type | строка | Роль автора сообщения. Возможные значения находятся в справочнике /dictionaries в разделе negotiations_participant_type |
address | объект, null | Адрес, привязанный к отклику/приглашению |
assessments | массив | инструменты оценки, привязанные к сообщению |
Отправка нового сообщения работодателю возможна после того, как работодатель пригласил соискателя на вакансию. Сообщения можно отправлять и в случае отказа после собеседования. Если вакансия была отправлена в архив или соискатель удалил резюме, переписка будет недоступна. Работодатель также может вручную отключить переписку для вакансии.
POST /negotiations/{nid}/messages
где:
- nid - идентификатор отклика
Параметры
Имя | Обязательный | Описание |
---|---|---|
message | да | Текст сообщения |
Успешный ответ приходит с кодом 201 Created
и содержит добавленный
комментарий:
{
"id": "124",
"viewed_by_me": true,
"viewed_by_opponent": false,
"created_at": "2013-10-08T10:12:23+0400",
"text": "Верблюда и коня мне!",
"state": {
"id": "text",
"name": "Текст"
},
"author": {
"participant_type": "applicant"
},
"address": null,
"editable": false
}
404 Not Found
- при отсутствии отклика с указанным идентификатором403 Forbidden
– если отправить сообщение не удалось
Дополнительно к HTTP коду сервер может вернуть описание причины ошибки.
При некоторых условиях текст сообщения можно редактировать после отправки. Чтобы
определить, доступно ли редактирование сообщения, необходимо использовать флаг
editable
.
На данный момент редактирование доступно только сообщения при отклике, причём оно должно быть еще не прочитано другой стороной, вакансия должна быть активна (не в архиве), а резюме быть не удалено. Но эти условия могут измениться.
PUT /negotiations/{nid}/messages/{mid}
где:
- nid - идентификатор отклика
- mid - идентификатор сообщения в отклике
Параметры
Имя | Обязательный | Описание |
---|---|---|
message | да | Текст сообщения |
В случае успешного обновления текста сообщения вернётся HTTP-статус
204 No Content
.
403 Forbidden
- в случае, когда редактирование сообщения запрещено. Например, принимающая сторона уже успела прочитать сообщение.404 Not Found
- если сообщение не было найдено.
Дополнительно к HTTP коду сервер может вернуть описание причины ошибки.