- Возможные варианты публикации вакансий
- Публикация вакансий
- Условия заполнения полей при добавлении и редактировании вакансий
- Редактирование вакансий
- Продление вакансий
- Информация о возможности продления вакансии
- Список опубликованных вакансий
- Архивация вакансий
- Список архивных вакансий
- Удаление вакансий
- Список удаленных вакансий
- Восстановление из удаленных
- Статистика по вакансии
Смотрите также:
Метод нужен, чтобы понять, может ли менеджер публиковать вакансии и какие типы вакансий ему доступны. Возвращает все возможные типы публикации.
GET /employers/{employer_id}/managers/{manager_id}/vacancies/available_types
где:
employer_id
- идентификатор работодателя, который можно узнать в информации о текущем пользователе.manager_id
- идентификатор менеджера. Можно узнать в информации о текущем пользователе.
В случае успешного выполнения запроса, будет возвращён статус 200 OK
.
В теле ответа будет содержаться информация о вариантах публикации вакансии:
{
"items": [
{
"name": "Стандарт: без обновления",
"description": "Автоматически поднимается в поисковой выдаче вакансий каждые 3 дня; размещается на 30 дней. Вакансия видна только приглашенным кандидатам. Такую вакансию нельзя будет найти через поиск и увидеть неприглашенным кандидатам",
"available_publications_count": 21,
"vacancy_billing_type": {
"id": "standart"
},
"vacancy_types": [
{
"id": "closed"
},
{
"id": "open"
}
],
"publications": [
{
"name": "Москва и Московская область",
"count": 10,
"areas_url": "https://api.hh.ru/areas?price_region_id=1000224&vacancy_publication_flag=true"
},
{
"name": "В любом регионе",
"count": 11,
"areas_url": "https://api.hh.ru/areas?vacancy_publication_flag=true"
}
]
},
{
"name": "Премиум: неделя в топе",
"description": "Первые 7 дней публикация выделена цветом, брендирована логотипом вашей компании и находится вверху поисковой выдачи; вакансия отправляется в рассылке подходящим соискателям; размещается на 30 дней.",
"available_publications_count": 0,
"vacancy_billing_type": {
"id": "free"
},
"vacancy_types": [
{
"id": "open"
}
],
"publications": []
}
]
}
Каждый элемент из items
может обладать следующими полями:
Имя | Тип | Описание |
---|---|---|
name | string | Название типа публикации |
description | string | Описание |
available_publications_count | number | Общее количество публикаций, доступных данному менеджеру. Равняется сумме publications[].count или значению, выставленному в квотах, если оно меньше |
vacancy_billing_type.id | string | Биллинговый тип из справочника vacancy_billing_type. |
vacancy_types | array | Список типов вакансии |
vacancy_types[].id | string | Тип вакансии из справочника vacancy_type |
publications | array | Список регионов, где может быть опубликована вакансия и количество публикаций, доступных работодателю |
publications[].name | string | Название региона |
publications[].count | number | Количество публикаций в регионе, доступных работодателю |
publications[].areas_url | string | URL на список регионов, в которых можно опубликовать вакансию данного типа. Список возвращается в древовидной структуре и публикация вакансий возможна только в конечных (листовых) узлах дерева. Они помечеты флагом can_publish=true |
Значения vacancy_billing_type.id
и vacancy_type.id
соответствуют параметрам billing_type
и type
при публикации вакансии
404 Not Found
- текущий пользователь - не работодатель, текущий пользователь пытается запросить данные для другого менеджера или у менеджера нет доступа к публикации вакансий404 Not Found
- менеджер или компания не существуют или не доступны для текущего пользователя
POST /vacancies
дополнительно можно указать query-параметры:
-
ignore_duplicates=true
- форсировать добавление дубликата. -
with_professional_roles=true
- для публикации вакансии с профессиональными ролями вместо специализаций
При указании параметра with_professional_roles=true
поле specializations
перестает быть обязательным и игнорируется, а массив professional_roles
становится обязательным, при этом количество его элементов равно 1.
Без этого параметра массив professional_roles
необязателен и игнорируется
В качестве тела запроса необходимо передавать JSON с данными размещаемой вакансии, формат данных аналогичен просмотру вакансии, но также содержит некоторые дополнительные поля.
В соответствии с законом РФ № 1032-1 от 19.04.1991 в ред. от 02.07.2013 г. запрещено размещать информацию, ограничивающую права или устанавливающую преимущества для соискателей по полу, возрасту, семейному положению и другим обстоятельствам, не связанным с деловыми качествами работников.
- при успешной публикации будут списаны соответствующие услуги.
- все вакансии проходят ручную модерацию.
- в течение нескольких минут после публикации вакансия станет доступна в поиске.
{
"description": "<p>— Eh bien, mon prince. Gênes et Lucques ne sont plus que des apanages, des поместья, de la famille Buonaparte. Non, je vous préviens que si vous ne me dites pas que nous avons la guerre, si vous vous permettez encore de pallier toutes les infamies, toutes les atrocités de cet Antichrist (ma parole, j'y crois) — je ne vous connais plus, vous n'êtes plus mon ami, vous n'êtes plus мой верный раб, comme vous dites. Ну, здравствуйте, здравствуйте.</p><p><em>Je vois que je vous fais peur</em>, садитесь и рассказывайте.</p>",
"key_skills": [
{
"name": "Холодные продажи"
},
{
"name": "Проведение промо акций"
}
],
"schedule": {
"id": "flyInFlyOut"
},
"experience": {
"id": "moreThan6"
},
"employment": {
"id": "full"
},
"name": "Менеджер по продажам",
"area": {
"id": "1"
},
"type": {
"id": "open"
},
"specializations": [
{
"id": "17.324"
},
{
"id": "3.148"
}
],
"professional_roles": [
{
"id": "59"
}
],
"response_letter_required": true,
"salary": {
"from": 100,
"to": 500,
"currency": "USD",
"gross": true
},
"contacts": {
"name": "Иванов Иван",
"email": "[email protected]",
"phones": [
{
"country": "7",
"city": "495",
"number": "1234567",
"comment": "с 10 до 20"
}
]
},
"accept_handicapped": true,
"accept_kids": false,
"code": "код-1234",
"response_notifications": true,
"allow_messages": true,
"billing_type": {
"id": "standard"
},
"address": {
"id": "123",
"show_metro_only": true
},
"manager": {
"id": "321"
},
"test": {
"id": "42",
"required": true
},
"branded_template": {
"id": "marketing"
},
"driver_license_types": [
{
"id": "A"
},
{
"id": "B"
}
],
"accept_incomplete_resumes": false,
"working_days": [
{
"id": "only_saturday_and_sunday"
}
],
"working_time_intervals": [
{
"id": "from_four_to_six_hours_in_a_day"
}
],
"working_time_modes": [
{
"id": "start_after_sixteen"
}
],
"accept_temporary": true
}
[]
(например, в полях специализации и контактах) обозначает, что значение данного ключа является массивом объектов.a.b
обозначает объектa
с ключомb
описанного типа.
Путь | JSON тип | Описание |
---|---|---|
name | string | название |
description | string | описание в html, не менее 200 символов |
key_skills | array | список ключевых навыков, не более 30 |
key_skills[].name | string | название ключевого навыка |
specializations | array | список специализаций |
specializations[].id | string | специализация из справочника |
professional_roles | array | массив профессиональных ролей с количеством элементов равным 1 (если передать больше возникнет ошибка is_too_long ) при использовании параметра with_professional_roles=true |
professional_roles[].id | string | индификатор профессиональной роли из справочника |
area.id | string | город публикации из справочника |
type.id | string | тип из справочника vacancy_type |
billing_type.id | string | биллинговый тип из справочника vacancy_billing_type |
code | string или null | внутренний код вакансии |
department.id | string | департамент из справочника, от имени которого размещается вакансия (если данная возможность доступна для компании) |
salary | object или null | зарплата |
salary.from | numeric или null | нижняя граница зарплаты |
salary.to | numeric или null | верхняя граница зарплаты |
salary.gross | boolean | признак что границы зарплаты указаны до вычета налогов |
salary.currency | string | код валюты из справочника currency |
address | object или null | адрес |
address.id | string | адрес из списка доступных адресов работодателя |
address.show_metro_only | boolean | показывать только метро для указанного адреса |
experience.id | string или null | требуемый опыт работы из справочника experience |
schedule.id | string или null | график работы из справочника schedule |
employment.id | string | тип занятости из справочника employment |
contacts | object или null | контактная информация |
contacts.name | string | контактное лицо |
contacts.email | string | |
contacts.phones | array | список телефонов для связи |
contacts.phones[].country | string | код страны |
contacts.phones[].city | string | код города |
contacts.phones[].number | string | телефон |
contacts.phones[].comment | string или null | комментарий (удобное время для звонка по этому номеру) |
test | object или null | тест для вакансии |
test.id | string | тест, который будет добавлен в вакансию |
test.required | boolean | требовать прохождение теста для отклика на вакансию |
response_url | string | URL отклика для прямых вакансий (type.id=direct ) |
custom_employer_name | string | название компании для анонимных вакансий (type.id=anonymous ), например "крупный российский банк" |
manager.id | string или null | контактное лицо (менеджер) по размещаемой вакансии, по умолчанию текущий пользователь |
response_notifications | boolean или null | уведомлять о новых откликах |
allow_messages | boolean или null | возможность переписки с кандидатами по данной вакансии |
response_letter_required | boolean или null | требовать сопроводительное письмо |
accept_handicapped | boolean или null | указание, что вакансия доступна для соискателей с инвалидностью |
accept_kids | boolean или null | указание, что вакансия доступна для соискателей от 14 лет подробнее |
branded_template.id | string или null | брендированное оформление вакансии из справочника |
driver_license_types | array или null | список требуемых категорий водительских прав |
driver_license_types[].id | string | категория водительских прав. элемент справочника driver_license_types |
accept_incomplete_resumes | boolean или null | разрешен ли отклик на вакансию неполным резюме |
working_days | array или null | список рабочих дней |
working_days[].id | string | рабочие дни из справочника working_days |
working_time_intervals | array или null | список с временными интервалами работы |
working_time_intervals[].id | string | временной интервал работы из справочника working_time_intervals |
working_time_modes | array или null | список режимов времени работы |
working_time_modes[].id | string | режимы времени работы из справочника working_time_modes |
accept_temporary | boolean или null | указание, что вакансия доступна с временным трудоустройством |
При успешном выполнении запроса вернется 201 Created
. В заголовке Location
будет
содержаться ссылка на добавленную вакансию:
HTTP/1.1 201 Created
Location: /vacancies/78789890
В теле ответа возвращается идентификатор добавленной вакансии:
{
"id": "78789890"
}
403 Forbidden
– добавление вакансий недоступно данному пользователю.-
403 Forbidden
– добавление вакансии недоступно, так как вакансия с похожими данными уже опубликована у данного работодателя. Если вы уверены, что добавление дубликата необходимо, вы можете добавить к запросу параметрPOST /vacancies?ignore_duplicates=true
. 400 Bad Request
– ошибки в полях при добавлении вакансии. Дополнительно придет расширенная информация по ошибкам.
Дополнительно к HTTP коду сервер может вернуть описание причины ошибки.
При создании и редактировании вакансии значения в полях проходят проверки (валидация) - формат использования полей и значений (см. Параметры), существование данных, бизнес правила.
При ошибках в ответ придет 400 Bad Request
с телом:
{
"errors": [
{
"value": "name",
"reason": "required",
"pointer": "/name",
"description": "Значение обязательное",
"type": "bad_json_data"
}
]
}
Имя | Тип | Описание |
---|---|---|
type | string | Класс ошибки (всегда принимает значение bad_json_data ) |
reason | string | Причина ошибки |
value | string | Поле, в котором обнаружена ошибка |
description | string | Описание ошибки для пользователя |
pointer | string | Указатель на данные с ошибкой во входящем сообщении |
Ошибка валидации расширяет стандартную ошибку API.
С возможными причинами ошибок можно ознакомиться на странице.
pointer
для указания использует формат JsonPointer RFC 6901.
Например, /contacts/phones/1/number
значит, что ошибка в поле из сообщения (number
- должен быть строкой):
{
...
"contacts": {
"phones": [
{
"country": "7",
"city": "912",
"number": "3456789",
"comment": ""
},
{
"country": "7",
"city": "912",
"number": 3456789,
"comment": "number задан числом - ошибка"
}
]
}
...
}
GET /vacancy_conditions
дополнительно можно указать query-параметр:
with_professional_roles=true
- для получение условий для вакансии с профессиональными ролями вместо специализаций
При указании параметра with_professional_roles=true
поле specializations
не возвращается в ответе, а поле professional_roles появляется вместе с другими полями
Каждое конечное поле описано объектом правил. Если поле состоит из
объекта с несколькими полями, эти поля описаны в fields
.
Для всех полей и их частей указано, являются ли они необходимыми (required
).
Успешный ответ содержит код ответа 200 OK
и тело.
{
"accept_handicapped": {
"required": false
},
"accept_kids": {
"required": false
},
"address": {
"fields": {
"show_metro_only": {
"required": false
}
},
"required": false
},
"allow_messages": {
"required": false
},
"area": {
"required": true
},
"billing_type": {
"required": true
},
"code": {
"max_length": 50,
"min_length": 0,
"required": false
},
"contacts": {
"fields": {
"email": {
"max_length": 255,
"min_length": 0,
"required": false
},
"name": {
"max_length": 255,
"min_length": 0,
"required": true
},
"phones": {
"fields": {
"city": {
"max_length": 6,
"min_length": 1,
"regexp": "^\\d{0,6}$",
"required": true
},
"comment": {
"max_length": 255,
"min_length": 0,
"required": false
},
"country": {
"max_length": 6,
"min_length": 1,
"regexp": "^\\+?\\d{0,5}$",
"required": true
},
"number": {
"max_length": 32,
"min_length": 4,
"regexp": "^[\\d -]{4,32}$",
"required": true
}
},
"max_count": 2,
"min_count": 0,
"required": true
}
},
"required": false
},
"custom_employer_name": {
"max_length": 150,
"min_length": 0,
"required": false
},
"department": {
"max_length": 32,
"min_length": 0,
"required": false
},
"description": {
"max_length": 10000,
"min_length": 200,
"required": true
},
"employment": {
"required": false
},
"experience": {
"required": false
},
"key_skills": {
"max_count": 30,
"min_count": 0,
"required": false
},
"manager": {
"required": false
},
"name": {
"max_length": 220,
"min_length": 0,
"required": true
},
"response_letter_required": {
"required": false
},
"response_notifications": {
"required": false
},
"response_url": {
"max_length": 511,
"min_length": 0,
"regexp": "^(http|https)://.+$",
"required": false
},
"salary": {
"fields": {
"currency": {
"required": false
},
"from": {
"required": false
},
"to": {
"required": false
},
"gross": {
"required": false
}
},
"required": false
},
"schedule": {
"required": false
},
"specializations": {
"max_count": null,
"min_count": 1,
"required": true
},
"test": {
"fields": {
"required": {
"required": false
}
},
"required": false
},
"type": {
"required": true
},
"working_days": {
"min_count": 0,
"max_count": null,
"required": false
},
"working_time_intervals": {
"min_count": 0,
"max_count": null,
"required": false
},
"working_time_modes": {
"min_count": 0,
"max_count": null,
"required": false
},
"accept_temporary": {
"required": false
}
}
Имя | Тип | Описание |
---|---|---|
required | логический | Является ли поле вакансии или поле объекта необходимым? |
min_length | целое | Минимальная длина для текстовых полей. |
max_length | целое | Максимальная длина для текстовых полей. |
min_count | целое | Минимальное количество объектов для полей, где необходимо передавать список. |
max_count | целое или null |
Максимально количество объектов для полей, где необходимо передавать список. null – если количество не ограничено. |
403 Forbidden
– условия заполнения полей вакансии недоступны данному пользователю.
PUT /vacancies/{vacancy_id}
ignore_duplicates=true
- игнорировать появление дубликата, после редактирования вакансии.with_professional_roles=true
- для редактирования вакансии с профессиональными ролями вместо специализаций. Поведение аналогично поведению параметраwith_professional_roles
при публикации вакансии
Редактирование происходит по аналогии с созданием вакансии, но есть возможность
передачи отдельных полей в объекте для частичного редактирования вакансии.
Cоставные поля (например, salary
, contacts
, specializations
, professional_roles
) можно
редактировать только целиком, передавая полный объект. Например, для изменения
валюты в зарплате, необходимо передавать также и значения зарплаты, а
для изменения специализации необходимо передать полный список.
Имя | Описание |
---|---|
name | название |
description | описание |
key_skills | ключевые навыки |
schedule | график работы |
experience | требуемый опыт работы |
employment | тип занятости |
specializations | список специализаций |
professional_roles | список профессиональных ролей |
salary | зарплата |
address | адрес |
test | тестовое задание |
department | департамент |
code | внутренний код вакансии |
response_letter_required | необходимость сопроводительного письма при отклике |
accept_handicapped | указание, что вакансия доступна для соискателей с инвалидностью |
accept_kids | указание, что вакансия доступна для соискателей от 14 лет |
response_notifications | настройка уведомления о новых откликах |
allow_messages | возможность переписки с кандидатами по данной вакансии |
contacts | контактная информация |
custom_employer_name | название компании для анонимных вакансий |
response_url | URL отклика для прямых вакансий |
accept_incomplete_resumes | разрешен ли отклик на вакансию неполным резюме |
working_days | рабочие дни |
working_time_intervals | временные интервалы работы |
working_time_modes | режимы времени работы |
accept_temporary | указание, что вакансия доступна для соискателей с временным трудоустройством |
branded_template.id | брендированное оформление вакансии из справочника |
Остальные поля доступны только для чтения, либо их можно задать только при создании вакансии.
При успешном обновлении вакансии вернется 204 No Content
.
404 Not Found
– редактируемая вакансия не найдена.403 Forbidden
– редактирование вакансий недоступно данному пользователю.400 Bad Request
– ошибки в полях при редактировании вакансии.-
403 Forbidden
– изменение вакансии невозможно, так как после изменения, вакансия становится похожа на другую вакансию у данного работодателя. Если вы уверены, что появление дубликата необходимо, вы можете добавить к запросу параметрPUT /vacancies/{vacancy_id}?ignore_duplicates=true
.
Дополнительно к HTTP коду сервер может вернуть описание причины ошибки.
Возможно только улучшение типа вакансии.
Изменение биллингового типа вакансии, а также передача вакансии другому
менеджеру компании происходит по аналогии с редактированием
PUT /vacancies/{vacancy_id}
. Единственная особенность — эти поля
(billing_type
и manager
) необходимо отправлять отдельно от остальных полей
вакансии.
PUT /vacancies/{vacancy_id}
{
"billing_type": {
"id": "premium"
}
}
и
PUT /vacancies/{vacancy_id}
{
"manager": {
"id": "1337"
}
}
При успешном обновлении биллинг-типа, менеджера вакансии вернется 204 No Content
.
404 Not Found
– редактируемая вакансия не найдена.403 Forbidden
– редактирование вакансий недоступно данному пользователю.403 Forbidden
– поляbilling_type
иmanager
передаются вместе с другими.
Дополнительно к HTTP коду сервер может вернуть описание причины ошибки.
Продление вакансии по стоимости приравнивается к новой публикации
Существуют ограничения по продлению вакансии, они могут меняться, на данный момент работают следующие правила:
- стандартные вакансии можно продлевать, если с предыдущего продления прошло не менее 1 минуты.
- вакансии "стандарт-плюс" возможно продлевать не ранее 7 дней до окончания публикации.
POST /vacancies/{vacancy_id}/prolongate
где vacancy_id
- идентификатор вакансии.
При успешном продлениии вакансии вернется 204 No Content
.
403 Forbidden
– текущий пользователь не является работодателем или продление невозможно.404 Not Found
– текущему пользователю недоступно продление вакансии.404 Not Found
– вакансия с переданным идентификатором не существует.
Дополнительно к HTTP коду сервер может вернуть описание причины ошибки.
GET /vacancies/{vacancy_id}/prolongate
где vacancy_id
- идентификатор вакансии.
Успешный ответ приходит с кодом 200 OK
.
Пример ответа, когда продление невозможно:
{
"id": "123456789",
"expires_at": "2015-11-19T17:10:48+0300",
"actions": [
{
"id": "prolongate",
"enabled": false,
"disable_reason": {
"id": "standard_plus_publication_is_updated_automatically",
"name": "Вакансия \"Стандарт Плюс\" не может быть обновлена, это происходит автоматически раз в три дня."
}
}
]
}
Пример ответа, когда продление возможно:
{
"id": "123456789",
"expires_at": "2015-11-19T17:10:48+0300",
"actions": [
{
"id": "prolongate",
"enabled": true,
"url": "https://api.hh.ru/vacancies/123456789/prolongate",
"method": "POST"
}
]
}
Имя | Тип | Описание |
---|---|---|
actions | object | Cписок действий, которые можно предпринять для продления вакансии. В данный момент поддерживается только обычное продление. |
actions.id | string | Идентификатор действия |
actions.enabled | boolean | Флаг возможно ли действие |
actions.disable_reason | object | Причина, по которой совершить действие невозможно. Элемент справочника vacancy_not_prolonged_reason |
actions.url | string | url, с которыми нужно сделать запрос, чтобы совершить действие |
actions.method | string | HTTP-метод, с которыми нужно сделать запрос, чтобы совершить действие |
403 Forbidden
– текущий пользователь не является работодателем.404 Not Found
– текущему пользователю недоступно получение информации о вакансии.404 Not Found
– вакансия с переданным идентификатором не существует.
GET /employers/{employer_id}/vacancies/active
По умолчанию возвращаются вакансии текущего пользователя. Если требуется
получить вакансии другого менеджера, необходимо передать дополнительный параметр
manager_id={manager_id}
. Можно передать только 1 manager_id
, если передать несколько, будет использоваться последний.
Максимальное значение per_page, которое можно передать в данном запросе: 50.
Успешный ответ приходит с кодом 200 OK
и содержит:
{
"found": 1,
"page": 0,
"pages": 1,
"per_page": 20,
"items": [
{
"salary": {
"to": null,
"from": 30000,
"currency": "RUR",
"gross": true
},
"name": "Секретарь",
"area": {
"url": "https://api.hh.ru/areas/1",
"id": "1",
"name": "Москва"
},
"url": "https://api.hh.ru/vacancies/8331228",
"published_at": "2013-07-08T16:17:21+0400",
"relations": [],
"employer": {
"logo_urls": {
"90": "https://hh.ru/employer-logo/289027.png",
"240": "https://hh.ru/employer-logo/289169.png",
"original": "https://hh.ru/file/2352807.png"
},
"name": "HeadHunter",
"url": "https://api.hh.ru/employers/1455",
"alternate_url": "https://hh.ru/employer/1455",
"id": "1455",
"trusted": true
},
"response_letter_required": true,
"address": null,
"alternate_url": "https://hh.ru/vacancy/8331228",
"apply_alternate_url": "https://hh.ru/applicant/vacancy_response?vacancyId=8331228",
"department": {
"id": "HH-1455-TECH",
"name": "HeadHunter::Технический департамент"
},
"premium": false,
"type": {
"id": "open",
"name": "Открытая"
},
"id": "8331228",
"archived": false,
"counters": {
"views": 100500,
"responses": 5,
"unread_responses": 3,
"resumes_in_progress": 5,
"invitations": 10,
"invitations_and_responses": 14
},
"expires_at": "2013-07-08T16:17:21+0400",
"has_updates": false,
"billing_type": {
"id": "standard",
"name": "Стандарт"
},
"can_upgrade_billing_type": true
}
]
}
Где помимо стандартных полей вакансии вернутся дополнительные поля:
Имя | Тип | Описание |
---|---|---|
counters.views | number | количество просмотров вакансии |
counters.responses | number | количество откликов на вакансию |
counters.unread_responses | number | количество непросмотренных откликов на вакансию |
counters.resumes_in_progress | number | количество резюме в работе на вакансию |
counters.invitations | number | количество приглашений на вакансию |
counters.invitations_and_responses | number | количество откликнувшихся и приглашенных соискателей на вакансию |
expires_at | string | дата окончания публикации вакансии |
has_updates | boolean | Есть ли в откликах/приглашениях по данной вакансии обновления, требующие внимания |
billing_type | object | Биллинговый тип вакансии. Элемент справочника vacancy_billing_type. |
billing_type.id | string | Идентификатор биллингового типа вакансии |
billing_type.name | string | Название биллингового типа вакансии |
can_upgrade_billing_type | boolean | Можно ли улучшить биллинговый тип вакансии |
Также доступен список опубликованных вакансий, подходящих для приглашения соискателя.
Помимо стандартных параметров для пагинации per_page
и page
, коллекция поддерживает:
text
— строка для поиска по названию вакансииarea
— id региона (см. список регионов, в которых есть активные вакансии)order_by
— сортировка вакансий, возможные варианты доступны в справочникеemployer_active_vacancies_order
400 Bad Request
- параметры переданы с ошибкой403 Forbidden
– текущий пользователь не является работодателем.404 Not Found
– у текущего пользователя нет прав на просмотр опубликованных вакансий.404 Not Found
– менеджер с переданным идентификатором не существует.
Для переноса вакансии в архив необходимо отправить запрос PUT:
PUT /employers/{employer_id}/vacancies/archived/{vacancy_id}
При успешной архивации вернётся 204 No Content
.
403 Forbidden
– текущий пользователь не является работодателем.404 Not Found
– указан неверный идентификатор работодателя.404 Not Found
– у текущего пользователя нет прав на архивацию вакансии.404 Not Found
– вакансия с переданным идентификатором не существует.
GET /employers/{employer_id}/vacancies/archived
По умолчанию возвращаются вакансии текущего пользователя. Если требуется
получить вакансии другого менеджера, необходимо передать дополнительный параметр
manager_id={manager_id}
. Можно передать только 1 manager_id
, если передать несколько, будет использоваться последний.
Поддерживается пагинация (per_page
и page
) и сортировка (order_by
).
Максимальное значение per_page
, которое можно передать в данном запросе: 1000.
Возможные значения сортировки доступны в
справочнике employer_archived_vacancies_order
.
В отличие от списка опубликованных вакансий, данная коллекция не поддерживает
поиск (параметры text
и area
).
Успешный ответ приходит с кодом 200 OK
и содержит:
{
"found": 1,
"page": 0,
"pages": 1,
"per_page": 20,
"items": [
{
"salary": {
"to": null,
"from": 30000,
"currency": "RUR",
"gross": true
},
"name": "Секретарь",
"area": {
"url": "https://api.hh.ru/areas/1",
"id": "1",
"name": "Москва"
},
"url": "https://api.hh.ru/vacancies/8331228",
"published_at": "2013-07-08T16:17:21+0400",
"relations": [],
"employer": {
"logo_urls": {
"90": "https://hh.ru/employer-logo/289027.png",
"240": "https://hh.ru/employer-logo/289169.png",
"original": "https://hh.ru/file/2352807.png"
},
"name": "HeadHunter",
"url": "https://api.hh.ru/employers/1455",
"alternate_url": "https://hh.ru/employer/1455",
"id": "1455",
"trusted": true
},
"response_letter_required": true,
"address": null,
"alternate_url": "https://hh.ru/vacancy/8331228",
"apply_alternate_url": "https://hh.ru/applicant/vacancy_response?vacancyId=8331228",
"department": {
"id": "HH-1455-TECH",
"name": "HeadHunter::Технический департамент"
},
"premium": false,
"type": {
"id": "open",
"name": "Открытая"
},
"id": "8331228",
"archived": true,
"counters": {
"responses": 3,
"invitations_and_responses": 5
},
"archived_at": "2013-08-08T16:17:21+0400"
}
]
}
Где помимо стандартных полей вакансии вернутся дополнительные поля:
Имя | Тип | Описание |
---|---|---|
counters.responses | числовой | количество откликов на вакансию |
counters.invitations_and_responses | числовой | количество откликов и приглашений на вакансию |
archived_at | строка | дата архивации вакансии |
400 Bad Request
- параметры переданы с ошибкой.403 Forbidden
– текущий пользователь не является работодателем.403 Forbidden
– указан неверный идентификатор работодателя.404 Not Found
– у текущего пользователя нет прав на просмотр архивных вакансиий.
PUT /employers/{employer_id}/vacancies/hidden/{vacancy_id}
Удалить можно только вакансию из архива.
При успешной операции вернётся 204 No Content
.
403 Forbidden
– текущий пользователь не является работодателем.403 Forbidden
– удалять вакансию не из архива запрещено.404 Not Found
– указан неверный идентификатор работодателя.404 Not Found
– у текущего пользователя нет прав на удаление вакансиии из архива.404 Not Found
– вакансия с переданным идентификатором не существует.
GET /employers/{employer_id}/vacancies/hidden
По умолчанию возвращаются вакансии текущего пользователя. Если требуется
получить вакансии другого менеджера, необходимо передать дополнительный параметр
manager_id={manager_id}
. Можно передать только 1 manager_id
, если передать несколько, будет использоваться последний.
Поддерживается пагинация (per_page
и page
) и сортировка (order_by
).
Максимальное значение per_page
, которое можно передать в данном запросе: 1000.
Возможные значения сортировки доступны в справочнике
справочнике employer_hidden_vacancies_order
.
В отличие от списка опубликованных вакансий, данная коллекция не поддерживает
поиск (параметры text
и area
).
Успешный ответ приходит с кодом 200 OK
и содержит:
{
"found": 1,
"page": 0,
"pages": 1,
"per_page": 20,
"items": [
{
"salary": {
"to": null,
"from": 30000,
"currency": "RUR",
"gross": true
},
"name": "Секретарь",
"area": {
"url": "https://api.hh.ru/areas/1",
"id": "1",
"name": "Москва"
},
"url": "https://api.hh.ru/vacancies/8331228",
"published_at": "2013-07-08T16:17:21+0400",
"relations": [],
"employer": {
"logo_urls": {
"90": "https://hh.ru/employer-logo/289027.png",
"240": "https://hh.ru/employer-logo/289169.png",
"original": "https://hh.ru/file/2352807.png"
},
"name": "HeadHunter",
"url": "https://api.hh.ru/employers/1455",
"alternate_url": "https://hh.ru/employer/1455",
"id": "1455",
"trusted": true
},
"response_letter_required": true,
"address": null,
"alternate_url": "https://hh.ru/vacancy/8331228",
"apply_alternate_url": "https://hh.ru/applicant/vacancy_response?vacancyId=8331228",
"department": {
"id": "HH-1455-TECH",
"name": "HeadHunter::Технический департамент"
},
"premium": false,
"type": {
"id": "open",
"name": "Открытая"
},
"id": "8331228",
"archived": true
}
]
}
Ответ состоит из стандартных полей вакансии.
400 Bad Request
- параметры переданы с ошибкой403 Forbidden
– текущий пользователь не является работодателем.403 Forbidden
– указан неверный идентификатор работодателя.404 Not Found
– у текущего пользователя нет прав на просмотр удаленных вакансиий.
DELETE /employers/{employer_id}/vacancies/hidden/{vacancy_id}
Восстановить можно только удаленную из архива вакансию. Вакансия вернется в архив.
При успешной операции вернётся 204 No Content
.
403 Forbidden
– текущий пользователь не является работодателем.403 Forbidden
– восстанавливать не удаленную вакансию запрещено.404 Not Found
– указан неверный идентификатор работодателя.404 Not Found
– у текущего пользователя нет прав на восстановление вакансии из удаленных.404 Not Found
– вакансия с переданным идентификатором не существует.
GET /vacancies/{vacancy_id}/stats
где vacancy_id
- идентификатор вакансии.
Успешный ответ содержит код ответа 200 OK
и тело:
{
"items": [
{
"date": "2017-01-10",
"responses": 1,
"views": 36
},
{
"date": "2017-01-11",
"responses": 4,
"views": 35
},
{
"date": "2017-01-12",
"responses": 1,
"views": 32
},
{
"date": "2017-01-13",
"responses": null,
"views": null
},
{
"date": "2017-01-14",
"responses": null,
"views": null
}
]
}
В элементе items
содержатся данные:
Имя | Тип | Описание |
---|---|---|
date | Строка | Дата в формате YYYY-MM-DD |
responses | Число или null | Количество откликов, null если дата в будущем или данных на эту дату нет |
views | Число или null | Количество просмотров, null если дата в будущем или данных на эту дату нет |
Возвращается окно в 5 последних дней существования вакансии:
- если вакансия создана поздее начала окна, то первой датой будет дата создания вакансии;
- если вакансия находится в архиве или удалена, то последней датой будет дата архивации.
403 Forbidden
– текущий пользователь не является работодателем.404 Not Found
– вакансия с переданным идентификатором не существует.