@sargonpiraev/hh-api-client
Version:
A TypeScript client for the HeadHunter API, generated from the official OpenAPI specification.
1,840 lines • 944 kB
TypeScript
/**
* Список отраслей
*/
export type DictionariesIndustriesResponse = Array<DictionariesBranchItem>;
/**
* Отрасль
*/
export type DictionariesBranchItem = {
/**
* Идентификатор отрасли
*/
id: string;
/**
* Сферы деятельности
*/
industries: Array<IncludesIdName>;
/**
* Название отрасли
*/
name: string;
};
/**
* Объект с идентификатором и названием
*/
export type IncludesIdName = IncludesId & {
/**
* Название
*/
name: string;
};
/**
* Объект с идентификатором
*/
export type IncludesId = {
/**
* Идентификатор
*/
id: string;
};
/**
* Список доступных локалей
*/
export type LocalesResumeLocales = Array<LocalesResumeLocaleItem>;
/**
* Локализация
*/
export type LocalesResumeLocaleItem = {
/**
* Идентификатор локали
*/
id: string;
/**
* Имя локали
*/
name: string;
};
/**
* Список факультетов
*/
export type DictionariesFacultiesResponse = Array<IncludesIdName>;
/**
* Ошибки при отклике на вакансию
* Информация о возникших ошибках
*/
export type ErrorsVacancyApplyForbiddenErrors = ErrorsCommonErrorRequestId & {
/**
* @deprecated
*/
bad_argument?: 'vacancy_id' | 'resume_id';
/**
* @deprecated
*/
bad_arguments?: Array<{
description?: string;
/**
* Поле, в котором допущена ошибка.
* Возможные значения:
* * `vacancy_id` — указан невалидный идентификатор
* * `resume_id` — указан невалидный идентификатор
*
*/
name?: 'vacancy_id' | 'resume_id';
}>;
/**
* Описание ошибки
*/
description?: string;
/**
* Массив с данными ошибок
*/
errors: Array<ErrorsVacancyApplyForbiddenError>;
};
/**
* Ошибка при отклике/приглашении на вакансию
*/
export type ErrorsVacancyApplyForbiddenError = {
/**
* Текстовый идентификатор типа ошибки
*/
type: 'negotiations';
/**
* Ошибки при отклике/приглашении на вакансию:
* * `invalid_vacancy` — вакансия из отклика/приглашения была архивирована или скрыта.
* * `resume_not_found` — резюме из отклика/приглашения скрыто, удалено или не найдено.
* * `already_applied` — в системе уже есть отклик/приглашение на указанную вакансию (связка `resume_id` + `vacancy_id`).
* * `test_required` — для отклика необходимо пройти тест.
* * `resume_visibility_conflict` — невозможно откликнуться на анонимную вакансию, используя резюме с [типом видимости](#tag/Rezyume.-Spiski-vidimosti/operation/get-resume-access-types) `whitelist`.
* * `edit_forbidden` — редактирование сообщения недоступно.
* * `application_denied` — общая ошибка запрета отклика в случае, когда дополнительная информация недоступна.
* * `limit_exceeded` — превышен лимит количества откликов/приглашений.
* * `wrong_state` — действие по отклику/приглашению в данном статусе невозможно.
* * `empty_message` — передан пустой текст сопроводительного письма.
* * `too_long_message` — передан слишком длинный текст сопроводительного письма.
* * `inappropriate_language_message` — передан текст сопроводительного письма, который содержит нецензурную лексику.
* * `resource_policy_violation_message` — передан текст сопроводительного письма, который нарушает правила использования сервиса.
* * `address_not_found` — переданный адрес не существует, либо принадлежит другому работодателю.
* * `not_enough_purchased_services` — не хватает оплаченных услуг. Например, [доступа к базе резюме](https://hh.ru/price#dbaccess).
* * `in_a_row_limit` — превышено количество последовательных сообщений в переписке. Необходимо дождаться ответа собеседника на сообщение.
* * `overall_limit` — превышен лимит сообщений.
* * `no_invitation` — переписка недоступна, так как в отклике ещё не было приглашения.
* * `message_cannot_be_empty` — сообщение в переписке не может быть пустым.
* * `disabled_by_employer` — возможность переписки по отклику отключена работодателем.
* * `resume_deleted` — резюме, с которым совершался отклик, удалено или скрыто.
* * `archived` — вакансия, на которую совершался отклик, заархивирована.
* * `chat_archived` — отклик/приглашение заархивировано.
* * `topic_archived` — отклик/приглашение заархивировано
* * `chat_is_not_ready` — операция временно не доступна, ожидается создание чата
*
*/
value: 'invalid_vacancy' | 'resume_not_found' | 'already_applied' | 'test_required' | 'resume_visibility_conflict' | 'edit_forbidden' | 'application_denied' | 'limit_exceeded' | 'wrong_state' | 'empty_message' | 'too_long_message' | 'inappropriate_language_message' | 'resource_policy_violation_message' | 'address_not_found' | 'not_enough_purchased_services' | 'in_a_row_limit' | 'overall_limit' | 'no_invitation' | 'message_cannot_be_empty' | 'disabled_by_employer' | 'resume_deleted' | 'archived' | 'chat_archived' | 'topic_archived' | 'chat_is_not_ready';
};
/**
* Поле ошибки с request_id
* В теле выдается request_id для упрощения решения проблем при обращении в поддержку hh.ru (api@hh.ru)
*/
export type ErrorsCommonErrorRequestId = {
/**
* Идентификатор запроса
*/
request_id: string;
};
/**
* Ошибки при публикации резюме
* Информация о возникших ошибках
*/
export type ErrorsBadRequestPublishResumeErrors = ErrorsCommonErrorRequestId & {
/**
* Описание причины ошибки. Возможные причины:
*
* * Не заполнены обязательные поля.
*
* Чтобы понять, какие именно поля не заполнены, воспользуйтесь методом [просмотр резюме](#tag/Rezyume.-Prosmotr-informacii/operation/get-resume). Обязательные поля перечислены в поле `progress.mandatory`).
*
* * Не отредактированы поля после блокировки модератором.
* * Резюме находится на проверке у модератора
*
*/
description?: string;
/**
* Массив с данными ошибок
*/
errors: Array<ErrorsBadRequestPublishResumeError>;
};
/**
* Ошибка при публикации резюме
*/
export type ErrorsBadRequestPublishResumeError = {
/**
* Текстовый идентификатор типа ошибки
*/
type: 'bad_request';
};
/**
* Список ключевых навыков
* Список ключевых навыков
*/
export type DictionariesSkillsResponse = {
/**
* Массив ключевых навыков
*/
items: Array<IncludesSkillSetItem>;
};
/**
* Ключевой навык
*/
export type IncludesSkillSetItem = {
/**
* Идентификатор ключевого навыка
*/
id: string;
/**
* Название ключевого навыка
*/
text: string;
};
/**
* Каталог профессиональных ролей
* Каталог профессиональных ролей и категорий
*/
export type ProfessionalRolesCatalog = {
/**
* Категория профессиональной роли
* Информация о категории профессиональной роли
*/
categories: Array<ProfessionalRolesCategory>;
};
/**
* Категории профессиональных ролей
*/
export type ProfessionalRolesCategory = {
/**
* Идентификатор категории профессиональной роли
*/
id: string;
/**
* Имя категории профессиональной роли
*/
name: string | null;
/**
* Список профессиональных ролей, входящих в эту категорию
*
*/
roles: Array<ProfessionalRolesRole>;
};
/**
* Профессиональная роль
*/
export type ProfessionalRolesRole = {
/**
* На роль принимаются отклики неполным резюме
*/
accept_incomplete_resumes: boolean;
/**
* Идентификатор профессиональной роли
*/
id: string;
/**
* Дефолтная роль
*/
is_default: boolean;
/**
* Имя профессиональной роли
*/
name: string;
/**
* Наличие запрета на использование в поиске при составлении поискового запроса
*/
search_deprecated?: boolean;
/**
* Время, с которого действует запрет на использование роли в поиске при составлении поискового запроса,
* в формате [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) с точностью до секунды: `YYYY-MM-DDThh:mm:ss±hhmm`
*
*/
search_deprecated_datetime?: string | null;
/**
* Наличие запрета на использование при создании новых сущностей (резюме или вакансии)
*/
select_deprecated?: boolean;
/**
* Время, с которого действует запрет на использование роли при создании новых сущностей,
* в формате [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) с точностью до секунды: `YYYY-MM-DDThh:mm:ss±hhmm`
*
*/
select_deprecated_datetime?: string | null;
};
/**
* Шаблон ответа соискателю
*/
export type MailTemplatesMailTemplateInput = {
/**
* Текст шаблона
*/
text: string;
};
/**
* Успешный ответ
*/
export type NegotiationsNegotiationGetResponse = NegotiationsApplicantNegotiation | NegotiationsEmployerNegotiation;
/**
* Информация об отклике/приглашении (работодатель)
*/
export type NegotiationsEmployerNegotiation = NegotiationsObjectsTopicItemCommon & NegotiationsNegotiationCommonFields & {
/**
* Короткое представление резюме
*/
resume?: IncludesNullableObject | NegotiationsObjectsEmployerTopicResume | null;
/**
* Короткое представление вакансии
*/
vacancy?: VacanciesNegotiationsVacancyShort | IncludesNullableObject | null;
};
/**
* Короткое представление резюме
*/
export type NegotiationsObjectsEmployerTopicResume = ResumeResumeShort & IncludesUrl & {
/**
* Дата скрытия контактов резюме в формате `YYYY-MM-DD`
*/
contacts_open_until_date?: string | null;
/**
* Для получения данных нужно передать параметр `with_job_search_status=true`.
* Возможные значения перечислены в поле `job_search_statuses_employer` в [справочнике полей](#tag/Obshie-spravochniki/operation/get-dictionaries)
*
*/
job_search_status?: IncludesIdNameLastChangeTime;
/**
* Ключевые навыки (список уникальных строк)
*/
skill_set?: Array<string> | null;
};
/**
* Сокращенное представление резюме
*/
export type ResumeResumeShort = ResumeResumeCommon & {
actions: ResumeObjectsActions;
/**
* Опыт работы. В объекте опыта отсутствует описание (поле description), а также должность (поле position) доступна только в последнем опыте
*/
experience: Array<ResumeObjectsExperienceShort>;
/**
* Добавлено ли резюме в избранные
*/
favorited: boolean;
/**
* Выделено ли резюме в поиске
*/
marked?: boolean;
/**
* Краткая история откликов/приглашений по резюме
*/
negotiations_history: ResumeObjectsNegotiationsHistoryUrl;
/**
* Информация о владельце резюме
*/
owner: ResumeObjectsOwner;
photo?: ResumeObjectsOneOfPhotoNoId;
/**
* Теги к резюме
*/
tags?: Array<IncludesId>;
/**
* Было ли резюме уже просмотрено работодателем
*/
viewed?: boolean;
};
/**
* Владелец резюме
*/
export type ResumeObjectsOwner = {
/**
* Раздел [Комментарии к владельцу резюме](#tag/Kommentarii-k-soiskatelyu/operation/get-applicant-comments-list)
*/
comments: ResumeObjectsOwnerComments;
/**
* Идентификатор владельца резюме
*/
id: string;
};
/**
* Комментарии о владельце резюме
*/
export type ResumeObjectsOwnerComments = {
/**
* Информация о количестве комментариев
*/
counters: ResumeObjectsOwnerCommentsCounters;
/**
* URL, на который нужно сделать GET-запрос, чтобы получить список комментариев
*/
url: string;
};
/**
* Количество комментариев
*/
export type ResumeObjectsOwnerCommentsCounters = {
/**
* Общее количество комментариев
*/
total: number;
};
/**
* Представление резюме
*/
export type ResumeResumeCommon = ResumeResumeNano & ResumeResumeEmploymentTerms & {
/**
* Возраст
*/
age?: number | null;
area?: ResumeObjectsArea;
/**
* Доступен ли просмотр контактной информации в резюме текущему работодателю
*/
can_view_full_info?: boolean | null;
/**
* Список сертификатов соискателя
*/
certificate: Array<ResumeObjectsCertificate>;
/**
* Дата и время создания резюме
*/
created_at: string;
/**
* Ссылки для скачивания резюме в разных форматах
*/
download: ResumeObjectsDownload;
/**
* Образование соискателя.
*
* Особенности сохранения образования:
*
* * Если передать и высшее и среднее образование и уровень образования "средний", то сохранится только среднее образование.
* * Если передать и высшее и среднее образование и уровень образования "высшее", то сохранится только высшее образование
*
*/
education: ResumeObjectsEducation;
/**
* Имя
*/
first_name?: string | null;
gender?: ResumeObjectsGender;
/**
* Справочник [Список скрытых полей](https://github.com/hhru/api/blob/master/docs/employer_resumes.md#hidden-fields). Возможные значения элементов приведены в поле `resume_hidden_fields` [справочника полей](#tag/Obshie-spravochniki/operation/get-dictionaries)
*/
hidden_fields: Array<IncludesIdName>;
/**
* Фамилия
*/
last_name?: string | null;
/**
* Выделено ли резюме в поиске
*/
marked?: boolean;
/**
* Отчество
*/
middle_name?: string | null;
/**
* Ресурс, на котором было размещено резюме
*/
platform?: IncludesId;
/**
* Уникальный идентификатор резюме
*/
real_id: string;
salary?: ResumeObjectsSalaryProperties;
total_experience?: ResumeObjectsTotalExperience;
/**
* Дата и время обновления резюме
*/
updated_at: string;
};
/**
* Сертификат
*/
export type ResumeObjectsCertificate = {
/**
* Дата получения (в формате `ГГГГ-ММ-ДД`)
*/
achieved_at?: string;
/**
* На кого выдан сертификат. Возвращается только для сертификатов с `type = microsoft`
*/
owner?: string | null;
/**
* Название сертификата
*/
title?: string;
/**
* Тип сертификата. Доступные значения:
*
* * `custom`;
* * `microsoft`
*
*/
type?: string;
/**
* Ссылка на страницу с описанием сертификата
*/
url?: string | null;
};
/**
* Пол соискателя
* Пол соискателя. Возможные значения перечислены в поле `gender` [справочника полей](#tag/Obshie-spravochniki/operation/get-dictionaries)
*/
export type ResumeObjectsGender = IncludesIdName | IncludesNullableObject | null;
/**
* Null-объект
* Объект, значение которого null
*/
export type IncludesNullableObject = null;
/**
* Зарплата
*/
export type ResumeObjectsSalaryProperties = {
/**
* Сумма
*/
amount?: number | null;
/**
* Идентификатор валюты. Возможные значения перечислены в массиве `currency` [справочника полей](#tag/Obshie-spravochniki/operation/get-dictionaries)
*/
currency?: string | null;
} | null;
/**
* Город
* Город проживания. Элемент справочника [areas](#tag/Obshie-spravochniki/operation/get-areas)
*/
export type ResumeObjectsArea = IncludesIdNameUrl | IncludesNullableObject | null;
/**
* Объект с идентификатором, названием и ссылкой
*/
export type IncludesIdNameUrl = IncludesIdName & {
/**
* URL получения информации о поле
*/
url: string;
};
/**
* Сокращенное представление резюме
*/
export type ResumeResumeNano = {
/**
* URL резюме на сайте
*/
alternate_url: string;
/**
* Идентификатор резюме
*/
id: string;
/**
* Желаемая должность
*/
title: string | null;
};
/**
* Загрузка резюме
*/
export type ResumeObjectsDownload = {
/**
* PDF-версия резюме
*/
pdf: ResumeObjectsDownloadPdfRtf;
/**
* RTF-версия резюме
*/
rtf: ResumeObjectsDownloadPdfRtf;
};
/**
* PDF/RTF-версия резюме
*/
export type ResumeObjectsDownloadPdfRtf = {
/**
* Ссылка для получения PDF/RTF-версии резюме
*/
url: string;
};
/**
* Опыт работы
*/
export type ResumeObjectsTotalExperience = {
/**
* Общий опыт работы в месяцах, с округлением до месяца
*/
months?: number | null;
} | null;
/**
* Блок, касающийся условий занятости для ответа на запрос
*/
export type ResumeResumeEmploymentTerms = {
employment_form?: ResumeObjectsEmploymentFormOutput;
fly_in_fly_out_duration?: ResumeObjectsFlyInFlyOutDurationFlyInFlyOutDurationOutput;
internship?: ResumeObjectsInternship;
night_shifts?: ResumeObjectsNightShifts;
ready_for_temporary_job?: ResumeObjectsReadyForTemporaryJob;
work_format?: ResumeObjectsWorkFormatWorkFormatOutput;
work_schedule_by_days?: ResumeObjectsWorkScheduleByDaysWorkScheduleByDaysOutput;
working_hours?: ResumeObjectsWorkingHoursWorkingHoursOutput;
};
/**
* Варианты длительности вахты
* Варианты длительности вахты
*/
export type ResumeObjectsFlyInFlyOutDurationFlyInFlyOutDurationOutput = Array<ResumeObjectsFlyInFlyOutDurationFlyInFlyOutDurationItemOutput>;
/**
* Название варианта длительности вахты
*/
export type ResumeObjectsFlyInFlyOutDurationFlyInFlyOutDurationItemOutput = ResumeObjectsFlyInFlyOutDurationFlyInFlyOutDurationItem & {
/**
* Название варианта длительности вахты
*/
name?: string;
};
/**
* Длительность вахты
*/
export type ResumeObjectsFlyInFlyOutDurationFlyInFlyOutDurationItem = {
/**
* Элементы из [справочника fly_in_fly_out_duration](#tag/Obshie-spravochniki/operation/get-dictionaries)
*/
id?: string;
};
/**
* Форматы работы
* Список форматов работы
*/
export type ResumeObjectsWorkFormatWorkFormatOutput = Array<ResumeObjectsWorkFormatWorkFormatItemOutput>;
/**
* Название формата работы
*/
export type ResumeObjectsWorkFormatWorkFormatItemOutput = ResumeObjectsWorkFormatWorkFormatItem & {
/**
* Название формата работы
*/
name?: string;
};
/**
* Формат работы
*/
export type ResumeObjectsWorkFormatWorkFormatItem = {
/**
* Элементы из [справочника work_format](#tag/Obshie-spravochniki/operation/get-dictionaries)
*/
id?: string;
};
/**
* Стажировка
* Стажировка
*/
export type ResumeObjectsInternship = boolean | null;
/**
* Графики работы
* Список графиков работы
*/
export type ResumeObjectsWorkScheduleByDaysWorkScheduleByDaysOutput = Array<ResumeObjectsWorkScheduleByDaysWorkScheduleByDaysItemOutput>;
/**
* Название графика работы
*/
export type ResumeObjectsWorkScheduleByDaysWorkScheduleByDaysItemOutput = ResumeObjectsWorkScheduleByDaysWorkScheduleByDaysItem & {
/**
* Название графика работы
*/
name?: string;
};
/**
* График работы
*/
export type ResumeObjectsWorkScheduleByDaysWorkScheduleByDaysItem = {
/**
* Элементы из [справочника work_schedule_by_days](#tag/Obshie-spravochniki/operation/get-dictionaries)
*/
id?: string;
};
/**
* Готов ко временной работе
* Готов ко временной работе
*/
export type ResumeObjectsReadyForTemporaryJob = boolean | null;
/**
* Тип занятости
*/
export type ResumeObjectsEmploymentFormOutput = {
/**
* Элементы из [справочника employment_form](#tag/Obshie-spravochniki/operation/get-dictionaries)
*/
id?: string;
/**
* Название типа занятости
*/
name?: string;
} | null;
/**
* Варианты рабочих часов в день
* Список вариантов рабочих часов в день
*/
export type ResumeObjectsWorkingHoursWorkingHoursOutput = Array<ResumeObjectsWorkingHoursWorkingHoursItemOutput>;
/**
* Название вариантов рабочих часов в день
*/
export type ResumeObjectsWorkingHoursWorkingHoursItemOutput = ResumeObjectsWorkingHoursWorkingHoursItem & {
/**
* Название варианта рабочих часов в день
*/
name?: string;
};
/**
* Рабочие часы в день
*/
export type ResumeObjectsWorkingHoursWorkingHoursItem = {
/**
* Элементы из [справочника working_hours](#tag/Obshie-spravochniki/operation/get-dictionaries)
*/
id?: string;
};
/**
* Ночные смены
* Ночные смены
*/
export type ResumeObjectsNightShifts = boolean | null;
/**
* Образование
*/
export type ResumeObjectsEducation = {
/**
* Список куров повышения квалификации
*/
additional?: Array<ResumeObjectsEducationAdditional> | null;
/**
* Список пройденных тестов или экзаменов
*/
attestation?: Array<ResumeObjectsEducationAdditional> | null;
/**
* Среднее образование. Обычно заполняется только при отсутствии высшего образования
*/
elementary?: Array<ResumeObjectsEducationElementary> | null;
level: IncludesEducationLevel;
/**
* Список образований выше среднего
*/
primary?: Array<ResumeObjectsEducationPrimary> | null;
};
/**
* Высшее образование
*/
export type ResumeObjectsEducationPrimary = {
education_level?: IncludesEducationLevel;
/**
* Идентификатор
*/
id?: string | null;
/**
* Название учебного заведения
*/
name: string;
/**
* Идентификатор учебного заведения
*/
name_id?: string | null;
/**
* Факультет
*/
organization?: string | null;
/**
* Идентификатор факультета
*/
organization_id?: string | null;
/**
* Специальность / специализация
*/
result?: string | null;
/**
* Идентификатор специальности / специализации
*/
result_id?: string | null;
/**
* Акроним учебного заведения
*/
university_acronym?: string | null;
/**
* Год окончания
*/
year: number;
};
/**
* Уровень образования
*/
export type IncludesEducationLevel = IncludesIdName | IncludesNullableObject | null;
/**
* Дополнительное образование
*/
export type ResumeObjectsEducationAdditional = {
/**
* Идентификатор
*/
id?: string | null;
/**
* Название курса / теста
*/
name: string;
/**
* Организация, проводившая курс / тест
*/
organization: string;
/**
* Специальность / специализация
*/
result?: string | null;
/**
* Год окончания / сдачи
*/
year: number;
};
/**
* Среднее образование
*/
export type ResumeObjectsEducationElementary = {
/**
* Идентификатор
*/
id?: string | null;
/**
* Название учебного заведения
*/
name: string;
/**
* Год окончания
*/
year: number;
};
/**
* История откликов/приглашений
*/
export type ResumeObjectsNegotiationsHistoryUrl = {
/**
* URL, на который необходимо сделать GET-запрос, чтобы получить [подробную историю откликов/приглашений](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-resume-negotiations-history) по данному резюме
*/
url: string;
};
/**
* Фотография
* Фотография пользователя
*/
export type ResumeObjectsOneOfPhotoNoId = ResumeObjectsPhotoNoId | IncludesNullableObject | null;
/**
* Фотография пользователя
*/
export type ResumeObjectsPhotoNoId = {
/**
* URL изображения размером 40x40 пикселей. Изображение по данному URL доступно ограниченное время после получения ответа. Приложение должно быть готово к тому, что на запрос изображения вернется ошибка `404 Not Found`
* @deprecated
*/
40?: string | null;
/**
* URL изображения размером 100x100 пикселей. Изображение по данному URL доступно ограниченное время после получения ответа. Приложение должно быть готово к тому, что на запрос изображения вернется ошибка `404 Not Found`
* @deprecated
*/
100?: string | null;
/**
* URL изображения размером 500x500 пикселей. Изображение по данному URL доступно ограниченное время после получения ответа. Приложение должно быть готово к тому, что на запрос изображения вернется ошибка `404 Not Found`
* @deprecated
*/
500?: string | null;
/**
* URL среднего по размеру изображения. Изображение по данному URL доступно ограниченное время после получения ответа. Приложение должно быть готово к тому, что на запрос изображения вернется ошибка `404 Not Found`
*/
medium: string;
/**
* URL уменьшенного изображения. Изображение по данному URL доступно ограниченное время после получения ответа. Приложение должно быть готово к тому, что на запрос изображения вернется ошибка `404 Not Found`
*/
small: string;
};
/**
* Опыт работы в организации
*/
export type ResumeObjectsExperienceShort = ResumeObjectsExperiencePropertiesShort;
/**
* Опыт работы в организации для резюме
*/
export type ResumeObjectsExperiencePropertiesShort = {
/**
* Регион расположения организации. Элемент [справочника регионов](#tag/Obshie-spravochniki/operation/get-areas)
*/
area?: IncludesIdNameUrl | IncludesNullableObject | null;
/**
* Название организации
*/
company?: string | null;
/**
* Уникальный идентификатор организации
*/
company_id?: string | null;
/**
* Сайт компании
*/
company_url?: string | null;
/**
* Работодатель
*/
employer?: EmployersEmployerInfoShort | IncludesNullableObject | null;
/**
* Окончание работы (дата в формате `ГГГГ-ММ-ДД`)
*/
end?: string | null;
/**
* Список отраслей компании. Возможные значения приведены в [справочнике индустрий](#tag/Obshie-spravochniki/operation/get-industries)
*/
industries?: Array<IncludesIdName>;
/**
* Отрасль компании
*/
industry?: ResumeObjectsIndustry | IncludesNullableObject | null;
/**
* Должность
*/
position?: string;
/**
* Начало работы (дата в формате `ГГГГ-ММ-ДД`)
*/
start?: string;
};
/**
* Работодатель
*/
export type EmployersEmployerInfoShort = {
/**
* Ссылка на описание работодателя на сайте
*/
alternate_url: string;
/**
* Идентификатор работодателя
*/
id: string;
/**
* Ссылки на изображения логотипов работодателя разных размеров. `original` — это необработанный логотип, который может быть большого размера. Если изначально загруженный компанией логотип меньше, чем 240px и/или 90px по меньшей стороне, то в соответствующих ключах будут ссылки на изображения оригинального размера. Объект может быть `null`, если компания не загрузила логотип. Клиент должен предусмотреть возможность отсутствия логотипа по указанной ссылке (ответ с кодом `404 Not Found`). Логотипы 90 и 240 присутствуют не во всех компаниях
*/
logo_urls?: IncludesLogoUrls | IncludesNullableObject | null;
/**
* Название работодателя
*/
name: string;
/**
* URL для получения полного описания работодателя
*/
url: string;
};
/**
* Ссылка на логотип
*/
export type IncludesLogoUrls = {
/**
* URL логотипа с размером менее 90px по меньшей стороне
*/
90?: string;
/**
* URL логотипа с размером менее 240px по меньшей стороне
*/
240?: string;
/**
* URL необработанного логотипа
*/
original: string;
};
/**
* Отрасль
* @deprecated
*/
export type ResumeObjectsIndustry = {
/**
* Идентификатор поля
*/
id: string;
/**
* Название поля
*/
name: string;
};
/**
* Действия с резюме
*/
export type ResumeObjectsActions = ResumeObjectsActionsForOwner & {
download_with_contact?: ResumeObjectsOneOfDownloadOrNullableObject;
get_with_contact?: ResumeObjectsOneOfUrlOrNullableObject;
};
/**
* Ссылки для скачивания резюме с контактами
* Ссылки для скачивания резюме с контактами (происходит трата услуги) в нескольких форматах ([подробнее](https://github.com/hhru/api/blob/master/docs/employer_resumes.md#download-links)). Отображаются, если у работодателя есть подходящая оплаченная услуга открытия контактов и контакты резюме еще не открыты
*
*/
export type ResumeObjectsOneOfDownloadOrNullableObject = ResumeObjectsDownload | IncludesNullableObject | null;
/**
* Ссылка для получения резюме с контактами
* Ссылка для получения резюме с контактами (происходит трата услуги). По ссылке возвращается объект аналогичный [просмотру резюме](#tag/Prosmotr-rezyume/operation/get-resume). Отображается, если у работодателя есть подходящая оплаченная услуга открытия контактов и контакты резюме еще не открыты
*
*/
export type ResumeObjectsOneOfUrlOrNullableObject = IncludesUrl | IncludesNullableObject | null;
/**
* URL
*/
export type IncludesUrl = {
/**
* Ссылка на получение элементов
*/
url: string;
};
/**
* Действия с резюме от имени владельца
*/
export type ResumeObjectsActionsForOwner = {
/**
* Ссылки для скачивания резюме в нескольких форматах ([подробнее](#tag/Prosmotr-rezyume/operation/get-resume)) (атрибут 'actions')
*
*/
download: ResumeObjectsDownload;
};
/**
* Объект с идентификатором, названием и временем последнего изменения
*/
export type IncludesIdNameLastChangeTime = IncludesIdName & {
/**
* Время последнего изменения
*/
last_change_time?: string;
};
/**
* Общая информация об отклике/приглашении
*/
export type NegotiationsObjectsTopicItemCommon = {
/**
* Является ли вопросом до отклика
*/
applicant_question_state?: boolean;
counters?: NegotiationsObjectsCounters;
/**
* Дата и время создания отклика/приглашения
*/
created_at: string;
has_updates: VacancyHasUpdates;
/**
* Идентификатор отклика/приглашения
*/
id: string;
/**
* URL, на который необходимо делать GET-запрос для получения [списка сообщений в отклике/приглашении](#tag/Perepiska-(otklikipriglasheniya)-dlya-soiskatelya/operation/get-negotiation-messages). Если `can_edit` равно `false`, значение поля должно игнорироваться
* @deprecated
*/
messages_url?: string;
/**
* Текущий статус переписки.
*
* Возможные значения приведены в поле `messaging_status` [справочника полей](#tag/Obshie-spravochniki/operation/get-dictionaries)
*
*/
messaging_status: string;
professional_roles?: VacancyProfessionalRoles | IncludesNullableObject;
/**
* Источник отклика/приглашения
*/
source?: 'NEGOTIATION' | 'PHONE_CALL' | 'CHAT' | 'VR' | 'AUTO_INVITE' | 'APPLICANT_QUESTIONS' | 'AUTO_RESPONSE' | 'AUTO_RESPONSE_HH_PRO' | 'CLICKME_CPA';
/**
* Текущее состояние отклика/приглашения.
*
* Возможные значения приведены в поле `negotiations_state` [справочника полей](#tag/Obshie-spravochniki/operation/get-dictionaries)
*
*/
state: IncludesIdName;
/**
* Дата и время последнего обновления отклика/приглашения
*/
updated_at: string;
/**
* Был ли отклик/приглашение просмотрен получателем
*/
viewed_by_opponent: boolean;
};
/**
* Обновление по данной вакансии
* Есть ли в откликах/приглашениях по данной вакансии обновления, требующие внимания
*/
export type VacancyHasUpdates = boolean;
/**
* Счетчики
*/
export type NegotiationsObjectsCounters = {
/**
* Общее количество сообщений
*/
messages?: number;
/**
* Количество непрочитанных работодателем сообщений
*/
unread_messages?: number;
};
/**
* Список профессиональных ролей
* Список профессиональных ролей
*/
export type VacancyProfessionalRoles = Array<VacancyProfessionalRoleItem>;
/**
* Объект профессиональной роли
*/
export type VacancyProfessionalRoleItem = {
/**
* Идентификатор профессиональной роли. Элемент справочника [professional_roles](#tag/Obshie-spravochniki/operation/get-professional-roles-dictionary)
*/
id?: string;
};
/**
* Сокращенное представление вакансии
*/
export type VacanciesNegotiationsVacancyShort = {
address?: VacancyAddressRawOutput;
/**
* Ссылка на представление вакансии на сайте
*/
alternate_url: string;
/**
* Ссылка на отклик на вакансию на сайте
*/
apply_alternate_url: string;
/**
* Находится ли данная вакансия в архиве
*/
archived: boolean;
area: IncludesArea;
/**
* Дата и время публикации вакансии
*/
created_at?: string;
department: VacanciesObjectsDepartment;
employer: VacanciesObjectsEmployer;
/**
* Информация о наличии прикрепленного тестового задании к вакансии
*/
has_test: boolean;
/**
* Идентификатор вакансии
*/
id: string;
insider_interview?: VacanciesObjectsInsiderInterview;
/**
* Название вакансии
*/
name: string;
/**
* Является ли данная вакансия премиум-вакансией
*/
premium: boolean;
professional_roles?: VacancyProfessionalRolesOutput;
/**
* Дата и время публикации вакансии
*/
published_at: string;
/**
* Обязательно ли заполнять сообщение при отклике на вакансию
*/
response_letter_required: boolean;
/**
* URL отклика для прямых вакансий (`type.id=direct`)
*/
response_url?: string | null;
salary: VacancySalary;
salary_range: VacancySalaryRangeSalaryRangeOutput | IncludesNullableObject | null;
show_contacts: VacancyShowContactsNotNull;
/**
* Отображать ли лого для вакансии в поисковой выдаче
*/
show_logo_in_search?: boolean | null;
/**
* Расстояние в метрах между центром сортировки (заданной параметрами `sort_point_lat`, `sort_point_lng`) и указанным в вакансии адресом. В случае, если в адресе указаны только станции метро, выдается расстояние между центром сортировки и средней геометрической точкой указанных станций.
* Значение `sort_point_distance` выдается только в случае, если заданы параметры `sort_point_lat`, `sort_point_lng`, `order_by=distance`
*
*/
sort_point_distance?: number | null;
type: VacancyTypeOutput;
/**
* URL вакансии
*/
url: string;
};
/**
* Тип вакансии
*/
export type VacancyTypeOutput = VacancyType & {
/**
* Название типа вакансии
*/
name?: string;
};
/**
* Тип вакансии
* Тип вакансии
*/
export type VacancyType = {
/**
* Тип из [справочника vacancy_type](#tag/Obshie-spravochniki/operation/get-dictionaries)
*/
id: string;
};
/**
* Доступны ли контакты в вакансии
* Доступны ли контакты в вакансии
*/
export type VacancyShowContactsNotNull = boolean;
/**
* Объект
* Объект с информацией об интервью о жизни в компании
*/
export type VacanciesObjectsInsiderInterview = VacancyInsiderInterview | IncludesNullableObject | null;
/**
* Объект с информацией об интервью о жизни в компании
*/
export type VacancyInsiderInterview = {
/**
* Идентификатор интервью
*/
id: string;
/**
* Адрес страницы, содержащей интервью
*/
url: string;
};
/**
* Зарплата
* Зарплата
*/
export type VacancySalaryRangeSalaryRangeOutput = {
/**
* Код валюты из [справочника currency](#tag/Obshie-spravochniki/operation/get-dictionaries)
*/
currency: string;
frequency?: VacancySalaryRangeSalaryRangeFrequencyOutput | IncludesNullableObject | null;
/**
* Нижняя граница зарплаты
*/
from?: number | null;
/**
* Признак что границы зарплаты указаны до вычета налогов
*/
gross: boolean;
mode: VacancySalaryRangeSalaryRangeModeOutput;
/**
* Верхняя граница зарплаты
*/
to?: number | null;
};
/**
* Название частоты выплаты указанной зарплаты
*/
export type VacancySalaryRangeSalaryRangeFrequencyOutput = VacancySalaryRangeSalaryRangeFrequency & {
/**
* Название частоты выплаты указанной зарплаты
*/
name?: string;
};
/**
* Частота выплаты указанной зарплаты
*/
export type VacancySalaryRangeSalaryRangeFrequency = {
/**
* Элементы из [справочника salary_range_frequency](#tag/Obshie-spravochniki/operation/get-dictionaries)
*/
id?: string;
};
/**
* Название типа грануляции указанной зарплаты
*/
export type VacancySalaryRangeSalaryRangeModeOutput = VacancySalaryRangeSalaryRangeMode & {
/**
* Название типа грануляции указанной зарплаты
*/
name?: string;
};
/**
* Тип грануляции указанной зарплаты
*/
export type VacancySalaryRangeSalaryRangeMode = {
/**
* Элементы из [справочника salary_range_mode](#tag/Obshie-spravochniki/operation/get-dictionaries)
*/
id?: string;
};
/**
* Регион
*/
export type IncludesArea = {
/**
* Идентификатор региона из [справочника](#tag/Obshie-spravochniki/operation/get-areas)
*/
id: string;
/**
* Название региона
*/
name: string;
/**
* Ссылка на информацию о регионе
*/
url: string;
};
/**
* Профессиональные роли
* Список профессиональных ролей
*/
export type VacancyProfessionalRolesOutput = Array<VacancyProfessionalRoleItemOutput>;
/**
* Название профессиональной роли
*/
export type VacancyProfessionalRoleItemOutput = VacancyProfessionalRoleItem & {
/**
* Название профессиональной роли
*/
name?: string;
};
/**
* Адрес
* Адрес
*/
export type VacancyAddressRawOutput = {
/**
* Дом
*/
building?: string | null;
/**
* Город
*/
city?: string | null;
/**
* Описание
*/
description?: string | null;
/**
* Адрес из [списка доступных адресов работодателя](https://api.hh.ru/openapi/redoc#tag/Adresa-rabotodatelya/operation/get-employer-addresses)
*/
id?: string | null;
/**
* Широта
*/
lat?: number | null;
/**
* Долгота
*/
lng?: number | null;
metro?: IncludesNullableObject | IncludesMetroStation | null;
metro_stations?: Array<IncludesMetroStation>;
/**
* Полный адрес
*/
raw?: string | null;
/**
* Улица
*/
street?: string | null;
} | null;
/**
* Станция метро
*/
export type IncludesMetroStation = {
/**
* Широта
*/
lat: number | null;
/**
* Идентификатор линии метро
*/
line_id: string;
/**
* Название линии метро
*/
line_name: string;
/**
* Долгота
*/
lng: number | null;
/**
* Идентификатор станции метро
*/
station_id: string;
/**
* Название станции метро
*/
station_name: string;
};
/**
* Объект
* Информация о компании работодателя
*/
export type VacanciesObjectsEmployer = VacanciesObjectsVacanciesEmployer | IncludesNullableObject | null;
/**
* Вакансии
*/
export type VacanciesObjectsVacanciesEmployer = VacanciesEmployerPublic;
/**
* Информация о компании работодателя
*/
export type VacanciesEmployerPublic = {
/**
* Флаг, показывающий, прошла ли компания IT аккредитацию
*/
accredited_it_employer?: boolean;
/**
* Ссылка на представление компании на сайте
*/
alternate_url?: string | null;
employer_rating?: VacanciesEmployerRating;
/**
* Идентификатор компании
*/
id?: string | null;
/**
* Ссылки на логотипы работодателя разных размеров
*/
logo_urls?: IncludesLogoUrls | IncludesNullableObject | null;
/**
* Название компании
*/
name: string;
/**
* Флаг, показывающий, прошла ли компания проверку на сайте
*/
trusted: boolean;
/**
* URL, на который нужно сделать GET-запрос, чтобы получить информацию о компании
*/
url?: string | null;
/**
* Ссылка на поисковую выдачу вакансий данной компании
*/
vacancies_url?: string | null;
};
/**
* Информация о рейтинге работодателя
*/
export type VacanciesEmployerRating = {
/**
* Количество отзывов
*/
reviews_count: unknown;
/**
* Сводный рейтинг компании
*/
total_rating: string;
};
/**
* Зарплата
* Зарплата
* @deprecated
*/
export type VacancySalary = {
/**
* Код валюты из [справочника currency](#tag/Obshie-spravochniki/operation/get-dictionaries)
*/
currency?: string | null;
/**
* Нижняя граница зарплаты
*/
from?: number | null;
/**
* Признак что границы зарплаты указаны до вычета налогов
*/
gross?: boolean | null;
/**
* Верхняя граница зарплаты
*/
to?: number | null;
} | null;
/**
* Объект
* Департамент
*/
export type VacanciesObjectsDepartment = VacancyDepartmentOutput | IncludesNullableObject | null;
export type VacancyDepartmentOutput = (VacancyDepartment & {
/**
* Название департамента работодателя
*/
name?: string;
}) | null;
/**
* Департамент
*/
export type VacancyDepartment = {
/**
* Департамент [из справочника](https://api.hh.ru/openapi/redoc#tag/Informaciya-o-rabotodatele/operation/get-employer-departments), от имени которого размещается вакансия (если данная возможность доступна для компании)
*/
id?: string;
} | null;
/**
* Общие поля отклика/приглашения
*/
export type NegotiationsNegotiationCommonFields = {
/**
* Возможные [действия по отклику/приглашению](https://github.com/hhru/api/blob/master/docs/employer_negotiations.md#actions-info)
*
*/
actions?: Array<VacancyNegotiationActions>;
employer_state?: EmployersEmployersState;
/**
* Информация об этапе воронки найма
*/
funnel_stage?: EmployersFunnelStage | IncludesNullableObject | null;
/**
* Шаблоны писем
*/
templates?: Array<VacancyTemplates>;
/**
* Результат выполнения [теста](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-negotiation-test-results), прикрепленного к вакансии
*
*/
test_result?: IncludesNullableObject | SkillVerificationsTestResultWithUrl | null;
};
/**
* Информация о состоянии
*/
export type EmployersEmployersState = {
/**
* Идентификатор состояния отклика
*/
id: string;
/**
* Название состояния
*/
name: string;
};
/**
* Информация о результате теста со ссылками
*/
export type SkillVerificationsTestResultWithUrl = SkillVerificationsTestResultNano & {
/**
* Ссылка на результат теста на сайте
*/
alternate_url: string;
/**
* Ссылка на результат теста
*/
url: string;
};
/**
* Краткая информация о результате теста
* Краткая информация о результате теста
*/
export type SkillVerificationsTestResultNano = {
/**
* Дифференцированная оценка за тест:
*
* * `UNFAIR` — от 0 до 14 баллов;
* * `FAIR` — от 15 до 44 баллов;
* * `GOOD` — от 45 до 79 баллов;
* * `EXCELLENT` — от 80 до 100 баллов
*
*/
mark?: 'UNFAIR' | 'FAIR' | 'GOOD' | 'EXCELLENT';
/**
* Результат прохождения теста в баллах (от 0 до 100)
*/
score: number;
};
/**
* Действия по отклику/приглашению
*/
export type VacancyNegotiationActions = {
/**
* Обязательные и дополнительные аргументы для запроса
*/
arguments: Array<VacancyArguments>;
/**
* Возможно ли совершить действие
*/
enabled: boolean;
/**
* Является ли данная коллекция скрытой
*/
hidden: boolean;
/**
* Идентификатор действия
*/
id: string;
/**
* HTTP метод, который необходимо выполнить
*/
method: string;
/**
* Название действия
*/
name: string;
/**
* Документация [Работодательское состояние](#tag/Otklikipriglasheniya-rabotodatelya) по отклику/приглашению, которое будет установлено после совершения действия. Если действие не меняет состояние — `null`
*/
resulting_employer_state?: IncludesIdName | IncludesNullableObject | null;
/**
* Действия для перевода отклика/приглашения в подстатус
*/
sub_actions?: Array<VacancyNegotiationSubActions>;
/**
* Шаблоны писем
*/
templates: Array<VacancyTemplates>;
/**
* URL, на который необходимо выполнить запрос
*/
url: string;
};
/**
* Действия по отклику/приглашению
*/
export type VacancyNegotiationSubActions = {
/**
* Идентификатор действия
*/
id: string;
/**
* HTTP метод, который необходимо выполнить
*/
method: string;
/**
* Название подстатуса
*/
name: string;
/**
* URL, на который необходимо выполнить запрос
*/
url: string;
};
/**
* Аргумент для запроса
*/
export type VacancyArguments = {
/**
* Идентификатор аргумента. Возможные значения:
*
* * `resume_id` — идентификатор резюме.
* * `vacancy_id` — идентификатор вакансии.
* * `message` — сообщение, которое будет отправлено соискателю на электронную почту. Используйте [шаблоны](#tag/Otklikipriglasheniya-rabotodatelya/operation/get-mail-templates) для получения текстов.
* * `send_sms` — уведомлять ли соискателя о приглашении с помощью SMS. Значение по умолчанию — `false`. Обратите внимание: в SMS-сообщении используется стандартный текст, изменить его нельзя
* * `address_id` — идентификатор [адреса](#tag/Adresa-rabotodatelya), который будет указан в приглашении
*
*/
id: 'resume_id' | 'vacancy_id' | 'message' | 'send_sms' | 'address_id';
/**
* Обязательность аргумента
*/
required: boolean;
/**
* Идентификаторы аргументов, которые необходимо приложить, если указан данный аргумент. Например, адрес является необязательным, но при его указании необходимо указать также и сообщение
*/
required_arguments: Array<IncludesId>;
};
/**
* Шаблон
*/
export type VacancyTemplates = {
/**
* Идентификатор шаблона
*/
id: string;
/**
* Название шаблона
*/
name: string;
/**
* Ссылка на шаблон
*/
url: string;
};
/**
* Информация об этапе воронки найма
*/
export type EmployersFunnelStage = {
/**
* Идентификатор этапа воронки
*/
id: string;
state: EmployersEmployersState;
/**
* Информация о подстатусе воронки найма
*/
substate?: EmployersFunnelSubstate | IncludesNullableObject | null;
};
/**
* Информация о подстатусе воронки найма
*/
export type EmployersFunnelSubstate = {
/**
* Название подстатуса этапа, которое задал работодатель
*/
name: string;
};
/**
* Информация об отклике/приглашении (соискатель)
*/
export type NegotiationsApplicantNegotiation = NegotiationsObjectsTopicItem & {
/**
* Короткое представление резюме
*/
resume?: NegotiationsObjectsTopicResume | IncludesNullableObject | null;
/**
* Ссылка на полную версию отклика
*/
url: string;
};
/**
* Сокращенное представление резюме
*/
export type NegotiationsObjectsTopicResume = ResumeResumeNanoWithUrl & {
/**
* Дата и время создания резюме
*/
created_at: string;
/**
* Дата и время обновления резюме
*/
updated_at: string;
};
/**
* Сокращенное представление резюме
*/
export type ResumeResumeNanoWithUrl = ResumeResumeNano & IncludesUrl;
/**
* Отклик
*/
export type NegotiationsObjectsTopicItem = NegotiationsObjectsTopicItemCommon & {
/**
* Можно ли [скрыть отклик](#tag/Perepiska-(otklikipriglasheniya)-dlya-soiskatelya/operation/hide-active-response) вместе с сообщением работодателю об отказе
*/
decline_allowed: boolean;
/**
* Скрыт ли текущий отклик от соискателя
*/
hidden: boolean;
/**
* Статус поиска работы кандидатом. Для получения данных передайте параметр `with_job_search_status=true`
*/
job_search_status?: IncludesIdName | IncludesNullableObject | null;
/**
* Представление истории звонков по вакансии
*/
phone_calls?: NegotiationsPhoneCalls | IncludesNullableObject | null;
/**
* Короткое представление вакансии
*/
vacancy?: IncludesNullableObject | VacanciesNegotiationsVacancyShort | null;
};
/**
* История звонков
*/
export type NegotiationsPhoneCalls = {
/**
* Список звонков
*/
items: Array<NegotiationsPhoneCallItem>;
/**
* Ответил ли абонент соискателю хотя бы один раз
*/
picked_up_phone_by_opponent: boolean;
};
/**
* Звонок
*/
export type NegotiationsPhoneCallItem = {
/**
* Дата и время создания звонка
*/
creation_time: string;
/**
* Длительность звонка в секундах
*/
duration_seconds?: number | null;
/**
* Идентификатор звонка
*/
id: number;
/**
* Дата и время обновления звонка
*/
last_change_time?: string | null;
/**
* Статус звонка.
*
* Возможные значения перечислены в разделе `phone_call_status` [справочника полей](#tag/Obshie-spravochniki/operation/get-dictionaries)
*
*/
status: string;
};
/**
* История просмотра резюме
*/
export type ResumesResumeViewHistoryResponse = IncludesPagination & ResumesResumeViewHistory;
/**
* Пагинация
*/
export type IncludesPagination = {
/**
* Найдено результатов
*/
found: number;
/**
* Номер страницы
*/
page: number;
/**
* Всего страниц
*/
pages: number;
/**
* Результатов на странице
*/
per_page: number;
};
/**
* История просмотров резюме
*/
export type ResumesResumeViewHistory = {
/**
* Список просмотров резюме
*/
items: Array<ResumesResumeViewHistoryItem>;
/**
* Короткое представление резюме
*/
resume: ResumeResumeNano & IncludesUrl;
};
/**
* Информация о просмотре резюме
*/
export type ResumesResumeViewHistoryItem = {
/**
* Дата создания записи (дата просмотра резюме работодателем)
*/
created_at: string;
/**
* Информация о компании.
*
* Если резюме просмотрено анонимным работодателем, либо из откликов к анонимной вакансии, объект будет содержать только поле `name`
*
*/
employer: EmployersEmployerItemShort | IncludesName;
/**
* Отметка о просмотре записи
*/
viewed: boolean;
};
/**
* Название
*/
export type IncludesName = {
/**
* Название
*/
name: string;
};
/**
* Работодатель
*/
export type EmployersEmployerItemShort = {
/**
* Ссылка на описание работодателя на сайте
*/
alternate_url: string;
/**
* Идентификатор работодателя
*/
id: string;
/**
* Ссылки на изображения логотипов работодателя разных размеров. `original` — это необработанный логотип, который может быть большого размера. Если изначально загруженный компанией логотип меньше, чем 240px и/или 90px по меньшей стороне, то в соответствующих ключах будут сс