1. Общая информация
API Хабр Карьеры заточен под интеграцию с внешними CRM-системами по управлению кандидатами. Он отдаёт отклики на вакансии, размещённые на нашем сервисе, а вместе с откликами и полное резюме откликнувшегося кандидата, включая все контактные данные, которые не скрыты настройками приватности. Скорость отдачи данных мгновенная, никаких ограничений на объем данных нет.
API не предназначен для работы с базой резюме напрямую и для ведения переписки с кандидатами.
Пользование API бесплатное. Вы платите только за размещение вакансий на нашем сервисе, как и все другие клиенты.
2. Начало работы
Для использования API нужно зарегистрировать приложение по адресу https://career.habr.com/profile/applications и настроить процесс авторизации по протоколу OAuth 2.0. Подробная документация по протоколу: RFC 6749.
Зарегистрированное приложение может запрашивать у пользователей сервиса разрешение доступа к их персональным данным, без получения и хранения их логина и пароля.
3. Процесс авторизации
В начале необходимо направить пользователя на страницу по адресу:
https://career.habr.com/integrations/oauth/authorize?
client_id={client_id}&
redirect_uri={redirect_uri}&
response_type=code
Обязательные параметры:
response_type=code
— указание на способ получения авторизации;client_id
— идентификатор, полученный при создании приложения;redirect_uri
— uri для перенаправления пользователя после авторизации. Значение параметра валидируется, вам может потребоваться сделать urlencode значения данного параметра.Если пользователь не авторизован на сайте, ему будет показана форма авторизации на сайте. После прохождения авторизации на сайте, пользователю будет выведена форма с запросом разрешения доступа вашего приложения к его персональным данным.
Если пользователь не разрешает доступ приложению, то он будет перенаправлен на указанный redirect_uri с параметром error=access_denied
.
В случае разрешения прав, в редиректе будет указан временный authorization_code
.
Если пользователь авторизован на сайте и доступ данному приложению уже был выдан ранее, то ответом сразу будет вышеописанный редирект с authorization_code
.
После получения authorization_code
приложению необходимо осуществить POST-запрос на адрес https://career.habr.com/integrations/oauth/token для обмена полученного authorization_code
на access_token
.
https://career.habr.com/integrations/oauth/token?
client_id={client_id}&
client_secret={client_secret}&
redirect_uri={redirect_uri}&
grant_type=authorization_code&
code={authorization_code}
Обязательные параметры:
grant_type=authorization_code
client_id, client_secret, redirect_uri
- значения, полученные при регистрации приложенияcode
- значение authorization_code, полученное при перенаправлении пользователяВ ответ сервер пришлет JSON следующего вида:
{
"access_token": "ede87aba4312e7ff423e46745d6b17f04ff1a785603360b23e79b6b00f98a3af",
"token_type": "bearer",
"scope": "public",
"created_at": 1502376342
}
Если обмен authorization_code
произвести не удалось, то сервер вернётся ответ со статусом 400 Bad Request и следующим содержанием:
{
"error": "invalid_request",
"error_description": "bad redirect url"
}
4. Сроки жизни токенов
Время жизни authorization_code
- 10 минут, access_token
в текущей реализации перманентен.
5. Использование access-токена
Полученный access_token необходимо передавать в качестве параметра при любом запросе к API, например:
https://career.habr.com/api/v1/integrations/vacancies?
access_token=ede87aba4312e7ff423e46745d6b17f04ff1a7856
6. Методы API
GET /v1/integrations/users/me
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит информацию о текущем пользователе:
{
"login": "ivanov",
"email": "ivanov@domain.com",
"first_name": "Иван",
"last_name": "Иванов",
"middle_name": "Иванович",
"birthday": "1990-08-15",
"avatar": "https://hsto.org/getpro/moikrug/uploads/company/348/850/484/logo/medium_cd41dce48c924bbcd134b5a8aac27be1.png",
"location": {
"city": "Москва",
"country": "Россия"
},
"gender": "male"
}
Описание полей:
Название поля | Тип | Описание |
---|---|---|
login | string | Логин пользователя |
email | string | Email пользователя |
first_name | string | Имя |
last_name | string | Фамилия |
middle_name | string | Отчество |
birthday | string | День рождения |
avatar | string | Ссылка на аватар пользователя |
location/city | string | Город |
location/country | string | Страна |
gender | string | Пол |
Оплаченные вакансии:
GET /v1/integrations/vacancies
Архивные вакансии:
GET /v1/integrations/vacancies/archived
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит массив вакансий.
Информация о конкретной вакансии:
GET /v1/integrations/vacancies/:id
Опциональные параметры:
page
- номер страницы
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит объект:
{
"vacancies": [
{
"id": 1,
"title": "Вакансия1",
"divisions": [],
"specializations": [
{
"id": 13,
"title": {
"ru": "Инженер по обеспечению качества",
"en": "Quality Assurance Engineer"
}
}
],
"published_at": "2023-04-04T17:08:51.560+03:00",
"url": "https://career.habr.com/vacancies/1",
"qualification": null,
"city": "",
"marked": false,
"company": {
"name": "company2",
"alias_name": "company2",
"url": "https://career.habr.com/companies/company2",
"logo_url": "https://hsto.org/getpro/moikrug/uploads/company/348/850/484/logo/medium_cd41dce48c924bbcd134b5a8aac27be1.png"},
"employment_type": "",
"salary": "",
"remote": true,
"expanded_salary": {
"from": null,
"to": null,
"currency": null
},
"published": true,
"paid": true,
"skills": [
{
"value": 764,
"alias": "konsultirovanie-po-podboru-personala",
"title": "Консультирование по подбору персонала"
}
],
"locations": null,
"description": "Условия работы",
"bonuses": "Бонусы",
"instructions": "Дополнительные инструкции",
"team": "О компании и команде",
"candidate": "Ожидания от кандидата"
},
{
"id": 2,
"title": "Вакансия1",
"divisions": [],
"specializations": [
{
"id": 13,
"title": {
"ru": "Инженер по обеспечению качества",
"en": "Quality Assurance Engineer"
}
}
],
"published_at": "2023-04-04T17:08:51.560+03:00",
"url": "https://career.habr.com/vacancies/2",
"qualification": {
"title": {
"ru":"Старший",
"en":"Senior"
}
},
"city": "Архангельск",
"marked": false,
"company": {
"name": "company2",
"alias_name": "company2",
"url": "https://career.habr.com/companies/company2",
"logo_url": "https://hsto.org/getpro/moikrug/uploads/company/348/850/484/logo/medium_cd41dce48c924bbcd134b5a8aac27be1.png"},
"employment_type": "Полный рабочий день",
"salary": "от 10 000 до 60 000 ₽",
"remote": false,
"expanded_salary": {
"from": 100000,
"to": 600000,
"currency": rur
},
"published": true,
"paid": true,
"skills": [
{
"value": 764,
"alias": "konsultirovanie-po-podboru-personala",
"title": "Консультирование по подбору персонала"
}
],
"locations": [
{
"title": "Архангельск",
"href": "/vacancies?city_id=5"
}
],
"description": "Условия работы",
"bonuses": "Бонусы",
"instructions": "Дополнительные инструкции",
"team": "О компании и команде",
"candidate": "Ожидания от кандидата"
},
],
"pagination": {
"total": 2,
"page": 0,
"per": 20
}
}
Описание полей вакансии:
Название поля | Тип | Описание |
---|---|---|
id | number | ID вакансии |
title | string | Заголовок вакансии |
published_at | string | Дата публикации |
url | string | Ссылка на вакансию |
location | string | Регион размещения вакансии |
city | string | Город размещения вакансии |
marked | boolean | Признак того, что вакансия выделена |
company/name | string | Название компании |
company/alias_name | string | Алиас компании |
company/url | string | Ссылка на компанию |
company/logo_url | string | Ссылка на логотип компании |
specializations/id | number | ID специализации |
specializations/title/ru | string | Название специализации на русском языке |
specializations/title/en | string | Название специализации на англ. языке |
skill/value | number | ID навыка |
skill/alias | string | Алиас навыка |
skill/title | string | Название навыка |
qualification/title/ru | string | Название квалификации на русском языке |
qualification/title/en | string | Название квалификации на англ. языке |
employment_type | string | Тип трудоустройства |
description | string | Описание вакансии |
team | string | Описание вашей команды |
candidate | string | Ожидания от кандидата |
bonuses | string | Бонусы вакансии |
instructions | string | Дополнительные инструкции |
salary | string | Вилка зарплат |
published | boolean | Статус публикации |
paid | boolean | Статус оплаты |
GET /v1/integrations/companies/my
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит массив компаний пользователя:
{
"companies": [
{
"name": "Компания 1",
"alias_name": "company1"
},
{
"name": "Компания 2",
"alias_name": "company2"
}
]
}
Описание полей компании пользователя:
Название поля | Тип | Описание |
---|---|---|
name | string | Название компании |
alias_name | string | Алиас компании |
GET /v1/integrations/companies/{company_alias}/members
Обязательные параметры:
company_alias
- алиас компании
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит массив кураторов вашей компании:
{
"members": [
{
"login": "Логин 1"
},
{
"login": "Логин 2"
}
]
}
Описание полей куратора компании:
Название поля | Тип | Описание |
---|---|---|
login | string | Логин пользователя на Хабр Карьере |
GET /v1/integrations/billing_accounts
Опциональные параметры:
alias_name
- алиас компании (необязательно если компания одна)
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит массив счетов компании пользователя:
{
"accounts": [
{
"id": "1"
"name": "Старый лицевой счёт",
"balance": {
"value": 10000,
"description": "10000 руб."
}
},
{
"id": "2"
"name": "Счёт абонемента «Стандарт 200»",
"balance": {
"value": 200,
"description": "200 вакансий типа «Стандарт»"
}
}
]
}
Описание полей счета компании пользователя:
Название поля | Тип | Описание |
---|---|---|
id | number | Идентификатор счета |
name | string | Название счета |
balance | object | Баланс счета |
GET /v1/integrations/vacancies/{vacancy_id}/responses
Обязательные параметры:
vacancy_id
- идентификатор вакансии
Опциональные параметры:
page
- номер страницы
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит массив откликов на вакансию:
{
"responses": [
{
"id": 1,
"vacancy_id": 19,
"user": {
"login": "someuser",
"name": "Иван Иванов",
"avatar": "https://hsto.org/getpro/moikrug/uploads/company/348/850/484/logo/medium_cd41dce48c924bbcd134b5a8aac27be1.png",
"birthday": "1990-08-15",
"specialization": "Дизайнер",
"skills": [
{
"title": "Разработка",
"alias_name": "coding"
},
{
"title": "Дизайн",
"alias_name": "design"
}
],
"experience_total": {
"month": 15
},
"relocation": true,
"remote": true,
"compensation": {
value: 100000,
currency: 'rur'
},
"work_state": "ready",
"age": 33,
"location": {
"city": "Москва",
"country": "Россия"
},
"experiences": {
"company": "Компания",
"position": "Дизайнер",
"period": "1 год и 3 месяца"
},
"educations": {
"university": "Университет",
"faculty": "Факультет",
"start_date": "2013-05-01",
"end_date": "2014-05-01"
},
},
"body": "Отклик",
"favorite": false,
"archived": false,
"created_at": "2017-08-11T00:17:47.827+03:00"
}
],
"pagination": {
"total": 1,
"page": 0,
"per": 20
}
}
Описание полей отклика:
Название поля | Тип | Описание |
---|---|---|
id | number | ID отклика |
vacancy_id | number | ID вакансии |
body | string | Сопроводительное письмо |
favorite | boolean | Признак того, что отклик отмечен пользователем, разместившим вакансию |
archived | boolean | Признак того, что отклик удален пользователем, разместившим вакансию |
created_at | string | Дата размещения отклика на вакансию |
user | ||
login | string | Логин пользователя, оставившего отклик |
name | string | Имя пользователя |
avatar | string | Ссылка на аватар пользователя |
birthday | string | День рождения |
specialization | string | Специализация |
skills/title | string | Название навыка пользователя |
skills/alias_name | string | Алиас навыка |
experience_total/month | number | Общий стаж пользователя в месяцах |
relocation | string | Показатель готовности пользователя к релокации |
remote | string | Показатель готовности пользователя к удаленной работе |
location/city | string | Город проживания пользователя |
location/country | string | Страна проживания пользователя |
compensation/value | string | Ожидаемое вознаграждение |
compensation/currency | string | Валюта |
work_state | string | Статус готовности к работе (not_search - не ищет работу | search - ищет работу | ready - рассматривает предложения) |
age | number | Возраст |
experiences/company | string | Компания последнего места работы |
experiences/position | string | Должность на последнем месте работы |
experiences/period | string | Продолжительность работы на последнем месте |
educations/university | string | Последнее место обучения |
educations/faculty | string | Факультет |
educations/start_date | string | Начало обучения |
educations/end_date | string | Окончания обучения |
GET /v1/integrations/users/{login}
Обязательные параметры:
login
- логин пользователя
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит информацию о пользователе:
{
"login": "ivanov",
"full_name": "Иван Иванов",
"location": {
"city": "Москва",
"country": "Россия"
},
"relocation": true,
"remote": false,
"experience_total": 55,
"age": 33,
"salary": {
"from": 50000,
"currency": "rur"
},
"resume_headline": "Дизайнер",
"contacts": {
"emails": [
{
"type": "email",
"value": "email@email.ru"
}
],
"phones": [
{
"type": "phone_work",
"value": "+7 111-11-11"
}
],
"messengers": [
{
"type": "skype",
"value": "ivan.ivanov"
},
{
"type": "icq",
"value": "4322435"
},
{
"type": "telegram",
"value": "someuser"
}
],
"sites": [
{
"type": "site",
"value": "https://career.habr.com"
}
]
},
"avatar": "https://hsto.org/getpro/moikrug/uploads/company/348/850/484/logo/medium_cd41dce48c924bbcd134b5a8aac27be1.png",
"skills": [
{
"title": "Разработка",
"alias_name": "coding"
},
{
"title": "Дизайн",
"alias_name": "design"
}
],
"birthday": "1987-08-11",
"about": "<p>О себе</p>",
"url": 'https://career.habr.com',
"experiences": [
{
"start_date": "2013-05-01",
"end_date": "2014-05-01",
"company_name": "Компания",
"position": "Дизайнер",
"location": {
"city": "Москва",
"country": "Россия"
},
"description": "Должностные обязанности"
}
],
"additional_educations": [
{
"school_name": "Яндекс.Практикум",
"courses": [
{
"title": "web",
"start_date": 2013-05-01,
"end_date": 2014-05-01,
"skills": [
{
"title": "HTML",
"alias_name": "html"
}
],
"description": "Пройденная практика и достижения",
"has_certificate": false}
]
}
],
"university_educations": [
{
"start_date": "2013-05-01",
"end_date": "2014-05-01",
"university_name": "Университет",
"faculty_name": "Факультет",
"location": {
"city": "Москва",
"country": "Россия"
},
"description": "Учебная специализация и достижения"
}
],
"college_educations": [
{
"start_date": "2013-05-01",
"end_date": "2014-05-01",
"college_name": "СУЗ",
"faculty": "Факультет",
"location": {
"city": "Москва",
"country": "Россия"
},
"description": "Учебная специализация и достижения"
}
],
"opinions": [
{
"creator" : {
"name": "otheruser",
"resume_headline": "Специализация",
"working_relationship": "руководитель"
},
"body": "Отзыв",
"created_at": "2017-08-11T00:17:47.827+03:00"
}
],
"social_ratings": [
{
"kind": "github",
"registered_at": "2010-02-25T02:21:44.000+03:00",
"login": "somelogin",
"stats": {
"repos_count": 18,
"contributions_count": 3194
},
"tags": [
"Ruby",
"Java",
"ApacheConf",
"JavaScript",
"Go",
"Erlang",
"Shell",
"Vim script"
]
}
]
}
Описание полей:
Название поля | Тип | Описание |
---|---|---|
login | string | Логин пользователя |
full_name | string | Полное имя пользователя |
location/city | string | Город пользователя |
location/country | string | Страна пользователя |
relocation | boolean | Показатель того, что пользователь готов к релокации |
remote | boolean | Показатель того, что пользователь готов к удаленной работе |
experience_total | number | Общий стаж пользователя (в месяцах) |
age | number | Возраст пользователя (полных лет) |
salary/from | number | Ожидаемое вознаграждение |
salary/currency | string | Валюта |
resume_headline | string | Специализация |
contacts/contactsAvailable | string | Флаг, показывающий возможно ли открытие контактов с помощью метода Открытие контактов пользователя |
contacts/emails/type contacts/phones/type contacts/messengers/type contacts/sites/type | string | Тип контакта |
contacts/emails/value contacts/phones/value contacts/messengers/value contacts/sites/value | string | Контакт пользователя Контакты отдаются только в случае, если они открыты для компании. Для открытия контактов используется метод Открытие контактов пользователя |
contacts/meta/error | string | Текст ошибки при недоступности контактов |
avatar | string | Ссылка на аватар пользователя |
skills/title | string | Название навыка пользователя |
skills/alias_name | string | Алиас навыка |
birthday | string | День рождения пользователя |
about | string | О себе |
url | string | Ссылка на сайт пользователя |
experiences | ||
start_date | string | Дата начала работы в компании |
end_date | string | Дата окончания работы в компании (Значение этого параметра равное null означает, что пользователь работает в компании по настоящее время) |
company_name | string | Название компании |
position | string | Должность |
location/city | string | Город |
location/country | string | Страна |
description | string | Должностные обязанности и достижения |
additional_educations | ||
school_name | string | Название образовательной платформы |
courses/start_date | string | Дата начала прохождения курса |
courses/end_date | string | Дата окончания прохождения курса |
courses/title | string | Название курса |
courses/description | string | Пройденная практика и достижения |
courses/has_certificate | boolean | Наличие диплома о прохождении курса |
courses/skills/title | string | Название навыка |
courses/skills/alias_name | string | Алиас навыка |
university_educations | ||
start_date | string | Дата начала обучения в высшем учебном заведении |
end_date | string | Дата окончания высшего учебного заведения |
university_name | string | Название высшего учебного заведения |
faculty_name | string | Факультет |
location/city | string | Город |
location/country | string | Страна |
description | string | Учебные обязанности и достижения |
college_educations | ||
start_date | string | Дата начала обучения в среднем учебном заведении |
end_date | string | Дата окончания среднего учебного заведения |
college_name | string | Название среднего учебного заведения |
faculty_name | string | Факультет |
location/city | string | Город |
location/country | string | Страна |
description | string | Учебные обязанности и достижения |
opinions | ||
creator/name | string | Логин пользователя, оставившего отзыв |
creator/resume_headline | string | Специализация пользователя, оставившего отзыв |
creator/working_relationship | string | Уровень отношений с пользователем, оставившим отзыв |
body | string | Содержание отзыва |
created_at | string | Дата создания отзыва |
social_ratings | ||
kind | string | Тип социальной сети |
registered_at | string | Дата регистрации в социальной сети |
login | string | Логин в социальной сети |
stats/repos_count | string | Количество репозиториев (только для Github) |
stats/contributions_count | string | Количество вкладов (только для Github) |
stats/publications_count | string | Количество публикаций (для Хабра и Гиктаймс) |
stats/comments_count | string | Количество комментариев (для Хабра и Гиктаймс) |
stats/questions_count | string | Количество вопросов (для Хабр Q&A и Stackoverflow) |
stats/answers_count | string | Количество ответов (для Хабр Q&A и Stackoverflow) |
tags | string | Список тегов, с которыми связан пользователь |
url | string | Ссылка на профиль пользователя в социальной сети |
GET /v1/integrations/users/{login}/contacts
Важно: каждый запрос считается открытием контактов. Он спишется с лимита контактов компании так же, как и при открытии на сайте. Если отсутствует доступ к базе или закончился лимит, то открытие контактов не сработает. Подробнее о лимитах
Обязательные параметры:
login
- логин пользователя
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит информацию о контактах пользователя:
{
"contacts": {
"emails": [
{
"type": "email",
"value": "email@email.ru"
}
],
"phones": [
{
"type": "phone_work",
"value": "+7 111-11-11"
}
],
"messengers": [
{
"type": "skype",
"value": "ivan.ivanov"
},
{
"type": "icq",
"value": "4322435"
},
{
"type": "telegram",
"value": "someuser"
}
],
"sites": [
{
"type": "site",
"value": "https://career.habr.com"
}
]
}
}
Описание полей:
Название поля | Тип | Описание |
---|---|---|
contacts/emails/type contacts/phones/type contacts/messengers/type contacts/sites/type | string | Тип контакта |
contacts/emails/value contacts/phones/value contacts/messengers/value contacts/sites/value | string | Контакт пользователя |
contacts/meta/error | string | Текст ошибки при неуспешном открытии контактов |
GET /v1/integrations/skills
Опциональные параметры:
term
- поисковый запрос
page
- номер страницы
per_page
- количество записей на страницу
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит массив навыков:
{
"skills": [
{
"title": "Ruby on Rails",
"alias_name": "ruby-on-rails"
},
{
"title": "Ruby",
"alias_name": "ruby"
}
]
}
Описание полей навыка:
Название поля | Тип | Описание |
---|---|---|
title | string | Название навыка |
alias_name | string | Алиас |
GET /v1/integrations/cities
Опциональные параметры:
term
- поисковый запрос
page
- номер страницы
per_page
- количество записей на страницу
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит массив городов:
{
"cities": [
{
"id": 1,
"name": "Москва",
"country_name": "Россия",
"region_name": "Московская область",
"alias_name": "moscow"
}
]
}
Описание полей города:
Название поля | Тип | Описание |
---|---|---|
id | number | ID города |
name | string | Название города |
country_name | string | Страна |
region_name | string | Регион |
alias_name | string | Алиас |
POST /v1/integrations/vacancies
Параметры:
Название поля | Тип | Описание | ||
---|---|---|---|---|
vacancy[company] | string | Алиас компании пользователя, в которой будет размещена вакансия | ||
vacancy[title] * | string | Название вакансии (макс. 80 символов) | ||
vacancy[salary_from] * | number | Вознаграждение от | ||
vacancy[salary_to] | number | Вознаграждение до | ||
vacancy[currency] * | string | Валюта (rur|usd|eur|uah|kzt) | ||
vacancy[city_id] | number | ID города | ||
vacancy[remote] | number | Удаленная работа (0 - работа в офисе | 1 - удаленная работа) | ||
vacancy[employment_type] | string | Тип занятости (full_time - полная занятость | part_time - частичная занятость) | ||
vacancy[description] * | string | Описание вакансии (текст или HTML) | ||
vacancy[team] * | string | Описание команды (текст или HTML) | ||
vacancy[candidate] * | string | Ожидания от кандидата (текст или HTML) | ||
vacancy[bonuses] | string | Бонусы вакансии (текст или HTML) | ||
vacancy[instructions] | string | Дополнительные инструкции (текст или HTML) | ||
vacancy[salary_qualification_id] | number | ID квалификации code vacancy[team] * | string | О компании и команде (текст или HTML) |
vacancy[candidate] * | string | Ожидания от кандидата (текст или HTML) | ||
vacancy[skills] * | string | Навыки (от 1 до 10, список алиасов через запятую) | ||
vacancy[specialization_ids] * | string | ID специализации (не более 1) | ||
vacancy[members] * | string | Список логинов или емейлов кураторов вакансии (через запятую) | ||
account | number | ID счета, с которого должна произойти оплата (если не указан, счет будет выбран автоматически) | ||
placement_type | number | 0 - размещение по типу «Стандарт» 1 - размещение по типу «Стандарт плюс» (если не указан - вакансия будет размещена по типу «Стандарт») | ||
skip_placement | number | 1 - не оплачивать вакансию после создания если параметр не передавать, произойдет попытка оплаты вакансии |
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит описание вакансии:
{
"vacancy": {
"id": 2,
"title": "Вакансия1",
"divisions": [],
"specializations": [
{
"id": 13,
"title": {
"ru": "Инженер по обеспечению качества",
"en": "Quality Assurance Engineer"
}
}
],
"published_at": "2023-04-04T17:08:51.560+03:00",
"url": "https://career.habr.com/vacancies/2",
"qualification": {
"title": {
"ru":"Старший",
"en":"Senior"
}
},
"city": "Архангельск",
"marked": false,
"company": {
"name": "company2",
"alias_name": "company2",
"url": "https://career.habr.com/companies/company2",
"logo_url": "https://hsto.org/getpro/moikrug/uploads/company/348/850/484/logo/medium_cd41dce48c924bbcd134b5a8aac27be1.png"},
"employment_type": "Полный рабочий день",
"salary": "от 10 000 до 60 000 ₽",
"remote": false,
"expanded_salary": {
"from": 100000,
"to": 600000,
"currency": rur
},
"published": true,
"paid": true,
"skills": [
{
"value": 764,
"alias": "konsultirovanie-po-podboru-personala",
"title": "Консультирование по подбору персонала"
}
],
"locations": [
{
"title": "Архангельск",
"href": "/vacancies?city_id=5"
}
],
"description": "Условия работы",
"bonuses": "Бонусы",
"instructions": "Дополнительные инструкции",
"team": "О компании и команде",
"candidate": "Ожидания от кандидата"
},
"result": {
"message": "Вакансия размещена",
"status": 200
}
}
В поле result
содержится информация о статусе размещения вакансии:
Статус | Описание |
---|---|
200 | Вакансия успешно размещена |
400 | Некорректно заполнены поля вакансии |
401 | На балансе компании недостаточно средств для размещения вакансии |
403 | Вы не являетесь куратором ни в одной компании |
PATCH /v1/integrations/vacancies/:id
Параметры:
Название поля | Тип | Описание |
---|---|---|
vacancy[title] * | string | Название вакансии (макс. 80 символов) |
vacancy[salary_from] * | number | Вознаграждение от |
vacancy[salary_to] | number | Вознаграждение до |
vacancy[currency] * | string | Валюта (rur|usd|eur|uah|kzt) |
vacancy[remote] | number | Удаленная работа (0 - работа в офисе | 1 - удаленная работа) |
vacancy[employment_type] | string | Тип занятости (full_time - полная занятость | part_time - частичная занятость) |
vacancy[description] * | string | Описание вакансии (текст или HTML) |
vacancy[bonuses] | string | Бонусы вакансии (текст или HTML) |
vacancy[instructions] | string | Дополнительные инструкции (текст или HTML) |
vacancy[team] | string | О компании и команде (текст или HTML) |
vacancy[candidate] | string | Ожидания от кандидата (текст или HTML) |
vacancy[skills] * | string | Навыки (от 1 до 10, список алиасов через запятую) |
vacancy[specialization_ids] * | string | ID специализации (не более 1) |
vacancy[members] * | string | Список логинов или емейлов кураторов вакансии (через запятую) |
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит описание вакансии:
{
"vacancy": {
"id": 2,
"title": "Вакансия1",
"divisions": [],
"specializations": [
{
"id": 13,
"title": {
"ru": "Инженер по обеспечению качества",
"en": "Quality Assurance Engineer"
}
}
],
"published_at": "2023-04-04T17:08:51.560+03:00",
"url": "https://career.habr.com/vacancies/2",
"qualification": {
"title": {
"ru":"Старший",
"en":"Senior"
}
},
"city": "Архангельск",
"marked": false,
"company": {
"name": "company2",
"alias_name": "company2",
"url": "https://career.habr.com/companies/company2",
"logo_url": "https://hsto.org/getpro/moikrug/uploads/company/348/850/484/logo/medium_cd41dce48c924bbcd134b5a8aac27be1.png"},
"employment_type": "Полный рабочий день",
"salary": "от 10 000 до 60 000 ₽",
"remote": false,
"expanded_salary": {
"from": 100000,
"to": 600000,
"currency": rur
},
"published": true,
"paid": true,
"skills": [
{
"value": 764,
"alias": "konsultirovanie-po-podboru-personala",
"title": "Консультирование по подбору персонала"
}
],
"locations": [
{
"title": "Архангельск",
"href": "/vacancies?city_id=5"
}
],
"description": "Условия работы",
"bonuses": "Бонусы",
"instructions": "Дополнительные инструкции",
"team": "О компании и команде",
"candidate": "Ожидания от кандидата"
},
"result": {
"message": "Вакансия размещена",
"status": 200
}
}
В поле result
содержится информация о статусе размещения вакансии:
Статус | Описание |
---|---|
200 | Вакансия успешно обновлена |
400 | Некорректно заполнены поля вакансии |
403 | Вакансия с таким ID не найдена |
PUT /v1/integrations/vacancies/:id/pay
Параметры:
Название поля | Тип | Описание |
---|---|---|
account | number | ID счета, с которого должна произойти оплата (если не указан, счет будет выбран автоматически) |
placement_type | number | 0 - размещение по типу «Стандарт» 1 - размещение по типу «Стандарт плюс» (если не указан - вакансия будет размещена по типу «Стандарт») |
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит описание вакансии:
{
"vacancy": {
"id": 2,
"title": "Вакансия1",
"divisions": [],
"specializations": [
{
"id": 13,
"title": {
"ru": "Инженер по обеспечению качества",
"en": "Quality Assurance Engineer"
}
}
],
"published_at": "2023-04-04T17:08:51.560+03:00",
"url": "https://career.habr.com/vacancies/2",
"qualification": {
"title": {
"ru":"Старший",
"en":"Senior"
}
},
"city": "Архангельск",
"marked": false,
"company": {
"name": "company2",
"alias_name": "company2",
"url": "https://career.habr.com/companies/company2",
"logo_url": "https://hsto.org/getpro/moikrug/uploads/company/348/850/484/logo/medium_cd41dce48c924bbcd134b5a8aac27be1.png"},
"employment_type": "Полный рабочий день",
"salary": "от 10 000 до 60 000 ₽",
"remote": false,
"expanded_salary": {
"from": 100000,
"to": 600000,
"currency": rur
},
"published": true,
"paid": true,
"skills": [
{
"value": 764,
"alias": "konsultirovanie-po-podboru-personala",
"title": "Консультирование по подбору персонала"
}
],
"locations": [
{
"title": "Архангельск",
"href": "/vacancies?city_id=5"
}
],
"description": "Условия работы",
"bonuses": "Бонусы",
"instructions": "Дополнительные инструкции",
"team": "О компании и команде",
"candidate": "Ожидания от кандидата"
},
"result": {
"message": "Вакансия размещена",
"status": 200
}
}
В поле result
содержится информация о статусе размещения вакансии:
Статус | Описание |
---|---|
200 | Вакансия размещена |
401 | Недостаточно денег на балансе компании |
403 | Вакансия с таким ID не найдена |
405 | Вакансия уже оплачена |
PUT /v1/integrations/vacancies/:id/toggle_published_state
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит описание вакансии:
{
"vacancy": {
"id": 2,
"title": "Вакансия1",
"divisions": [],
"specializations": [
{
"id": 13,
"title": {
"ru": "Инженер по обеспечению качества",
"en": "Quality Assurance Engineer"
}
}
],
"published_at": "2023-04-04T17:08:51.560+03:00",
"url": "https://career.habr.com/vacancies/2",
"qualification": {
"title": {
"ru":"Старший",
"en":"Senior"
}
},
"city": "Архангельск",
"marked": false,
"company": {
"name": "company2",
"alias_name": "company2",
"url": "https://career.habr.com/companies/company2",
"logo_url": "https://hsto.org/getpro/moikrug/uploads/company/348/850/484/logo/medium_cd41dce48c924bbcd134b5a8aac27be1.png"},
"employment_type": "Полный рабочий день",
"salary": "от 10 000 до 60 000 ₽",
"remote": false,
"expanded_salary": {
"from": 100000,
"to": 600000,
"currency": rur
},
"published": true,
"paid": true,
"skills": [
{
"value": 764,
"alias": "konsultirovanie-po-podboru-personala",
"title": "Консультирование по подбору персонала"
}
],
"locations": [
{
"title": "Архангельск",
"href": "/vacancies?city_id=5"
}
],
"description": "Условия работы",
"bonuses": "Бонусы",
"instructions": "Дополнительные инструкции",
"team": "О компании и команде",
"candidate": "Ожидания от кандидата"
},
"result": {
"published": false,
"status": 200
}
}
В поле result
содержится информация о статусе размещения вакансии:
Статус | Описание |
---|---|
200 | Вакансия опубликована / скрыта в черновики |
403 | Вакансия с таким ID не найдена |
PUT /v1/integrations/vacancies/:id/responses/:response_id/destroy
Обязательные параметры:
id
- ID вакансии
response_id
- ID отклика на вакансию
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит описание отклика:
{
"id": 1,
"vacancy_id": 19,
"user": {
"login": "someuser",
"name": "Иван Иванов",
"avatar": "https://hsto.org/getpro/moikrug/uploads/company/348/850/484/logo/medium_cd41dce48c924bbcd134b5a8aac27be1.png",
"birthday": "1990-08-15",
"specialization": "Дизайнер",
"skills": [
{
"title": "Разработка",
"alias_name": "coding"
},
{
"title": "Дизайн",
"alias_name": "design"
}
],
"experience_total": "1 год и 3 месяца",
"relocation": true,
"remote": true,
"compensation": {
value: 100000,
currency: 'rur'
},
"work_state": "ready",
"age": 33,
"location": {
"city": "Москва",
"country": "Россия"
},
"experiences": {
"company": "Компания",
"position": "Дизайнер",
"period": "1 год и 3 месяца"
},
"educations": {
"university": "Университет",
"faculty": "Факультет",
"start_date": "2013-05-01",
"end_date": "2014-05-01"
},
},
"body": "Отклик",
"favorite": false,
"archived": false,
"created_at": "2017-08-11T00:17:47.827+03:00"
}
В поле result
содержится информация о статусе операции:
Статус | Описание |
---|---|
200 | Отклик успешно удален |
403 | Вакансия с таким ID не найдена |
403 | Отклик с таким ID не найден |
GET /v1/integrations/specializations
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит массив специализаций:
{ "groups":
[{
"id": 1,
"title": {
"ru": "Разработка программного обеспечения",
"en": "Software Development"
},
"specializations": [
{
"id": 2,
"title": {
"ru": "Бэкенд разработчик",
"en": "Backend Web Developer"
}
},
{
"id": 3,
"title": {
"ru": "Фронтенд разработчик",
"en": "Frontend Web Developer"
}
}
]
},
{
"id": 2,
"title": {
"ru": "Контроль качества, тестирование",
"en": "Quality Assurance"
},
"specializations": [
{
"id": 10,
"title": {
"ru": "Инженер по автомат. тестированию",
"en": "Test Automation Engineer"
}
},
{
"id": 11,
"title": {
"ru": "Инженер по производительности",
"en": "Software Performance Engineer"
}
}
]
}]
}
Описание полей специализации:
Название поля | Тип | Описание |
---|---|---|
id | number | ID группы специализаций |
title/ru | string | Название группы специализаций на русском языке |
title/en | string | Название группы специализаций на англ. языке |
specializations | array | Список специализаций |
specializations/id | number | ID специализации |
specializations/title/ru | string | Название специализации на русском языке |
specializations/title/en | string | Название специализации на англ. языке |
GET /v1/integrations/qualifications
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит массив квалификаций:
{ "qualifications": [
{
"id": 1,
"title": {
"ru": "Стажёр",
"en": "Intern"
}
},
{
"id": 2,
"title": {
"ru": "Ассистент",
"en": "Assistant"
}
}]
}
Описание полей квалификации:
Название поля | Тип | Описание |
---|---|---|
id | number | ID квалификации |
title/ru | string | Название квалификации на русском языке |
title/en | string | Название квалификации на англ. языке |
GET /v1/integrations/salaries
Важно:
Для доступа к данному разделу АПИ необходимо обратиться в техподдержку. Количество запросов к данному разделу ограничено одним запросом в минуту.
Параметры:
Название поля | Тип | Описание |
---|---|---|
employment_type | string | Тип занятости (full_time - полная занятость | part_time - частичная занятость) |
remote | number | Удаленная работа (0 - работа в офисе | 1 - удаленная работа) |
sg | number | ID группы специализаций |
s | number | ID специализации |
q | number | ID квалификации |
skills_list | string | Алиасы навыков Хабр Карьеры через запятую, поддерживается до 3х навыков одновременно |
company_alias | string | Алиас компании на Хабр Карьере |
p | number | Период, за который будет сформирована статистика. Формируется по правилу - две последние цифры года + полугодие, например 192 - 2 полугодие 2019 года. Первым доступным периодом является 2 полугодие 2017 года (172). Если параметр не указан или указан некорректно - будет показана статистика по текущему периоду. В случае, если необходимо получить статистику за все время, нужно передать значение 0. |
cities | string | Алиасы городов Хабр Карьеры через запятую |
exclude_cities | number | Если необходимо исключить указанные города, нужно передать данный параметр со значением 1 |
Ответ:
Успешный ответ приходит с кодом 200 OK и содержит статистику по зарплатам:
{
"dataAvailable": true,
"averageSalary": 63333,
"profilesAmount": 356,
"min": 40000,
"max": 100000,
"percentile25": 45000,
"percentile75": 75000,
"href": "http://career.habr.com/salaries?p=192",
"bars": {
"labels": [
"40000 - 45000",
"45000 - 50000",
"50000 - 55000",
"55000 - 60000",
"60000 - 65000",
"65000 - 70000",
"70000 - 75000",
"75000 - 80000",
"80000 - 85000",
"85000 - 105000"
],
"data": [
33,
33,
0,
0,
0,
0,
0,
0,
0,
33
],
"median": 50000
}
}
Описание полей:
Название поля | Тип | Описание |
---|---|---|
dataAvailable | boolean | Параметр, показывающий наличие данных |
averageSalary | number | Средняя зарплата по выбранным фильтрам |
profilesAmount | number | Количество анкет |
min | number | Минимальная зарплата |
max | number | Максимальная зарплата |
percentile25 | number | Значение 25го процентиля (нижний квартиль) |
percentile75 | number | Значение 75го процентиля (верхний квартиль) |
href | string | Ссылка на страницу зарплат с выбранными фильтрами |
bars | object | Данные, необходимые для построения столбчатой диаграммы |
bars/labels | array | Подписи столбчатой диаграммы |
bars/data | array | Значения столбчатой диаграммы |
bars/median | number | Медианное значение зарплаты |