UNPKG

@sargonpiraev/hh-api-client

Version:

A TypeScript client for the HeadHunter API, generated from the official OpenAPI specification.

1,840 lines 944 kB
/** * Список отраслей */ 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 по меньшей стороне, то в соответствующих ключах будут сс