components:
  examples:
    AddEmployerManager:
      value:
        last_name: Fedotov
        first_name: Tim
        middle_name: Illonovich
        manager_type:
          id: manager
        is_main_contact_person: false
        position: HR Manager
        email: employer@example.com
        area:
          id: '1'
        phone:
          country: '7'
          city: '495'
          number: '1568055'
          comment: 'from 9:00 AM to 5:00 PM'
        additional_phone:
          country: '7'
          city: '916'
          number: '4555555'
          comment: personal
        permissions:
          - id: can_create_vacancy
          - id: can_view_resume_contacts
    ApplicantCommentsAddApplicantCommentExample:
      value:
        author:
          full_name: Ivanova Maria Ivanovna
        created_at: '2015-08-27T10:30:14+0300'
        id: '123654'
        is_mine: true
        text: do not consider necessary
        access_type:
          id: owner
          name: Visible only to me
    ApplicantCommentsApplicantCommentsListExample:
      value:
        found: 2
        page: 0
        pages: 1
        per_page: 20
        items:
          - author:
              full_name: Ivanov Ivan Ivanovich
            created_at: '2015-08-27T10:19:55+0300'
            id: '123456'
            is_mine: true
            text: |-
              take a closer look at this candidate
              urgent!
            access_type:
              id: coworkers
              name: Visible to me and my colleagues
          - author:
              full_name: Ivanova Maria Ivanovna
            created_at: '2015-08-27T10:30:14+0300'
            id: '123654'
            is_mine: false
            text: do not consider necessary
            access_type:
              id: owner
              name: Visible only to me
    AreasAreaItem:
      value:
        name: Kazakhstan
        id: '40'
        parent_id: null
        areas:
          - name: Abai
            id: '6251'
            parent_id: '40'
            areas: []
    AreasAreas:
      value:
        - name: Kazakhstan
          id: '40'
          parent_id: null
          areas:
            - name: Abai
              id: '6251'
              parent_id: '40'
              areas: []
    AreasCountries:
      value:
        - url: 'https://api.hh.ru/areas/113'
          id: '113'
          name: Russia
        - url: 'https://api.hh.ru/areas/6'
          id: '6'
          name: Australia
    ChatsCommonChatWithoutVacancyPost:
      value:
        first_message: Добрый день! Заинтересовало Ваше резюме
        resume_hash: 2e25be02ff0000022c0039ed1f62486f4c4843
    ChatsCommonCommonChatListResponse:
      value:
        found: 2
        items:
          - block_reason: UNTRUSTED_EMPLOYER
            creation_time: '2024-08-20T14:40:07+0300'
            display:
              icon: null
              title: Чат 1
            id: '36'
            last_message:
              creation_time: '2024-08-20T14:40:07+0300'
              id: '38'
              payload:
                text: Сообщение от соискателя
              sender_display_info:
                icon: null
                is_current_participant: false
                name: Хороший соискатель
                role: APPLICANT
              sender_participant_id: '71'
            muted: false
            type: NEGOTIATION
            unread_message_count: 1
          - block_reason: null
            creation_time: '2024-08-20T14:40:05+0300'
            display:
              icon: null
              title: Чат 2
            id: '35'
            last_message:
              creation_time: '2024-08-20T14:40:05+0300'
              id: '36'
              payload:
                text: Сообщение от работодателя
              sender_display_info:
                icon: null
                is_current_participant: true
                name: Хороший работодатель
                role: EMPLOYER
              sender_participant_id: '70'
            muted: false
            type: NEGOTIATION
            unread_message_count: 0
        page: 0
        pages: 1
        per_page: 20
    ChatsCommonFilesConditions:
      value:
        files_upload:
          max_size: 20971520
          mime_type:
            - image/jpeg
            - image/png
          type:
            - jpeg
            - png
    ChatsCommonFilesUploadLinks:
      value:
        expires_at: '2024-11-29T11:55:12+0300'
        upload_url: 'https://example.com'
    ChatsCommonMessagePostFileUploadIds:
      value:
        file_upload_ids:
          - 1abcdef1-1234-4abc-4edf-1234567890ab
        idempotency_key: 8abcdef8-4abc-4edf-1234-1234567890ab
    ChatsCommonMessagePostText:
      value:
        idempotency_key: 8abcdef8-4abc-4edf-1234-1234567890ab
        text: 'Cъешь же ещё этих мягких французских булок, да выпей чаю'
    ChatsCommonMessagePut:
      value:
        text: 'Всё ускоряющаяся эволюция компьютерных технологий предъявила жёсткие требования к производителям как собственно вычислительной техники, так и периферийных устройств.'
    ChatsCommonParticipantListResponse:
      value:
        items:
          - icon: null
            id: '1'
            last_viewed_message_id: null
            name: Работодатель
            role: EMPLOYER
            type: USER
          - icon: null
            id: '2'
            last_viewed_message_id: null
            name: Соискатель
            resume_id: e72ceb06b77000000000000000000000
            role: APPLICANT
            type: USER
    ClickmeStatisticsResponse:
      value:
        items:
          - clickme_account_id: '456789'
            clickme_account_title: Main
            vacancy_id: '12345'
            vacancy_title: Delivery Driver
            vacancy_area_name: Moscow
            url: 'https://hh.ru/vacancy/12345'
            campaign_id: '67890'
            campaign_type: MULTI_PLACEMENT
            campaign_title: Looking for a Delivery Driver
            impressions: 456
            clicks: 234
            responses: 12
            amount: 6780.99
            date_start: '2024-09-02'
            date_end: '2024-09-22'
    DictionariesDictionaries:
      value:
        vacancy_label:
          - id: with_address
            name: With address only
          - id: accept_handicapped
            name: Only vacancies suitable for people with a disability
          - id: not_from_agency
            name: No vacancies from agencies
          - id: accept_kids
            name: Only available to candidates aged 14+
          - id: accredited_it
            name: Vacancies from accredited IT employers
          - id: low_performance
            name: Only vacancies with less than 10 responses
          - id: internship
            name: Internship only
          - id: accept_teens
            name: Only available to candidates aged 16+
        resume_access_type:
          - id: no_one
            name: invisible
          - id: whitelist
            name: visible to selected companies
          - id: blacklist
            name: hidden from selected companies
          - id: clients
            name: is visible to all companies registered on Headhunter
          - id: everyone
            name: visible to entire internet
          - id: direct
            name: available only by direct link
        vacancy_search_order:
          - id: publication_time
            name: by date
          - id: salary_desc
            name: by salary descending
          - id: salary_asc
            name: by salary ascending
          - id: relevance
            name: by relevance
          - id: distance
            name: by distance
        vacancy_search_fields:
          - id: name
            name: in vacancy name
          - id: company_name
            name: in company name
          - id: description
            name: in vacancy description
        gender:
          - id: male
            name: Male
          - id: female
            name: Female
        preferred_contact_type:
          - id: home
            name: Home phone
          - id: work
            name: Work phone
          - id: cell
            name: Cellphone
          - id: email
            name: Email
        travel_time:
          - id: any
            name: Doesn't matter
          - id: less_than_hour
            name: Up to one hour
          - id: from_hour_to_one_and_half
            name: Up to 90 minutes
        relocation_type:
          - id: no_relocation
            name: not ready to relocate
          - id: relocation_possible
            name: ready to relocate
          - id: relocation_desirable
            name: willing to relocate
        business_trip_readiness:
          - id: ready
            name: prepared for business trips
          - id: sometimes
            name: prepared for occasional business trips
          - id: never
            name: not prepared for business trips
        resume_contacts_site_type:
          - id: personal
            name: Another website
          - id: moi_krug
            name: Moikrug.ru
          - id: livejournal
            name: liveJournal
          - id: linkedin
            name: LinkedIn
          - id: freelance
            name: Free-lance.ru
          - id: skype
            name: Skype
        employer_type:
          - id: company
            name: Direct employer
          - id: agency
            name: Recruitment agency
          - id: project_director
            name: Project manager
          - id: private_recruiter
            name: Private recruiter
          - id: self_employed
            name: Self employed
          - id: private_individual
            name: Private individual
        employer_relation:
          - id: blacklisted
            name: Hidden from job search
        negotiations_state:
          - id: response
            name: Response
          - id: invitation
            name: Invitation
          - id: discard
            name: Discard
          - id: hidden
            name: Hidden
        applicant_negotiation_status:
          - id: all
            name: All
          - id: active
            name: Active
          - id: invitations
            name: Active invitations
          - id: response
            name: Active responses
          - id: discard
            name: Denied
          - id: archived
            name: Archived
          - id: non_archived
            name: All except archived ones
          - id: deleted
            name: Hidden
        negotiations_participant_type:
          - id: applicant
            name: Applicant
          - id: employer
            name: Employer
        negotiations_order:
          - id: updated_at
            name: by updated date
          - id: created_at
            name: by created date
        resume_moderation_note:
          - id: bad
            name: The resume looks messy.
          - id: block_full_name
            name: The resume doesn't have the candidate's full name.
          - id: bad_description
            name: Please specify the desired position to increase your chances of finding a job.
          - id: block_no_education_place_or_date
            name: There is no data about the school or the graduation date.
          - id: bad_education
            name: Poor description of education.
          - id: bad_education_student
            name: 'Please specify the full name of the educational institution, the college and the planned graduation year.'
          - id: block_no_function
            name: Please describe your responsibilities and functions in detail.
          - id: block_work_place
            name: Recent work experience not specified
          - id: no_company_name
            name: Please specify the name of the job.
          - id: no_company_description
            name: Please specify the field of expertise for the companies where you worked.
          - id: no_position
            name: The positions are not fully described.
          - id: no_date
            name: There are no start or end dates.
          - id: bad_function
            name: Your functions and responsibilities are not clearly described.
          - id: not_enough_information
            name: 'Please specify more additional information: proficiency in foreign languages, knowledge of computer programming, etc.'
          - id: lot_information
            name: There is too much additional information.
          - id: no_recommendation
            name: You have not submitted any recommendation.
          - id: careless_additional_information
            name: Please take a look at the Key Skills section and specify the corresponding information that will distinguish you as a candidate for the desired position. Please check spelling and typing errors.
          - id: careless_photo
            name: We recommend you to change your CV photo. Choose a photo of yourself in a suit or casual clothes.
          - id: careless_key_skill_information
            name: 'Edit the Key Skills section of your resume, as the information provided does not quite fit the format and/or contains typos.'
          - id: incorrect_phone_number
            name: 'The phone number you have provided on your resume does not exist. If the phone number is correct, please contact Support'
          - id: block_obscenity
            name: Resume contains an obscenity
          - id: block_obscenity_name
            name: An obscenity in the full name
          - id: block_obscenity_title
            name: An obscenity in the job title
          - id: block_obscenity_experience
            name: An obscenity in the "Experience" field
          - id: block_obscenity_skills
            name: An obscenity in the "Additional information" field
          - id: block_obscenity_key_skills
            name: An obscenity in the "Key skills" field
          - id: block_obscenity_education
            name: An obscenity in the "Education" field
          - id: block_obscenity_additional_education
            name: An obscenity in the "Professional Development and Courses" field
          - id: block_obscenity_attestation_education
            name: An obscenity in the "Tests and Exams" field
          - id: block_obscenity_elementary_education
            name: An obscenity in the "Primary Education" field
          - id: block_obscenity_recommendation
            name: An obscenity in the "Recommendations" field
          - id: block_experience_in_one_place
            name: Specify your experience in each company separately
          - id: experience_caps
            name: Make sure that in the "Experience" field capital letters are used only at the beginning of sentences or in proper names
          - id: experience_multilang
            name: Provide the experience information in one language
          - id: experience_spelling
            name: Correct spelling in the "Experience" field
          - id: block_experience_in_additional_information
            name: Provide experience information in the "Experience" field
          - id: additional_information_caps
            name: Make sure that in the "Additional information" field the CAPITAL LETTERS are used only at the beginning of sentences or in proper names
          - id: additional_information_multilang
            name: Provide the additional information in one language
          - id: additional_information_spelling
            name: Correct spelling in the "Additional information" field
          - id: block_experience_unreliable
            name: 'Provide accurate work experience — the company, employment period, and job title must match your employment record or contract'
        vacancy_relation:
          - id: favorited
            name: Favorited
          - id: got_response
            name: You have sent a resume
          - id: got_invitation
            name: You have been invited
          - id: got_rejection
            name: Your resume was rejected
          - id: blacklisted
            name: Hidden from search results
          - id: got_question
            name: You asked a question about the vacancy
        resume_status:
          - id: not_published
            name: not published
          - id: published
            name: published
          - id: blocked
            name: blocked
          - id: on_moderation
            name: on moderation
        resume_search_logic:
          - id: all
            name: All the words
          - id: any
            name: Any of the words
          - id: phrase
            name: Exact phrase
          - id: except
            name: No matches
        resume_search_fields:
          - id: everywhere
            name: everywhere
          - id: title
            name: in resume name
          - id: education
            name: in education
          - id: skills
            name: in key skills
          - id: experience
            name: in work experience
          - id: experience_company
            name: in companies and industries
          - id: experience_position
            name: in job titles
          - id: experience_description
            name: in job duties
        messaging_status:
          - id: archived
            name: The job has been archived
          - id: ok
            name: Messaging available
          - id: disabled_by_employer
            name: The employer has disabled messaging
          - id: in_a_row_limit
            name: You have sent 5 messages in a row. Please wait for a response before writing more
          - id: overall_limit
            name: Exceeded number of messages
          - id: no_invitation
            name: Messaging is available only after an invitation
          - id: resume_deleted
            name: Resume has been deleted
          - id: prohibited
            name: Messaging unavailable
        employer_active_vacancies_order:
          - id: name_asc
            name: by title
          - id: name_desc
            name: 'by title, in reverse order'
          - id: expiration_date_asc
            name: by date
          - id: expiration_date_desc
            name: by date (descending)
          - id: unseen_responses_asc
            name: unseen responses count
          - id: unseen_responses_desc
            name: unseen responses count (descending)
        employer_archived_vacancies_order:
          - id: name_asc
            name: by title
          - id: name_desc
            name: 'by title, in reverse order'
          - id: archive_time_asc
            name: by date archived
          - id: archive_time_desc
            name: by date archived (descending)
        employer_hidden_vacancies_order:
          - id: name_asc
            name: by title
          - id: name_desc
            name: 'by title, in reverse order'
          - id: archive_time_asc
            name: by date archived
          - id: archive_time_desc
            name: by date archived (descending)
        applicant_comments_order:
          - id: creation_time_desc
            name: by post date – descending
          - id: creation_time_asc
            name: by post date
        vacancy_not_prolonged_reason:
          - id: vacancy_archived
            name: An archived or blocked vacancy cannot be extended.
          - id: vacancy_not_premoderated
            name: The vacancy did not pass the pre-moderation.
          - id: pfp_publication_is_updated_automatically
            name: 'PFP vacancy will not be updated: it is updated automatically.'
          - id: free_prolongation_not_available
            name: The free vacancy cannot be updated.
          - id: not_enough_quotas
            name: The vacancy cannot be updated. The posting quota has been exceeded.
          - id: not_enough_purchased_services
            name: The vacancy cannot be updated. Insufficient services purchased.
          - id: not_enough_division_services
            name: Vacancy cannot be updated. The division has insufficient services.
          - id: not_available_for_purchase
            name: Vacancy cannot be updated. Insufficient services are not available for purchase.
        resume_hidden_fields:
          - id: names_and_photo
            name: Full Name and photo
          - id: phones
            name: All phone numbers listed in the resume
          - id: email
            name: Email
          - id: other_contacts
            name: 'Other contacts (Skype, social networks)'
          - id: experience
            name: All employers
        phone_call_status:
          - id: pick_successful
            name: Connection setup
          - id: calling
            name: Calling
          - id: did_not_connect
            name: The number is currently unavailable
          - id: call_in_progress
            name: Phone call is in progress
          - id: call_error
            name: Technical failure
          - id: call_ended
            name: Phone call is finished
        linked_socials:
          - id: esia
            name: Госуслуги
          - id: vk
            name: VKontakte
          - id: gplus
            name: Google+
          - id: mail
            name: Moy Mir@mail.ru
          - id: ok
            name: Odnoklassniki
        experience:
          - id: noExperience
            name: No experience
          - id: between1And3
            name: Between 1 and 3 years
          - id: between3And6
            name: Between 3 and 6 years
          - id: moreThan6
            name: More than 6 years
        employment:
          - id: full
            name: Full time
          - id: part
            name: Part time
          - id: project
            name: Project work
          - id: volunteer
            name: Volunteering
          - id: probation
            name: Work placement
        schedule:
          - id: fullDay
            name: Full day
            uid: full_day
          - id: shift
            name: Shift schedule
            uid: shift
          - id: flexible
            name: Flexible schedule
            uid: flexible
          - id: remote
            name: Remote working
            uid: remote
          - id: flyInFlyOut
            name: Rotation based work
            uid: fly_in_fly_out
        education_level:
          - id: secondary
            name: Secondary
          - id: special_secondary
            name: Vocational secondary
          - id: unfinished_higher
            name: Incomplete higher
          - id: higher
            name: Higher
          - id: bachelor
            name: Bachelor
          - id: master
            name: Master
          - id: candidate
            name: PhD
          - id: doctor
            name: Doctor of Sciences
        currency:
          - code: AZN
            abbr: AZN
            name: Manats
            default: false
            rate: 0.027728
            in_use: false
          - code: BYR
            abbr: BYN
            name: Belarusian rubles
            default: false
            rate: 0.042685
            in_use: false
          - code: EUR
            abbr: EUR
            name: Euro
            default: false
            rate: 0.015982
            in_use: true
          - code: GEL
            abbr: GEL
            name: Georgian lari
            default: false
            rate: 0.0344
            in_use: false
          - code: KGS
            abbr: KGS
            name: Kyrgyzstani som
            default: false
            rate: 1.356611
            in_use: false
          - code: KZT
            abbr: KZT
            name: Tenge
            default: false
            rate: 7.809145
            in_use: false
          - code: RUR
            abbr: RUB
            name: Rubles
            default: true
            rate: 1
            in_use: true
          - code: UAH
            abbr: UAH
            name: Hryvnias
            default: false
            rate: 0.596833
            in_use: false
          - code: USD
            abbr: USD
            name: Dollars
            default: false
            rate: 0.016311
            in_use: true
          - code: UZS
            abbr: som
            name: Uzbekistani som
            default: false
            rate: 177.916948
            in_use: false
        vacancy_billing_type:
          - id: free
            name: Free
          - id: standard
            name: Standard
          - id: standard_plus
            name: Standard plus
          - id: premium
            name: Premium
        applicant_comment_access_type:
          - id: coworkers
            name: Visible to me and my colleagues
          - id: owner
            name: Visible only to me
        vacancy_cluster:
          - id: area
            name: Region
          - id: metro
            name: Metro
          - id: salary
            name: Salary
          - id: professional_area
            name: Industry
          - id: specialization
            name: Specialist field
          - id: industry
            name: Company branch
          - id: sub_industry
            name: Company's sphere of activity
          - id: experience
            name: Work experience
          - id: employment
            name: Employment type
          - id: schedule
            name: Work schedule
          - id: label
            name: Exclusion
          - id: professional_role
            name: Professional role
          - id: district
            name: District
        driver_license_types:
          - id: A
          - id: B
          - id: C
          - id: D
          - id: E
          - id: BE
          - id: CE
          - id: DE
          - id: TM
          - id: TB
        language_level:
          - id: a1
            name: A1 — Basic
          - id: a2
            name: A2 — Elementary
          - id: b1
            name: B1 — Intermediate
          - id: b2
            name: B2 — Upper Intermediate
          - id: c1
            name: C1 — Advanced
          - id: c2
            name: C2 — Proficiency
          - id: l1
            name: Native
        working_days:
          - id: only_saturday_and_sunday
            name: Work only on Sat and Sun
        working_time_intervals:
          - id: from_four_to_six_hours_in_a_day
            name: 4 to 6 hour shifts
        working_time_modes:
          - id: start_after_sixteen
            name: 'You can start working after 16:00'
        vacancy_type:
          - id: closed
            name: Closed
          - id: open
            name: Open
          - id: anonymous
            name: Anonymous
          - id: direct
            name: Advertising
        resume_search_label:
          - id: only_with_photo
            name: Only with photo
          - id: only_with_salary
            name: Do not show resumes without salary specified
          - id: only_with_age
            name: Do not show resumes without age specified
          - id: only_with_gender
            name: Don’t show CV with no gender indicated
          - id: only_with_vehicle
            name: Has own vehicle
          - id: exclude_viewed_by_user_id
            name: Hide the resumes I have already viewed
          - id: exclude_viewed_by_employer_id
            name: Hide the resumes our company have viewed
          - id: only_in_responses
            name: Show only the ones from responses and invitations
        resume_search_relocation:
          - id: living_or_relocation
            name: Living in the selected regions or willing to move there
          - id: living
            name: Living in the selected regions
          - id: living_but_relocation
            name: Living in the selected regions and willing to move anywhere
          - id: relocation
            name: 'Not living in the selected regions, but willing to move there'
        resume_search_order:
          - id: publication_time
            name: by change date
          - id: salary_desc
            name: by salary descending
          - id: salary_asc
            name: by salary ascending
          - id: relevance
            name: by relevance
        resume_search_experience_period:
          - id: all_time
            name: all time experience
          - id: last_year
            name: last year
          - id: last_three_years
            name: over the past three years
          - id: last_six_years
            name: over the past six years
        job_search_statuses_applicant:
          - id: active_search
            name: Actively searching for a job
          - id: looking_for_offers
            name: Considering incoming offers
          - id: not_looking_for_job
            name: I am not looking for a job
          - id: has_job_offer
            name: 'I have been offered a job, still thinking'
          - id: accepted_job_offer
            name: I am already starting my new job
        job_search_statuses_employer:
          - id: active_search
            name: Actively searching for a job
          - id: looking_for_offers
            name: Considers offers
          - id: not_looking_for_job
            name: Not looking for a job
          - id: has_job_offer
            name: 'Offered a job, is now deciding'
          - id: accepted_job_offer
            name: Started the new job
        resume_employment_form:
          - id: FULL
            name: Full-time job
          - id: PART_TIME
            name: Part-time job
          - id: INTERNSHIP
            name: Internship
          - id: VOLUNTEER
            name: Volunteering
        resume_work_format:
          - id: ON_SITE
            name: On-site
          - id: REMOTE
            name: Remote
          - id: HYBRID
            name: Hybrid
          - id: FIELD_WORK
            name: Travel-based
          - id: FLY_IN_FLY_OUT
            name: Shift work
        employment_form:
          - id: FULL
            name: full
            duration: PERMANENT
          - id: PART
            name: part
            duration: PERMANENT
          - id: PROJECT
            name: project
            duration: TEMPORARY
          - id: FLY_IN_FLY_OUT
            name: fly in fly out
            duration: PERMANENT
          - id: SIDE_JOB
            name: side job
            duration: TEMPORARY
        vacancy_search_employment_form:
          - id: FULL
            name: Полная занятость
          - id: PART
            name: Частичная занятость
          - id: PROJECT
            name: Подработка
          - id: FLY_IN_FLY_OUT
            name: Вахта
        work_format:
          - id: ON_SITE
            name: on site
          - id: REMOTE
            name: remote
          - id: HYBRID
            name: hybrid
          - id: FIELD_WORK
            name: field work
        working_hours:
          - id: HOURS_2
            name: 2 hours
          - id: HOURS_4
            name: 4 hours
        fly_in_fly_out_duration:
          - id: DAYS_15
            name: 15 days
          - id: DAYS_20
            name: 20 days
        work_schedule_by_days:
          - id: SEVEN_ON_ZERO_OFF
            name: 7/0
          - id: FIVE_ON_TWO_OFF
            name: 5/2
        salary_range_mode:
          - id: MONTH
            name: per month
          - id: HOUR
            name: per hour
          - id: SHIFT
            name: per shift
          - id: SERVICE
            name: for service
          - id: FLY_IN_FLY_OUT
            name: for fly in fly out
        salary_range_frequency:
          - id: DAILY
            name: daily
          - id: WEEKLY
            name: weekly
          - id: TWICE_PER_MONTH
            name: twice per month
          - id: MONTHLY
            name: monthly
          - id: PER_PROJECT
            name: per project
        age_restriction:
          - id: AGE_14_PLUS
            name: 14 and older
          - id: AGE_16_PLUS
            name: 16 and older
        civil_law_contracts:
          - id: SELF_EMPLOYED
            name: with a self-employed person
          - id: INDIVIDUAL_ENTREPRENEUR
            name: with an individual entrepreneur
          - id: INDIVIDUAL_PERSON
            name: with a physical person (individual)
        inclusiveness_types:
          - id: VISION
            name: Visual impairment
            legacy: false
          - id: MENTAL
            name: Mental traits
            legacy: false
          - id: HEARING
            name: Hearing impairment
            legacy: false
          - id: MOBILITY
            name: Mobility impairments
            legacy: false
          - id: CHRONIC_DISEASES
            name: Chronic diseases
            legacy: false
          - id: UNSPECIFIED
            name: Suitable for people with disabilities
            legacy: true
    DictionariesFaculties:
      value:
        - id: '23'
          name: Faculty of Physics and Chemistry
    DictionariesIndustries:
      value:
        - id: '49'
          name: Public Services
          industries:
            - id: '49.408'
              name: Funeral Services
    DictionariesSalaryStatisticsEmployeeLevel:
      value:
        - id: specialist
          name: specialist
          description: Specialist has no direct subordinates but periodically coordinates the work of other employees within the framework of the assigned task
    DictionariesSalaryStatisticsProfessionalAreas:
      value:
        - id: '1030000'
          name: Administrative support
          specializations:
            - id: '1030015'
              name: Archive
              description: 'Organization of social work with employees, distribution of material and social assistance funds'
    DictionariesSalaryStatisticsSalaryAreas:
      value:
        - id: '1'
          name: Russia
          areas:
            - id: '2'
              name: Altai region
              areas:
                - id: '3'
                  name: Aleysk
                  areas: []
    DictionariesSkills:
      value:
        items:
          - text: Heating and cooling systems
            id: '2716'
          - text: Cold kitchen
            id: '3019'
    DistrictsDistricts:
      value:
        - id: '1'
          name: Khoroshevo-Mnevniki
          area_id: '1'
        - id: '2'
          name: Aviastroitelny
          area_id: '88'
        - id: '3'
          name: Leninsky
          area_id: '96'
    EditEmployerManagers:
      value:
        position: HR Manager
        phone:
          country: '7'
          city: '495'
          number: '1568055'
          comment: 'from 9:00 AM to 5:00 PM'
        additional_phone:
          country: '7'
          city: '916'
          number: '4555555'
          comment: personal
        permissions:
          - id: can_create_vacancy
            name: Creation and prolongation of vacancies
          - id: can_view_resume_contacts
            name: View applicant contacts
    EmployerAddressItem:
      value:
        city: Moscow
        street: Godovikova street
        building: 9c10
        lat: 55.807794
        lng: 37.638699
        description: A passport is required on the reception
        raw: 'Godovikova street 9c10, Moscow'
        manager:
          id: '10'
          full_name: Dostoevsky Fyodor Mikhailovich
        metro_stations:
          - station_name: Dobryninskaya
            line_name: Koltzevaya
            station_id: '5.36'
            line_id: '5'
            lat: 55.728994
            lng: 37.622533
        can_edit: true
        deleted: false
        id: '15'
    EmployerAddresses:
      value:
        items:
          - city: Moscow
            street: Godovikova street
            building: 9c10
            description: A passport is required on the reception
            raw: 'Godovikova street 9c10, Moscow'
            lat: 55.807794
            lng: 37.638699
            deleted: false
            manager:
              id: '11'
              full_name: Dostoevsky Fyodor Mikhailovich
            can_edit: true
            metro_stations:
              - station_name: Dobrininskaya
                line_name: Koltzevaya
                station_id: '5.36'
                line_id: '5'
                lat: 55.728994
                lng: 37.622533
            id: '15'
        found: 1
        page: 0
        pages: 1
        per_page: 20
    EmployerDictionariesTests:
      value:
        items:
          - id: '75169'
            name: Basic test of C++ knowledge
          - id: '75168'
            name: Logical test
    EmployerManagerId:
      value:
        id: '78789890'
    EmployerManagerInfo:
      value:
        id: '1507922'
        manager_type:
          id: manager
          name: Manager
        email: employer@example.com
        full_name: Ivanov Ivan Ivanovich
        last_name: Ivanov
        first_name: Ivan
        middle_name: Ivanovich
        vacancies_count: 0
        is_main_contact_person: false
        phone:
          country: '7'
          city: '495'
          number: '1568055'
          comment: 'from 9:00 AM to 5:00 PM'
        additional_phone:
          country: '7'
          city: '916'
          number: '4555555'
          comment: personal
        position: HR Manager
        permissions:
          - id: can_create_vacancy
            name: Creation and prolongation of vacancies
          - id: can_view_resume_contacts
            name: View applicant contacts
        area:
          id: '1'
          name: Moscow
          url: 'https://api.hh.ru/areas/1'
        creation_time: '2022-03-10T14:15:00.000+03:00'
    EmployerManagerLimits:
      value:
        limits:
          resume_view: 100
          resume_view_from_api: 50
        spend:
          resume_view: 1
          resume_view_from_api: 2
        left:
          resume_view: 50
          resume_view_from_api: 48
    EmployerManagerTypes:
      value:
        items:
          - id: manager
            name: Manager
            available_permissions:
              - id: can_create_vacancy
                name: Creation and prolongation of vacancies
              - id: can_view_resume_contacts
                name: View applicant contacts
    EmployerManagers:
      value:
        items:
          - id: '1507922'
            email: employer@example.com
            full_name: Ivanov Ivan Ivanovich
            last_name: Ivanov
            first_name: Ivan
            middle_name: Ivanovich
            vacancies_count: 0
            phone:
              country: '7'
              city: '495'
              number: '1568055'
              comment: 'from 9:00 AM to 5:00 PM'
            additional_phone:
              country: '7'
              city: '916'
              number: '4555555'
              comment: personal
            position: HR Manager
            area:
              id: '1'
              name: Moscow
              url: 'https://api.hh.ru/areas/1'
        found: 1
        page: 0
        pages: 1
        per_page: 20
    EmployersEmployerDepartments:
      value:
        items:
          - id: 18320489-18320489-dept1
            name: DEPT#1
          - id: 18320489-18320489-dept2
            name: DEPT#2
    EmployersEmployerInfoExample:
      value:
        name: HeadHunter
        type: company
        id: '1455'
        site_url: 'https://hh.ru'
        description: Good employer
        branded_description: <style>...</style><div>...</div><script></script>
        branding:
          type: makeup
          template_code: 'makeup:123'
          template_version_id: '10'
          makeup:
            url: /employer/makeup/webview/12
            header_picture:
              web_path: 'https://hhcdn.ru/branding-pictures/000.jpeg'
              mob_app_path: 'https://hhcdn.ru/branding-pictures/001.jpeg'
        vacancies_url: 'https://api.hh.ru/vacancies?employer_id=1455'
        open_vacancies: 19
        alternate_url: 'https://hh.ru/employer/1455'
        insider_interviews:
          - url: 'https://hh.ru/interview/12345?employerId=1455'
            id: '12345'
            title: Best of the best
          - url: 'https://hh.ru/interview/54321?employerId=1455'
            id: '54321'
            title: Success story
        logo_urls:
          '90': 'https://hh.ru/employer-logo/289027.png'
          '240': 'https://hh.ru/employer-logo/289169.png'
          original: 'https://hh.ru/file/2352807.png'
        area:
          url: 'https://api.hh.ru/areas/113'
          id: '113'
          name: Russia
        country_code: RU
        trusted: true
        accredited_it_employer: true
        relations: []
        industries:
          - id: '7.540'
            name: Software Development
          - id: '9.399'
            name: Mobile communication
        applicant_services:
          target_employer:
            count: 2
        is_identified_by_esia: false
    EmployersEmployerVacancyAreas:
      value:
        found: 1
        items:
          - id: '1'
            name: Moscow
            url: 'https://api.hh.ru...'
        page: 0
        pages: 1
        per_page: 1
    EmployersEmployersExample:
      value:
        per_page: 20
        page: 0
        pages: 1
        found: 1
        items:
          - id: '1455'
            name: HeadHunter
            url: 'https://api.hh.ru/employers/1455'
            alternate_url: 'https://hh.ru/employer/1455'
            vacancies_url: 'https://api.hh.ru/vacancies?employer_id=1455'
            open_vacancies: 19
            logo_urls:
              '90': 'https://hh.ru/employer-logo/289027.png'
              '240': 'https://hh.ru/employer-logo/289169.png'
              original: 'https://hh.ru/file/2352807.png'
              is_identified_by_esia: false
    Id:
      value:
        id: '754'
    Languages:
      value:
        - id: ita
          name: Italian
          uid: '17'
        - id: nld
          name: Dutch
          uid: '11'
        - id: ell
          name: Greek
          uid: '12'
    LocalesLocales:
      value:
        - id: RU
          name: Russian
          current: false
        - id: EN
          name: English
          current: true
    LocalesResumeLocales:
      value:
        - id: RU
          name: Russian
        - id: EN
          name: English
    MailTemplatesMailTemplateInput:
      value:
        text: 'We found your resume very interesting. We would like to invite you for an interview. Please call us during business hours: [HRPhone] ([HRName]).'
    MailTemplatesMailTemplates:
      value:
        - id: invite_mail
          name: Invitation to a phone interview
          text: |-
            Dear [Name],

            [Company] is looking for candidates on the position "[Vacancy]".
            Your resume looks interesting for us.
            You can find the job description on the [SiteName].
            To see it, log in to your account and follow the link on the "Applications to Vacancies" page.
            If you are interested, please call us during business hours: [HRPhone] ([HRName]).

            Regards,
            [HRName]
          type: EMAIL
          variables:
            - id: Name
              name: Applicant name
            - id: Vacancy
              name: Vacancy
            - id: HRName
              name: My name
            - id: HRPhone
              name: My phone
            - id: HREmail
              name: My email
            - id: SiteName
              name: HH site
            - id: Company
              name: Company
          template_modified: false
          editable: true
          employer_state: PHONE_INTERVIEW
        - id: response_invite_mail
          name: Invitation to a phone interview for responded applicant
          text: |-
            Dear [Name],

            Thank you for applying to our position "[Vacancy]". Your resume looks interesting, and we would like to invite you to the interview. Please call us during business hours: [HRPhone] ([HRName]).

            Regards,
            [HRName]
          type: EMAIL
          variables:
            - id: Name
              name: Applicant name
            - id: Vacancy
              name: Vacancy
            - id: HRName
              name: My name
            - id: HRPhone
              name: My phone
            - id: HREmail
              name: My email
            - id: SiteName
              name: HH site
            - id: Company
              name: Company
          template_modified: false
          editable: true
          employer_state: PHONE_INTERVIEW
        - id: another_vacancy_response_invite_mail
          name: Invitation to a phone interview related to another vacancy
          text: |-
            Dear [Name],

            Your resume looks interesting, and we would like to invite you to the interview. Please call us during business hours: [HRPhone] ([HRName]).

            Regards,
            [HRName]
          type: EMAIL
          variables:
            - id: Name
              name: Applicant name
            - id: Vacancy
              name: Vacancy
            - id: HRName
              name: My name
            - id: HRPhone
              name: My phone
            - id: HREmail
              name: My email
            - id: SiteName
              name: HH site
            - id: Company
              name: Company
          template_modified: false
          editable: true
          employer_state: PHONE_INTERVIEW
        - id: invite_sms
          name: SMS invitation to a phone interview
          text: '[Company] invites you to the interview [HRPhone] [HRName]'
          type: SMS
          variables:
            - id: HRName
              name: My name
            - id: HRPhone
              name: My phone
            - id: HREmail
              name: My email
            - id: Company
              name: Company
          template_modified: false
          editable: false
          employer_state: PHONE_INTERVIEW
    MetroCityMetro:
      value:
        id: '1'
        name: Moscow
        lines:
          - hex_color: '339999'
            id: '11'
            name: Kakhovskaya
            stations:
              - id: '11.46'
                name: Kashirskaya
                lat: 55.654327
                lng: 37.647705
                order: 0
                line:
                  id: '11'
                  hex_color: 88CDCF
                  name: Kakhovskaya
    MetroMetro:
      value:
        - id: '1'
          url: 'https://api.hh.ru/metro/1'
          name: Moscow
          lines:
            - hex_color: '339999'
              id: '11'
              name: Kakhovskaya
              stations:
                - id: '11.46'
                  name: Kashirskaya
                  lat: 55.654327
                  lng: 37.647705
                  order: 0
                  line:
                    id: '11'
                    hex_color: 88CDCF
                    name: Kakhovskaya
    NegotiationsCollectionNegotiations:
      value:
        items:
          - id: '1359972474'
            state:
              id: response
              name: Response
            created_at: '2022-05-19T18:14:13+0300'
            updated_at: '2022-05-19T18:14:13+0300'
            chat_bot:
              auto_survey:
                text: 'Do you have a medical record?: Yes\Do you have an Android smartphone?: Yes\'
            resume:
              last_name: Ivanov
              first_name: Ivan
              middle_name: Ivanovich
              title: Junior specialist
              created_at: '2022-05-19T11:19:47+0300'
              updated_at: '2022-05-20T10:49:47+0300'
              area:
                id: '1'
                name: Moscow
                url: 'https://api.hh.ru/areas/1'
              age: 55
              gender:
                id: male
                name: Male
              salary:
                amount: 1500
                currency: USD
              photo: null
              total_experience:
                months: 17
              certificate: []
              owner:
                id: '54761929'
                comments:
                  url: 'https://api.hh.ru/applicant_comments/54761929'
                  counters:
                    total: 0
              can_view_full_info: true
              contact_view_status: FULL
              negotiations_history:
                url: 'https://api.hh.ru/resumes/0123456789abcdef/negotiations_history'
              hidden_fields: []
              actions:
                download:
                  pdf:
                    url: 'https://api.hh.ru/resumes/0123456789abcdef/download/Lndihedidxsoacg%20Fndihedhjdxkxxy%20Mndihedjsdlshsf.pdf?type=pdf&topic_id=1359972474&vacancy_id=30251545'
                  rtf:
                    url: 'https://api.hh.ru/resumes/0123456789abcdef/download/Lndihedidxsoacg%20Fndihedhjdxkxxy%20Mndihedjsdlshsf.rtf?type=rtf&topic_id=1359972474&vacancy_id=30251545'
              url: 'https://api.hh.ru/resumes/0123456789abcdef?topic_id=1359972474'
              alternate_url: 'https://hh.ru/resume/0123456789abcdef?t=1359972474&vacancyId=30251545'
              id: 0123456789abcdef
              real_id: '1234'
              download:
                pdf:
                  url: 'https://api.hh.ru/resumes/0123456789abcdef/download/Lndihedidxsoacg%20Fndihedhjdxkxxy%20Mndihedjsdlshsf.pdf?type=pdf&topic_id=1359972474&vacancy_id=30251545'
                rtf:
                  url: 'https://api.hh.ru/resumes/0123456789abcdef/download/Lndihedidxsoacg%20Fndihedhjdxkxxy%20Mndihedjsdlshsf.rtf?type=rtf&topic_id=1359972474&vacancy_id=30251545'
              education:
                level:
                  id: higher
                  name: Higher
                primary:
                  - id: '1'
                    name: 'Russian State Social University, Moscow'
                    organization: Faculty of Information Technology
                    result: ''
                    year: 2019
                    name_id: '39420'
                    organization_id: null
                    result_id: null
              experience:
                - start: '2021-01-04'
                  end: '2022-05-19'
                  company: DHL Express
                  company_id: '272'
                  industry: null
                  industries:
                    - id: '5.467'
                      name: 'Courier, postal delivery'
                    - id: '5.461'
                      name: Air transportation
                    - id: '5.465'
                      name: 'Transport and logistics complexes, ports (air, water, railway)'
                    - id: '5.464'
                      name: Sea and river transportation
                    - id: '5.463'
                      name: Railway transportation
                  area:
                    id: '1'
                    name: Moscow
                    url: 'https://api.hh.ru/areas/1'
                  company_url: 'http://some-kind.ru'
                  employer:
                    id: '272'
                    name: DHL Express
                    url: 'https://api.hh.ru/employers/272'
                    alternate_url: 'https://hh.ru/employer/272'
                    logo_urls:
                      '90': 'https://hhcdn.ru/employer-logo/272-small.jpeg'
                      '240': 'https://hhcdn.ru/employer-logo/272-big.jpeg'
                      original: 'https://hhcdn.ru/employer-logo/272.jpeg'
                  position: Tester
              favorited: false
              viewed: false
              marked: false
            viewed_by_opponent: true
            has_updates: true
            messages_url: 'https://api.hh.ru/negotiations/1359972474/messages'
            url: 'https://api.hh.ru/negotiations/1359972474'
            counters:
              messages: 0
              unread_messages: 0
            chat_states:
              response_reminder_state:
                allowed: false
            source: NEGOTIATION
            chat_id: 1831
            messaging_status: ok
            employer_state:
              id: response
              name: Response
            funnel_stage:
              id: '12345'
              state:
                id: response
                name: Response
              substate: null
            templates:
              - id: interview
                url: 'https://api.hh.ru/message_templates/interview?topic_id=1359972474'
                name: Invitation to Interview
                quick: false
              - id: consider
                url: 'https://api.hh.ru/message_templates/consider?topic_id=1359972474'
                name: Invitation to Consider
                quick: false
              - id: invite
                url: 'https://api.hh.ru/message_templates/invite?topic_id=1359972474'
                name: Invitation to Phone interview
                quick: false
              - id: invite_after_response
                url: 'https://api.hh.ru/message_templates/invite_after_response?topic_id=1359972474'
                name: Invitation for the responded applicant to a Phone Interview
                quick: false
              - id: assessment_owner_tool
                url: 'https://api.hh.ru/message_templates/assessment_owner_tool?topic_id=1359972474'
                name: Invitation to Assessment (custom assessment tool)
                quick: false
              - id: hired
                url: 'https://api.hh.ru/message_templates/hired?topic_id=1359972474'
                name: Invitation to Hired
                quick: false
              - id: discard_after_interview
                url: 'https://api.hh.ru/message_templates/discard_after_interview?topic_id=1359972474'
                name: Discard after interview
                quick: false
              - id: discard_after_response
                url: 'https://api.hh.ru/message_templates/discard_after_response?topic_id=1359972474'
                name: Discard the applicant who responded to the vacancy
                quick: false
              - id: quick_discard_after_response
                url: 'https://api.hh.ru/message_templates/quick_discard_after_response?topic_id=1359972474'
                name: Short discard template for responses
                quick: true
              - id: offer
                url: 'https://api.hh.ru/message_templates/offer?topic_id=1359972474'
                name: Invitation to Offer
                quick: false
            actions:
              - id: interview
                name: Interview
                method: PUT
                enabled: true
                hidden: false
                url: 'https://api.hh.ru/negotiations/interview/1359972474'
                templates:
                  - id: interview
                    url: 'https://api.hh.ru/message_templates/interview?topic_id=1359972474'
                    name: Invitation to Interview
                    quick: false
                arguments:
                  - id: message
                    required: false
                    required_arguments: []
                  - id: send_sms
                    required: false
                    required_arguments:
                      - id: message
                  - id: address_id
                    required: false
                    required_arguments:
                      - id: message
                resulting_employer_state:
                  id: interview
                  name: Interview
              - id: consider
                name: Consider
                method: PUT
                enabled: true
                hidden: false
                url: 'https://api.hh.ru/negotiations/consider/1359972474'
                templates:
                  - id: consider
                    url: 'https://api.hh.ru/message_templates/consider?topic_id=1359972474'
                    name: Invitation to Consider
                    quick: false
                arguments:
                  - id: message
                    required: false
                    required_arguments: []
                  - id: send_sms
                    required: false
                    required_arguments:
                      - id: message
                resulting_employer_state:
                  id: consider
                  name: Consider
              - id: phone_interview
                name: Phone interview
                method: PUT
                enabled: true
                hidden: false
                url: 'https://api.hh.ru/negotiations/phone_interview/1359972474'
                templates:
                  - id: invite
                    url: 'https://api.hh.ru/message_templates/invite?topic_id=1359972474'
                    name: Invitation to Phone interview
                    quick: false
                  - id: invite_after_response
                    url: 'https://api.hh.ru/message_templates/invite_after_response?topic_id=1359972474'
                    name: Invitation to Phone interview after response
                    quick: false
                arguments:
                  - id: message
                    required: false
                    required_arguments: []
                  - id: send_sms
                    required: false
                    required_arguments:
                      - id: message
                  - id: address_id
                    required: false
                    required_arguments:
                      - id: message
                resulting_employer_state:
                  id: phone_interview
                  name: Phone interview
              - id: assessment
                name: Assessment
                method: PUT
                enabled: true
                hidden: false
                url: 'https://api.hh.ru/negotiations/assessment/1359972474'
                templates:
                  - id: assessment_owner_tool
                    url: 'https://api.hh.ru/message_templates/assessment_owner_tool?topic_id=1359972474'
                    name: Invitation to Assessment (custom assessment tool)
                    quick: false
                arguments:
                  - id: message
                    required: false
                    required_arguments: []
                  - id: send_sms
                    required: false
                    required_arguments:
                      - id: message
                resulting_employer_state:
                  id: assessment
                  name: Assessment
              - id: hired
                name: Hired
                method: PUT
                enabled: true
                hidden: false
                url: 'https://api.hh.ru/negotiations/hired/1359972474'
                templates:
                  - id: hired
                    url: 'https://api.hh.ru/message_templates/hired?topic_id=1359972474'
                    name: Invitation to Hired
                    quick: false
                arguments:
                  - id: message
                    required: false
                    required_arguments: []
                  - id: send_sms
                    required: false
                    required_arguments:
                      - id: message
                  - id: address_id
                    required: false
                    required_arguments:
                      - id: message
                resulting_employer_state:
                  id: hired
                  name: Hired
              - id: discard_by_employer
                name: Discard
                method: PUT
                enabled: true
                hidden: false
                url: 'https://api.hh.ru/negotiations/discard_by_employer/1359972474'
                templates:
                  - id: discard_after_interview
                    url: 'https://api.hh.ru/message_templates/discard_after_interview?topic_id=1359972474'
                    name: Discard
                    quick: false
                  - id: discard_after_response
                    url: 'https://api.hh.ru/message_templates/discard_after_response?topic_id=1359972474'
                    name: Discard after response
                    quick: false
                  - id: quick_discard_after_response
                    url: 'https://api.hh.ru/message_templates/quick_discard_after_response?topic_id=1359972474'
                    name: Short discard template for responses
                    quick: true
                arguments:
                  - id: message
                    required: false
                    required_arguments: []
                resulting_employer_state:
                  id: discard_by_employer
                  name: Discard
              - id: offer
                name: Offer
                method: PUT
                enabled: true
                hidden: false
                url: 'https://api.hh.ru/negotiations/offer/1359972474'
                templates:
                  - id: offer
                    url: 'https://api.hh.ru/message_templates/offer?topic_id=1359972474'
                    name: Invitation to Offer
                    quick: false
                arguments:
                  - id: message
                    required: false
                    required_arguments: []
                  - id: send_sms
                    required: false
                    required_arguments:
                      - id: message
                resulting_employer_state:
                  id: offer
                  name: Offer
            tags:
              - id: AUTO_RESPONSE
              - id: AUTO_RESPONSE_HH_PRO
        hidden_count: 0
        found: 1
        pages: 1
        per_page: 20
        page: 0
        ordered_by:
          id: last_change_time_except_employer_inbox
          name: By creation date and the applicant activity
    NegotiationsEmployerListResponse:
      value:
        collections:
          - id: somecollection
            name: Collection name
            description: Collection description
            url: 'https://api.hh.ru/negotiations/somecollection?vacancy_id=123456'
            counters:
              with_updates: 4
              total: 5
            order_types:
              - id: created_at
                name: By creation date and the applicant activity
                url: 'https://api.hh.ru/negotiations/somecollection?vacancy_id=123456&order_by=created_at'
              - id: relevance
                name: By relevance
                url: 'https://api.hh.ru/negotiations/somecollection?vacancy_id=123456&order_by=relevance'
            sub_collections:
              - id: somecollection_1
                name: Others
                root_collection: true
                url: 'https://api.hh.ru/negotiations/somecollection_1?vacancy_id=123456'
                counters:
                  total: 2
                  with_updates: 2
                order_types:
                  - id: last_change_time_except_employer_inbox
                    name: By creation date and the applicant activity
                    url: 'https://api.hh.ru/negotiations/somecollection_1?vacancy_id=123456&order_by=last_change_time_except_employer_inbox'
                  - id: created_at
                    name: By response date
                    url: 'https://api.hh.ru/negotiations/somecollection_1?vacancy_id=123456&order_by=created_at'
              - id: somecollection_2
                name: Subcollection name
                root_collection: false
                url: 'https://api.hh.ru/negotiations/somecollection_2?vacancy_id=123456'
                counters:
                  total: 3
                  with_updates: 2
                order_types:
                  - id: last_change_time_except_employer_inbox
                    name: By creation date and the applicant activity
                    url: 'https://api.hh.ru/negotiations/somecollection_2?vacancy_id=123456&order_by=last_change_time_except_employer_inbox'
                  - id: created_at
                    name: By response date
                    url: 'https://api.hh.ru/negotiations/somecollection_2?vacancy_id=123456&order_by=created_at'
          - id: anothercollection
            name: Another collection name
            description: Another collection description
            url: 'https://api.hh.ru/negotiations/anothercollection?vacancy_id=123456'
            counters:
              with_updates: 0
              total: 1
            order_types:
              - id: created_at
                name: By creation date and the applicant activity
                url: 'https://api.hh.ru/negotiations/anothercollection?vacancy_id=123456&order_by=created_at'
            sub_collections:
              - id: anothercollection_1
                name: Others
                root_collection: true
                url: 'https://api.hh.ru/negotiations/anothercollection_1?vacancy_id=123456'
                counters:
                  total: 1
                  with_updates: 0
                order_types:
                  - id: last_change_time_except_employer_inbox
                    name: By creation date and the applicant activity
                    url: 'https://api.hh.ru/negotiations/anothercollection_1?vacancy_id=123456&order_by=last_change_time_except_employer_inbox'
                  - id: created_at
                    name: By response date
                    url: 'https://api.hh.ru/negotiations/anothercollection_1?vacancy_id=123456&order_by=created_at'
        generated_collections:
          - id: some_generated_collection
            name: Generated collection's name
            description: Generated collection's description
            url: 'https://api.hh.ru/negotiations/some_generated_collection?vacancy_id=123456'
            counters:
              with_updates: 4
              total: 5
            order_types:
              - id: created_at
                name: By creation date and the applicant activity
                url: 'https://api.hh.ru/negotiations/some_generated_collection?vacancy_id=123456&order_by=created_at'
              - id: relevance
                name: By relevance
                url: 'https://api.hh.ru/negotiations/some_generated_collection?vacancy_id=123456&order_by=relevance'
        employer_states:
          - id: response
            name: Response
          - id: invitation
            name: Invitation
          - id: discard
            name: Discard
          - id: discard
            name: Rejection
          - id: discard_after_interview
            name: Rejected after interview
    NegotiationsEmployerNegotiationItem:
      value:
        id: '123456789'
        state:
          id: response
          name: Response
        created_at: '2024-02-20T10:24:48+0300'
        updated_at: '2024-02-20T10:24:48+0300'
        resume:
          id: 0123456789abcdef
          real_id: '1234'
          last_name: Ivanov
          first_name: Ivan
          middle_name: null
          title: Junior specialist
          created_at: '2024-02-20T10:24:47+0300'
          updated_at: '2024-02-20T10:24:47+0300'
          area:
            id: '1'
            name: Moscow
            url: 'https://api.hh.ru/areas/1'
          age: null
          gender:
            id: male
            name: Male
          salary: null
          salary_range: null
          photo: null
          total_experience:
            months: 14
          certificate: []
          owner:
            id: '54769355'
            comments:
              url: 'https://api.hh.ru/applicant_comments/54769355'
              counters:
                total: 0
          can_view_full_info: true
          contact_view_status: FULL
          negotiations_history:
            url: 'https://api.hh.ru/resumes/0123456789abcdef/negotiations_history'
          hidden_fields: []
          actions:
            download:
              pdf:
                url: 'https://api.hh.ru/resumes/0123456789abcdef/download/%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%20%D0%98%D0%B2%D0%B0%D0%BD.pdf?type=pdf&topic_id=123456789&vacancy_id=123456789'
              rtf:
                url: 'https://api.hh.ru/resumes/0123456789abcdef/download/%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%20%D0%98%D0%B2%D0%B0%D0%BD.rtf?type=rtf&topic_id=123456789&vacancy_id=123456789'
          url: 'https://api.hh.ru/resumes/0123456789abcdef?topic_id=123456789'
          alternate_url: 'https://hh.ru/resume/0123456789abcdef?t=123456789&vacancyId=123456789'
          download:
            pdf:
              url: 'https://api.hh.ru/resumes/0123456789abcdef/download/%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%20%D0%98%D0%B2%D0%B0%D0%BD.pdf?type=pdf&topic_id=123456789&vacancy_id=123456789'
            rtf:
              url: 'https://api.hh.ru/resumes/0123456789abcdef/download/%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%20%D0%98%D0%B2%D0%B0%D0%BD.rtf?type=rtf&topic_id=123456789&vacancy_id=123456789'
          platform:
            id: headhunter
          education:
            level:
              id: master
              name: Master
            primary:
              - id: '1'
                name: 'Russian State Social University, Moscow'
                name_id: '39420'
                organization: Faculty of Information Technology
                organization_id: null
                result: ''
                result_id: null
                year: 2012
          experience:
            - start: '2011-01-02'
              end: '2012-02-06'
              company: HeadHunter
              company_id: null
              industry:
                id: '1'
                name: Banks/loans/investments/leasing
              industries: []
              area:
                id: '1'
                name: Moscow
                url: 'https://api.hh.ru/areas/1'
              company_url: 'http://url.ru'
              employer: null
              position: Director
          favorited: false
          viewed: false
          marked: false
          portfolio: []
          paid_services: []
        viewed_by_opponent: true
        has_updates: true
        messages_url: 'https://api.hh.ru/negotiations/123456789/messages'
        url: 'https://api.hh.ru/negotiations/123456789'
        counters:
          messages: 1
          unread_messages: 1
        chat_states:
          response_reminder_state:
            allowed: false
        source: NEGOTIATION
        chat_id: 3490
        messaging_status: ok
        employer_state:
          id: response
          name: Response
        tags:
          - id: AUTO_RESPONSE
          - id: AUTO_RESPONSE_HH_PRO
        funnel_stage:
          id: '12345'
          state:
            id: response
            name: Response
          substate: null
        vacancy:
          id: '123456789'
          premium: false
          name: Manager
          department: null
          has_test: false
          response_letter_required: false
          show_contacts: false
          area:
            id: '98'
            name: Moscow
            url: 'https://api.hh.ru/areas/98'
          salary: null
          salary_range: null
          type:
            id: open
            name: Open
          address:
            city: Moscow
            street: Dynamo street
            building: '10'
            lat: 35
            lng: 30
            description: null
            raw: 'Dynamo street 10, Moscow'
            metro:
              station_name: Dynamo
              line_name: Zamoskvoretskaya
              station_id: '2.34'
              line_id: '2'
              lat: 55.789704
              lng: 37.558212
            metro_stations:
              - station_name: Dynamo
                line_name: Zamoskvoretskaya
                station_id: '2.34'
                line_id: '2'
                lat: 55.789704
                lng: 37.558212
            id: '1118'
          response_url: null
          sort_point_distance: null
          published_at: '2024-02-20T10:24:43+0300'
          created_at: '2024-02-20T10:24:43+0300'
          archived: false
          apply_alternate_url: 'https://hh.ru/applicant/vacancy_response?vacancyId=123456789'
          insider_interview: null
          url: 'https://api.hh.ru/vacancies/123456789?host=hh.ru'
          alternate_url: 'https://hh.ru/vacancy/123456789'
          employer:
            id: '8183'
            name: Roga i Kopyta
            url: 'https://api.hh.ru/employers/8183'
            alternate_url: 'https://hh.ru/employer/8183'
            logo_urls: null
            vacancies_url: 'https://api.hh.ru/vacancies?employer_id=8183'
            accredited_it_employer: false
            trusted: true
          professional_roles:
            - id: '32'
              name: Manager
        actions:
          - id: offer
            name: Job offer
            method: PUT
            enabled: true
            hidden: false
            url: 'https://api.hh.ru/negotiations/offer/123456789'
            templates:
              - id: offer
                url: 'https://api.hh.ru/message_templates/offer?topic_id=123456789'
                name: Invite to Job offer
                quick: false
            arguments:
              - id: message
                required: false
                required_arguments: []
              - id: send_sms
                required: false
                required_arguments:
                  - id: message
            resulting_employer_state:
              id: offer
              name: Job offer
    NegotiationsMessageGet:
      value:
        found: 1
        pages: 1
        per_page: 20
        page: 0
        items:
          - id: '123'
            viewed_by_me: true
            viewed_by_opponent: true
            created_at: '2013-10-07T18:30:57+0400'
            text: A major bank invites you for a job with salary that Arab sheikhs can only dream of
            state:
              id: invitation
              name: Invitation
            author:
              participant_type: employer
            address:
              building: '10'
              city: Moscow
              description: Turn right at the sign
              lat: 35
              lng: 30
              metro:
                lat: 55.789704
                line_id: '2'
                line_name: Zamoskvoretskaya
                lng: 37.558212
                station_id: '2.34'
                station_name: Dinamo
              metro_stations:
                - lat: 55.789704
                  line_id: '2'
                  line_name: Zamoskvoretskaya
                  lng: 37.558212
                  station_id: '2.34'
                  station_name: Dinamo
              street: Dinamo street
            assessments:
              - id: '123'
                name: Dynamic numerical reasoning test
                actions:
                  - id: proceed
                    name: Go to testing
                    enabled: true
                    alternate_url: 'https://hh.ru/applicant/assessment/123'
            editable: false
          - id: '124'
            viewed_by_me: true
            viewed_by_opponent: false
            created_at: '2013-10-08T10:12:23+0400'
            text: Give me a camel and a horse!
            state:
              id: text
              name: Text
            author:
              participant_type: applicant
            address: null
            editable: false
    NegotiationsMessageSent:
      value:
        id: '124'
        viewed_by_me: true
        viewed_by_opponent: false
        created_at: '2013-10-08T10:12:23+0400'
        text: Message text
        state:
          id: text
          name: Text
        author:
          participant_type: applicant
        address: null
        editable: false
    NegotiationsNegotiationMessageTemplates:
      value:
        mail:
          text: Hello Ivan Ivanovich! Thank you for your response to the vacancy…
          template_modified: false
          employer_state: PHONE_INTERVIEW
    NegotiationsNegotiationTestResults:
      value:
        test_result:
          name: name
          score: 100
          mark: EXCELLENT
          duration: 10
          tasks:
            - question: How are you?
              closed_answers:
                - value: Fine
                  selected: true
                  correct: false
                - value: Good
                  selected: false
                  correct: true
              opened_answer:
                value: Average
                mark: UNFAIR
            - question: What was the last thing you thought about?
              closed_answers: []
              opened_answer:
                value: api hh.ru
                mark: EXCELLENT
    NegotiationsNegotiationsStatisticsEmployer:
      value:
        employer_statistics:
          received: 20
          viewed_percent: 23
          replied_percent: 0
          average_reply_time: 1
          politeness:
            index: 62
            index_change: 0
            hint: 'Your politeness index is average. This is good, but there is a room for improvement.'
            description: The politeness index is visible to applicants after they respond to a vacancy. Companies with a low index may lose applicants' trust and risk missing out on suitable candidates
            article_url: 'https://hh.ru/article/23734'
    NegotiationsNegotiationsStatisticsManager:
      value:
        manager_statistics:
          received: 20
          viewed_percent: 23
          replied_percent: 0
          average_reply_time: 1
          politeness:
            index: 19
            index_change: 0
            hint: 'Your politeness index is low, but you can improve it!'
            description: The politeness index is visible to applicants after they respond to a vacancy. Companies with a low index may lose applicants' trust and risk missing out on suitable candidates
            article_url: 'https://hh.ru/article/23734'
    ResumeResumeViewEmployer:
      value:
        last_name: Ivanov
        first_name: Ivan
        middle_name: null
        title: API Test Resume
        created_at: '2023-05-25T14:22:06+0300'
        updated_at: '2023-05-25T14:22:06+0300'
        area:
          id: '1'
          name: Moscow
          url: 'https://api.hh.ru/areas/1'
        age: 29
        gender:
          id: male
          name: Male
        salary:
          amount: 10000
          currency: USD
        photo:
          '40': 'https://hhcdn.ru/photo/00970.png'
          '100': 'https://hhcdn.ru/photo/00971.png'
          '500': 'https://hhcdn.ru/photo/00972.png'
          small: 'https://hhcdn.ru/photo/00971.png'
          medium: 'https://hhcdn.ru/photo/00972.png'
        total_experience:
          months: 14
        certificate: []
        owner:
          id: '54765267'
          comments:
            url: 'https://api.hh.ru/applicant_comments/54765267'
            counters:
              total: 0
        can_view_full_info: true
        contact_view_status: FULL
        contacts_open_until_date: '2025-04-01'
        negotiations_history:
          url: 'https://api.hh.ru/resumes/09866c49/negotiations_history'
        hidden_fields: []
        actions:
          download:
            pdf:
              url: 'https://api.hh.ru/resumes/09866c49/download/file-name.pdf?type=pdf'
            rtf:
              url: 'https://api.hh.ru/resumes/09866c49/download/file-name.rtf?type=rtf'
        alternate_url: 'https://hh.ru/resume/09866c49'
        id: 09866c49
        real_id: '1234'
        download:
          pdf:
            url: 'https://api.hh.ru/resumes/09866c49/download/file-name.pdf?type=pdf'
          rtf:
            url: 'https://api.hh.ru/resumes/09866c49/download/file-name.rtf?type=rtf'
        platform:
          id: headhunter
        resume_locale:
          id: RU
          name: English
        skills: Team management
        citizenship:
          - id: '113'
            name: Russia
            url: 'https://api.hh.ru/areas/113'
        work_ticket:
          - id: '113'
            name: Russia
            url: 'https://api.hh.ru/areas/113'
        birth_date: '1993-06-28'
        contact:
          - type:
              id: cell
              name: Cell phone
            contact_value: +7 (495) 552-73-67
            kind: phone
            preferred: false
            comment: Call after 12 PM
            need_verification: true
            verified: false
          - type:
              id: email
              name: Email
            preferred: true
            contact_value: my-email@example.com
            kind: email
          - type:
              id: telegram
              name: telegram
            contact_value: '@nickname'
            kind: primary
            preferred: false
            links:
              android: 'https://t.me/nickname'
              ios: 'https://t.me/nickname'
              web: 'https://t.me/nickname'
          - type:
              id: other
              name: MyLinkedIn
            contact_value: 'https://linked.in/1231232131'
            kind: secondary
            preferred: false
        education:
          level:
            id: master
            name: Master
          primary:
            - id: '1'
              name: testUniversity
              organization: testFaculty
              result: testSpeciality
              year: 1988
              name_id: null
              organization_id: null
              result_id: null
              university_acronym: testUniversityAcronym
              education_level:
                id: master
                name: Master
          additional: []
          attestation: []
          elementary: []
        employment:
          id: part
          name: Part time
        employments:
          - id: part
            name: Part time
        experience:
          - start: '2011-01-02'
            end: '2012-02-06'
            company: Company
            company_id: null
            industry:
              id: '1'
              name: Banks/loans/investments/leasing
            industries: []
            area:
              id: '1'
              name: Moscow
              url: 'https://api.hh.ru/areas/1'
            company_url: 'http://url.ru'
            employer: null
            position: Director
            description: Managed a department
        language:
          - id: rus
            name: Russian
            level:
              id: a1
              name: A1 — Elementary
        metro:
          id: '6.8'
          name: Alekseevskaya
          lat: 55.807794
          lng: 37.638699
          order: 5
          line:
            id: '6'
            hex_color: F07E24
            name: Kaluzhsko-Rizhskaya
        recommendation:
          - name: Ivan
            organization: HH
            position: CEO
            contact: ''
        relocation:
          type:
            id: relocation_possible
            name: Ready for relocation
          area:
            - id: '98'
              name: Ulyanovsk
              url: 'https://api.hh.ru/areas/98'
          district: []
        schedule:
          id: flexible
          name: Flexible schedule
        schedules:
          - id: flexible
            name: Flexible schedule
        site:
          - type:
              id: skype
              name: Skype
            url: '123321123'
        travel_time:
          id: less_than_hour
          name: Less than an hour
        business_trip_readiness:
          id: sometimes
          name: ready for rare business trips
        paid_services: []
        portfolio:
          - small: 'https://hhcdn.ru/photo/00975.png'
            medium: 'https://hhcdn.ru/photo/00976.png'
            description: Portfolio description
        skill_set:
          - Graphics
          - Design
        favorited: false
        has_vehicle: true
        driver_license_types:
          - id: A
        professional_roles:
          - id: '124'
            name: Tester
        creds:
          questions:
            '14':
              question_id: '14'
              question_title: 'Have you worked as a cook, baker or pastry chef before?'
              view_title: null
              skip_title_at_view: true
              question_type: single_choice
              possible_answers:
                - '27'
                - '28'
              description: null
              is_active: true
              required: true
            '15':
              question_id: '15'
              question_title: Do you have a culinary background?
              view_title: null
              skip_title_at_view: true
              question_type: single_choice
              possible_answers:
                - '29'
                - '30'
              description: null
              is_active: true
              required: true
          answers:
            '27':
              answer_group: positive
              answer_id: '27'
              ask_questions_after: []
              description: null
              positive_title: 'Have experience as a cook, baker or pastry chef'
              skip_at_result: false
              title: 'Yes'
            '28':
              answer_group: negative
              answer_id: '28'
              ask_questions_after: []
              description: null
              positive_title: 'No experience as a cook, baker or pastry chef'
              skip_at_result: true
              title: No experience
            '29':
              answer_group: positive
              answer_id: '29'
              ask_questions_after: []
              description: null
              positive_title: I have a culinary education
              skip_at_result: false
              title: 'Yes, I have'
            '30':
              answer_group: negative
              answer_id: '30'
              ask_questions_after: []
              description: null
              positive_title: No culinary education
              skip_at_result: true
              title: No education
          question_to_answer_map:
            '14':
              - '27'
        complaint_status:
          applicant_topics_are_hidden: false
    ResumesResumeNegotiationsHistory:
      value:
        vacancies:
          - id: '321'
            name: Test vacancy
            url: 'https://api.hh.ru/vacancies/321'
            archived: false
            can_edit: true
            items:
              - employer_state:
                  id: offer
                  name: Offer
                created_at: '2017-01-30T15:06:47+0300'
                with_message: true
            negotiations_url: 'https://api.hh.ru/negotiations/123'
            messages_url: 'https://api.hh.ru/negotiations/123/messages'
    ResumesSearchForResumes:
      value:
        items:
          - id: ABCDEF01234567890
            real_id: '1234'
            last_name: null
            first_name: null
            middle_name: null
            title: TEST_RESUME
            created_at: '2023-08-04T16:20:48+0300'
            updated_at: '2023-08-04T16:20:48+0300'
            area:
              id: '1'
              name: Moscow
              url: 'https://api.hh.ru/areas/1'
            age: 56
            gender:
              id: male
              name: Male
            salary:
              amount: 1500
              currency: USD
            photo: null
            total_experience:
              months: 18
            certificate: []
            owner:
              id: '54751619'
              comments:
                url: 'https://api.hh.ru/applicant_comments/54752012'
                counters:
                  total: 1
            can_view_full_info: false
            contact_view_status: NONE
            negotiations_history:
              url: 'https://api.hh.ru/resumes/ABCDEF01234567890/negotiations_history'
            hidden_fields: []
            actions:
              download:
                pdf:
                  url: 'https://api.hh.ru/resumes/ABCDEF01234567890/download/Lnhfbjibfvcixqb%20Fnhfbjiaxluffhw%20Mnhfbjicdkicrzl.pdf?type=pdf'
                rtf:
                  url: 'https://api.hh.ru/resumes/ABCDEF01234567890/download/Lnhfbjibfvcixqb%20Fnhfbjiaxluffhw%20Mnhfbjicdkicrzl.rtf?type=rtf'
              get_with_contact:
                url: 'https://api.hh.ru/resumes/ABCDEF01234567890?with_contact=ab65a8562d85e1798ad90d67fe8f5253'
              download_with_contact:
                pdf:
                  url: 'https://api.hh.ru/resumes/ABCDEF01234567890/download/Lnhfbjibfvcixqb%20Fnhfbjiaxluffhw%20Mnhfbjicdkicrzl.pdf?type=pdf&with_contact=ab65a8562d85e1798ad90d67fe8f5253'
                rtf:
                  url: 'https://api.hh.ru/resumes/ABCDEF01234567890/download/Lnhfbjibfvcixqb%20Fnhfbjiaxluffhw%20Mnhfbjicdkicrzl.pdf?type=rtf&with_contact=ab65a8562d85e1798ad90d67fe8f5253'
            url: 'https://api.hh.ru/resumes/ABCDEF01234567890'
            alternate_url: 'https://hh.ru/resume/ABCDEF01234567890'
            download:
              pdf:
                url: 'https://api.hh.ru/resumes/ABCDEF01234567890/download/Lnhfbjibfvcixqb%20Fnhfbjiaxluffhw%20Mnhfbjicdkicrzl.pdf?type=pdf'
              rtf:
                url: 'https://api.hh.ru/resumes/ABCDEF01234567890/download/Lnhfbjibfvcixqb%20Fnhfbjiaxluffhw%20Mnhfbjicdkicrzl.pdf?type=rtf'
            platform:
              id: headhunter
            education:
              level:
                id: higher
                name: Higher
              primary:
                - id: '1'
                  name: MIT
                  organization: Aerospace
                  result: 'Architect, master of architecture'
                  year: 2020
                  name_id: null
                  organization_id: null
                  result_id: null
                  university_acronym: testUniversityAcronym
                  education_level:
                    id: master
                    name: Master
            experience:
              - start: '2022-03-22'
                end: '2023-08-04'
                company: NASA
                company_id: '2'
                industry:
                  id: '52'
                  name: 'Arts, culture'
                industries:
                  - id: '19.623'
                    name: 'Carpentry and construction products(marketing, wholesale)'
                  - id: '52.651'
                    name: 'Archive, library, art history'
                area:
                  id: '1'
                  name: Moscow
                  url: 'https://api.hh.ru/areas/1'
                company_url: 'http://some-kind.ru'
                employer: null
                position: Tester
            favorited: true
            viewed: false
            marked: false
            last_negotiation: null
        found: 1
        pages: 1
        per_page: 20
        page: 0
    SalaryStatisticsEvaluation:
      value:
        market_salary:
          upper: 50000
          minimum: 20000
          median: 35000
          average: 50054
          maximum: 52643
          bottom: 28500
        resulting_parameters:
          areas:
            - id: '10010'
              name: Southern Federal District
          excluded_areas:
            - id: '1530'
              name: Rostov region
          employee_levels:
            - id: specialist
              name: Specialist
          industries:
            - id: '7'
              name: 'Information technology, system integration, Internet'
          specialities:
            - id: '1200000'
              name: Operation of information systems
          sources:
            - SALARIES
            - RESUMES
            - VACANCIES
          indirect_calculation: null
          positions_count: 1648
          employers_count: 21
    SavedSearchesSavedSearchResumeItem:
      value:
        id: '609535'
        name: Managers in Moscow
        created_at: '2015-01-01T13:12:17+0400'
        subscription: true
        items:
          count: 55
          url: 'https://api.hh.ru/resumes?order_by=publication_time&saved_search_id=123456&text=manager&area=1'
        new_items:
          count: 15
          url: 'https://api.hh.ru/resumes?order_by=publication_time&saved_search_id=123456&text=manager&area=1&last_used=2015-11-12T18%3A06%3A04%2B0300'
    SavedSearchesSavedSearchResumes:
      value:
        per_page: 0
        page: 0
        pages: 1
        found: 2
        items:
          - id: '609535'
            name: Managers in Moscow
            created_at: '2015-01-01T13:12:17+0400'
            subscription: true
            items:
              count: 55
              url: 'https://api.hh.ru/resumes?order_by=publication_time&saved_search_id=123456&text=manager&area=1'
            new_items:
              count: 15
              url: 'https://api.hh.ru/resumes?order_by=publication_time&saved_search_id=123456&text=manager&area=1&last_used=2015-11-12T18%3A06%3A04%2B0300'
    ServicesEmployerServices:
      value:
        items:
          - id: '12345678'
            service_type:
              id: API_UNLIMITED
              name: HH API access
            activated_at: '2018-02-01T12:00:00+0300'
            expires_at: '2019-01-31T12:00:00+0300'
            balance: null
          - id: '12345680'
            service_type:
              id: API_LIMITED
              name: HH API request packet
            activated_at: '2019-02-01T12:00:00+0300'
            expires_at: '2020-01-31T12:00:00+0300'
            balance:
              actual: 10000
              initial: 10000
    ServicesMethodAccess:
      value:
        items:
          - id: '3'
            description: Access to a resume with a response or an invitation
            access:
              has_access: true
          - id: '4'
            description: Access to view a resume
            access:
              has_access: false
    ServicesVacancyAvailablePublication:
      value:
        publication_variants:
          - appearance:
              title: Standard
              description: Standard vacancy without promotion — for regular hiring
            available_publications_count: 9
            suitable_packages:
              - invalid: false
                count: 9
                price_regions:
                  - id: '3000233'
                    title: Whole Russia
                    areas_url: 'https://api.hh.ru/areas?vacancy_publication_flag=true&price_region_id=3000233'
              - invalid: true
                count: 1
                price_regions:
                  - id: '2000231'
                    title: Moscow and the Moscow region
                    areas_url: 'https://api.hh.ru/areas?vacancy_publication_flag=true&price_region_id=2000231'
            vacancy_properties:
              required:
                - property_type: HH_STANDARD
    SuggestsCompanies:
      value:
        items:
          - text: HeadHunter
            id: '1455'
            url: 'http:/hh.ru'
            industries:
              - id: '7.541'
                name: Internet company
            logo_urls:
              '90': 'https://hh.ru/employer-logo/289055.png'
              '240': 'https://hh.ru/employer-logo/289056.png'
            area:
              id: '113'
              name: Russia
    SuggestsEducationalInstitutions:
      value:
        items:
          - acronym: Bauman MSTU
            text: 'Bauman Moscow State Technical University, Moscow'
            synonyms: formerly Bauman MHTS
            id: '38921'
            area:
              id: '1'
              name: Moscow
    SuggestsFieldsOfStudy:
      value:
        items:
          - id: '382'
            text: 'Refrigeration, cryogenic engineering, and air conditioning (Engineer)'
    SuggestsResumeSearchKeyword:
      value:
        items:
          - text: Moscow
          - text: Bridges
          - text: Moscow State Law Academy
    SuggestsSkillSet:
      value:
        items:
          - text: Heating and cooling systems
            id: '2716'
          - text: Cold shop
            id: '3019'
          - text: Cold calling
            id: '3018'
    SuggestsSuggestsAreas:
      value:
        items:
          - url: 'https://api.hh.ru/areas/1'
            text: Moscow
            id: '1'
            parent:
              id: '113'
              text: Russia
              url: 'https://api.hh.ru/areas/113'
          - url: 'https://api.hh.ru/areas/2019'
            text: Moscow Region
            id: '2019'
    SuggestsSuggestsPositions:
      value:
        items:
          - text: Business Development Manager
            id: '2569'
            professional_roles:
              - id: '70'
                name: 'Sales Manager, Customer Service Manager'
                accept_incomplete_resumes: false
    SuggestsVacancySearchKeyword:
      value:
        items:
          - text: Java
          - text: JavaScript
          - text: Java programmer
        suggest_id: c73c3170-6bf5-4698-935c-7b920b4f7f02
    VacanciesActiveList:
      value:
        found: 1
        page: 0
        pages: 1
        per_page: 20
        items:
          - salary:
              to: null
              from: 30000
              currency: RUR
              gross: true
            salary_range:
              from: 30000
              to: null
              currency: RUR
              gross: true
              mode:
                id: MONTH
                name: Per month
              frequency:
                id: MONTHLY
                name: Monthly
            name: Secretary
            area:
              url: 'https://api.hh.ru/areas/1'
              id: '1'
              name: Moscow
            url: 'https://api.hh.ru/vacancies/8331228'
            published_at: '2013-07-08T16:17:21+0400'
            relations: []
            employer:
              logo_urls:
                '90': 'https://hh.ru/employer-logo/289027.png'
                '240': 'https://hh.ru/employer-logo/289169.png'
                original: 'https://hh.ru/file/2352807.png'
              name: HeadHunter
              url: 'https://api.hh.ru/employers/1455'
              alternate_url: 'https://hh.ru/employer/1455'
              id: '1455'
              trusted: true
              accredited_it_employer: false
              badges:
                - type: employer-hh-rating
                  description: 2nd place in the Russian Employers Rating (small companies)
                  url: 'https://rating.hh.ru/profile/rating2020'
                  position: '2'
                  year: 2020
            response_letter_required: true
            address:
              city: Kaluga
              street: Lenina
              building: '51'
              description: null
              lat: 55.324417
              lng: 86.116411
              raw: 'Kaluga, Lenina, 51'
              metro: null
              metro_stations: []
              id: '321123'
            alternate_url: 'https://hh.ru/vacancy/8331228'
            apply_alternate_url: 'https://hh.ru/applicant/vacancy_response?vacancyId=8331228'
            department:
              id: 18320489-18320489-dept1
              name: 'HeadHunter::Technical department'
            premium: false
            type:
              id: open
              name: Open
            id: '8331228'
            archived: false
            counters:
              views: 100500
              responses: 5
              unread_responses: 3
              resumes_in_progress: 5
              invitations: 10
              invitations_and_responses: 14
              calls: 99
              new_missed_calls: 11
            expires_at: '2013-07-08T16:17:21+0400'
            has_updates: false
            billing_type:
              id: standard
              name: Standard
            can_upgrade_billing_type: true
            manager:
              first_name: John
              last_name: Smith
              id: '5032'
              middle_name: null
            created_at: '2012-10-11T13:27:16+0400'
            has_test: true
            negotiations_state: null
            auction:
              campaign_creation_status: CAMPAIGN_CREATED
              campaign_status: ACTIVE
            closed_for_applicants: false
            vacancy_properties:
              properties:
                - property_type: HH_PAY_FOR_PERFORMANCE
                  start_time: '2024-09-14T02:51:16.061+03:00'
                  end_time: '2024-10-14T02:51:16.061+03:00'
                  parameters: []
    VacanciesArchivedVacancyList:
      value:
        found: 1
        page: 0
        pages: 1
        per_page: 20
        items:
          - salary:
              to: null
              from: 30000
              currency: RUR
              gross: true
            salary_range:
              from: 30000
              to: null
              currency: RUR
              gross: true
              mode:
                id: MONTH
                name: Per month
              frequency:
                id: MONTHLY
                name: Monthly
            name: Secretary
            area:
              url: 'https://api.hh.ru/areas/1'
              id: '1'
              name: Moscow
            url: 'https://api.hh.ru/vacancies/8331228'
            published_at: '2013-07-08T16:17:21+0400'
            relations: []
            employer:
              logo_urls:
                '90': 'https://hh.ru/employer-logo/289027.png'
                '240': 'https://hh.ru/employer-logo/289169.png'
                original: 'https://hh.ru/file/2352807.png'
              name: HeadHunter
              url: 'https://api.hh.ru/employers/1455'
              alternate_url: 'https://hh.ru/employer/1455'
              id: '1455'
              trusted: true
              accredited_it_employer: false
            response_letter_required: true
            address: null
            alternate_url: 'https://hh.ru/vacancy/8331228'
            apply_alternate_url: 'https://hh.ru/applicant/vacancy_response?vacancyId=8331228'
            department:
              id: 18320489-18320489-dept1
              name: 'HeadHunter::Technical department'
            premium: false
            type:
              id: open
              name: Open
            id: '8331228'
            archived: true
            counters:
              responses: 3
              invitations_and_responses: 5
            archived_at: '2013-08-08T16:17:21+0400'
            created_at: '2012-07-08T16:17:21+0400'
            vacancy_properties:
              appearance:
                title: Standard
              properties:
                - property_type: HH_STANDARD
                  start_time: '2024-12-16T11:55:05.067+03:00'
                  end_time: '2025-01-15T11:55:05.067+03:00'
                  parameters: []
            closed_for_applicants: false
            has_test: false
    VacanciesAvailableVacancyType:
      value:
        items:
          - name: 'Standard: without updates'
            description: The vacancy is published for 30 days and automatically boosted in search results every 3 days. It is visible only to invited applicants and cannot be found in search or viewed by others
            available_publications_count: 21
            vacancy_billing_type:
              id: standart
            vacancy_types:
              - id: closed
              - id: open
            publications:
              - name: Moscow and the Moscow Region
                count: 10
                areas_url: 'https://api.hh.ru/areas?price_region_id=1000224&vacancy_publication_flag=true'
              - name: In any region
                count: 11
                areas_url: 'https://api.hh.ru/areas?vacancy_publication_flag=true'
          - name: 'Premium: one week in the top results'
            description: 'For the first 7 days, the vacancy is highlighted, branded with your company logo, and remains at the top of search results. It is also included in email newsletters to relevant candidates and stays published for 30 days'
            available_publications_count: 0
            vacancy_billing_type:
              id: free
            vacancy_types:
              - id: open
            publications: []
    VacanciesDeletedVacancyList:
      value:
        found: 1
        page: 0
        pages: 1
        per_page: 20
        items:
          - salary:
              to: null
              from: 30000
              currency: RUR
              gross: true
            salary_range:
              from: 30000
              to: null
              currency: RUR
              gross: true
              mode:
                id: MONTH
                name: Per month
              frequency:
                id: MONTHLY
                name: Monthly
            name: Secretary
            area:
              url: 'https://api.hh.ru/areas/1'
              id: '1'
              name: Moscow
            url: 'https://api.hh.ru/vacancies/8331228'
            published_at: '2013-07-08T16:17:21+0400'
            relations: []
            employer:
              logo_urls:
                '90': 'https://hh.ru/employer-logo/289027.png'
                '240': 'https://hh.ru/employer-logo/289169.png'
                original: 'https://hh.ru/file/2352807.png'
              name: HeadHunter
              url: 'https://api.hh.ru/employers/1455'
              alternate_url: 'https://hh.ru/employer/1455'
              id: '1455'
              trusted: true
            response_letter_required: true
            address: null
            alternate_url: 'https://hh.ru/vacancy/8331228'
            apply_alternate_url: 'https://hh.ru/applicant/vacancy_response?vacancyId=8331228'
            department:
              id: 18320489-18320489-dept1
              name: 'HeadHunter::Technical department'
            premium: false
            type:
              id: open
              name: Open
            id: '8331228'
            archived: true
            has_test: false
            archived_at: '2023-04-25T18:13:13+0300'
            counters:
              responses: 0
              invitations_and_responses: 0
            vacancy_properties:
              appearance:
                title: Standard
              properties:
                - property_type: HH_STANDARD
                  start_time: '2024-12-16T11:55:05.067+03:00'
                  end_time: '2025-01-15T11:55:05.067+03:00'
                  parameters: []
            closed_for_applicants: false
            created_at: '2023-04-25T18:13:11+0300'
    VacanciesMatchList:
      value:
        per_page: 20
        items:
          - negotiations_state: null
            employer_negotiations_state: null
            can_invite: true
            negotiations_actions:
              - id: invitation
                name: Invite
                enabled: true
                hidden: false
                method: POST
                url: 'https://api.hh.ru/negotiations/invited'
                resulting_employer_state:
                  id: invitation
                  name: Invitation
                templates:
                  - id: invite
                    name: Invite
                    quick: false
                    url: 'https://api.hh.ru/message_templates/invite?resume_id=0123456789abcdef&vacancy_id=123456'
                arguments:
                  - id: resume_id
                    required: true
                    required_arguments: []
                  - id: vacancy_id
                    required: true
                    required_arguments: []
                  - id: message
                    required: true
                    required_arguments: []
                  - id: send_sms
                    required: false
                    required_arguments:
                      - id: message
                  - id: address_id
                    required: false
                    required_arguments:
                      - id: message
            id: '123456'
            premium: true
            address:
              city: Kaluga
              street: Lenina
              building: '51'
              description: null
              lat: 55.324417
              lng: 86.116411
              raw: 'Lenina 51, Kaluga'
              metro: null
              metro_stations: []
              id: '321123'
            alternate_url: 'https://hh.ru/vacancy/123456'
            salary:
              to: null
              from: 100000
              currency: RUR
              gross: true
            salary_range:
              from: 100000
              to: null
              currency: RUR
              gross: true
              mode:
                id: MONTH
                name: Per month
              frequency:
                id: MONTHLY
                name: Monthly
            name: 'QA Engineer (Java, Selenium)'
            area:
              url: 'https://api.hh.ru/areas/1'
              id: '1'
              name: Moscow
            url: 'https://api.hh.ru/vacancies/123456'
            published_at: '2013-10-11T13:27:16+0400'
            relations: []
            employer:
              url: 'https://api.hh.ru/employers/1455'
              alternate_url: 'https://hh.ru/employer/1455'
              logo_urls:
                '90': 'https://hh.ru/employer-logo/1455.png'
                '240': 'https://hh.ru/employer-logo/1455.png'
                original: 'https://hh.ru/file/1455.png'
              name: HeadHunter
              id: '1455'
              trusted: true
              badges:
                - type: employer-hh-rating
                  description: 2nd place in the Russian Employers Rating (small companies)
                  url: 'https://rating.hh.ru/profile/rating2020'
                  position: '2'
                  year: 2020
            response_letter_required: false
            type:
              id: open
              name: Open
            created_at: '2012-10-11T13:27:16+0400'
            apply_alternate_url: 'https://hh.ru/applicant/vacancy_response?vacancyId=123456'
            archived: false
            department: null
            has_test: true
            manager:
              first_name: Ivan
              last_name: Ivanovsky
              id: '3'
              middle_name: Ivanovich
            vacancy_properties:
              properties:
                - property_type: HH_PAY_FOR_PERFORMANCE
                  start_time: '2024-09-14T02:51:16.061+03:00'
                  end_time: '2024-10-14T02:51:16.061+03:00'
                  parameters: []
        page: 0
        pages: 1
        found: 1
    VacanciesPreferredNegotiationsOrder:
      value:
        order_type:
          id: created_at
          name: By creation date and the applicant activity
    VacanciesVacancies:
      value:
        per_page: 1
        items:
          - salary:
              to: null
              from: 30000
              currency: RUR
              gross: true
            salary_range:
              from: 30000
              to: null
              currency: RUR
              gross: true
              mode:
                id: MONTH
                name: Per month
              frequency:
                id: MONTHLY
                name: Monthly
            name: Secretary
            insider_interview:
              id: '12345'
              url: 'https://hh.ru/interview/12345?employerId=777'
            area:
              url: 'https://api.hh.ru/areas/1'
              id: '1'
              name: Moscow
            url: 'https://api.hh.ru/vacancies/8331228'
            published_at: '2013-07-08T16:17:21+0400'
            relations: []
            employer:
              logo_urls:
                '90': 'https://hh.ru/employer-logo/289027.png'
                '240': 'https://hh.ru/employer-logo/289169.png'
                original: 'https://hh.ru/file/2352807.png'
              name: HeadHunter
              url: 'https://api.hh.ru/employers/1455'
              alternate_url: 'https://hh.ru/employer/1455'
              id: '1455'
              trusted: true
              accredited_it_employer: false
            contacts:
              name: Name
              phones:
                - country: '7'
                  city: '985'
                  number: 000-00-00
                  comment: null
            response_letter_required: true
            address:
              city: Moscow
              street: Godovikova street
              building: 9c10
              description: A passport is required on the reception
              lat: 55.807794
              lng: 37.638699
              metro_stations:
                - station_id: '6.8'
                  station_name: Alexeevskaya
                  line_id: '6'
                  line_name: Kaluzhsko-Rizhskaya
                  lat: 55.807794
                  lng: 37.638699
            sort_point_distance: 226.001293
            alternate_url: 'https://hh.ru/vacancy/8331228'
            apply_alternate_url: 'https://hh.ru/applicant/vacancy_response?vacancyId=8331228'
            department:
              id: HH-1455-TECH
              name: 'HeadHunter::Technical department'
            type:
              id: open
              name: Open
            id: '8331228'
            has_test: true
            response_url: null
            snippet:
              requirement: Higher education. Work experience as a <highlighttext>secretary</highlighttext> or office manager. Knowledge of office administration and document management. Strong communication skills.
              responsibility: 'Document management (registration, sending, correspondence tracking, record keeping, reporting). Mail distribution. Routing phone calls.'
            schedule:
              id: fullDay
              name: Full day
            counters:
              responses: 0
            professional_roles:
              - id: '90'
                name: Security guard
            accept_incomplete_resumes: false
        page: 0
        pages: 13
        found: 13
        clusters: null
        arguments:
          - argument: area
            value: '1'
            value_description: Moscow
            disable_url: 'https://...'
            cluster_group:
              id: area
              name: Region
          - argument: area
            value: '2'
            value_description: St. Petersburg
            disable_url: 'https://...'
            cluster_group:
              id: area
              name: Region
          - argument: text
            value: Sales Manager
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: search_field
            value: name
            value_description: in the vacancy name
            disable_url: 'https://...'
            cluster_group: null
          - argument: experience
            value: between3And6
            value_description: 3 to 6 years
            disable_url: 'https://...'
            cluster_group:
              id: experience
              name: Work experience
          - argument: employment
            value: full
            value_description: Full time
            disable_url: 'https://...'
            cluster_group:
              id: employment
              name: Employment type
          - argument: schedule
            value: fullDay
            value_description: Full day
            disable_url: 'https://...'
            cluster_group:
              id: schedule
              name: Work schedule
          - argument: metro
            value: '2.133'
            value_description: Sokol
            disable_url: 'https://...'
            cluster_group:
              id: metro
              name: Metro
            metro_type: station
            hex_color: 13703a
          - argument: industry
            value: '51'
            value_description: Housing and communal services
            disable_url: 'https://...'
            cluster_group:
              id: industry
              name: Company industry
          - argument: industry
            value: '51.675'
            value_description: Energy saving
            disable_url: 'https://...'
            cluster_group:
              id: sub_industry
              name: Company's field of activity
          - argument: label
            value: not_from_agency
            value_description: No vacancies from agencies
            disable_url: 'https://...'
            cluster_group:
              id: label
              name: Exclusion
          - argument: currency
            value: USD
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: only_with_salary
            value: 'true'
            value_description: Do not show resumes without salary specified
            disable_url: 'https://...'
            cluster_group:
              id: salary
              name: Salary
          - argument: salary
            value: '1500'
            value_description: from 1500 USD
            disable_url: 'https://...'
            cluster_group:
              id: salary
              name: Salary
          - argument: bottom_lat
            value: '55.58'
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: left_lng
            value: '37.52'
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: top_lat
            value: '55.74'
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: right_lng
            value: '37.86'
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: date_from
            value: '2017-02-01'
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: date_to
            value: '2017-02-10'
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: order_by
            value: salary_desc
            value_description: by salary descending
            disable_url: 'https://...'
            cluster_group: null
          - argument: sort_point_lat
            value: '55.74'
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: sort_point_lng
            value: '37.86'
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: period
            value: '7'
            value_description: last week
            disable_url: 'https://...'
            cluster_group: null
          - argument: employer_id
            value: '1455'
            value_description: HeadHunter
            disable_url: 'https://...'
            cluster_group: null
          - argument: search_period
            value: '7'
            value_description: last week
            disable_url: 'https://...'
            cluster_group: null
          - argument: no_magic
            value: 'true'
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: host
            value: hh.kz
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: per_page
            value: '10'
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: page
            value: '0'
            value_description: null
            disable_url: 'https://...'
            cluster_group: null
          - argument: professional_role
            value: '90'
            value_description: Security guard
            disable_url: 'https://...'
            cluster_group:
              id: professional_role
              name: Professional role
        fixes: null
        suggests: null
    VacanciesVacancyConditions:
      value:
        accept_handicapped:
          required: false
        accept_incomplete_resumes:
          required: false
        accept_kids:
          required: false
        accept_labor_contract:
          required: false
        accept_temporary:
          required: false
        address:
          fields:
            show_metro_only:
              required: false
          required: false
        age_restriction:
          required: false
        allow_messages:
          required: false
        area:
          required: true
        auto_response:
          fields:
            accept_auto_response:
              required: false
          required: false
        billing_type:
          required: true
        branded_template:
          max_length: 256
          min_length: 0
          required: false
        civil_law_contracts:
          required: false
        closed_for_applicants:
          required: false
        code:
          max_length: 50
          min_length: 0
          required: false
        contacts:
          fields:
            email:
              max_length: 255
              required: false
            name:
              max_length: 255
              min_length: 0
              required: true
            phones:
              fields:
                comment:
                  max_length: 255
                  min_length: 0
                  required: false
                number:
                  max_length: 21
                  min_length: 7
                  required: true
              max_count: 2
              min_count: 0
              required: true
          required: false
        custom_employer_name:
          max_length: 150
          min_length: 1
          required: false
        department:
          max_length: 32
          min_length: 0
          required: false
        description:
          max_length: 10000
          min_length: 150
          required: true
        driver_license_types:
          max_count: 10
          min_count: 0
          required: false
        employment:
          required: false
        experience:
          required: false
        inclusiveness_description:
          max_length: 255
          required: false
        inclusiveness_types:
          required: false
        key_skills:
          max_count: 30
          min_count: 0
          required: false
        languages:
          required: false
        manager:
          required: false
        name:
          max_length: 100
          min_length: 1
          required: true
        professional_roles:
          max_count: 1
          min_count: 1
          required: true
        response_letter_required:
          required: false
        response_notifications:
          required: false
        response_url:
          max_length: 511
          min_length: 0
          regexp: '^(http|https)://.+$'
          required: false
        salary:
          fields:
            currency:
              required: false
            from:
              max_value: 2147483647
              min_value: 0
              required: false
            gross:
              required: false
            to:
              max_value: 2147483647
              min_value: 0
              required: false
          required: false
        salary_range:
          fields:
            currency:
              required: true
            frequency:
              required: false
            from:
              max_value: 2147483647
              min_value: 0
              required: false
            gross:
              required: true
            mode:
              required: true
            to:
              max_value: 2147483647
              min_value: 0
              required: false
          required: false
        schedule:
          required: false
        test:
          fields:
            required:
              required: false
          required: false
        type:
          required: true
        vacancy_properties:
          required: false
        working_days:
          max_count: 10
          min_count: 0
          required: false
        working_time_intervals:
          max_count: 10
          min_count: 0
          required: false
        working_time_modes:
          max_count: 10
          min_count: 0
          required: false
    VacanciesVacancyForApplication:
      value:
        id: '8331228'
        description: The job is good
        branded_description: <style>...</style><div>...</div><script></script>
        key_skills:
          - name: Visitor reception
          - name: Primary document management
        schedule:
          id: fullDay
          name: Full time
        accept_handicapped: false
        accept_kids: false
        age_restriction:
          id: AGE_14_PLUS
          name: 14 and older
        auto_response:
          accept_auto_response: false
        experience:
          id: between3And6
          name: Between 3 and 6 years
        address:
          city: Moscow
          street: Godovikova street
          building: 9c10
          description: A passport is required on the reception
          lat: 55.807794
          lng: 37.638699
          metro_stations:
            - station_name: Alexeevskaya
              line_name: Kaluzhsko-Rizhskaya
              station_id: '6.8'
              line_id: '6'
              lat: 55.807794
              lng: 37.638699
        alternate_url: 'https://hh.ru/vacancy/8331228'
        apply_alternate_url: 'https://hh.ru/applicant/vacancy_response?vacancyId=8331228'
        code: HHR-3487
        department:
          id: 18320489-18320489-dept1
          name: 'HeadHunter::Technical department'
        employment:
          id: full
          name: Full time
        salary:
          to: null
          from: 30000
          currency: RUR
          gross: true
        salary_range:
          from: 30000
          to: null
          currency: RUR
          gross: true
          mode:
            id: MONTH
            name: Per month
          frequency:
            id: MONTHLY
            name: Monthly
        archived: false
        name: Secretary
        insider_interview:
          id: '12345'
          url: 'https://hh.ru/interview/12345?employerId=777'
        area:
          url: 'https://api.hh.ru/areas/1?locale=EN'
          id: '1'
          name: Moscow
        initial_created_at: '2013-06-08T16:17:21+0400'
        created_at: '2013-07-08T16:17:21+0400'
        published_at: '2013-07-08T16:17:21+0400'
        expires_at: '2013-08-08T16:17:21+0400'
        employer:
          logo_urls:
            '90': 'https://hh.ru/employer-logo/289027.png'
            '240': 'https://hh.ru/employer-logo/289169.png'
            original: 'https://hh.ru/file/2352807.png'
          name: HeadHunter
          url: 'https://api.hh.ru/employers/1455?locale=EN'
          alternate_url: 'https://hh.ru/employer/1455'
          id: '1455'
          trusted: true
          blacklisted: false
          country_id: 1
          badges:
            - type: employer-hh-rating
              description: 2nd place in the Russian Employers Rating (small companies)
              url: 'https://rating.hh.ru/profile/rating2020'
              position: '2'
              year: 2020
          is_identified_by_esia: false
        manager:
          id: '1'
        response_letter_required: true
        response_notifications: true
        branded_template:
          id: '1'
          name: test
        can_upgrade_billing_type: true
        type:
          id: open
          name: Open
        has_test: true
        response_url: null
        test:
          required: false
        contacts:
          name: First name
          phones:
            - comment: null
              city: '985'
              number: 000-00-00
              country: '7'
        billing_type:
          id: standard
          name: Standard
        allow_messages: true
        premium: true
        driver_license_types:
          - id: A
          - id: B
        accept_incomplete_resumes: false
        working_days:
          - id: only_saturday_and_sunday
            name: Work only on Saturdays and Sundays
        working_time_intervals:
          - id: from_four_to_six_hours_in_a_day
            name: Work shifts of 4-6 hours per day
        working_time_modes:
          - id: start_after_sixteen
            name: 'Working after 16:00'
        work_format:
          - id: ON_SITE
            name: Working on-site
        working_hours:
          - id: HOURS_4
            name: 4 hours
        work_schedule_by_days:
          - id: WEEKEND
            name: On weekends
        night_shifts: true
        internship: false
        accept_temporary: false
        accept_labor_contract: false
        civil_law_contracts: []
        professional_roles:
          - id: '96'
            name: Software Developer
        languages:
          - id: eng
            name: English
            level:
              id: b2
              name: B2 — Upper intermediate
        hidden: false
        approved: false
    VacanciesVacancyForManager:
      value:
        id: '8331228'
        previous_id: '123456'
        description: The job is good
        branded_description: <style>...</style><div>...</div><script></script>
        key_skills:
          - name: Visitor reception
          - name: Primary document management
        schedule:
          id: fullDay
          name: Full time
        accept_handicapped: false
        accept_kids: false
        age_restriction:
          id: AGE_14_PLUS
          name: 14 and older
        auto_response:
          accept_auto_response: false
        experience:
          id: between3And6
          name: 3 to 6 years
        address:
          city: Moscow
          street: Godovikova street
          building: 9c10
          description: A passport is required on the reception
          raw: 'Godovikova street 9с10, Moscow'
          lat: 55.807794
          lng: 37.638699
          metro:
            station_name: Alexeevskaya
            line_name: Kaluzhsko-Rizhskaya
            station_id: '6.8'
            line_id: '6'
            lat: 55.807794
            lng: 37.638699
          metro_stations:
            - station_name: Alexeevskaya
              line_name: Kaluzhsko-Rizhskaya
              station_id: '6.8'
              line_id: '6'
              lat: 55.807794
              lng: 37.638699
          can_edit: false
          id: '9'
        alternate_url: 'https://hh.ru/vacancy/8331228'
        apply_alternate_url: 'https://hh.ru/applicant/vacancy_response?vacancyId=8331228'
        code: HHR-3487
        department:
          id: 18320489-18320489-dept1
          name: 'HeadHunter::Technical department'
        employment:
          id: full
          name: Full time
        salary:
          to: null
          from: 30000
          currency: RUR
          gross: true
        salary_range:
          from: 30000
          to: null
          currency: RUR
          gross: true
          mode:
            id: MONTH
            name: Per month
          frequency:
            id: MONTHLY
            name: Monthly
        archived: false
        name: Secretary
        insider_interview:
          id: '12345'
          url: 'https://hh.ru/interview/12345?employerId=777'
        area:
          url: 'https://api.hh.ru/areas/1?locale=EN'
          id: '1'
          name: Moscow
        initial_created_at: '2013-06-08T16:17:21+0400'
        created_at: '2013-07-08T16:17:21+0400'
        published_at: '2013-07-08T16:17:21+0400'
        expires_at: '2013-08-08T16:17:21+0400'
        employer:
          logo_urls:
            '90': 'https://hh.ru/employer-logo/289027.png'
            '240': 'https://hh.ru/employer-logo/289169.png'
            original: 'https://hh.ru/file/2352807.png'
          name: HeadHunter
          url: 'https://api.hh.ru/employers/1455?locale=EN'
          alternate_url: 'https://hh.ru/employer/1455'
          id: '1455'
          trusted: true
          blacklisted: false
          country_id: 1
          badges:
            - type: employer-hh-rating
              description: 2nd place in the Russian Employers Rating (small companies)
              url: 'https://rating.hh.ru/profile/rating2020'
              position: '2'
              year: 2020
          is_identified_by_esia: false
        manager:
          id: '1'
        response_letter_required: true
        response_notifications: true
        branded_template:
          id: '1'
          name: test
        can_upgrade_billing_type: true
        type:
          id: open
          name: Open
        has_test: true
        response_url: null
        test:
          required: false
        contacts:
          name: First name
          phones:
            - comment: null
              city: '985'
              number: 000-00-00
              country: '7'
        billing_type:
          id: standard
          name: Standard
        allow_messages: true
        premium: true
        driver_license_types:
          - id: A
          - id: B
        accept_incomplete_resumes: false
        working_days:
          - id: only_saturday_and_sunday
            name: Work only on Saturdays and Sundays
        working_time_intervals:
          - id: from_four_to_six_hours_in_a_day
            name: Work shifts of 4-6 hours per day
        working_time_modes:
          - id: start_after_sixteen
            name: 'Working after 16:00'
        work_format:
          - id: ON_SITE
            name: Working on-site
        working_hours:
          - id: HOURS_4
            name: 4 hours
        work_schedule_by_days:
          - id: WEEKEND
            name: On weekends
        night_shifts: true
        internship: false
        accept_temporary: false
        accept_labor_contract: false
        civil_law_contracts: []
        professional_roles:
          - id: '96'
            name: Software Developer
        languages:
          - id: eng
            name: English
            level:
              id: b2
              name: B2 — Upper intermediate
        hidden: false
        approved: false
        vacancy_properties:
          properties:
            - property_type: HH_PAY_FOR_PERFORMANCE
              start_time: '2024-09-14T02:51:16.061+03:00'
              end_time: '2024-10-14T02:51:16.061+03:00'
              parameters: []
    VacanciesVacancyProlongateAvailable:
      value:
        id: '123456789'
        expires_at: '2015-11-19T17:10:48+0300'
        actions:
          - id: prolongate
            enabled: true
            url: 'https://api.hh.ru/vacancies/123456789/prolongate'
            method: POST
    VacanciesVacancyProlongateUnavailable:
      value:
        id: '123456789'
        expires_at: '2015-11-19T17:10:48+0300'
        actions:
          - id: prolongate
            enabled: false
            disable_reason:
              id: standard_plus_publication_is_updated_automatically
              name: The Standard Plus vacancy cannot be prolongated manually; it is updated automatically every three days.
    VacanciesVacancyStats:
      value:
        items:
          - date: '2017-01-10'
            responses: 1
            views: 36
          - date: '2017-01-11'
            responses: 4
            views: 35
          - date: '2017-01-12'
            responses: 1
            views: 32
          - date: '2017-01-13'
            responses: null
            views: null
          - date: '2017-01-14'
            responses: null
            views: null
    VacanciesVacancyUpgradeList:
      value:
        items:
          - vacancy_billing_type:
              id: premium
              name: Premium publication
              description: Maximum responses per week
            actions:
              - type: direct_upgrade
              - type: activate
                cart_id: 5967035
                url: 'https://hh.ru/employer/invoice/finish?cartId=5967035'
              - type: buy
                url: 'https://hh.ru/employer/invoice/purchase?code=VPREM&count=1'
                price:
                  amount: '10152.0'
                  currency_code: RUR
            without_action: null
            vacancy_properties:
              required:
                - property_type: HH_PREMIUM
            appearance:
              title: Premium publication
              description: Maximum responses per week
          - vacancy_billing_type:
              id: standard_plus
              name: Standard Plus publication
              description: Maximum responses per month
            actions: []
            without_action:
              - reason: Vacancy upgrade quota exceeded
            vacancy_properties:
              required:
                - property_type: HH_STANDARD_PLUS
            appearance:
              title: Standard Plus publication
              description: Maximum responses per month
    VacanciesVisitors:
      value:
        items:
          - last_name: null
            first_name: null
            middle_name: null
            title: TEST_RESUME_DECDHAEFEMAEN
            created_at: '2023-03-07T14:25:42+0300'
            updated_at: '2023-03-07T14:25:42+0300'
            area:
              id: '1'
              name: Moscow
              url: 'https://api.hh.ru/areas/1'
            age: 56
            gender:
              id: male
              name: Male
            salary:
              amount: 1500
              currency: USD
            photo: null
            total_experience:
              months: 17
            certificate: []
            owner:
              id: '54751648'
              comments:
                url: 'https://api.hh.ru/applicant_comments/54751648'
                counters:
                  total: 0
            can_view_full_info: false
            contact_view_status: NONE
            negotiations_history:
              url: 'https://api.hh.ru/resumes/c1e693d00000000014000000264a64655a3036/negotiations_history'
            hidden_fields: []
            actions:
              download:
                pdf:
                  url: 'https://api.hh.ru/resumes/c1e693d00000000014000000264a64655a3036/download/TEST_RESUME_DECDHAEFEMAEN.pdf?type=pdf&vacancy_id=28'
                rtf:
                  url: 'https://api.hh.ru/resumes/c1e693d00000000014000000264a64655a3036/download/TEST_RESUME_DECDHAEFEMAEN.rtf?type=rtf&vacancy_id=28'
              get_with_contact:
                url: 'https://api.hh.ru/resumes/c1e693d00000000014000000264a64655a3036?with_contact=77da67de52a447c3dd5b5b06dab2d8ef'
              download_with_contact:
                pdf:
                  url: 'https://api.hh.ru/resumes/c1e693d00000000014000000264a64655a3036/download/TEST_RESUME_DECDHAEFEMAEN.pdf?type=pdf&vacancy_id=28&with_contact=77da67de52a447c3dd5b5b06dab2d8ef'
                rtf:
                  url: 'https://api.hh.ru/resumes/c1e693d00000000014000000264a64655a3036/download/TEST_RESUME_DECDHAEFEMAEN.rtf?type=rtf&vacancy_id=28&with_contact=77da67de52a447c3dd5b5b06dab2d8ef'
            url: 'https://api.hh.ru/resumes/c1e693d00000000014000000264a64655a3036'
            alternate_url: 'https://hh.ru/resume/c1e693d00000000014000000264a64655a3036?vacancyId=28'
            id: c1e693d00000000014000000264a64655a3036
            real_id: '1234'
            download:
              pdf:
                url: 'https://api.hh.ru/resumes/c1e693d00000000014000000264a64655a3036/download/TEST_RESUME_DECDHAEFEMAEN.pdf?type=pdf&vacancy_id=28'
              rtf:
                url: 'https://api.hh.ru/resumes/c1e693d00000000014000000264a64655a3036/download/TEST_RESUME_DECDHAEFEMAEN.rtf?type=rtf&vacancy_id=28'
            platform:
              id: headhunter
            education:
              level:
                id: higher
                name: Higher
              primary:
                - id: '1'
                  name: MAI
                  organization: Aerospace
                  result: 'Architect, master of architects'
                  year: 2020
                  name_id: null
                  organization_id: null
                  result_id: null
                  university_acronym: testUniversityAcronym
                  education_level:
                    id: master
                    name: Master
            experience:
              - start: '2021-10-23'
                end: '2023-03-07'
                company: DHL Express
                company_id: '2'
                industry:
                  id: '52'
                  name: 'Arts, culture'
                industries:
                  - id: '19.623'
                    name: 'Carpentry and construction products(marketing, wholesale)'
                  - id: '52.651'
                    name: 'Archive, library, art criticism'
                area:
                  id: '1'
                  name: Moscow
                  url: 'https://api.hh.ru/areas/1'
                company_url: 'http://some-kind.ru'
                employer: null
                position: Tester
            favorited: false
            viewed: false
            marked: false
            job_search_status:
              id: active_search
              name: Actively searching for a job
              last_change_time: '2025-03-06T01:23:47.700736Z'
            last_negotiation:
              employer_state:
                id: phone_interview
                name: Phone interview
              created_at: '2017-08-10T13:09:28+0300'
          - last_name: null
            first_name: null
            middle_name: null
            title: TEST_RESUME_DEAJCCHYGGWZJ
            created_at: '2023-03-07T14:25:40+0300'
            updated_at: '2023-03-07T14:25:40+0300'
            area:
              id: '1'
              name: Moscow
              url: 'https://api.hh.ru/areas/1'
            age: 56
            gender:
              id: male
              name: Male
            salary:
              amount: 1500
              currency: USD
            photo: null
            total_experience:
              months: 17
            certificate: []
            owner:
              id: '54751647'
              comments:
                url: 'https://api.hh.ru/applicant_comments/54751647'
                counters:
                  total: 0
            can_view_full_info: false
            contact_view_status: NONE
            negotiations_history:
              url: 'https://api.hh.ru/resumes/414fa29f00000000130000002641686c723935/negotiations_history'
            hidden_fields: []
            actions:
              download:
                pdf:
                  url: 'https://api.hh.ru/resumes/414fa29f00000000130000002641686c723935/download/TEST_RESUME_DEAJCCHYGGWZJ.pdf?type=pdf&vacancy_id=28'
                rtf:
                  url: 'https://api.hh.ru/resumes/414fa29f00000000130000002641686c723935/download/TEST_RESUME_DEAJCCHYGGWZJ.rtf?type=rtf&vacancy_id=28'
              get_with_contact:
                url: 'https://api.hh.ru/resumes/414fa29f00000000130000002641686c723935?with_contact=80ffa749334f07f12311cc9f9034a7cb'
              download_with_contact:
                pdf:
                  url: 'https://api.hh.ru/resumes/414fa29f00000000130000002641686c723935/download/TEST_RESUME_DEAJCCHYGGWZJ.pdf?type=pdf&vacancy_id=28&with_contact=80ffa749334f07f12311cc9f9034a7cb'
                rtf:
                  url: 'https://api.hh.ru/resumes/414fa29f00000000130000002641686c723935/download/TEST_RESUME_DEAJCCHYGGWZJ.rtf?type=rtf&vacancy_id=28&with_contact=80ffa749334f07f12311cc9f9034a7cb'
            url: 'https://api.hh.ru/resumes/414fa29f00000000130000002641686c723935'
            alternate_url: 'https://hh.ru/resume/414fa29f00000000130000002641686c723935?vacancyId=28'
            id: 414fa29f00000000130000002641686c723935
            real_id: '1234'
            download:
              pdf:
                url: 'https://api.hh.ru/resumes/414fa29f00000000130000002641686c723935/download/TEST_RESUME_DEAJCCHYGGWZJ.pdf?type=pdf&vacancy_id=28'
              rtf:
                url: 'https://api.hh.ru/resumes/414fa29f00000000130000002641686c723935/download/TEST_RESUME_DEAJCCHYGGWZJ.rtf?type=rtf&vacancy_id=28'
            platform:
              id: headhunter
            education:
              level:
                id: higher
                name: Higher
              primary:
                - id: '1'
                  name: MAI
                  organization: Aerospace
                  result: 'Architect, master of architects'
                  year: 2020
                  name_id: null
                  organization_id: null
                  result_id: null
            experience:
              - start: '2021-10-23'
                end: '2023-03-07'
                company: DHL Express
                company_id: '2'
                industry:
                  id: '52'
                  name: 'Arts, culture'
                industries:
                  - id: '19.623'
                    name: 'Carpentry and construction products(marketing, wholesale)'
                  - id: '52.651'
                    name: 'Archive, library, art criticism'
                area:
                  id: '1'
                  name: Moscow
                  url: 'https://api.hh.ru/areas/1'
                company_url: 'http://some-kind.ru'
                employer: null
                position: Tester
            favorited: false
            viewed: false
            marked: false
            job_search_status:
              id: active_search
              name: Actively searching for a job
              last_change_time: '2025-03-06T01:23:47.700736Z'
            last_negotiation:
              employer_state:
                id: offer
                name: Offer
              created_at: '2017-08-10T13:09:28+0300'
        found: 2
        pages: 1
        per_page: 20
        page: 0
        hidden_on_page: 0
    VacancyCreate:
      value:
        previous_id: '123456'
        description: Best job ever
        key_skills:
          - name: Cold calling
          - name: Sales promotion
        schedule:
          id: flyInFlyOut
        experience:
          id: moreThan6
        employment:
          id: full
        name: Sales Manager
        area:
          id: '1'
        type:
          id: open
        professional_roles:
          - id: '59'
        response_letter_required: true
        salary:
          from: 100
          to: 500
          gross: true
          currency: USD
        salary_range:
          from: 100
          to: 500
          gross: true
          currency: USD
          mode:
            id: MONTH
          frequency:
            id: MONTHLY
        contacts:
          name: Ivanov Ivan
          phones:
            - country: '7'
              city: '495'
              number: '1234567'
              comment: from 10 AM to 8 PM
              formatted: '79198883344'
        accept_handicapped: true
        accept_kids: false
        code: code-1234
        response_notifications: true
        allow_messages: true
        billing_type:
          id: standard
        address:
          id: '123'
          show_metro_only: true
        auto_response:
          accept_auto_response: false
        manager:
          id: '321'
        test:
          id: '42'
          required: true
        branded_template:
          id: marketing
        driver_license_types:
          - id: A
          - id: B
        accept_incomplete_resumes: false
        working_days:
          - id: only_saturday_and_sunday
        working_time_intervals:
          - id: from_four_to_six_hours_in_a_day
        working_time_modes:
          - id: start_after_sixteen
        work_format:
          - id: ON_SITE
        working_hours:
          - id: HOURS_4
        work_schedule_by_days:
          - id: WEEKEND
        night_shifts: true
        internship: false
        languages:
          - id: eng
            level:
              id: a1
        accept_temporary: true
        accept_labor_contract: true
        civil_law_contracts:
          - id: SELF_EMPLOYED
          - id: INDIVIDUAL_ENTREPRENEUR
          - id: INDIVIDUAL_PERSON
        age_restriction:
          id: AGE_14_PLUS
    VacancyDraftVacancyDraftCreate:
      value:
        description: Sales manager experience is welcome
        key_skills:
          - name: Cold sales
          - name: Promo activities
        schedule:
          id: flyInFlyOut
        experience:
          id: moreThan6
        employment:
          id: full
        name: Sales Manager
        areas:
          - id: '1'
          - id: '7'
        type:
          id: open
        department:
          id: '1'
          name: Special department
        professional_roles:
          - id: '59'
        response_letter_required: true
        salary:
          from: 100
          to: 500
          currency: USD
          gross: true
        salary_range:
          from: 100
          to: 500
          gross: true
          currency: USD
          mode:
            id: MONTH
          frequency:
            id: MONTHLY
        contacts:
          name: Ivanov Ivan
          phones:
            - comment: from 10 AM to 8 PM
              formatted: '79198883344'
        accept_handicapped: true
        accept_kids: false
        code: code-1234
        response_notifications: true
        allow_messages: true
        billing_type:
          id: standard
        address:
          id: '123'
          show_metro_only: true
        test:
          id: '42'
          required: true
        branded_template:
          id: marketing
        driver_license_types:
          - id: A
          - id: B
        accept_incomplete_resumes: false
        working_days:
          - id: only_saturday_and_sunday
        working_time_intervals:
          - id: from_four_to_six_hours_in_a_day
        working_time_modes:
          - id: start_after_sixteen
        work_format:
          - id: ON_SITE
        working_hours:
          - id: HOURS_4
        work_schedule_by_days:
          - id: WEEKEND
        night_shifts: true
        internship: false
        accept_temporary: true
        accept_labor_contract: true
        civil_law_contracts:
          - id: SELF_EMPLOYED
          - id: INDIVIDUAL_ENTREPRENEUR
          - id: INDIVIDUAL_PERSON
        languages:
          - id: spa
            level:
              id: b2
          - id: ita
            level:
              id: a1
        with_zp: true
        employer_service_id: '8734562'
        age_restriction:
          id: AGE_14_PLUS
        auto_response:
          accept_auto_response: false
    VacancyDraftVacancyDraftFull:
      value:
        description: The job is good
        key_skills:
          - name: Visitor reception
          - name: Primary document management
        schedule:
          id: fullDay
          name: Full day
        accept_handicapped: false
        accept_kids: false
        age_restriction:
          id: AGE_14_PLUS
          name: 14 and older
        auto_response:
          accept_auto_response: false
        experience:
          id: between1And3
          name: From 1 to 3 years
        address:
          city: Moscow
          street: Dinamo street
          building: '10'
          description: Turn right at the sign
          lat: 55.807794
          lng: 37.638699
          metro_stations:
            - station_id: '6.8'
              station_name: Dinamo
              line_id: '2'
              line_name: Zamoskvoretskaya
              lat: 55.789704
              lng: 37.558212
          id: '4321234'
          show_metro_only: true
          can_edit: false
        employer:
          id: '4011061'
          name: LLC Sibneft
          url: 'https://localhost:2000/employers/4011061'
          alternate_url: 'https://hh.ru/employer/4011061'
          logo_urls:
            '90': 'https://hh.ru/employer/logo/3568'
            '240': 'https://hh.ru/employer/logo/3569'
        code: HRR-3487
        department:
          id: HH-1455-TECH
          name: 'HeadHunter::Technical department'
        branded_template:
          id: marketing
          name: Marketing
        division:
          id: '123456'
        employment:
          id: full
          name: Full time
        salary:
          to: null
          from: 30000
          currency: RUR
          gross: true
        salary_range:
          from: 30000
          to: null
          gross: true
          currency: RUR
          mode:
            id: MONTH
            name: Per month
          frequency:
            id: MONTHLY
            name: Monthly
        name: Secretary
        manager:
          id: '657438'
        has_test: false
        areas:
          - url: 'https://api.hh.ru/areas/1'
            id: '1'
            name: Moscow
        response_letter_required: true
        type:
          id: open
          name: Open
        response_notifications: false
        response_url: null
        test:
          required: false
        contacts:
          name: Name
          phones:
            - formatted: +7 (495) 711-11-11
              comment: null
        billing_type:
          id: standard
          name: Standard
        allow_messages: true
        driver_license_types:
          - id: A
          - id: B
        accept_incomplete_resumes: false
        working_days:
          - id: only_saturday_and_sunday
            name: Work only on Saturdays and Sundays
        working_time_intervals:
          - id: from_four_to_six_hours_in_a_day
            name: Work shifts of 4-6 hours per day
        working_time_modes:
          - id: start_after_sixteen
            name: 'Working after 16:00'
        work_format:
          - id: ON_SITE
            name: Working on-site
        working_hours:
          - id: HOURS_4
            name: 4 hours
        work_schedule_by_days:
          - id: WEEKEND
            name: On weekends
        night_shifts: true
        internship: false
        accept_temporary: true
        accept_labor_contract: true
        civil_law_contracts:
          - id: SELF_EMPLOYED
            name: with a self-employed person
          - id: INDIVIDUAL_ENTREPRENEUR
            name: with an individual entrepreneur
          - id: INDIVIDUAL_PERSON
            name: with a natural person (individual)
        languages:
          - id: spa
            name: Spanish
            level:
              id: b2
              name: B2 — Upper-intermediate
          - id: ita
            name: Italian
            level:
              id: a1
              name: A1 — Elementary
        professional_roles:
          - id: '96'
            name: Software Developer
        with_zp: false
        closed_for_applicants: false
        employer_service_id: '4325621'
        meta_info:
          completed_fields_percentage: 100
          draft_id: '1110031'
          insufficient_publications: null
          insufficient_quotas: null
          last_change_time: null
          publication_ready: true
          required_publications: null
          scheduled_at: null
          auto_publication:
            bill_uid: 4011054/3
            cart_id: '5967030'
    VacancyDraftVacancyDraftItems:
      value:
        items:
          - areas:
              - id: '4786'
                name: Artyshta
              - id: '4787'
                name: Bachatsky
              - id: '1231'
                name: Belovo
            completed_fields_percentage: 100
            draft_id: '1110032'
            insufficient_publications:
              - publication_type: standard
                billing_type:
                  id: standard
                  name: Standard
                vacancy_type: open
                vacancy_properties:
                  required:
                    - property_type: HH_STANDARD
                appearance:
                  title: Standard
                count: 2
            insufficient_quotas:
              - publication_type: standard
                billing_type:
                  id: standard
                  name: Standard
                vacancy_type: open
                vacancy_properties:
                  required:
                    - property_type: HH_STANDARD
                appearance:
                  title: Standard
                count: 1
            last_change_time: '2021-05-18T11:20:48+03:00'
            name: Retail department manager
            publication_ready: true
            publication_type: standard
            billing_type:
              id: standard
              name: Standard
            vacancy_type: open
            required_publications:
              - publication_type: standard
                billing_type:
                  id: standard
                  name: Standard
                vacancy_type: open
                vacancy_properties:
                  required:
                    - property_type: HH_STANDARD
                appearance:
                  title: Standard
                count: 3
            scheduled_at: '2022-01-31T12:00:00+0300'
            auto_publication: null
            suitable_applicants:
              active: 123
              total: 9999
            url: 'https://api.hh.ru/vacancies/drafts/1110032'
            vacancy_properties:
              id: HH_STANDARD
              appearance:
                title: Standard
              properties:
                - property_type: HH_STANDARD
                  parameters: []
                  platform: HH
          - areas:
              - id: '2842'
                name: Balykchy
            completed_fields_percentage: 100
            draft_id: '1110031'
            insufficient_publications: null
            insufficient_quotas: null
            last_change_time: null
            name: Curator
            publication_ready: true
            publication_type: standard_plus
            scheduled_at: null
            billing_type:
              id: standard_plus
              name: Standard plus
            vacancy_type: open
            required_publications: null
            auto_publication:
              bill_uid: 4011054/3
              cart_id: '5967030'
            url: 'https://api.hh.ru/vacancies/drafts/1110031'
            vacancy_properties:
              appearance:
                title: Standard plus
              properties:
                - property_type: HH_STANDARD_PLUS
                  parameters: []
                  platform: HH
        found: 2
        page: 0
        pages: 1
        per_page: 20
    VacancyDuplicates:
      value:
        found: 4
        has_duplicates: true
        items:
          - 171
          - 172
          - 173
          - 174
    ProfileVideosProfileVideosList:
      value:
        items:
          - download_url:
              expires_at: '2022-01-01T12:00:00+0300'
              url: 'https://storage.yandexcloud.net/...'
            id: ec6b42e5-b0fb-4f72-b81b-5b44f8c09968
    VacancyDraftVacancyDraftResponse:
      value:
        id: '22'
        name: New vacancy draft1
        publication_ready: false
        validation_errors:
          - reason: too_short
            value: description
          - reason: too_long
            value: name
        ignored_fields:
          - area
          - salary
          - employment
  parameters:
    HHUserAgent:
      description: |
        Application name and developer's contact email (see [Information about user agent](#section/General-information/Request-requirements))
      example: MyApp/1.0 (my-app-feedback@example.com)
      in: header
      name: HH-User-Agent
      required: true
      schema:
        type: string
    Host:
      description: |
        Domain ([Choosing the domain](#section/General-information/Host-selection))
      example: hh.ru
      in: query
      name: host
      required: false
      schema:
        default: hh.ru
        enum:
          - hh.ru
          - rabota.by
          - hh1.az
          - hh.uz
          - hh.kz
          - headhunter.ge
          - headhunter.kg
        type: string
    Locale:
      description: |
        Locale identifier ([List of locales](#tag/Public-directories/operation/get-locales))
      example: EN
      in: query
      name: locale
      required: false
      schema:
        default: RU
        type: string
  responses:
    ErrorBadArgument:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
      description: Invalid request parameter
    ErrorBadAuthorization:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
      description: Authorization error
    ErrorBothChangedConflict:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorsCommonConflictBothChangedErrors'
      description: Parameter change conflict error
    ErrorNotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
      description: Not found or not available to the current user
    ErrorSavedSearchNotFound:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorsSavedSearchNotFoundErrors'
      description: Autosearch or manager is not found
    SuccessCreated:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Id'
      description: Successfully created
    SuccessNoContent:
      description: Successful response
  schemas:
    ErrorsCommonBadArgumentErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            bad_argument:
              deprecated: true
              type: string
            bad_arguments:
              deprecated: true
              items:
                properties:
                  description:
                    type: string
                  name:
                    description: Field with an error
                    type: string
                type: object
              type: array
            description:
              deprecated: true
              description: Error description
              type: string
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Request parameter errors
    ErrorsCommonBadArgumentError:
      additionalProperties: false
      properties:
        reason:
          description: |
            Error reason. Possible values:
              * `too_long_value` — Value is too long
              * `too_many_arguments` — Too many arguments
              * `invalid` — Invalid value provided
          example: too_long_value
          type: string
        type:
          description: Text identifier of the error type
          enum:
            - bad_argument
          example: bad_argument
          type: string
        value:
          description: |
            Field with an error
          example: resume_id
          type: string
      required:
        - type
      title: Request parameter error
      type: object
    ErrorsCommonErrorRequestId:
      description: 'The response body contains a `request_id`, which can be used to facilitate troubleshooting when contacting hh.ru support (api@hh.ru)'
      properties:
        request_id:
          description: Request ID
          example: q1ww2e2r4ty
          type: string
      required:
        - request_id
      title: Field with the request_id error
      type: object
    ErrorsCommonBadAuthorizationErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            description:
              description: Error description
              example: Forbidden
              type: string
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationCommonAndEmployerError'
              minItems: 1
              type: array
            oauth_error:
              description: |
                Authorization errors:
                  * `token-revoked` — The token has been revoked by the user or server, the application must [request a new authorization](#tag/Employer-authorization/operation/authorize)
                  * `token-expired` — The `access_token` has expired, [a `refresh_token` must be obtained](#tag/Employer-authorization/operation/authorize)
              enum:
                - token-revoked
                - token-expired
                - bad-auth-type
                - client-id-deleted
              example: token-revoked
              type: string
          required:
            - errors
          type: object
      description: Error details
      title: Common authorization errors
    ErrorsCommonBadAuthorizationCommonAndEmployerError:
      anyOf:
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationError'
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationEmployerError'
        - $ref: '#/components/schemas/ErrorsCommonCaptchaError'
      title: Common error and employer authorization error
    ErrorsCommonBadAuthorizationEmployerError:
      additionalProperties: false
      properties:
        allowed_accounts:
          description: |
            List of manager accounts available for the token if the current work account is blocked. Applicable for the employer authorization flow only
          items:
            $ref: '#/components/schemas/ManagerAccount'
          minItems: 1
          type: array
        type:
          description: Text identifier of the error type
          enum:
            - forbidden
            - oauth
            - manager_extra_accounts
            - manager_accounts
            - negotiations
          example: oauth
          type: string
        value:
          description: |
            General errors:
              * `bad_authorization` — Authorization token does not exist or is invalid
              * `token_expired` — The `access_token` has expired, [a `refresh_token` must be obtained](#section/Authorization/Obtaining-access-and-refresh-tokens)
              * `token_revoked` — The token has been revoked by the user or server, the application must [request a new authorization](#section/Authorization)
              * `application_not_found` — Your application has been deleted
              * `used_manager_account_forbidden` — [Work account](#tag/Employer-managers/operation/get-manager-accounts) is blocked
              * `manager_extra_account_not_found` — Invalid account ID passed in the header
              * `user_auth_expected` — Application authorization has been provided, but the method requires [user authorization](#section/Authorization/User-authorization)
              * `application_auth_expected` — User authorization has been provided, but the method requires [application authorization](#section/Authorization/Obtaining-application-authorization)
              * `employer_on_additional_check_restricted` — Employer is undergoing an additional check
          enum:
            - bad_authorization
            - token_expired
            - token_revoked
            - application_not_found
            - manager_extra_account_not_found
            - used_manager_account_forbidden
            - user_auth_expected
            - application_auth_expected
            - employer_on_additional_check_restricted
          example: bad_authorization
          type: string
      required:
        - type
      title: Employer authorization error
      type: object
    ManagerAccount:
      additionalProperties: false
      description: Information about the manager's work account
      properties:
        employer:
          $ref: '#/components/schemas/ManagerAccountCompany'
        id:
          description: Manager's work account ID
          example: '12345678'
          type: string
      required:
        - id
        - employer
      title: Manager work account
      type: object
    ManagerAccountCompany:
      additionalProperties: false
      description: Information about the company to which the manager's work account is linked
      properties:
        id:
          description: Company ID
          example: '1455'
          type: string
        name:
          description: Company name
          example: HeadHunter
          type: string
      required:
        - id
        - name
      title: Company
      type: object
    ErrorsCommonBadAuthorizationError:
      additionalProperties: false
      properties:
        type:
          description: Text identifier of the error type
          enum:
            - forbidden
            - oauth
          example: oauth
          type: string
        value:
          description: |
            General errors:
              * `bad_authorization` — Authorization token does not exist or is invalid
              * `token_expired` — The `access_token` has expired, [a `refresh_token` must be obtained](#section/Authorization/Obtaining-access-and-refresh-tokens)
              * `token_revoked` — The token has been revoked by the user or server, the application must [request a new authorization](#section/Authorization)
              * `application_not_found` — Your application has been deleted
              * `user_auth_expected` — Application authorization has been provided, but the method requires [user authorization](#section/Authorization/User-authorization)
              * `application_auth_expected` — User authorization has been provided, but the method requires [application authorization](#section/Authorization/Obtaining-application-authorization)
              * `no_scope` - Authorization token is missing the required scope
              * `used_manager_account_forbidden` — [Work account](#tag/Employer-managers/operation/get-manager-accounts) is blocked
              * `manager_extra_account_not_found` — Invalid account ID provided in the header
          enum:
            - bad_authorization
            - token_expired
            - token_revoked
            - application_not_found
            - user_auth_expected
            - application_auth_expected
            - no_scope
            - used_manager_account_forbidden
            - manager_extra_account_not_found
          example: bad_authorization
          type: string
      required:
        - type
      title: Common authorization error
      type: object
    ErrorsCommonCaptchaError:
      additionalProperties: false
      properties:
        captcha_url:
          description: |
            URL of web page on which you can enter a captcha. 
            After the captcha is entered, the API request should succeed.
            Application must append the required `backurl` parameter to `captcha_url`, which specifies the redirect target after the captcha is completed.
            The `backurl` parameter contains a schema, for example, `https://` or an application-specific schema <a name="captcha_operation"></a>
          example: 'https://hh.ru/account/captcha?state=...'
          type: string
        fallback_url:
          description: URL of web page on which you can enter a captcha. Similar to the `captcha_url` parameter
          example: 'https://hh.ru/auth/employer?captcha=true&backurl=...'
          type: string
        type:
          description: Text identifier of the error type
          enum:
            - captcha_required
            - employer_registration_change_email
            - employer_resume_view
          example: captcha_required
          type: string
        value:
          description: |
            A captcha is required if value is `captcha_required`
          enum:
            - captcha_required
          example: captcha_required
          type: string
      required:
        - type
        - value
      title: Captcha is required
      type: object
    ErrorsCommonConflictBothChangedErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            bad_argument:
              description: Argument name related to the error
              enum:
                - name
                - subscription
              type: string
            bad_arguments:
              description: List of arguments related to the error
              items:
                $ref: '#/components/schemas/_IncludesNameDescription'
              type: array
            description:
              description: Error reason description
              type: string
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsCommonConflictBothChangedError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Request conflict error due to changing parameters simultaneously
    ErrorsCommonConflictBothChangedError:
      additionalProperties: false
      properties:
        type:
          description: Text identifier of the error type
          enum:
            - bad_argument
          example: bad_argument
          type: string
        value:
          description: Name of the conflicting argument
          enum:
            - name
            - subscription
            - email_subscription
          example: name
          type: string
      required:
        - type
        - value
      title: Request conflict error due to changing parameters simultaneously
      type: object
    _IncludesNameDescription:
      properties:
        description:
          description: Description
          type: string
        name:
          description: Name
          type: string
      required:
        - name
        - description
      title: Object
      type: object
    ErrorsCommonNotFoundErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            description:
              deprecated: true
              description: Error description
              type: string
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsCommonNotFoundError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Not found
    ErrorsCommonNotFoundError:
      additionalProperties: false
      properties:
        type:
          description: Text identifier of the error type
          enum:
            - not_found
          example: not_found
          type: string
      required:
        - type
      title: Error
      type: object
    ErrorsSavedSearchNotFoundErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsSavedSearchNotFoundError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Autosearch or the employer is not found
    ErrorsSavedSearchNotFoundError:
      additionalProperties: false
      properties:
        type:
          description: Text identifier of the error type
          enum:
            - saved_searches
            - not_found
          example: saved_searches
          type: string
        value:
          description: |
            Name of the field containing an error. Possible values:

            * `saved_search_not_found` — Autosearch is not found or does not belong to the current user
            * `manager_not_found` — Manager is not found
          enum:
            - saved_search_not_found
            - manager_not_found
          example: saved_search_not_found
          type: string
      required:
        - type
      title: Error
      type: object
    Id:
      description: Information about the created object
      nullable: false
      properties:
        id:
          description: Created object ID
          example: '22'
          type: string
      required:
        - id
      title: Created object ID
      type: object
    ApplicantCommentsApplicantCommentItem:
      properties:
        access_type:
          allOf:
            - $ref: '#/components/schemas/ApplicantCommentsAccessType'
            - type: object
          description: 'Comment access type. Possible values are listed in the `applicant_comment_access_type` field of the [directories](#tag/Public-directories/operation/get-dictionaries)'
        author:
          allOf:
            - $ref: '#/components/schemas/ApplicantCommentsAuthor'
            - type: object
          description: Comment author
        created_at:
          description: Date of comment creation
          type: string
        id:
          description: Unique comment ID
          type: string
        is_mine:
          description: Indicates whether the comment was written by the current user
          type: boolean
        text:
          description: Comment text. May contain newline characters
          type: string
      required:
        - author
        - created_at
        - id
        - is_mine
        - text
        - access_type
      title: Comment
    ApplicantCommentsAccessType:
      properties:
        id:
          description: Access type ID
          type: string
        name:
          description: Access type name
          type: string
      required:
        - id
        - name
      title: Access type
    ApplicantCommentsAuthor:
      properties:
        full_name:
          description: Comment author full name
          type: string
      required:
        - full_name
      title: Comment author
    ApplicantCommentsApplicantCommentsList:
      allOf:
        - $ref: '#/components/schemas/ApplicantCommentsApplicantCommentItems'
          type: object
        - $ref: '#/components/schemas/_IncludesPagination'
          type: object
      title: Successful response
    ApplicantCommentsApplicantCommentItems:
      properties:
        items:
          description: List of comments
          items:
            $ref: '#/components/schemas/ApplicantCommentsApplicantCommentItem'
          minItems: 0
          type: array
      required:
        - items
      title: Collection with the list of comments
    _IncludesPagination:
      properties:
        found:
          description: Number of results found
          example: 6
          type: integer
        page:
          description: Page number
          example: 1
          type: integer
        pages:
          description: Total pages
          example: 2
          type: integer
        per_page:
          description: Results per page
          example: 5
          type: integer
      required:
        - found
        - page
        - pages
        - per_page
      title: Pagination
      type: object
    AuthClientCredentials:
      additionalProperties: false
      properties:
        client_id:
          description: 'ID obtained in the process of [creating the application](https://dev.hh.ru/admin)'
          example: ETVQdMs2n9VKw7SMXkh9nX5H
          minLength: 1
          type: string
        client_secret:
          description: 'Secure key obtained in the process of [creating the application](https://dev.hh.ru/admin)'
          example: 95dNjB8FmtxQsmygm6dtEy53
          minLength: 1
          type: string
        grant_type:
          description: Token request method
          enum:
            - client_credentials
          example: client_credentials
          type: string
      required:
        - grant_type
        - client_id
        - client_secret
      title: Parameters to obtain a new application token
      type: object
    AuthCode:
      additionalProperties: false
      properties:
        client_id:
          description: 'ID obtained during [application creating](https://dev.hh.ru/admin)'
          example: ETVQdMs2n9VKw7SMXkh9nX5H
          minLength: 1
          type: string
        client_secret:
          description: 'Protected key obtained during [application creating](https://dev.hh.ru/admin)'
          example: 95dNjB8FmtxQsmygm6dtEy53
          minLength: 1
          type: string
        code:
          description: |
            The `authorization_code` value obtained when [redirecting the user](#get-authorization_code)
          example: 29CtxMcaA8pRFDYyC8e8Gkm4
          minLength: 1
          type: string
        code_verifier:
          description: |
            Verifier for [PKCE (Proof Key for Code Exchange, RFC 7636)](https://datatracker.ietf.org/doc/html/rfc7636).
            Required if `code_challenge` and `code_challenge_method` were provided during the authorization request.
            The server will compute the `BASE64URL-ENCODE(SHA256(ASCII(code_verifier)))` hash of the provided value and compare it against the previously received `code_challenge`
          example: dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
          minLength: 1
          type: string
        grant_type:
          description: Token request method
          enum:
            - authorization_code
          example: authorization_code
          type: string
        redirect_uri:
          description: |
            Redirect URI after authorization. If not provided, the value from the application settings is used.

            If provided, the value is validated. You will most likely need to URL-encode the parameter value
          example: 'http://www.example.com/oauth'
          minLength: 1
          type: string
      required:
        - grant_type
        - client_id
        - client_secret
        - redirect_uri
        - code
      title: Parameters to obtain user token
      type: object
    AuthRefreshToken:
      additionalProperties: false
      properties:
        grant_type:
          description: Token request method
          enum:
            - refresh_token
          example: refresh_token
          type: string
        refresh_token:
          description: 'Refresh token obtained previously with a [pair of tokens](#section/Authorization/Obtaining-access-and-refresh-tokens)'
          example: xuLNvUSv7FYM4MPfXDP9aJWe
          minLength: 1
          type: string
      required:
        - grant_type
        - refresh_token
      title: Parameters to update the refresh-access token pair
      type: object
    AuthUserTokenAndAppToken:
      oneOf:
        - $ref: '#/components/schemas/AuthUserToken'
        - $ref: '#/components/schemas/AuthAppToken'
      title: Successful response
    AuthAppToken:
      additionalProperties: false
      properties:
        access_token:
          type: string
        token_type:
          description: Issued token type. Always set to `bearer`
          enum:
            - bearer
          type: string
      required:
        - access_token
        - token_type
      title: Application authorization
      type: object
    AuthUserToken:
      properties:
        access_token:
          description: Token returned if the application has permissions to create long-lived or short-lived tokens
          type: string
        expires_in:
          description: Token lifetime in seconds
          format: int64
          minimum: 0
          type: integer
        refresh_token:
          description: Token that can be used to extend the lifetime of the corresponding access token
          type: string
        token_type:
          description: Issued token type. Always set to `bearer`
          enum:
            - bearer
          type: string
      required:
        - access_token
        - token_type
        - expires_in
        - refresh_token
      title: User authorization
      type: object
    ChatsCommonChatWithoutVacancyPost:
      properties:
        first_message:
          description: Текст сообщения
          maxLength: 10000
          minLength: 1
          type: string
        resume_hash:
          description: 'Хэш резюме, к которому будет привязан чат без вакансии'
          type: string
      required:
        - resume_hash
        - first_message
      title: Создание чата без вакансии
      type: object
    ChatsCommonCommonChatListResponse:
      allOf:
        - $ref: '#/components/schemas/ChatsCommonChatItems'
          type: object
        - $ref: '#/components/schemas/_IncludesPagination'
          type: object
      title: List of user chats
    ChatsCommonChatItems:
      properties:
        items:
          description: List of chats
          items:
            allOf:
              - $ref: '#/components/schemas/ChatsCommonChatBasic'
              - properties:
                  last_message:
                    allOf:
                      - $ref: '#/components/schemas/ChatsCommonMessageShort'
                    description: Last message
                  vacancy_id:
                    description: Vacancy identifier
                    nullable: true
                    type: string
            type: object
          minItems: 0
          type: array
      required:
        - items
      title: List of chats
    ChatsCommonChatBasic:
      properties:
        block_reason:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ChatsCommonBlockReason'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: string
        creation_time:
          description: Chat creation time
          example: '2024-01-31T00:00:00+0300'
          type: string
        display:
          $ref: '#/components/schemas/ChatsCommonDisplayInfo'
        id:
          description: Chat identifier
          type: string
        muted:
          description: Whether notifications are muted
          type: boolean
        type:
          description: |-
            Chat type  
            Possible values:  
            * `NEGOTIATION` — response chat. A chat linked to a job application or invitation
            * `SUPPORT` — support chat
            * `BOT` — one-on-one chat with a bot 
            * `COMMON` — general chat type
          enum:
            - NEGOTIATION
            - SUPPORT
            - BOT
            - COMMON
          type: string
        unread_message_count:
          description: Number of unread messages
          type: integer
      required:
        - id
        - display
        - creation_time
        - unread_message_count
        - muted
        - block_reason
        - type
      title: Basic chat information
      type: object
    ChatsCommonBlockReason:
      description: |-
        Reason for chat blocking  
        Possible values:  
        * `UNTRUSTED_EMPLOYER` — unverified employer. The limit for responses/invitations has been exceeded
      enum:
        - UNTRUSTED_EMPLOYER
      title: Block reason
      type: string
    ChatsCommonDisplayInfo:
      properties:
        icon:
          description: Chat icon URL
          nullable: true
          type: string
        title:
          description: Chat name
          type: string
      required:
        - title
        - icon
      title: Displayed chat information
      type: object
    _IncludesNullableObject:
      description: Object with `null` value
      enum:
        - null
      nullable: true
      title: Null object
      type: string
    ChatsCommonMessageShort:
      properties:
        creation_time:
          description: Message creation time
          example: '2024-01-31T00:00:00+0300'
          type: string
        id:
          description: Message identifier
          type: string
        payload:
          description: |
            Message payload. All fields are optional, but at least one of them must be present in the payload.  
            * `text` — contains the message text, null if `attachments` exist  
            * `attachments` — contains attachments, null if `text` exists
          properties:
            attachments:
              description: Files attached to the message
              items:
                properties:
                  content_type:
                    description: File content type
                    type: string
                  preview:
                    nullable: true
                    properties:
                      url:
                        description: URL of the image preview
                        type: string
                    type: object
                  title:
                    description: File name
                    type: string
                  url:
                    description: URL of the attached file
                    type: string
                required:
                  - url
                  - title
                  - content_type
                  - preview
                type: object
              nullable: true
              type: array
            text:
              description: Message text
              nullable: true
              type: string
          required:
            - text
          type: object
        sender_display_info:
          $ref: '#/components/schemas/ChatsCommonSenderDisplayInfo'
        sender_participant_id:
          description: Sender’s participant identifier
          type: string
        viewed_by_opponent:
          description: 'Flag indicating that the message has been viewed by the chat opponent (for an employer, the opponent is the applicant)'
          type: boolean
      required:
        - id
        - creation_time
        - sender_participant_id
        - sender_display_info
        - payload
      title: Message information
      type: object
    ChatsCommonSenderDisplayInfo:
      properties:
        icon:
          description: Link to the message sender’s profile image
          nullable: true
          type: string
        is_current_participant:
          description: Indicates whether the current chat participant is the message sender
          type: boolean
        name:
          description: Message sender’s name
          type: string
        role:
          description: |-
            Chat participant’s role. Possible values:
            APPLICANT — applicant  
            EMPLOYER — employer’s manager  
            BOT — bot
          enum:
            - APPLICANT
            - EMPLOYER
            - BOT
          nullable: true
          type: string
      required:
        - name
        - is_current_participant
        - icon
        - role
      title: Displayed information about the message sender
      type: object
    ChatsCommonFilesConditionsResponse:
      properties:
        files_upload:
          description: File properties for sending in chat
          properties:
            max_size:
              description: Maximum file size in bytes
              type: number
            mime_type:
              description: 'List of allowed [MIME types](https://www.iana.org/assignments/media-types/media-types.xhtml) of files'
              items:
                type: string
              type: array
            type:
              description: List of allowed file extensions
              items:
                type: string
              type: array
          required:
            - max_size
            - mime_type
            - type
          type: object
      required:
        - files_upload
      title: File properties
      type: object
    ChatsCommonFilesUploadLinksResponse:
      properties:
        expires_at:
          description: 'Link expiration time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format with second precision: `YYYY-MM-DDThh:mm:ss±hhmm`'
          type: string
        upload_url:
          description: Link for sending the file via a POST request
          type: string
      required:
        - upload_url
        - expires_at
      title: File properties
      type: object
    ChatsCommonMessagePost:
      oneOf:
        - $ref: '#/components/schemas/ChatsCommonMessagePostFileUploadIds'
        - $ref: '#/components/schemas/ChatsCommonMessagePostText'
      title: Sending a message to chat
      type: object
    ChatsCommonMessagePostFileUploadIds:
      additionalProperties: false
      properties:
        file_upload_ids:
          description: 'An array containing the upload_id values of files uploaded for the chat. The upload_id value corresponds to the [chat file upload link](#tag/Chats/operation/get-common-chat-files-upload-links)'
          items:
            description: The upload_id value in string format
            type: string
          maxItems: 1
          minItems: 1
          type: array
        idempotency_key:
          description: A unique key for each message in UUID format
          pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$'
          title: A unique key for each message in UUID format
          type: string
      required:
        - file_upload_ids
        - idempotency_key
      title: Uploaded file identifiers
      type: object
    ChatsCommonMessagePostText:
      additionalProperties: false
      properties:
        idempotency_key:
          description: Unique key for each message in UUID format
          pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$'
          title: Unique key for each message in UUID format
          type: string
        is_automated:
          description: 'Indicator showing that the message was created automatically (for example, using AI)'
          nullable: true
          type: boolean
        text:
          description: Message text
          maxLength: 20000
          minLength: 1
          type: string
      required:
        - text
        - idempotency_key
      title: Message text
      type: object
    ChatsCommonMessagePut:
      properties:
        text:
          description: Text of the edited message
          maxLength: 20000
          minLength: 1
          type: string
      required:
        - text
      title: Editing a message in chat
    ChatsCommonMessagesResponse:
      allOf:
        - $ref: '#/components/schemas/ChatsCommonChatBasic'
          type: object
        - $ref: '#/components/schemas/ChatsCommonMessageItems'
          type: object
        - $ref: '#/components/schemas/ChatsCommonChatState'
          type: object
        - properties:
            vacancy_id:
              description: Vacancy identifier
              nullable: true
              type: string
          type: object
      title: Chat with a list of messages
    ChatsCommonChatState:
      properties:
        chat_states:
          description: Chat state
          properties:
            send_file_state:
              description: Availability of sending files in the chat
              properties:
                allowed:
                  description: Availability indicator
                  type: boolean
              required:
                - allowed
              type: object
            write_message_state:
              description: Availability of sending messages in the chat
              properties:
                allowed:
                  description: Availability indicator
                  type: boolean
                reason:
                  description: |
                    Reason for restriction  
                    Possible values:  
                    * ARCHIVED_BY_EMPLOYER — archived chat  
                    * EMPLOYER_NEGOTIATIONS_LIMIT_EXCEEDED — blocked chat. Occurs when the employer’s account is not verified and the response limit from an applicant has been exceeded. To unblock, the employer must verify their account  
                    * PFP_BLOCK — chat blocked because it is a PFP response chat
                  nullable: true
                  type: string
              required:
                - allowed
              type: object
          required:
            - write_message_state
            - send_file_state
          type: object
      required:
        - chat_states
      title: Chat state
    ChatsCommonMessageItems:
      properties:
        has_more:
          description: |
            Indicates whether there are more messages available for the next batch  
            * `true` — a subsequent request with the current value of the `order` parameter will return a non-empty `messages` array  
            * `false` — a subsequent request with the current value of the `order` parameter will return an empty `messages` array
          type: boolean
        messages:
          description: List of messages
          items:
            allOf:
              - $ref: '#/components/schemas/ChatsCommonMessage'
            type: object
          minItems: 0
          type: array
      required:
        - has_more
        - messages
      title: List of messages
    ChatsCommonMessage:
      properties:
        can_edit:
          description: Whether the message can be edited
          type: boolean
        creation_time:
          description: |
            Message creation time  
            (in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format with second precision `YYYY-MM-DDThh:mm:ss±hhmm`)
          example: '2024-01-31T00:00:00+0300'
          type: string
        id:
          description: Message identifier
          type: string
        last_change_time:
          description: |
            Last message edit time  
            (in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format with second precision `YYYY-MM-DDThh:mm:ss±hhmm`)
          example: '2024-01-31T00:00:00+0300'
          nullable: true
          type: string
        payload:
          description: |
            Message payload. All fields are optional, but at least one of them must be present in the payload.  
            * `text` — contains the message text, null if `attachments` or `moved_participant` exist  
            * `attachments` — contains attachments, null if `text` or `moved_participant` exist  
            * `moved_participant` — contains information about changes to chat participants, null if `text` or `attachments` exist
          properties:
            attachments:
              description: Files attached to the message
              items:
                properties:
                  content_type:
                    description: File content type
                    type: string
                  preview:
                    nullable: true
                    properties:
                      url:
                        description: URL of the image preview
                        type: string
                    type: object
                  title:
                    description: File name
                    type: string
                  url:
                    description: URL of the attached file
                    type: string
                required:
                  - url
                  - title
                  - content_type
                  - preview
                type: object
              nullable: true
              type: array
            moved_participant:
              description: |
                Participant added/removed from the chat.  
                Only for message types `PARTICIPANT_LEFT` and `PARTICIPANT_JOINED`
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/ChatsCommonParticipantShort'
                - $ref: '#/components/schemas/_IncludesNullableObject'
              type: object
            text:
              description: Message text
              nullable: true
              type: string
          type: object
        sender_display_info:
          $ref: '#/components/schemas/ChatsCommonSenderDisplayInfo'
        sender_participant_id:
          description: Sender’s participant identifier
          type: string
        type:
          description: |
            Message type  
            Possible values:  
            * `SIMPLE` — message with text or attachments  
            * `PARTICIPANT_LEFT` — a participant has left the chat  
            * `PARTICIPANT_JOINED` — a participant has been added to the chat
          enum:
            - SIMPLE
            - PARTICIPANT_LEFT
            - PARTICIPANT_JOINED
          type: string
        viewed_by_opponent:
          description: 'Flag indicating that the message has been viewed by the chat opponent (for an employer, the opponent is the applicant)'
          type: boolean
      required:
        - id
        - creation_time
        - last_change_time
        - can_edit
        - sender_participant_id
        - sender_display_info
        - type
        - payload
        - viewed_by_opponent
      title: Message information
      type: object
    ChatsCommonParticipantShort:
      properties:
        icon:
          description: Link to the participant’s profile image
          nullable: true
          type: string
        id:
          description: Chat participant identifier
          type: string
        name:
          description: Chat participant name
          type: string
      required:
        - id
        - name
        - icon
      title: Chat participant
      type: object
    ChatsCommonParticipantListResponse:
      properties:
        items:
          description: List of participants
          items:
            allOf:
              - $ref: '#/components/schemas/ChatsCommonParticipant'
            type: object
          minItems: 0
          type: array
      required:
        - items
      title: List of participants
    ChatsCommonParticipant:
      properties:
        icon:
          description: Link to the participant’s profile image
          nullable: true
          type: string
        id:
          description: Chat participant identifier
          type: string
        last_viewed_message_id:
          description: Identifier of the last viewed message
          nullable: true
          type: string
        name:
          description: Chat participant name
          type: string
        resume_id:
          description: Resume identifier returns only for the APPLICANT role
          nullable: true
          type: string
        role:
          description: |
            Participant’s role in the chat. Possible values:
            APPLICANT — applicant  
            EMPLOYER — employer’s manager  
            BOT — bot
          enum:
            - APPLICANT
            - EMPLOYER
            - BOT
          nullable: true
          type: string
        type:
          description: Chat participant type
          enum:
            - USER
            - BOT
          nullable: true
          type: string
      required:
        - id
        - name
        - type
        - icon
        - last_viewed_message_id
        - role
      title: Chat participant
      type: object
    ChatsCommonParticipantManager:
      properties:
        id:
          description: Identifier of the manager being added to the chat
          minLength: 1
          type: string
      required:
        - id
      title: Manager identifier
      type: object
    ChatsCommonUnreadChatsCountResponse:
      properties:
        unread_chats_count:
          description: Number of unread chats
          type: string
      required:
        - unread_chats_count
      title: Data on the number of unread chats
      type: object
    ClickmeStatisticsResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ClickmeStatisticsItem'
          minItems: 0
          title: List of Clickme ad campaign statistics
          type: array
      required:
        - items
      title: Successful response
    ClickmeStatisticsItem:
      properties:
        amount:
          description: Campaign costs
          type: number
        campaign_id:
          description: Clickme campaign ID
          type: string
        campaign_title:
          description: Clickme campaign title
          type: string
        campaign_type:
          description: Clickme campaign type
          enum:
            - MULTI_PLACEMENT
            - TOP_SEARCH
          type: string
        clickme_account_id:
          description: Clickme account ID
          type: string
        clickme_account_title:
          description: Clickme account title
          type: string
        clicks:
          description: Number of clicks
          type: integer
        date_end:
          description: Date of the last ad campaign impression
          format: date
          type: string
        date_start:
          description: Ad campaign start date
          format: date
          type: string
        impressions:
          description: Number of impressions
          type: integer
        responses:
          description: Number of responses to the vacancy during the Clickme activation period
          type: integer
        url:
          description: Promoted URL
          type: string
        vacancy_area_name:
          description: Vacancy region
          type: string
        vacancy_id:
          description: Vacancy ID
          type: string
        vacancy_title:
          description: Vacancy name
          type: string
      required:
        - clickme_account_id
        - vacancy_id
        - vacancy_title
        - vacancy_area_name
        - url
        - campaign_id
        - campaign_type
        - campaign_title
        - impressions
        - clicks
        - responses
        - amount
        - date_start
        - date_end
      title: Clickme ad campaign statistics
    DictionariesAreaItem:
      allOf:
        - $ref: '#/components/schemas/DictionariesAreaCommon'
        - properties:
            areas:
              description: Child regions
              items:
                $ref: '#/components/schemas/DictionariesAreaItem'
              minItems: 0
              type: array
          required:
            - areas
          type: object
      title: Region
      type: object
    DictionariesAreaCommon:
      properties:
        id:
          description: 'Region ID from the [directory](#tag/Public-directories/operation/get-areas)'
          type: string
        lat:
          description: Region latitude
          format: double
          nullable: true
          type: number
        lng:
          description: Region longitude
          format: double
          nullable: true
          type: number
        name:
          description: Region name
          type: string
        name_prepositional:
          description: |
            Applicable only to Russian localization.

            Region name in prepositional case
          nullable: true
          type: string
        parent_id:
          description: Parent region ID
          nullable: true
          type: string
        utc_offset:
          description: 'Region time zone offset relative to UTC, formatted as `+HH:MM` or `-HH:MM`'
          nullable: true
          type: string
      required:
        - id
        - name
      title: Region
    DictionariesAreaResponse:
      items:
        $ref: '#/components/schemas/DictionariesAreaItem'
      title: List of regions
      type: array
    DictionariesCountriesResponse:
      items:
        $ref: '#/components/schemas/_IncludesArea'
      title: List of countries
      type: array
    _IncludesArea:
      properties:
        id:
          description: 'Area ID from the [directory](#tag/Public-directories/operation/get-areas)'
          type: string
        name:
          description: Area name
          type: string
        url:
          description: Area details URL
          type: string
      required:
        - id
        - name
        - url
      title: Area
      type: object
    DictionariesDictResponse:
      description: Directories of fields and entities used in API
      properties:
        age_restriction:
          description: |
            Access to the vacancy from age 14 or 16. Used the `age_restriction` in vacancies and drafts
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        applicant_comment_access_type:
          description: Type of access to applicant comment
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Other directories
          type: array
        applicant_comments_order:
          description: 'Sorting type of the [applicant comment list](#tag/Applicant-comments/operation/get-applicant-comments-list)'
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Other directories
          type: array
        applicant_negotiation_status:
          description: Response/invite statuses
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for applications and invitations
          type: array
        business_trip_readiness:
          description: Willingness to business trips
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for fields used in CVs
          type: array
        civil_law_contracts:
          description: Civil law contract options. Used for the `civil_law_contracts` field in vacancies and drafts
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        currency:
          description: Currency directory
          items:
            $ref: '#/components/schemas/DictionariesCurrencyItem'
          title: Other directories
          type: array
        driver_license_types:
          description: Driver license types
          items:
            $ref: '#/components/schemas/_IncludesId'
          title: Directory for fields used in CVs
          type: array
        education_level:
          description: Education
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for fields used in CVs
          type: array
        employer_active_vacancies_order:
          description: Sorting type of the published vacancy list
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for sorting employer's vacancies
          type: array
        employer_archived_vacancies_order:
          description: Sorting type of the archived vacancy list
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for sorting employer's vacancies
          type: array
        employer_hidden_vacancies_order:
          description: Sorting type of the hidden vacancy list
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for sorting employer's vacancies
          type: array
        employer_relation:
          description: Methods of contacting applicants
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Other directories
          type: array
        employer_type:
          description: Employer type
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Other directories
          type: array
        employment:
          description: Employment type
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        employment_form:
          description: |
            Employment type. Used for the `employment_form` in vacancies and drafts
          items:
            properties:
              duration:
                description: Permanent or temporary employment
                type: string
              id:
                description: Identifier
                type: string
              name:
                description: Name
                type: string
            required:
              - id
              - name
            type: object
          title: Directory for vacancy fields
          type: array
        experience:
          description: Work experience
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        fly_in_fly_out_duration:
          description: Fly in fly out duration. Used for the fly_in_fly_out_duration field in vacancies and drafts
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        gender:
          description: Gender
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for fields used in CVs
          type: array
        inclusiveness_types:
          description: Categories of health characteristics. Used for the `inclusiveness_types` field in vacancies and drafts
          items:
            properties:
              id:
                description: Идентификатор
                type: string
              legacy:
                description: Временное обозначение для общей категории
                type: boolean
              name:
                description: Название
                type: string
            required:
              - id
              - name
              - legacy
            type: object
          title: Directory for vacancy fields
          type: array
        job_search_statuses_applicant:
          description: Applicant job search statuses for changing or displaying to applicant himself
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Other directories
          type: array
        job_search_statuses_employer:
          description: Applicant job search statuses for displaying to employer
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Other directories
          type: array
        language_level:
          description: Language level
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for fields used in CVs
          type: array
        linked_socials:
          description: Social network for linking as auth method
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Other directories
          type: array
        messaging_status:
          description: Status of the message sending possibility in messaging
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for applications and invitations
          type: array
        negotiations_order:
          description: Application display order types
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for applications and invitations
          type: array
        negotiations_participant_type:
          description: Types of messaging participants
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for applications and invitations
          type: array
        negotiations_state:
          description: Application state types
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for applications and invitations
          type: array
        phone_call_status:
          description: Status of the phone call in call-tracking system
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Other directories
          type: array
        preferred_contact_type:
          description: Preferred method of communication
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for fields used in CVs
          type: array
        relocation_type:
          description: Willingness to relocate
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for fields used in CVs
          type: array
        resume_access_type:
          description: CV access level
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for fields used in CVs
          type: array
        resume_contacts_site_type:
          description: Website type in the "contacts" field
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for fields used in CVs
          type: array
        resume_employment_form:
          description: |
            Employment type. Used for the `employment_form` field of the resume
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for resume fields
          type: array
        resume_hidden_fields:
          description: Resume fields that can be hidden
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for fields used in CVs
          type: array
        resume_moderation_note:
          description: Moderator's comment
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for fields used in CVs
          type: array
        resume_search_experience_period:
          description: Search term by work experience
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for resume search parameters
          type: array
        resume_search_fields:
          description: Search area in resume
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for resume search parameters
          type: array
        resume_search_label:
          description: Resume search tags
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for resume search parameters
          type: array
        resume_search_logic:
          description: Resume search term
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for resume search parameters
          type: array
        resume_search_order:
          description: Resume sorting type
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for resume search parameters
          type: array
        resume_search_relocation:
          description: Search condition for residence in the region and readiness to move
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for resume search parameters
          type: array
        resume_status:
          description: CV status
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for fields used in CVs
          type: array
        resume_work_format:
          description: |
            Work format. Used for the `work_format` field of the resume
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for resume fields
          type: array
        salary_range_frequency:
          description: Salary frequency. Use for frequency field inside salary_range field
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          nullable: true
          title: Directory for vacancy fields
          type: array
        salary_range_mode:
          description: Salary mode. Use for mode field inside salary_range field
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          nullable: true
          title: Directory for vacancy fields
          type: array
        schedule:
          description: Work schedule
          items:
            $ref: '#/components/schemas/_IncludesIdNameUid'
          title: Directory for vacancy fields
          type: array
        travel_time:
          description: Travel time to work
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for fields used in CVs
          type: array
        vacancy_billing_type:
          description: Vacancy placement options in terms of billing
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        vacancy_cluster:
          description: Cluster type
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy search parameters
          type: array
        vacancy_label:
          description: Vacancy tags
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        vacancy_not_prolonged_reason:
          description: 'The reasons why [prolongation](#tag/Vacancy-management/operation/get-prolongation-vacancy-info) is not available'
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Other directories
          type: array
        vacancy_relation:
          description: Types of vacancy connection to the user
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        vacancy_search_employment_form:
          description: Employment type. Used for the `employment_form` field for vacancy search
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy search parameters
          type: array
        vacancy_search_fields:
          description: Search area in vacancy
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy search parameters
          type: array
        vacancy_search_order:
          description: Vacancy sorting type
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy search parameters
          type: array
        vacancy_type:
          description: Vacancy type
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        work_format:
          description: |
            Work format. Used for the `work_format` field in vacancies and drafts
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        work_schedule_by_days:
          description: |
            Work schedule by days. Used for the `work_schedule_by_days` field in vacancies and drafts
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        working_days:
          description: Working days
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        working_hours:
          description: |
            Working hours by day. Used for the `working_hours` field in vacancies and drafts
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        working_time_intervals:
          description: Working time intervals
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
        working_time_modes:
          description: Working time modes
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          title: Directory for vacancy fields
          type: array
      required:
        - education_level
        - gender
        - language_level
        - preferred_contact_type
        - relocation_type
        - travel_time
        - resume_access_type
        - business_trip_readiness
        - resume_contacts_site_type
        - resume_status
        - resume_moderation_note
        - driver_license_types
        - resume_hidden_fields
        - employment
        - experience
        - schedule
        - vacancy_type
        - vacancy_label
        - vacancy_relation
        - vacancy_billing_type
        - working_days
        - working_time_intervals
        - working_time_modes
        - vacancy_search_employment_form
        - vacancy_search_fields
        - vacancy_search_order
        - vacancy_cluster
        - employer_active_vacancies_order
        - employer_archived_vacancies_order
        - negotiations_order
        - negotiations_state
        - messaging_status
        - negotiations_participant_type
        - applicant_negotiation_status
        - currency
        - employer_type
        - employer_relation
        - vacancy_not_prolonged_reason
        - applicant_comments_order
        - applicant_comment_access_type
        - phone_call_status
        - job_search_statuses_applicant
        - job_search_statuses_employer
        - resume_employment_form
        - resume_work_format
        - inclusiveness_types
      title: Resume fields directories
      type: object
    DictionariesCurrencyItem:
      properties:
        abbr:
          description: Short designation
          type: string
        code:
          description: Code
          type: string
        default:
          description: Is it used as default currency?
          type: boolean
        in_use:
          description: Can it be used on this host?
          type: boolean
        name:
          description: Name
          type: string
        rate:
          description: Course against ruble
          type: number
      required:
        - code
        - abbr
        - name
        - default
        - rate
        - in_use
      title: Currency
      type: object
    _IncludesId:
      properties:
        id:
          description: ID
          type: string
      required:
        - id
      title: Object ID
      type: object
    _IncludesIdName:
      allOf:
        - $ref: '#/components/schemas/_IncludesId'
        - properties:
            name:
              description: Name
              type: string
          required:
            - name
          type: object
      title: Object name and ID fields
      type: object
    _IncludesIdNameUid:
      allOf:
        - $ref: '#/components/schemas/_IncludesIdName'
        - properties:
            uid:
              description: Universal ID
              type: string
          required:
            - uid
          type: object
      title: 'Object with ID, name, and Universal ID'
      type: object
    DictionariesDistrictsResponse:
      items:
        $ref: '#/components/schemas/DictionariesDistrictItem'
      title: List of all districts in all cities
      type: array
    DictionariesDistrictItem:
      properties:
        area_id:
          description: 'Area [identifier](#tag/Public-directories/operation/get-areas)'
          type: string
        id:
          description: District identifier
          type: string
        name:
          description: District name
          type: string
      required:
        - id
        - name
        - area_id
      title: City
    DictionariesFacultiesResponse:
      items:
        $ref: '#/components/schemas/_IncludesIdName'
      title: List of faculties
      type: array
    DictionariesIndustriesResponse:
      items:
        $ref: '#/components/schemas/DictionariesBranchItem'
      title: List of branches
      type: array
    DictionariesBranchItem:
      properties:
        id:
          description: Branch ID
          type: string
        industries:
          description: Activities
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          type: array
        name:
          description: Branch name
          type: string
      required:
        - id
        - name
        - industries
      title: Branch
      type: object
    DictionariesLangResponse:
      items:
        $ref: '#/components/schemas/DictionariesLangItem'
      title: The list of languages
      type: array
    DictionariesLangItem:
      properties:
        id:
          description: Language ID
          example: ita
          type: string
        name:
          description: Language name
          example: Italian
          type: string
        uid:
          description: Language Universal ID
          example: '17'
          type: string
      required:
        - id
        - name
        - uid
      title: Language
    DictionariesSalaryStatisticsAreaResponse:
      items:
        $ref: '#/components/schemas/DictionariesSalaryStatisticsAreaItem'
      title: List of regions
      type: array
    DictionariesSalaryStatisticsAreaItem:
      properties:
        areas:
          description: Child regions
          items:
            $ref: '#/components/schemas/DictionariesSalaryStatisticsAreaItem'
          minItems: 0
          type: array
        id:
          description: Region ID
          type: string
        name:
          description: Region name
          type: string
      required:
        - id
        - name
      title: Region
    DictionariesSalaryStatisticsEmployeeLevelResponse:
      description: List of competency levels
      items:
        $ref: '#/components/schemas/_IncludesIdNameDesc'
      title: List of competency levels
      type: array
    _IncludesIdNameDesc:
      allOf:
        - $ref: '#/components/schemas/_IncludesId'
        - $ref: '#/components/schemas/_IncludesNameDescription'
      title: 'Object with ID, name, and description'
      type: object
    DictionariesSalaryStatisticsProfessionalAreasResponse:
      description: A list of professions and specializations
      items:
        allOf:
          - $ref: '#/components/schemas/_IncludesIdName'
          - $ref: '#/components/schemas/DictionariesSalaryStatisticsSpecializations'
        description: Profession and specializations
        type: object
      title: A list of professions and specializations
      type: array
    DictionariesSalaryStatisticsSpecializations:
      properties:
        specializations:
          items:
            $ref: '#/components/schemas/_IncludesIdNameDesc'
          type: array
      required:
        - specializations
      title: Specializations
      type: object
    DictionariesSkillsResponse:
      description: The list of key skills
      properties:
        items:
          description: Key skill array
          items:
            $ref: '#/components/schemas/_IncludesSkillSetItem'
          type: array
      required:
        - items
      title: The list of key skills
      type: object
    _IncludesSkillSetItem:
      properties:
        id:
          description: Key skill ID
          type: string
        text:
          description: Key skill name
          type: string
      required:
        - id
        - text
      title: Key skill
      type: object
    EmployerAddressesEmployerAddressItemResponse:
      allOf:
        - $ref: '#/components/schemas/EmployerAddressesEmployerAddressItem'
      example:
        $ref: '#/components/examples/EmployerAddressItem/value'
      title: Successful response
    EmployerAddressesEmployerAddressItem:
      properties:
        building:
          description: Building
          nullable: true
          type: string
        can_edit:
          description: Whether the current user has permission to edit this address
          type: boolean
        city:
          description: City
          nullable: true
          type: string
        deleted:
          description: Whether the address is deleted
          type: boolean
        description:
          description: Address additional info
          nullable: true
          type: string
        id:
          description: Address ID
          type: string
        lat:
          description: Latitude of the address location
          nullable: true
          type: number
        lng:
          description: Longitude of the address location
          nullable: true
          type: number
        manager:
          description: Manager added the address
          nullable: true
          properties:
            full_name:
              description: Manager full name
              type: string
            id:
              description: Manager ID
              type: string
          type: object
        metro_stations:
          items:
            $ref: '#/components/schemas/_IncludesMetroStation'
          type: array
        raw:
          description: Full address
          nullable: true
          type: string
        street:
          description: Street
          nullable: true
          type: string
      required:
        - city
        - lat
        - lng
      title: Address
    _IncludesMetroStation:
      properties:
        lat:
          description: Latitude of the station location
          nullable: true
          type: number
        line_id:
          description: Line ID
          type: string
        line_name:
          description: Line name
          type: string
        lng:
          description: Longitude of the station location
          nullable: true
          type: number
        station_id:
          description: Metro station ID
          type: string
        station_name:
          description: Station name
          type: string
      required:
        - station_id
        - station_name
        - line_id
        - line_name
        - lat
        - lng
      title: Metro station
      type: object
    EmployerAddressesEmployerAddressesResponse:
      allOf:
        - $ref: '#/components/schemas/EmployerAddressesEmployerAddressItems'
        - $ref: '#/components/schemas/_IncludesPagination'
      example:
        $ref: '#/components/examples/EmployerAddresses/value'
      title: Successful response
    EmployerAddressesEmployerAddressItems:
      properties:
        items:
          description: Employer addresses list
          items:
            $ref: '#/components/schemas/EmployerAddressesEmployerAddressItem'
          type: array
      required:
        - items
      title: JSON containing the address parameters
    EmployerDictionariesTestsResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/EmployerDictionariesTestItem'
          minItems: 0
          title: List of tests
          type: array
      required:
        - items
      title: Successful response
    EmployerDictionariesTestItem:
      properties:
        id:
          description: Test ID
          type: string
        name:
          description: Test name
          type: string
      required:
        - id
        - name
      title: Test
    EmployerManagerTypesResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/EmployerManagerTypesEmployerManagerTypesItem'
          title: List of manager types and permissions
          type: array
      required:
        - items
      title: Successful response
    EmployerManagerTypesEmployerManagerTypesItem:
      properties:
        available_permissions:
          description: List of permissions that can be granted to this manager type
          items:
            $ref: '#/components/schemas/EmployerManagerTypesAvailablePermissions'
          type: array
        id:
          description: Manager type ID
          type: string
        name:
          description: Manager type name
          type: string
      required:
        - id
        - name
        - available_permissions
      title: Manager type and permissions
    EmployerManagerTypesAvailablePermissions:
      properties:
        id:
          description: Permission ID
          type: string
        name:
          description: Permission name
          type: string
      required:
        - id
        - name
      title: Available permission types
    EmployerManagersAddEmployerManager:
      properties:
        additional_phone:
          allOf:
            - $ref: '#/components/schemas/EmployerManagersPhone'
            - type: object
          description: Manager's additional phone number
        area:
          $ref: '#/components/schemas/EmployerManagersAreaId'
        email:
          description: Manager's email
          type: string
        first_name:
          description: Manager's first name
          type: string
        is_main_contact_person:
          description: Whether the current manager is the company's main contact person
          type: boolean
        last_name:
          description: Manager's last name
          type: string
        manager_type:
          $ref: '#/components/schemas/EmployerManagersManagerTypeId'
        middle_name:
          description: Manager's middle name
          type: string
        permissions:
          description: 'List of [manager''s permissions](#tag/Employer-managers/operation/get-employer-manager-types)'
          items:
            $ref: '#/components/schemas/EmployerManagersPermissions'
          type: array
        phone:
          allOf:
            - $ref: '#/components/schemas/EmployerManagersPhone'
            - type: object
          description: Manager's phone number
        position:
          description: Manager's position
          type: string
      required:
        - manager_type
        - email
        - position
        - first_name
        - last_name
        - is_main_contact_person
        - phone
        - area
      title: New manager information
    EmployerManagersAreaId:
      properties:
        id:
          description: 'Region ID from the [directory](#tag/Public-directories/operation/get-areas)'
          type: string
      required:
        - id
      title: Area
    EmployerManagersManagerTypeId:
      properties:
        id:
          description: 'Manager''s [type ID](#tag/Employer-managers/operation/get-employer-manager-types). Only the `manager` type is supported'
          enum:
            - manager
          type: string
      required:
        - id
      title: Manager type
    EmployerManagersPermissions:
      properties:
        id:
          description: Permission ID
          type: string
      required:
        - id
      title: Permissions
    EmployerManagersPhone:
      properties:
        city:
          description: City code
          type: string
        comment:
          description: Comment
          nullable: true
          type: string
        country:
          description: Country code
          type: string
        formatted:
          description: Formatted phone number
          type: string
        number:
          description: Number
          type: string
      required:
        - country
        - city
        - number
      title: Phone number
    EmployerManagersEmployerManagerId:
      properties:
        id:
          description: Manager's ID
          type: string
      required:
        - id
      title: Manager's ID
    EmployerManagersEmployerManagerInfo:
      properties:
        additional_phone:
          allOf:
            - $ref: '#/components/schemas/EmployerManagersPhone'
            - type: object
          description: Manager's additional phone number
        area:
          $ref: '#/components/schemas/EmployerManagersArea'
        creation_time:
          description: Manager's registration date and time
          nullable: true
          type: string
        email:
          description: Manager's email
          type: string
        first_name:
          description: Manager's first name
          type: string
        full_name:
          description: Manager's full name
          type: string
        id:
          description: Manager's ID
          type: string
        is_main_contact_person:
          description: Whether the current manager is the company's main contact person
          type: boolean
        last_name:
          description: Manager's last name
          type: string
        manager_type:
          $ref: '#/components/schemas/EmployerManagersManagerType'
        middle_name:
          description: Manager's middle name
          type: string
        name:
          deprecated: true
          description: Manager's full name
          type: string
        permissions:
          description: 'List of [manager''s permissions](#tag/Employer-managers/operation/get-employer-manager-types)'
          items:
            $ref: '#/components/schemas/EmployerManagerTypesAvailablePermissions'
          type: array
        phone:
          allOf:
            - $ref: '#/components/schemas/EmployerManagersPhone'
            - type: object
          description: Manager's phone number
        position:
          description: Manager's position
          type: string
        special_note_1:
          description: First special note of the manager
          nullable: true
          type: string
        special_note_2:
          description: Second special note of the manager
          nullable: true
          type: string
        vacancies_count:
          description: Number of published (active) vacancies for this manager. `null` if the user does not have permission to view this manager's vacancies
          nullable: true
          type: number
      required:
        - id
        - email
        - position
        - first_name
        - last_name
        - is_main_contact_person
        - phone
        - permissions
      title: Manager information
    EmployerManagersArea:
      properties:
        id:
          description: Region ID
          type: string
        name:
          description: Region name
          type: string
        url:
          description: Region URL
          type: string
      required:
        - id
        - name
        - url
      title: Region
    EmployerManagersManagerType:
      properties:
        id:
          description: Manager type ID
          type: string
        name:
          description: Manager type name
          type: string
      required:
        - id
        - name
      title: Manager type
    EmployerManagersEmployerManagerLimits:
      properties:
        left:
          allOf:
            - $ref: '#/components/schemas/EmployerManagersResumeView'
          description: 'Number of resume views left. This parameter reflects the view limit per company. Therefore, it may be less than the number of views available to the current user'
        limits:
          allOf:
            - $ref: '#/components/schemas/EmployerManagersResumeView'
          description: Limit for resume views
        spend:
          allOf:
            - $ref: '#/components/schemas/EmployerManagersResumeView'
          description: Number of viewed resumes
      required:
        - limits
        - spend
        - left
      title: Daily limit of resume views
    EmployerManagersResumeView:
      properties:
        resume_view:
          description: Resume views via the website
          type: integer
        resume_view_from_api:
          description: Resume views from the API. Returned if they are included in the current resume access configuration for the employer
          type: integer
      required:
        - resume_view
      title: Resume views
    EmployerManagersManagerData:
      properties:
        additional_phone:
          allOf:
            - $ref: '#/components/schemas/EmployerManagersPhone'
            - type: object
          description: Manager's additional phone number
        permissions:
          description: List of permissions that can be granted to this manager type
          items:
            $ref: '#/components/schemas/EmployerManagerTypesAvailablePermissions'
          type: array
        phone:
          allOf:
            - $ref: '#/components/schemas/EmployerManagersPhone'
            - type: object
          description: Manager's phone number
        position:
          title: Manager's position
          type: string
      title: JSON with the editable manager parameters
    EmployerManagersResponse:
      properties:
        found:
          title: Number of results found
          type: integer
        items:
          items:
            $ref: '#/components/schemas/EmployerManagersEmployerManagerItem'
          minItems: 0
          title: List of employer's managers
          type: array
        page:
          title: Page number
          type: integer
        pages:
          title: Total pages
          type: integer
        per_page:
          title: Results per page
          type: integer
      required:
        - items
        - found
        - page
        - pages
        - per_page
      title: Successful response
    EmployerManagersEmployerManagerItem:
      properties:
        additional_phone:
          allOf:
            - $ref: '#/components/schemas/EmployerManagersPhone'
          description: Manager's additional phone number
          nullable: true
          type: object
        area:
          $ref: '#/components/schemas/EmployerManagersArea'
        email:
          description: Manager's email
          type: string
        first_name:
          description: Manager's first name
          type: string
        full_name:
          description: Manager's full name
          type: string
        id:
          description: Manager's ID
          type: string
        is_main_contact_person:
          description: Whether the current manager is the company's main contact person
          type: boolean
        last_name:
          description: Manager's last name
          type: string
        middle_name:
          description: Manager's middle name
          nullable: true
          type: string
        name:
          deprecated: true
          description: Manager's full name
          type: string
        phone:
          allOf:
            - $ref: '#/components/schemas/EmployerManagersPhone'
            - type: object
          description: Manager's phone number
        position:
          description: Manager's position
          type: string
        special_note_1:
          description: First special note of the manager
          nullable: true
          type: string
        special_note_2:
          description: Second special note of the manager
          nullable: true
          type: string
        vacancies_count:
          description: Number of published (active) vacancies for this manager. `null` if the user has not permission to view this manager's vacancies
          nullable: true
          type: number
      required:
        - id
        - email
        - position
        - area
      title: Manager
    EmployerServicesEmployerServices:
      properties:
        items:
          items:
            $ref: '#/components/schemas/EmployerServicesEmployerServiceItem'
          minItems: 0
          title: List of services
          type: array
      required:
        - items
      title: List of services
    EmployerServicesEmployerServiceItem:
      properties:
        activated_at:
          description: 'Service activation time (in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format with second precision: `YYYY-MM-DDThh:mm:ss±hhmm`)'
          pattern: '^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?((\+|-)[0-1][0-9]{3})?$'
          type: string
        balance:
          description: Balance amounts. Applicable only to package service
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/EmployerServicesBalance'
          type: object
        expires_at:
          description: 'Service expiration time (in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format with second precision: `YYYY-MM-DDThh:mm:ss±hhmm`)'
          pattern: '^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?((\+|-)[0-1][0-9]{3})?$'
          type: string
        id:
          description: Service ID
          type: string
        service_type:
          $ref: '#/components/schemas/EmployerServicesServiceType'
          description: Service type
      required:
        - id
        - service_type
        - activated_at
        - expires_at
      title: Service
    EmployerServicesBalance:
      properties:
        actual:
          description: Current balance value
          type: integer
        initial:
          description: Balance value at the time of service activation
          type: integer
      required:
        - actual
        - initial
      title: Balance of services
      type: object
    EmployerServicesServiceType:
      properties:
        id:
          description: Service type ID
          type: string
        name:
          description: Localized service type name
          type: string
      required:
        - id
        - name
      title: Service type
    EmployerServicesMethodAccess:
      properties:
        items:
          items:
            $ref: '#/components/schemas/EmployerServicesMethodAccessItem'
          minItems: 0
          title: List of groups with access to paid methods
          type: array
      required:
        - items
      title: List of groups with access to paid methods
    EmployerServicesMethodAccessItem:
      properties:
        access:
          description: Information about access to the paid method
          properties:
            has_access:
              description: Indicates whether there is access to a group of methods
              type: boolean
          required:
            - has_access
          type: object
        description:
          description: Method group description
          type: string
        id:
          description: Method group ID
          type: string
      required:
        - id
        - description
        - access
      title: Method groups
    EmployersEmployerDepartmentsResponse:
      properties:
        items:
          description: Employer's department list
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          type: array
      required:
        - items
      title: Employer's departments
    EmployersEmployerInfo:
      properties:
        accredited_it_employer:
          description: 'Indicates if the company is [IT accredited](https://feedback.hh.ru/knowledge-base/article/00038)'
          type: boolean
        alternate_url:
          description: Link to the company's profile on the site
          type: string
        applicant_services:
          $ref: '#/components/schemas/_IncludesEmployerApplicantServices'
        area:
          allOf:
            - $ref: '#/components/schemas/_IncludesArea'
            - type: object
          description: Information about employer's region
        branded_description:
          deprecated: true
          description: |
            HTML string (may contain <script/> and <style/> tags) that serves as an alternative to the standard employer description. The HTML is optimized for mobile devices and displayed correctly without JavaScript support. Key specifications:

            - The content width extends to 100% of the container width and fits within a height of 300px without scrolling.
            - The content is designed to be inserted into a wrapper that includes the company name, logo, website, and a link to the employer's vacancies.
            - Any images in this description are optimized for retina displays.
            - The font size is no less than 12px, and the line height is no less than 16px.

            The value may be `null` if the employer does not have a custom description
          nullable: true
          type: string
        branding:
          description: Value may be `null` if the employer does not have page branding
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/EmployersBrandingEmployerBranding'
          type: object
        country_code:
          description: Information about employer's country
          type: string
        description:
          description: Employer description as an HTML string (without <script/> or <style/> tags)
          nullable: true
          type: string
        id:
          description: Employer ID
          type: string
        industries:
          description: 'List of the employer''s industries. Values from the [directory of industries](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-industries)'
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          type: array
        insider_interviews:
          description: Interview list or blank list if there are no interviews
          items:
            $ref: '#/components/schemas/EmployersInsiderInterviews'
          minItems: 0
          type: array
        is_identified_by_esia:
          description: Indicates whether the employer has been identified via ESIA
          type: boolean
        logo_urls:
          description: |
            Links to employer logo images in different sizes. `original` is a raw unprocessed logo, which may be large. If the originally uploaded logo is smaller than 240px and/or 90px on its shorter side, the corresponding keys will contain links to images of the original size. The object may be `null` if the company has not uploaded a logo. The client should handle the case of the logo is missing at the specified link (response with `404 Not Found`). A company may not have 90 and 240 logos
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesLogoUrls'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        name:
          description: Employer name
          type: string
        open_vacancies:
          description: Number of employer's active vacancies
          nullable: true
          type: number
        relations:
          description: 'If the employer is blacklisted, [''blacklisted''] will be returned; otherwise, `[]`'
          items:
            enum:
              - blacklisted
              - null
            nullable: true
            type: string
          type: array
        site_url:
          description: Link to the employer website
          type: string
        trusted:
          description: 'Indicates whether the company has been [verified by the website](https://feedback.hh.ru/knowledge-base/article/5951)'
          type: boolean
        type:
          description: 'Employer type (direct employer, recruitment agency, etc.). Possible values are described in the `employer_type` field of [directories](#tag/Public-directories/operation/get-dictionaries). Returned `null` if the employer type is hidden'
          nullable: true
          type: string
        vacancies_url:
          description: Link to the search results for the employer's vacancies
          type: string
      required:
        - name
        - id
        - site_url
        - vacancies_url
        - trusted
        - alternate_url
        - insider_interviews
        - area
        - relations
        - industries
      title: Employer
      type: object
    EmployersBrandingEmployerBranding:
      allOf:
        - $ref: '#/components/schemas/EmployersBrandingEmployerBrandType'
        - $ref: '#/components/schemas/EmployersBrandingBrandParameters'
      description: Additional branding parameters
      title: Branding parameters
      type: object
    EmployersBrandingBrandParameters:
      oneOf:
        - $ref: '#/components/schemas/_IncludesNullableObject'
        - $ref: '#/components/schemas/EmployersBrandingConstructor'
        - $ref: '#/components/schemas/EmployersBrandingMakeup'
      title: Parameters
    EmployersBrandingConstructor:
      properties:
        constructor:
          properties:
            header_picture:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/EmployersBrandingConstructorHeaderPicture'
                - $ref: '#/components/schemas/_IncludesNullableObject'
              type: object
            url:
              description: Link to the webview version of the brand page
              type: string
            widgets:
              description: List of widgets on the page
              items:
                oneOf:
                  - $ref: '#/components/schemas/EmployersBrandingConstructorGalleryWidget'
              type: array
          required:
            - url
            - header_picture
            - widgets
          type: object
      required:
        - type
        - constructor
      title: Brand page created using the brand page builder
      type: object
    EmployersBrandingConstructorGalleryWidget:
      description: Gallery widget
      properties:
        items:
          description: List of images in the gallery
          items:
            properties:
              picture_id:
                description: Image ID
                type: number
              resized_path:
                description: Path to the image in the CDN storage
                type: string
            required:
              - picture_id
              - resized_path
            type: object
          type: array
        type:
          description: 'For a gallery, this value is ''gallery'''
          enum:
            - gallery
          type: string
      required:
        - type
        - items
      title: Gallery widget
      type: object
    EmployersBrandingConstructorHeaderPicture:
      description: Brand page header image
      properties:
        resized_path:
          description: Path to the image in the CDN storage
          type: string
      required:
        - resized_path
      title: Brand page header image
      type: object
    EmployersBrandingMakeup:
      properties:
        makeup:
          properties:
            header_picture:
              properties:
                mob_app_path:
                  description: Path to the page cover image for the mobile version and mobile apps
                  type: string
                web_path:
                  description: Path to the page cover image for the web version
                  type: string
              type: object
            url:
              description: Link to the webview version of the brand page
              type: string
          required:
            - url
          type: object
        template_code:
          description: 'Unique code of the active brand page template in the format "makeup:\d+"'
          example: 'makeup:123'
          type: string
        template_version_id:
          description: ID of the active version of the brand template page
          type: string
      required:
        - type
        - template_code
        - template_version_id
        - makeup
      title: Fully custom brand page appearance
      type: object
    EmployersBrandingEmployerBrandType:
      anyOf:
        - $ref: '#/components/schemas/EmployersBrandingBrandingType'
      title: Brand type
    EmployersBrandingBrandingType:
      properties:
        type:
          description: |
            Branding type:

              * `CONSTRUCTOR` — Builder-type branding
              * `MAKEUP` — "Makeup" (chameleon) branding
          enum:
            - CONSTRUCTOR
            - MAKEUP
          type: string
      title: Branding type
      type: object
    EmployersInsiderInterviews:
      properties:
        id:
          description: Interview ID
          type: string
        title:
          description: Interview title
          type: string
        url:
          description: Interview URL
          type: string
      required:
        - url
        - id
        - title
      title: Interview
      type: object
    _IncludesEmployerApplicantServices:
      description: Activated applicant services related to this employer
      properties:
        target_employer:
          description: Returns \"Want to work here\" service
          properties:
            count:
              description: Number of the current applicant resumes with the \"Want to work here\" service activated
              type: number
          type: object
      title: Applicant services
      type: object
    _IncludesLogoUrls:
      properties:
        '90':
          description: Logo URL where the shorter side is no less than 90px
          type: string
        '240':
          description: Logo URL where the shorter side is no less than 240px
          type: string
        original:
          description: URL of original size logo
          type: string
      required:
        - original
      title: Link to the logo
      type: object
    EmployersEmployerVacancyAreasResponse:
      allOf:
        - $ref: '#/components/schemas/EmployersEmployerVacancyAreasItems'
        - $ref: '#/components/schemas/_IncludesPagination'
      title: Successful response
    EmployersEmployerVacancyAreasItems:
      properties:
        items:
          description: List of regions
          items:
            $ref: '#/components/schemas/_IncludesArea'
          minItems: 0
          type: array
      required:
        - items
      title: List of regions
    EmployersEmployersList:
      properties:
        found:
          description: Number of results found
          type: integer
        items:
          description: Employers found
          items:
            $ref: '#/components/schemas/EmployersEmployerItem'
          minItems: 0
          type: array
        page:
          description: Page number
          type: integer
        pages:
          description: Total pages
          type: integer
        per_page:
          description: Results per page
          type: integer
      required:
        - items
        - found
        - page
        - pages
        - per_page
      title: Successful response
    EmployersEmployerItem:
      allOf:
        - $ref: '#/components/schemas/EmployersEmployerItemShort'
        - properties:
            is_identified_by_esia:
              description: Indicates whether the employer has been identified via ESIA
              type: boolean
            open_vacancies:
              description: Number of employer's active vacancies
              type: number
          required:
            - open_vacancies
          type: object
      title: Employer
    EmployersEmployerItemShort:
      properties:
        alternate_url:
          description: Link to the employer's profile on the site
          type: string
        id:
          description: Employer's ID
          type: string
        logo_urls:
          description: |
            Links to employer logo images in different sizes. `original` is a raw unprocessed logo, which may be large. If the originally uploaded logo is smaller than 240px and/or 90px on its shorter side, the corresponding keys will contain links to images of the original size. The object may be `null` if the company has not uploaded a logo. The client should handle the case of the logo is missing at the specified link (response with `404 Not Found`). A company may not have 90 and 240 logos
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesLogoUrls'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        name:
          description: Employer's name
          type: string
        url:
          description: Link to the full employer description
          type: string
        vacancies_url:
          description: Link to the search results for the employer's vacancies
          type: string
      required:
        - id
        - name
        - url
        - alternate_url
        - vacancies_url
      title: Employer
    EmployersVacancyBrandedTemplatesList:
      properties:
        items:
          description: List of available branded vacancy templates
          items:
            properties:
              id:
                description: Branded vacancy template ID
                minLength: 1
                type: string
              name:
                description: Branded vacancy template name
                type: string
              version_id:
                description: |
                  Branded vacancy template version ID. 
                  `null` for customizable templates
                nullable: true
                type: string
            required:
              - id
              - version_id
              - name
            type: object
          type: array
      required:
        - items
      title: Successful response
      type: object
    ErrorsChatsChatBadArgument:
      oneOf:
        - $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        - $ref: '#/components/schemas/ErrorsChatsBadRequestErrors'
        - $ref: '#/components/schemas/ErrorsCommonBadJsonDataErrors'
      title: Errors
    ErrorsChatsBadRequestErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsChatsBadRequestError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Bad request
    ErrorsChatsBadRequestError:
      additionalProperties: false
      properties:
        reason:
          description: |-
            Description of the reason for the error:
            * `spam_detected` — suspected spam or inappropriate language  
            * `required` — the field is required  
            * `text_or_file_upload_ids` — only text or only uploaded file identifiers can be sent  
            * `temporary_disabled` — file sending is temporarily disabled
          enum:
            - required
            - spam_detected
            - text_or_file_upload_ids
            - temporary_disabled
          example: required
          type: string
        type:
          description: Text identifier of the error type
          enum:
            - text
            - multiple_fields
            - file_upload_ids
          example: text
          type: string
      required:
        - type
        - reason
      title: Message sending errors
      type: object
    ErrorsCommonBadJsonDataErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            bad_argument:
              deprecated: true
              type: string
            bad_arguments:
              deprecated: true
              items:
                properties:
                  description:
                    type: string
                  name:
                    description: Field with an error
                    type: string
                type: object
              type: array
            description:
              deprecated: true
              description: Error description
              type: string
            errors:
              description: Array of error details
              items:
                anyOf:
                  - $ref: '#/components/schemas/ErrorsCommonBadJsonDataError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Invalid json
    ErrorsCommonBadJsonDataError:
      properties:
        description:
          description: Error description
          example: Unexpected value
          nullable: true
          type: string
        pointer:
          description: |
            Path to the parameter with an error.

            The JsonPointer format [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901) is used for the specification
          example: /contacts/phones/1/number
          type: string
        reason:
          description: |
            Error reason. Possible values:
              * `required` — required field is missing
              * `invalid` — value is invalid
              * `size_less_than_min` — array is empty
              * `unexpected` — value is unexpected
              * `greater_than_max` — value exceeds maximum
              * `deprecated` — value is deprecated and no longer used
          enum:
            - required
            - invalid
            - size_less_than_min
            - greater_than_max
            - unexpected
            - deprecated
          example: required
          type: string
        type:
          description: Text identifier of the error type
          enum:
            - bad_json_data
          example: bad_json_data
          type: string
        value:
          description: Name of field with an error
          example: employer_id
          type: string
      required:
        - type
      title: Invalid data
      type: object
    ErrorsChatsChatForbidden:
      oneOf:
        - $ref: '#/components/schemas/ErrorsChatsForbiddenErrors'
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
      title: Errors
    ErrorsChatsForbiddenErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsChatsForbiddenError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Access denied
    ErrorsChatsForbiddenError:
      additionalProperties: false
      properties:
        reason:
          description: Error reason description
          enum:
            - chat_blocked
            - message_edit_not_allowed
            - chat_without_vacancy_forbidden
          example: chat_blocked
          type: string
        type:
          description: Text identifier of the error type
          enum:
            - forbidden
          example: forbidden
          type: string
      required:
        - type
        - reason
      title: Action with message forbidden
      type: object
    ErrorsChatsForbiddenDeleteErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsChatsForbiddenDeleteError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Access denied
    ErrorsChatsForbiddenDeleteError:
      additionalProperties: false
      properties:
        reason:
          description: |-
            Description of the reason for the error. Possible values:

            * `message_delete_not_allowed` — attempt to delete someone else’s message in the chat
          enum:
            - message_delete_not_allowed
          example: message_delete_not_allowed
          type: string
        type:
          description: Text identifier of the error type
          enum:
            - forbidden
          example: forbidden
          type: string
      required:
        - type
      title: Action with message forbidden
      type: object
    ErrorsChatsMessageErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsChatsMessageError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Not found
    ErrorsChatsMessageError:
      additionalProperties: false
      properties:
        reason:
          description: |-
            Description of the reason for the error:  
            * `not integer value` — The provided value is not an integer  
            * `bad_order` — Invalid `order` parameter  
            * `bad_start_message_id` — Invalid `start_message_id` parameter  
            * `bad_limit` — Invalid `limit` parameter  
            * `limit_negative_or_more_than_50` — The `limit` parameter is less than 0 or greater than 50
          type: string
        type:
          description: Text identifier of the error type
          enum:
            - bad_argument
          example: bad_argument
          type: string
      required:
        - type
      title: Message retrieval error
      type: object
    ErrorsChatsNotFoundErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsChatsNotFoundError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Not found
    ErrorsChatsNotFoundError:
      additionalProperties: false
      properties:
        reason:
          description: Error reason description
          type: string
        type:
          description: Text identifier of the error type
          enum:
            - not_found
          example: not_found
          type: string
      required:
        - type
      title: Error
      type: object
    ErrorsCommonBadAuthCaptchaPrivate:
      oneOf:
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
      title: Errors
    ErrorsCommonBadAuthorizationBadParameters:
      oneOf:
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationInvalidRequestError'
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationInvalidClientError'
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationInvalidGrantError'
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationUnsupportedGrantTypeError'
      title: Invalid request parameters
    ErrorsCommonBadAuthorizationInvalidClientError:
      properties:
        error:
          description: |
            Error type identifier; uses values defined in [RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749#section-5.2)
          enum:
            - invalid_client
            - forbidden
          example: invalid_client
          type: string
        error_description:
          description: |
            Additional error description
            * `client_id or client_secret not found` — Error occurs if the specified `client_id` is not found or has been deleted, or if an incorrect `client_secret` is provided
          enum:
            - client_id or client_secret not found
            - app token refresh too early
          example: client_id or client_secret not found
          type: string
      required:
        - error
        - error_description
      title: Invalid_client
      type: object
    ErrorsCommonBadAuthorizationInvalidGrantError:
      properties:
        error:
          description: |
            Error type identifier; uses values defined in [RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749#section-5.2)
          enum:
            - invalid_grant
          example: invalid_grant
          type: string
        error_description:
          description: |
            Additional error description
            * `token has already been refreshed` — Error occurs when the user attempts to re-use a refresh token
            * `token not expired` — Error occurs when the user attempts to refresh a valid access token. An access token can only be refreshed after it has expired
            * `token was revoked` — Token has been revoked. For example, a token is revoked when the account password has expired
            * `bad token ` — Invalid token value is provided
            * `code has already been used` — The `authorization_code` has already been used (it can only be used once)
            * `code expired` — The `authorization_code` has expired
            * `code was revoke` — The `authorization_code` has been revoked (this occurs when the account password has expired)
            * `token deactivated ` — Token has been deactivated. A token is deactivated after the user changes their password
            * `code verifier mismatch` — The provided `code_verifier` does not match the `code_challenge` specified during the authorization request (PKCE)
          enum:
            - token has already been refreshed
            - token not expired
            - token was revoked
            - bad token
            - code has already been used
            - code expired
            - code was revoke
            - token deactivated
            - code verifier mismatch
          example: token not expired
          type: string
      required:
        - error
        - error_description
      title: Invalid_grant
      type: object
    ErrorsCommonBadAuthorizationInvalidRequestError:
      properties:
        error:
          description: |
            Error type identifier; uses values defined in [RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749#section-5.2)
          enum:
            - invalid_request
          example: invalid_request
          type: string
        error_description:
          description: |
            Additional error description
            * `account not found` — Invalid pair of `client_id` and `client_secret` is provided
            * `account is locked` — User account is blocked. Contact the site support team (mail to api@hh.ru)
            * `password invalidated` — Password for the user account has expired. The user should reset the password on `https://hh.ru`
            * `login not verified` — User account is not verified. Contact the site support team
            * `bad redirect url` — Invalid `redirect_url` is provided
            * `token is empty` — No `refresh_token` is provided
            * `token not found` — Invalid `refresh_token` is provided
            * `code not found ` — The `authorization_code` provided is not found
          enum:
            - account not found
            - account is locked
            - password invalidated
            - login not verified
            - bad redirect url
            - token is empty
            - token not found
            - code not found
          example: account not found
          type: string
      required:
        - error
        - error_description
      title: Invalid_request
      type: object
    ErrorsCommonBadAuthorizationUnsupportedGrantTypeError:
      properties:
        error:
          description: |
            Error type identifier; uses values defined in [RFC 6749](https://datatracker.ietf.org/doc/html/rfc6749#section-5.2)
          enum:
            - unsupported_grant_type
          example: unsupported_grant_type
          type: string
        error_description:
          description: |
            Additional error description
            * `unsupported grant_type` — Occurs when an invalid value is provided in the `grant_type` field
          enum:
            - unsupported grant_type
          example: unsupported grant_type
          type: string
      required:
        - error
        - error_description
      title: Unsupported_grant_type
      type: object
    ErrorsCommonBadAuthorizationCommonAndPaymentMethodError:
      oneOf:
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationPaymentMethodErrors'
      title: Authorization error or access error to a paid method
    ErrorsCommonBadAuthorizationPaymentMethodErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationPaymentMethodError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Paid method errors
    ErrorsCommonBadAuthorizationPaymentMethodError:
      additionalProperties: false
      properties:
        type:
          description: Text identifier of the error type
          enum:
            - api_access_payment
          example: api_access_payment
          type: string
        value:
          description: |
            Error description.

            This error occurs because you are requesting a [paid method](#tag/Employer-services/operation/get-payable-api-method-access) without purchasing access
          enum:
            - action_must_be_payed
          example: action_must_be_payed
          type: string
      required:
        - type
        - value
      title: Paid method error
      type: object
    ErrorsCommonBadRequestBadArgumentBadRequestAndBadArgumentErrors:
      oneOf:
        - $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        - $ref: '#/components/schemas/ErrorsCommonBadRequestErrors'
      title: Request parameter error
    ErrorsCommonBadRequestErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            description:
              deprecated: true
              description: Error description
              type: string
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsCommonBadRequestError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Request body errors
    ErrorsCommonBadRequestError:
      additionalProperties: false
      properties:
        type:
          description: Text identifier of the error type
          enum:
            - bad_request
          example: bad_request
          type: string
      required:
        - type
      title: Common error
      type: object
    ErrorsCommonBadRequestBadJsonData:
      oneOf:
        - $ref: '#/components/schemas/ErrorsCommonBadJsonDataErrors'
        - $ref: '#/components/schemas/ErrorsCommonBadRequestErrors'
      title: Errors
    ErrorsCommonCaptchaErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            description:
              description: Error description
              example: Forbidden
              type: string
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsCommonCaptchaError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Bad authorization
    ErrorsCommonConflictErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array containing error data
              items:
                $ref: '#/components/schemas/ErrorsCommonConflictError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Request conflict errors with current state/data
    ErrorsCommonConflictError:
      additionalProperties: false
      properties:
        reason:
          description: Reason for the error
          example: already_exists
          type: string
        type:
          description: Text identifier of the error type
          enum:
            - conflict
          example: conflict
          type: string
      required:
        - type
        - reason
      title: Request conflict error with current state/data
      type: object
    ErrorsDictionariesBadArgumentErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsDictionariesBadArgumentError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Wrong additional case
    ErrorsDictionariesBadArgumentError:
      additionalProperties: false
      properties:
        type:
          description: Text identifier of the error type
          enum:
            - bad_argument
          example: bad_argument
          type: string
        value:
          description: Field with an error
          example: wrong_case
          type: string
      required:
        - type
        - value
      title: Request parameter error
      type: object
    ErrorsDraftError:
      additionalProperties: false
      properties:
        type:
          description: Text identifier of the error type
          enum:
            - vacancy
          example: vacancy
          type: string
        value:
          description: Error value
          enum:
            - vacancy_draft_limit_exceeded
          example: vacancy_draft_limit_exceeded
          type: string
      required:
        - type
        - value
      title: Error
      type: object
    ErrorsEmployerManagerBadAuthorizationErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            description:
              description: Error description
              example: Forbidden
              type: string
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsEmployerManagerBadAuthorizationError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Bad authorization
    ErrorsEmployerManagerBadAuthorizationError:
      additionalProperties: false
      properties:
        allowed_accounts:
          description: |
            List of manager accounts available for the token if the current work account is blocked. Applicable for the employer authorization only
          items:
            $ref: '#/components/schemas/ManagerAccount'
          minItems: 1
          type: array
        reason:
          description: |
            Adding and editing employer's manager errors:
              * `already_exist` — Manager with this email address already exists
              * `creation_limit_exceeded` — Manager creation limit has been reached
              * `not_editable` — The *field_name* field cannot be edited
          enum:
            - already_exist
            - creation_limit_exceeded
            - not_editable
          example: already_exist
          type: string
        type:
          description: Text identifier of the error type
          enum:
            - forbidden
            - oauth
            - manager_extra_accounts
            - manager_accounts
            - managers
          example: oauth
          type: string
        value:
          description: |
            General errors:
              * `bad_authorization` — Authorization token doesn't exist or is invalid
              * `token_expired` — The `access_token` has expired, [a `refresh_token` must be obtained](#section/Authorization/Obtaining-access-and-refresh-tokens)
              * `token_revoked` — The token has been revoked by the user or server, the application must [request a new authorization](#section/Authorization)
              * `application_not_found` — Your application has been deleted
              * `used_manager_account_forbidden` — [Work account](#tag/Employer-managers/operation/get-manager-accounts) is blocked
              * `manager_extra_account_not_found` — Invalid account ID provided in the header
              * `email` — Manager with this email address already exists
              * `user_auth_expected` — Application authorization has been provided, but the method requires [user authorization](#section/Authorization/User-authorization)
              * `manager_type` — The `manager_type` field cannot be edited
              * `area` — The `area` field cannot be edited
              * `last_name` — The `lastName` field cannot be edited
              * `first_name` — The `firstName` field cannot be edited
              * `middle_name` — The `middleName` field cannot be edited
          enum:
            - bad_authorization
            - token_expired
            - token_revoked
            - application_not_found
            - manager_extra_account_not_found
            - used_manager_account_forbidden
            - email
            - user_auth_expected
            - manager_type
            - area
            - last_name
            - first_name
            - middle_name
          example: bad_authorization
          type: string
      required:
        - type
      title: Error
      type: object
    ErrorsEmployerManagerBadRequestAndBadArgumentErrors:
      oneOf:
        - $ref: '#/components/schemas/ErrorsEmployerManagerBadArgumentErrors'
        - $ref: '#/components/schemas/ErrorsCommonBadRequestBadArgumentBadRequestAndBadArgumentErrors'
      title: Errors
    ErrorsEmployerManagerBadArgumentErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsEmployerManagerBadArgumentError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Request parameter errors
    ErrorsEmployerManagerBadArgumentError:
      additionalProperties: false
      properties:
        reason:
          description: Error description
          example: too_long_value
          type: string
        type:
          description: Text identifier of the error type
          enum:
            - managers
          example: managers
          type: string
        value:
          description: |
            Field with an error
          example: resume_id
          type: string
      required:
        - type
      title: Request parameter error
      type: object
    ErrorsNegotiationForbiddenErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            description:
              description: Error description
              example: Forbidden
              type: string
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsNegotiationForbiddenError'
              minItems: 1
              type: array
            oauth_error:
              description: |
                Authorization errors:
                  * `token-revoked` — The token has been revoked by the user or server, the application must [request a new authorization](#tag/Employer-authorization/operation/authorize)
                  * `token-expired` — The `access_token` has expired, [a `refresh_token` must be obtained](#tag/Employer-authorization/operation/authorize)
              enum:
                - token-revoked
                - token-expired
              example: token-revoked
              type: string
          required:
            - errors
          type: object
      description: Error details
      title: Response/invitation access errors
    ErrorsNegotiationForbiddenError:
      anyOf:
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationError'
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationEmployerError'
        - $ref: '#/components/schemas/ErrorsCommonCaptchaError'
        - $ref: '#/components/schemas/ErrorsNegotiationTopicsStateChangeDeniedError'
      title: Access error and employer authorization error
    ErrorsNegotiationTopicsStateChangeDeniedError:
      additionalProperties: false
      properties:
        type:
          description: Text identifier of the error type
          enum:
            - negotiations
          example: negotiations
          type: string
        value:
          description: |
            Errors in changing the status of responses:
              * `application_denied` — Response/invitation access error. May occur in case of sending multiple responses to a different status 
            if at least one of the responses belongs to another vacancy
          enum:
            - application_denied
          example: application_denied
          type: string
      required:
        - type
        - value
      title: Changing response status for a vacancy errors
      type: object
    ErrorsNegotiationNegotiationsBadAuthorizationErrors:
      description: Error details
      oneOf:
        - $ref: '#/components/schemas/ErrorsVacancyApplyForbiddenErrors'
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
      title: Bad authorization
    ErrorsVacancyApplyForbiddenErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            bad_argument:
              deprecated: true
              enum:
                - vacancy_id
                - resume_id
              type: string
            bad_arguments:
              deprecated: true
              items:
                properties:
                  description:
                    type: string
                  name:
                    description: |
                      Field with an error.
                      Possible values:
                      * `vacancy_id` — Invalid region ID specified
                      * `resume_id` — Invalid region ID specified
                    enum:
                      - vacancy_id
                      - resume_id
                    type: string
                type: object
              type: array
            description:
              description: Error description
              example: Forbidden
              type: string
            errors:
              description: Array of error details
              items:
                anyOf:
                  - $ref: '#/components/schemas/ErrorsVacancyApplyForbiddenApplicantEmployerError'
                  - $ref: '#/components/schemas/ErrorsVacancyApplyForbiddenEmployerError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Vacancy application errors
    ErrorsVacancyApplyForbiddenApplicantEmployerError:
      additionalProperties: false
      properties:
        type:
          description: The text identifier of the error class
          enum:
            - negotiations
          example: negotiations
          type: string
        value:
          description: |
            Vacancy negotiation error:
              * `resume_not_found` — Resume in the response/invitation is hidden, deleted, or not found
              * `already_applied` — Response/invitation already exists for this vacancy (the `resume_id` + `vacancy_id` combination)
              * `application_denied` — General application denial error when additional information is unavailable
              * `limit_exceeded` — Response/invitation limit exceeded
              * `message_cannot_be_empty` — Negotiation message cannot be empty
              * `disabled_by_employer` — Negotiation by response has been disabled by the employer
              * `resume_deleted` — Resume used for this response has been deleted or hidden
              * `archived` — Vacancy that is referenced in the response has been archived
              * `chat_is_not_ready` — Operation temporarily unavailable, waiting for chat creation
          enum:
            - resume_not_found
            - already_applied
            - application_denied
            - limit_exceeded
            - message_cannot_be_empty
            - disabled_by_employer
            - resume_deleted
            - archived
            - chat_is_not_ready
          example: resume_not_found
          type: string
      required:
        - type
        - value
      title: Vacancy negotiation error
      type: object
    ErrorsVacancyApplyForbiddenEmployerError:
      additionalProperties: false
      properties:
        type:
          description: The text identifier of the error class
          enum:
            - negotiations
          example: negotiations
          type: string
        value:
          description: |
            Vacancy negotiation error:
              * `invalid_vacancy` — Vacancy from the response/invitation has been archived or hidden
              * `wrong_state` — The action cannot be performed in the current response/invitation status
              * `empty_message` — Empty message text provided
              * `too_long_message` — Message text exceeds maximum length
              * `inappropriate_language_message` — Message text contains obscenity
              * `resource_policy_violation_message` — Message text violates service usage policies
              * `address_not_found` — Address provided does not exist or belongs to another employer
              * `not_enough_purchased_services` — Insufficient paid services. This usually refers to [access to the resume database](https://hh.ru/price/dbaccess)
              * `in_a_row_limit` — Maximum consecutive messages exceeded. Please wait for the partner's reply to the message
              * `overall_limit` — Message limit exceeded
              * `no_invitation` — Messaging unavailable because no invitation has been sent in this response
              * `chat_archived` — Chat has been archived
              * `topic_archived` — Response/invitation has been archived
          enum:
            - invalid_vacancy
            - 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
            - chat_archived
            - topic_archived
          example: invalid_vacancy
          type: string
      required:
        - type
        - value
      title: Vacancy negotiation error
      type: object
    ErrorsNegotiationNegotiationsNotFoundErrors:
      description: Error details
      oneOf:
        - $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
        - $ref: '#/components/schemas/ErrorsNegotiationNotFoundErrors'
      title: Not found
    ErrorsNegotiationNotFoundErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            description:
              description: Error type description
              type: string
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsNegotiationNotFoundError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Not found
    ErrorsNegotiationNotFoundError:
      additionalProperties: false
      properties:
        type:
          description: Text identifier of the error type
          enum:
            - negotiations
          example: negotiations
          type: string
        value:
          description: Error details
          enum:
            - topic_not_found
          example: topic_not_found
          type: string
      required:
        - type
        - value
      title: Error
      type: object
    ErrorsResumeTooManyRequestsEmployerErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            description:
              deprecated: true
              description: Error description
              type: string
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsResumeTooManyRequestsEmployerError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Resume action errors
    ErrorsResumeTooManyRequestsEmployerError:
      additionalProperties: false
      properties:
        type:
          description: Text identifier of the error type
          enum:
            - resumes
          example: resumes
          type: string
        value:
          description: |
            General errors:
              * `view_limit_exceeded` — Manager limits have been exceeded
          enum:
            - view_limit_exceeded
          example: view_limit_exceeded
          type: string
      required:
        - type
        - value
      title: Error
      type: object
    ErrorsResumeTooManyRequestsEmployerResumeSearchErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array with error details
              items:
                $ref: '#/components/schemas/ErrorsResumeTooManyRequestsEmployerResumeSearchError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Resume action errors
    ErrorsResumeTooManyRequestsEmployerResumeSearchError:
      additionalProperties: false
      properties:
        type:
          description: Text identifier of the error type
          enum:
            - resumes
          example: resumes
          type: string
        value:
          description: |
            Error description. Possible values:

            * `daily_resume_search_limit_exceeded` — Daily limit for resume searches via the API for the employer has been exceeded. Search is available on the website
          enum:
            - daily_resume_search_limit_exceeded
          example: daily_resume_search_limit_exceeded
          type: string
      required:
        - type
        - value
      title: Error
      type: object
    ErrorsSavedSearchForbiddenErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            description:
              description: Error description
              example: Forbidden
              type: string
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsSavedSearchForbiddenError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Bad authorization
    ErrorsSavedSearchForbiddenError:
      additionalProperties: false
      properties:
        allowed_accounts:
          description: |
            List of manager accounts available for the token if the current work account is blocked. Applicable for the employer authorization flow only
          items:
            $ref: '#/components/schemas/ManagerAccount'
          minItems: 1
          type: array
        type:
          description: Text identifier of the error type
          enum:
            - saved_searches
            - forbidden
            - oauth
          example: oauth
          type: string
        value:
          description: |
            Possible errors:
            * `cant_send_to_yourself` — Cannot assign a saved search to yourself
            * `user_auth_expected` — Application authorization has been provided, but the method requires [user authorization](#section/Authorization/User-authorization)
          enum:
            - cant_send_to_yourself
            - user_auth_expected
          example: user_auth_expected
          type: string
      required:
        - type
      title: Error
      type: object
    ErrorsVacancyAddEditBadAuthForbiddenErrors:
      anyOf:
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        - $ref: '#/components/schemas/ErrorsVacancyAddEditForbiddenErrors'
      title: Errors
    ErrorsVacancyAddEditForbiddenErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            description:
              description: Error description
              example: Forbidden
              type: string
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsVacancyAddEditForbiddenError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Vacancy publishing and editing errors
    ErrorsVacancyAddEditForbiddenError:
      additionalProperties: false
      properties:
        description:
          description: Error description
          nullable: true
          type: string
        found:
          description: |
            Total number of duplicate vacancies. Returned only for `"value": "duplicate"`
          example: 2
          nullable: true
          type: number
        items:
          description: |
            Limited set of duplicate entries. May not include all duplicates. Returned only for `"value": "duplicate"`
          items:
            $ref: '#/components/schemas/_IncludesNumericId'
          nullable: true
          type: array
        type:
          description: Text identifier of the error type
          enum:
            - vacancies
          example: vacancies
          type: string
        value:
          description: |
            Vacancy publishing and editing error:
              * `not_enough_purchased_services` — Number of purchased services is insufficient to publish or update this vacancy type
              * `quota_exceeded` — Manager's quota for publishing this vacancy type has been exceeded
              * `duplicate` — Similar vacancy has already been published. Information about duplicate vacancies is provided in the response. This error can be forcibly disabled using the `?ignore_duplicates=true` parameter 
              * `replacement` — Vacancy has been significantly modified, which may result in blocking. To ignore the blocking risk, resend the request with the `?ignore_replacement_warning=true` parameter
              * `creation_forbidden` — Current manager is not authorized to publish vacancies
              * `unavailable_for_archived` — Editing is not available for archived vacancies
              * `conflict_changes` — Conflicting changes to vacancy data
          enum:
            - not_enough_purchased_services
            - quota_exceeded
            - duplicate
            - replacement
            - creation_forbidden
            - unavailable_for_archived
            - conflict_changes
          example: not_enough_purchased_services
          type: string
      required:
        - type
        - value
      title: Vacancy publishing and editing error
      type: object
    _IncludesNumericId:
      properties:
        id:
          description: ID
          type: number
      required:
        - id
      title: Numeric ID
      type: object
    ErrorsVacancyAddEditCombinedBadJsonDataErrors:
      anyOf:
        - $ref: '#/components/schemas/ErrorsCommonBadJsonDataErrors'
        - $ref: '#/components/schemas/ErrorsVacancyAddEditBadJsonDataErrors'
      title: Errors
    ErrorsVacancyAddEditBadJsonDataErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsVacancyAddEditBadJsonDataError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Invalid json
    ErrorsVacancyAddEditBadJsonDataError:
      properties:
        description:
          description: Error description
          example: Unexpected value
          nullable: true
          type: string
        pointer:
          description: |
            Path to the parameter with an error.

            The JsonPointer format [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901) is used for the specification
          example: /contacts/phones/1/number
          type: string
        reason:
          description: "Error reason. Possible values:\n  * `required` — Required field is missing in the request\n  * `invalid` — Invalid value in the request field\n  * `is_empty` — Empty value\n  * `wrong_size` — Value has incorrect size\n  * `is_too_short` — Value is too short\n  * `is_too_long` — Value size is too long\n  * `currency_code_is_invalid` — Invalid salary currency code\n  * `chosen_area_is_not_a_leaf_or_not_exist` — Invalid vacancy location (e.g., non-existent ID provided) or location is not a leaf region (city, locality)\n  * `email_in_description` — Email address found in the vacancy description\n  * `fly_in_fly_out_pay_for_performance` — This is a pay-per-contact vacancy — only available for fly-in fly-out vacancies\n  * `fly_in_fly_out_incompatible_employment_form` — Duration options can only be specified for fly-in fly-out employment type\n  * `anonymous_vacancy_contains_address` — Anonymous vacancy contains employer address\n  * `anonymous_vacancy_has_real_company_name` — Anonymous vacancy contains employer company name\n  * `only_for_anonymous_type` — Action is only available for anonymous vacancies\n  * `address_is_disabled` — Address is unavailable\n  * `vacancy_type_employer_billing_type_mismatch` — \tVacancy type is incompatible with current billing type\n  * `only_for_direct_type` — Action is only available for direct vacancies\n  * `address_is_empty_with_checked_show_metro_flag` — Address is empty but show metro option is enabled\n  * `address_has_no_metro_but_checked_show_metro_flag` — No metro station available for the provided address, but show metro option is enabled\n  * `default_vacancy_branded_template_is_invalid_or_not_enough_purchased_services` — Specified template is not in the list of [available templates](#tag/Employer-info/operation/get-vacancy-branded-templates-list). The template may also be unavailable if the [branded vacancy template](https://hh.ru/price/branding) service has not been purchased\n  * `department_code_prohibited_in_anonymous_vacancy` — Department code cannot be specified for anonymous vacancies\n  * `branded_template_prohibited_in_anonymous_vacancy` — Branded templates cannot be used for anonymous vacancies\n  * `value_conflict_with_business_rules` — Publishing a vacancy with the specified `billing_type` is prohibited\n  * `can_not_accept_kids` — Vacancy is not available for minors\n  * `can_not_edit_vacancy_after_moderation` — Vacancy title cannot be changed after moderation\n  * `employment_form_uncompatible_with_internship` — Employment type is incompatible with fly-in fly-out (FIFO) and internship\n  * `employment_form_uncompatible_with_work_format` — Employment type is incompatible with the specified work format\n  * `properties_existence` — Specified properties do not exist\n"
          enum:
            - required
            - invalid
            - is_empty
            - wrong_size
            - is_too_short
            - is_too_long
            - currency_code_is_invalid
            - chosen_area_is_not_a_leaf_or_not_exist
            - email_in_description
            - fly_in_fly_out_pay_for_performance
            - fly_in_fly_out_incompatible_employment_form
            - anonymous_vacancy_contains_address
            - anonymous_vacancy_has_real_company_name
            - only_for_anonymous_type
            - address_is_disabled
            - vacancy_type_employer_billing_type_mismatch
            - only_for_direct_type
            - address_is_empty_with_checked_show_metro_flag
            - address_has_no_metro_but_checked_show_metro_flag
            - default_vacancy_branded_template_is_invalid_or_not_enough_purchased_services
            - department_code_prohibited_in_anonymous_vacancy
            - branded_template_prohibited_in_anonymous_vacancy
            - value_conflict_with_business_rules
            - can_not_accept_kids
            - can_not_edit_vacancy_after_moderation
            - employment_form_uncompatible_with_internship
            - employment_form_uncompatible_with_work_format
            - properties_existence
          example: is_empty
          type: string
        type:
          description: Text identifier of the error type
          enum:
            - bad_json_data
            - vacancies
          example: bad_json_data
          type: string
        value:
          description: Field with an error
          example: salary
          type: string
      required:
        - type
      title: Vacancy publishing and editing error
      type: object
    ErrorsVacancyBadAuthAndBadAppVacancyPublicationErrors:
      oneOf:
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
      title: Errors
    ErrorsVacancyErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsVacancyError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Errors
    ErrorsVacancyError:
      additionalProperties: false
      properties:
        found:
          description: Number of duplicate vacancies found
          type: number
        items:
          description: Array of duplicate vacancy IDs
          items:
            nullable: false
            properties:
              id:
                description: Vacancy ID
                example: 78789890
                type: number
            required:
              - id
            type: object
          minItems: 1
          type: array
        reason:
          description: Error reason
          example: is_empty
          type: string
        type:
          description: Error type
          example: bad_json_data
          type: string
        value:
          description: Field with an error
          example: specializations
          type: string
      required:
        - type
        - value
      title: Error
      type: object
    ErrorsVacancyProlongateForbidden:
      anyOf:
        - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        - $ref: '#/components/schemas/ErrorsVacancyProlongateErrors'
      title: Errors
    ErrorsVacancyProlongateErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/ErrorsVacancyProlongateError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Vacancy prolongation errors
    ErrorsVacancyProlongateError:
      additionalProperties: false
      properties:
        type:
          description: Error type
          enum:
            - vacancies
          example: vacancies
          type: string
        value:
          description: |
            Error reason:

            * `not_enough_purchased_services` — Number of purchased services is insufficient to prolongate this vacancy type
            * `quota_exceeded` — Manager's quota for publishing this vacancy type has been exceeded
            * `prolongation_forbidden` — Prolongation of vacancies is unavailable for the current manager
            * `unavailable_for_archived` — Prolongation of vacancies is unavailable for the archived vacancy
            * `too_early` — Prolongation is requested before the allowed time.
            * `not_premoderated` — Prolongation is not available for vacancies that have not passed the moderation process
          enum:
            - not_enough_purchased_services
            - quota_exceeded
            - prolongation_forbidden
            - unavailable_for_archived
            - too_early
            - not_premoderated
          example: quota_exceeded
          type: string
      required:
        - type
        - value
      title: Error
      type: object
    LocalesLocales:
      items:
        $ref: '#/components/schemas/LocalesLocaleItem'
      title: List of available locales
      type: array
    LocalesLocaleItem:
      allOf:
        - $ref: '#/components/schemas/LocalesResumeLocaleItem'
        - properties:
            current:
              description: 'Returns `true` for the current locale, `false` for others'
              type: boolean
          required:
            - id
            - name
            - current
          type: object
      title: Locale
    LocalesResumeLocaleItem:
      properties:
        id:
          description: Locale ID
          type: string
        name:
          description: Locale name
          type: string
      required:
        - id
        - name
      title: Localization
    LocalesResumeLocales:
      items:
        $ref: '#/components/schemas/LocalesResumeLocaleItem'
      title: List of available locales
      type: array
    MailTemplatesMailTemplateInput:
      additionalProperties: false
      properties:
        text:
          description: Template text
          type: string
      required:
        - text
      title: Response template for applicants
    MailTemplatesMailTemplates:
      items:
        $ref: '#/components/schemas/MailTemplatesMailTemplate'
      title: List of available applicant response templates
      type: array
    MailTemplatesMailTemplate:
      properties:
        editable:
          description: Whether the template text is editable
          type: boolean
        employer_state:
          description: Corresponding employer status for this template; may be empty if the template is not related to any of employer statuses
          type: string
        id:
          description: Template ID
          type: string
        name:
          description: Template name
          type: string
        template_modified:
          description: Whether this template has been modified by the employer or it is a template provided by HeadHunter
          type: boolean
        text:
          description: Template text
          type: string
        type:
          description: Delivery method for the message generated via template
          enum:
            - SMS
            - EMAIL
          type: string
        variables:
          description: Variables that can be inserted in the template
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          type: array
      required:
        - id
        - name
        - text
        - variables
        - type
        - template_modified
        - editable
      title: Applicant response template
    ManagerAccounts:
      additionalProperties: false
      description: Information about the manager's work accounts
      properties:
        current_account_id:
          description: |
            ID of the manager's current work account. Matches the value provided in the `X-Manager-Account-Id` header
          example: '87654321'
          type: string
        is_primary_account_blocked:
          description: Whether the manager's primary work account is blocked
          example: false
          type: boolean
        items:
          description: List of the manager's work accounts
          items:
            $ref: '#/components/schemas/ManagerAccount'
          minItems: 0
          type: array
        primary_account_id:
          description: Manager's primary work account ID
          example: '12345678'
          type: string
      required:
        - items
        - current_account_id
        - primary_account_id
        - is_primary_account_blocked
      title: Manager work accounts
      type: object
    ManagerSettings:
      additionalProperties: false
      description: Information about manager's preferences
      properties:
        default_currency:
          $ref: '#/components/schemas/ManagerSettingsCurrency'
        default_vacancy_branded_template:
          $ref: '#/components/schemas/VacancyBrandedTemplate'
        use_sms_notification:
          description: |
            Preference for using the `send_sms` flag
            with [applicant invitations](#tag/Employer-responsesinvitations/operation/invite-applicant-to-vacancy)
          example: true
          type: boolean
      required:
        - default_currency
        - use_sms_notification
      title: Manager's preferences
      type: object
    ManagerSettingsCurrency:
      additionalProperties: false
      description: |
        Preferred currency in the [published vacancy](#tag/Vacancy-management/operation/publish-vacancy)
      properties:
        abbr:
          description: Currency abbreviation
          example: RUR
          type: string
        code:
          description: Currency code
          example: RUR
          type: string
        name:
          description: Currency name
          example: Rubles
          type: string
      required:
        - code
        - name
        - abbr
      title: Preferred currency
      type: object
    VacancyBrandedTemplate:
      additionalProperties: false
      description: |
        Employer's branded vacancy template from the [list of available templates](#tag/Employer-info/operation/get-vacancy-branded-templates-list), or `null` if not used by the company
      nullable: true
      properties:
        id:
          description: 'Branded vacancy template ID from the [list of available templates](#tag/Employer-info/operation/get-vacancy-branded-templates-list)'
          example: default
          minLength: 1
          nullable: true
          type: string
        name:
          description: Branded vacancy template name
          example: Standard template
          nullable: true
          type: string
      title: Branded template
      type: object
    MeProfile:
      description: Information about the current authorized user
      discriminator:
        mapping:
          applicant: '#/components/schemas/MeApplicantProfile'
          application: '#/components/schemas/MeAnyProfile'
          employer: '#/components/schemas/MeManagerProfile'
          employer_integration: '#/components/schemas/MeEmployerProfile'
        propertyName: auth_type
      oneOf:
        - $ref: '#/components/schemas/MeAnyProfile'
        - $ref: '#/components/schemas/MeApplicantProfile'
        - $ref: '#/components/schemas/MeManagerProfile'
        - $ref: '#/components/schemas/MeEmployerProfile'
      title: Information about the current authorized user
    MeAnyProfile:
      allOf:
        - $ref: '#/components/schemas/MeCommonProfile'
        - properties: {}
          type: object
      description: |
        Contains flags relevant for any type of authorization: applicant, employer, application
      title: Profile flags
      type: object
    MeCommonProfile:
      description: |
        Contains flags relevant for any type of authorization: applicant, employer, application
      discriminator:
        mapping:
          applicant: '#/components/schemas/MeApplicantProfile'
          application: '#/components/schemas/MeAnyProfile'
          employer: '#/components/schemas/MeManagerProfile'
          employer_integration: '#/components/schemas/MeEmployerProfile'
        propertyName: auth_type
      properties:
        auth_type:
          description: Authorization type
          example: applicant
          nullable: true
          type: string
        is_admin:
          description: Whether the current user is a site administrator
          example: false
          type: boolean
        is_applicant:
          description: Whether the current user is an applicant
          example: false
          type: boolean
        is_application:
          description: Whether the authorized client is an application
          example: false
          type: boolean
        is_employer:
          description: Whether the current user is a manager
          example: false
          type: boolean
        is_employer_integration:
          description: Whether the current user is an employer
          example: false
          type: boolean
      required:
        - is_application
        - is_applicant
        - is_employer
        - is_admin
        - is_employer_integration
        - auth_type
      title: Profile flags
      type: object
    MeApplicantProfile:
      allOf:
        - $ref: '#/components/schemas/MeAnyUserProfile'
        - additionalProperties: true
          properties:
            counters:
              $ref: '#/components/schemas/MeApplicantProfileCounters'
            employer:
              deprecated: true
              nullable: true
              type: object
            is_in_search:
              description: Indicates whether the applicant has "looking for a job" status
              example: false
              type: boolean
            linked_socials:
              description: Social networks linked as authorization methods
              items:
                $ref: '#/components/schemas/AuthMethodsSocialNetwork'
              type: array
            manager:
              deprecated: true
              nullable: true
              type: object
            negotiations_url:
              description: |
                Reference to current user responses/invitations list api-service
              format: uri
              type: string
            personal_manager:
              deprecated: true
              nullable: true
              type: object
            profile_videos:
              $ref: '#/components/schemas/ProfileVideosList'
            resumes_url:
              description: |
                Reference to current user resumes list api-service
              example: 'https://api.hh.ru/resumes/mine'
              format: uri
              type: string
            user_statuses:
              $ref: '#/components/schemas/UserStatusesApplicant'
          required:
            - counters
            - resumes_url
            - negotiations_url
            - is_in_search
            - linked_socials
          type: object
      description: Profile of the current user authorized as an applicant
      title: Applicant profile
    AuthMethodsSocialNetwork:
      properties:
        id:
          description: 'Social network ID (VK, OK, ESIA, Gplus, Mail)'
          example: VK
          type: string
        name:
          description: Social network name
          example: VK
          type: string
      required:
        - id
        - name
      title: Social network
      type: object
    MeAnyUserProfile:
      allOf:
        - $ref: '#/components/schemas/MeAnyProfile'
        - additionalProperties: true
          properties:
            email:
              description: Current user email
              example: ivanov@example.com
              format: email
              nullable: true
              type: string
            first_name:
              description: Current user first name
              example: Alex
              type: string
            id:
              description: Current user ID
              example: '12345678'
              type: string
            is_anonymous:
              deprecated: true
              type: boolean
            last_name:
              description: Current user last name
              example: Ivanov
              type: string
            mid_name:
              deprecated: true
              example: Nikolaevich
              nullable: true
              type: string
            middle_name:
              description: Current user middle name
              example: Nikolaevich
              nullable: true
              type: string
            phone:
              description: Current user phone number
              example: '79164555555'
              format: phone
              nullable: true
              type: string
          required:
            - id
            - first_name
            - last_name
          type: object
      description: The base profile of the current user who is authorized as an applicant or employer
      title: Base profile
    MeApplicantProfileCounters:
      description: Applicant counter information
      properties:
        new_resume_views:
          description: Total number of new views across all of the current user's resumes
          example: 2
          minimum: 0
          type: integer
        resumes_count:
          description: Total number of created resumes of the current user
          example: 5
          minimum: 0
          type: integer
        unread_negotiations:
          description: 'Number of new unread conversations (with has_updates: true)'
          example: 1
          minimum: 0
          type: integer
      required:
        - unread_negotiations
        - new_resume_views
        - resumes_count
      title: Applicant counters
      type: object
    ProfileVideosList:
      description: List of profile videos for the current or the requested applicant
      example:
        $ref: '#/components/examples/ProfileVideosProfileVideosList/value'
      properties:
        items:
          items:
            properties:
              download_url:
                properties:
                  expires_at:
                    description: Date and time until the link is valid
                    type: string
                  url:
                    description: Video download link
                    type: string
                required:
                  - url
                  - expires_at
                type: object
              id:
                description: Video ID
                type: string
            required:
              - id
              - download_url
            type: object
          type: array
      required:
        - items
      title: List of profile videos
      type: object
    UserStatusesApplicant:
      properties:
        job_search_status:
          $ref: '#/components/schemas/UserStatusesJobSearchStatus'
          required:
            - id
            - name
            - last_change_time
      title: Applicant job seeking status
      type: object
    UserStatusesJobSearchStatus:
      properties:
        id:
          description: Status ID
          example: active_search
          type: string
        last_change_time:
          description: Time when the status was last changed
          example: 2024-02-08T10:48:44.267Z
          type: string
        name:
          description: Status name
          example: Actively seeking employment
          type: string
      title: Applicant job seeking status
      type: object
    MeEmployerProfile:
      allOf:
        - $ref: '#/components/schemas/MeCommonProfile'
        - additionalProperties: true
          properties:
            employer:
              $ref: '#/components/schemas/MeEmployerProfileCompany'
            personal_manager:
              $ref: '#/components/schemas/MeEmployerProfilePersonalManager'
          type: object
      description: Profile of the current user authorized as an employer
      title: Employer profile
    MeEmployerProfileCompany:
      description: Employer company information
      properties:
        id:
          description: Company ID
          example: '1455'
          type: string
        name:
          description: Company name
          example: HeadHunter
          type: string
      required:
        - id
        - name
      title: Employer company
      type: object
    MeEmployerProfilePersonalManager:
      description: Information on the personal manager for the employer
      properties:
        email:
          description: Personal manager email
          example: smirnov@example.com
          format: email
          type: string
        first_name:
          description: Manager first name
          example: Nick
          type: string
        id:
          description: Personal manager ID
          example: '1234567'
          type: string
        is_available:
          description: Whether the manager is currently available
          example: false
          type: boolean
        last_name:
          description: Manager last name
          example: Smirnov
          type: string
        photo_urls:
          additionalProperties: false
          description: Object with manager's photos
          nullable: true
          properties:
            big:
              description: URL of a manager's large-sized photo
              example: 'https://hhcdn.ru/file/big.jpg'
              format: uri
              nullable: true
              type: string
            small:
              description: URL of a manager's small-sized photo
              example: 'https://hhcdn.ru/file/small.jpg'
              format: uri
              nullable: true
              type: string
          type: object
        unavailable:
          additionalProperties: false
          description: 'Information about manager''s absence, or `null` if the manager is available'
          nullable: true
          properties:
            until:
              description: Time until the manager is unavailable for contact
              example: '2016-07-01T08:00:00+0400'
              format: dateTime
              type: string
          type: object
      required:
        - id
        - first_name
        - last_name
        - email
        - is_available
      title: Personal manager for the employer
      type: object
    MeManagerProfile:
      allOf:
        - $ref: '#/components/schemas/MeAnyUserProfile'
        - additionalProperties: true
          properties:
            employer:
              $ref: '#/components/schemas/MeEmployerProfileCompanyDeprecated'
            is_in_search:
              deprecated: true
              nullable: true
              type: object
            manager:
              $ref: '#/components/schemas/MeEmployerProfileManager'
            negotiations_url:
              deprecated: true
              nullable: true
              type: object
            personal_manager:
              $ref: '#/components/schemas/MeEmployerProfilePersonalManager'
            resumes_url:
              deprecated: true
              nullable: true
              type: object
          type: object
      description: Profile of the current user authorized as a manager
      title: Employer profile
    MeEmployerProfileCompanyDeprecated:
      allOf:
        - $ref: '#/components/schemas/MeEmployerProfileCompany'
        - additionalProperties: true
          properties:
            manager_id:
              deprecated: true
              description: Manager ID
              example: '4062820'
              type: string
          required:
            - manager_id
          type: object
      description: Information about the employer company
      title: Employer company
      type: object
    MeEmployerProfileManager:
      description: Information about the user as the company's manager
      properties:
        has_admin_rights:
          description: Whether the current manager has administrative permissions
          example: true
          type: boolean
        has_multiple_manager_accounts:
          description: 'Whether the user has multiple [work accounts](#tag/Employer-managers/operation/get-manager-accounts)'
          example: true
          type: boolean
        id:
          description: Manager ID
          example: '87654321'
          type: string
        is_main_contact_person:
          description: Whether the current manager is the company's main contact person
          example: true
          type: boolean
        manager_settings_url:
          description: 'URL to send a GET request to retrieve the [manager preferences](#tag/Employer-managers/operation/get-manager-settings)'
          example: 'https://api.hh.ru/employers/1455/managers/87654321/settings'
          format: uri
          type: string
      required:
        - id
        - has_admin_rights
        - has_multiple_manager_accounts
        - is_main_contact_person
        - manager_settings_url
      title: Company manager information
      type: object
    MetroCityMetroItem:
      properties:
        id:
          description: City ID
          type: string
        lines:
          description: List of metro lines in the city
          items:
            $ref: '#/components/schemas/MetroMetroLineWithStations'
          type: array
        name:
          description: City name
          type: string
      required:
        - id
        - name
        - lines
      title: City
    MetroMetroLineWithStations:
      allOf:
        - $ref: '#/components/schemas/MetroMetroLine'
        - properties:
            stations:
              description: List of line metro stations
              items:
                $ref: '#/components/schemas/MetroLineStation'
              type: array
          required:
            - stations
          type: object
      title: Metro line with stations
      type: object
    MetroLineStation:
      properties:
        id:
          description: Station ID
          type: string
        lat:
          description: Latitude of the station location
          type: number
        line:
          allOf:
            - $ref: '#/components/schemas/MetroMetroLine'
          description: Metro line
        lng:
          description: Longitude of the station location
          type: number
        name:
          description: Station name
          type: string
        order:
          description: Sequential number of the station in the metro line (starting with 0)
          type: integer
      required:
        - id
        - name
        - lat
        - lng
        - order
        - line
      title: Metro station
    MetroMetroLine:
      properties:
        hex_color:
          description: Line color in HEX format `RRGGBB` (from `000000` to `FFFFFF`)
          pattern: '^[0-9A-Fa-f]{6}$'
          type: string
        id:
          description: Line ID
          type: string
        name:
          description: Line name
          type: string
      required:
        - hex_color
        - id
        - name
      title: Metro line
    MetroMetroResponse:
      items:
        $ref: '#/components/schemas/MetroMetroItem'
      title: List of all metro stations in all cities
      type: array
    MetroMetroItem:
      properties:
        id:
          description: City ID
          type: string
        lines:
          description: List of metro lines in the city
          items:
            $ref: '#/components/schemas/MetroMetroLineWithStations'
          type: array
        name:
          description: City name
          type: string
        url:
          description: Request URL
          type: string
      required:
        - id
        - url
        - name
        - lines
      title: City
    NegotiationsCollectionNegotiationsResponse:
      allOf:
        - $ref: '#/components/schemas/_IncludesSortingType'
        - $ref: '#/components/schemas/_IncludesPagination'
        - $ref: '#/components/schemas/NegotiationsCollectionNegotiations'
      title: Negotiations of the collection
      type: object
    NegotiationsCollectionNegotiations:
      properties:
        hidden_count:
          description: Count of hidden negotiations
          nullable: true
          type: integer
        items:
          items:
            allOf:
              - $ref: '#/components/schemas/NegotiationsObjectsTopicItemCommon'
              - $ref: '#/components/schemas/NegotiationsNegotiationCommonFields'
              - properties:
                  chat_bot:
                    $ref: '#/components/schemas/NegotiationsObjectsChatBot'
                    description: Auto-survey responses
                    type: object
                  resume:
                    anyOf:
                      - $ref: '#/components/schemas/NegotiationsObjectsEmployerTopicResume'
                      - $ref: '#/components/schemas/_IncludesNullableObject'
                    description: Resume summary
                    nullable: true
                    type: object
                  url:
                    description: Link to the full negotiation
                    type: string
                required:
                  - employer_state
                  - templates
                  - actions
                  - url
                type: object
          minItems: 0
          type: array
      required:
        - items
      title: Collection negotiation response fields
      type: object
    NegotiationsNegotiationCommonFields:
      properties:
        actions:
          description: |
            Possible [negotiation actions](#tag/Employer-responsesinvitations/operation/change-negotiation-action)
          items:
            $ref: '#/components/schemas/VacancyNegotiationActions'
          minItems: 0
          type: array
        employer_state:
          $ref: '#/components/schemas/EmployersEmployersState'
        funnel_stage:
          description: Hiring stage information
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/EmployersFunnelStage'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        tags:
          description: Tags for the employer's response
          items:
            $ref: '#/components/schemas/_IncludesId'
          type: array
        templates:
          description: Email templates
          items:
            $ref: '#/components/schemas/VacancyTemplates'
          type: array
        test_result:
          anyOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/SkillVerificationsTestResultWithUrl'
          description: |
            Returns [Result of the test](#tag/Employer-responsesinvitations/operation/get-negotiation-test-results) attached to the vacancy
          nullable: true
          type: object
      title: Common negotiation fields
      type: object
    EmployersEmployersState:
      properties:
        id:
          description: Response state ID
          type: string
        name:
          description: State name
          type: string
      required:
        - id
        - name
      title: State information
      type: object
    EmployersFunnelStage:
      properties:
        id:
          description: Hiring stage ID
          type: string
        state:
          $ref: '#/components/schemas/EmployersEmployersState'
        substate:
          description: Hiring stage substatus information
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/EmployersFunnelSubstate'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
      required:
        - id
        - state
      title: Hiring stage information
      type: object
    EmployersFunnelSubstate:
      properties:
        name:
          description: Name of the stage substatus set by the employer
          type: string
      required:
        - name
      title: Hiring stage substatus information
      type: object
    SkillVerificationsTestResultWithUrl:
      allOf:
        - $ref: '#/components/schemas/SkillVerificationsTestResultNano'
        - properties:
            alternate_url:
              description: Link to the test result on the website
              type: string
            url:
              description: Link to the test result
              type: string
          required:
            - url
            - alternate_url
          type: object
      title: Test result with links
      type: object
    SkillVerificationsTestResultNano:
      description: Brief information about the test result
      properties:
        mark:
          description: |
            Test score categories:

            * `UNFAIR` — 0 to 14 points
            * `FAIR` — 15 to 44 points
            * `GOOD` — 45 to 79 points
            * `EXCELLENT` — 80 to 100 points
          enum:
            - UNFAIR
            - FAIR
            - GOOD
            - EXCELLENT
          type: string
        score:
          description: Test result in points (from 0 to 100)
          type: integer
      required:
        - score
        - type
      title: Test result summary
      type: object
    VacancyNegotiationActions:
      properties:
        arguments:
          description: Required and optional request arguments
          items:
            $ref: '#/components/schemas/VacancyArguments'
          type: array
        enabled:
          description: Whether the action can be performed
          type: boolean
        hidden:
          description: Whether the collection is hidden
          type: boolean
        id:
          description: Action ID
          type: string
        method:
          description: HTTP method to perform
          type: string
        name:
          description: Action name
          type: string
        resulting_employer_state:
          description: 'Documentation [Employer''s response/invitation status](#tag/Employer-responsesinvitations) to be set after performing the action. If the action does not change the status, the value is `null`'
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesIdName'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        sub_actions:
          description: Actions to move the response/invitation to a substatus
          items:
            $ref: '#/components/schemas/VacancyNegotiationSubActions'
          minItems: 0
          type: array
        templates:
          description: Email templates
          items:
            $ref: '#/components/schemas/VacancyTemplates'
          type: array
        url:
          description: URL to send the request to
          type: string
      required:
        - id
        - name
        - hidden
        - enabled
        - method
        - url
        - templates
        - arguments
      title: Actions on the response/invitation
      type: object
    VacancyArguments:
      properties:
        id:
          description: |
            Argument ID. Possible values:

            * `resume_id` — Resume ID
            * `vacancy_id` — Vacancy ID
            * `message` — Message that will be sent to the applicant via email. Use [templates](#tag/Employer-responsesinvitations/operation/get-mail-templates) to obtain texts
            * `send_sms` — Whether to notify the applicant about the invitation via SMS. Default is `false`. Note: the SMS uses a standard message that cannot be changed
            * `address_id` — [address ID](#tag/Employer-addresses) to be specified in the invitation
          enum:
            - resume_id
            - vacancy_id
            - message
            - send_sms
            - address_id
          type: string
        required:
          description: Whether the argument is required
          type: boolean
        required_arguments:
          description: 'Argument IDs that must be provided if this argument is specified. For example, the address is optional, but if provided, a message must also be specified'
          items:
            $ref: '#/components/schemas/_IncludesId'
          type: array
      required:
        - id
        - required
        - required_arguments
      title: Argument for the request
      type: object
    VacancyNegotiationSubActions:
      properties:
        id:
          description: Action ID
          type: string
        method:
          description: HTTP method to perform
          type: string
        name:
          description: Substate name
          type: string
        url:
          description: URL to send the request to
          type: string
      required:
        - id
        - name
        - method
        - url
      title: Actions on the response/invitation
      type: object
    VacancyTemplates:
      properties:
        id:
          description: Template ID
          type: string
        name:
          description: Template name
          type: string
        url:
          description: Template URL
          type: string
      required:
        - id
        - name
        - quick
        - url
      title: Template
      type: object
    NegotiationsObjectsChatBot:
      properties:
        auto_survey:
          description: Questions and answers for the auto-survey
          properties:
            text:
              description: Text containing the auto-survey questions and responses
              nullable: true
              type: string
          type: object
      title: Auto-survey responses
      type: object
    NegotiationsObjectsEmployerTopicResume:
      allOf:
        - $ref: '#/components/schemas/ResumeResumeShort'
        - $ref: '#/components/schemas/_IncludesUrl'
        - properties:
            contacts_open_until_date:
              description: Date of hiding resume contact information in `YYYY-MM-DD` format
              nullable: true
              type: string
            job_search_status:
              allOf:
                - $ref: '#/components/schemas/_IncludesIdNameLastChangeTime'
              description: |
                To obtain this data, provide the `with_job_search_status=true` parameter. 
                Possible values are listed in the `job_search_statuses_employer` field in the [field directory](#tag/Public-directories/operation/get-dictionaries)
            skill_set:
              description: Key skills (list of unique strings)
              items:
                type: string
              nullable: true
              type: array
          type: object
      title: Resume summary
    ResumeResumeShort:
      allOf:
        - $ref: '#/components/schemas/ResumeResumeCommon'
        - properties:
            actions:
              $ref: '#/components/schemas/ResumeObjectsActions'
            experience:
              description: Work experience. The experience object has no description (the description field is missing)
              items:
                $ref: '#/components/schemas/ResumeObjectsExperienceShort'
              minItems: 0
              type: array
            favorited:
              description: Whether the resume is added to favorite
              type: boolean
            marked:
              description: Whether the resume is highlighted in the search
              type: boolean
            negotiations_history:
              allOf:
                - $ref: '#/components/schemas/ResumeObjectsNegotiationsHistoryUrl'
              description: Brief history of responses/invitations for the resume
              type: object
            owner:
              allOf:
                - $ref: '#/components/schemas/ResumeObjectsOwner'
              description: Info about the resume owner
              type: object
            photo:
              $ref: '#/components/schemas/ResumeObjectsOneOfPhotoNoId'
            tags:
              description: Resume tags
              items:
                $ref: '#/components/schemas/_IncludesId'
              type: array
            viewed:
              description: Whether the resume is viewed by the manager
              type: boolean
          required:
            - created_at
            - updated_at
            - certificate
            - education
            - experience
            - download
            - hidden_fields
            - owner
            - negotiations_history
            - favorited
            - actions
          type: object
      title: Resume summary
      type: object
    ResumeObjectsActions:
      allOf:
        - $ref: '#/components/schemas/ResumeObjectsActionsForOwner'
        - properties:
            download_with_contact:
              $ref: '#/components/schemas/ResumeObjectsOneOfDownloadOrNullableObject'
            get_with_contact:
              $ref: '#/components/schemas/ResumeObjectsOneOfUrlOrNullableObject'
          type: object
      title: Actions with resume
      type: object
    ResumeObjectsActionsForOwner:
      properties:
        download:
          allOf:
            - $ref: '#/components/schemas/ResumeObjectsDownload'
          description: |
            Resume download links in multiple formats ([learn more](#tag/Resume-view/operation/get-resume)) ('actions' attribute)
          type: object
      required:
        - download
      title: Actions with resume on behalf of the owner
      type: object
    ResumeObjectsDownload:
      properties:
        pdf:
          allOf:
            - $ref: '#/components/schemas/ResumeObjectsDownloadPdfRtf'
          description: Resume in PDF
          type: object
        rtf:
          allOf:
            - $ref: '#/components/schemas/ResumeObjectsDownloadPdfRtf'
          description: Resume in RTF
          type: object
      required:
        - pdf
        - rtf
      title: Download resume
      type: object
    ResumeObjectsDownloadPdfRtf:
      properties:
        url:
          description: Link to download a resume in PDF/RTF
          type: string
      required:
        - url
      title: Resume in PDF/RTF
      type: object
    ResumeObjectsOneOfDownloadOrNullableObject:
      description: |
        Download links for the resume with contact information (consumes the service) in multiple formats ([learn more](#tag/Resume-view/operation/get-resume)). Displayed if the employer has a valid paid service for viewing contacts and the resume contacts have not yet been accessed
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/ResumeObjectsDownload'
        - $ref: '#/components/schemas/_IncludesNullableObject'
      title: Download links for resumes with contact information
      type: object
    ResumeObjectsOneOfUrlOrNullableObject:
      description: |
        Link to receive a resume with contact information (consumes the service). The link returns an object similar to [viewing a resume](#tag/Resume-view/operation/get-resume). Displayed if the employer has a valid paid service for viewing contacts and the resume contacts have not yet been accessed
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/_IncludesUrl'
        - $ref: '#/components/schemas/_IncludesNullableObject'
      title: Link to receive a resume with contact information
      type: object
    _IncludesUrl:
      properties:
        url:
          description: Link to obtain elements
          type: string
      required:
        - url
      title: URL
      type: object
    ResumeObjectsExperienceShort:
      allOf:
        - $ref: '#/components/schemas/ResumeObjectsExperiencePropertiesShort'
      required:
        - start
        - position
        - industries
      title: Work experience in a company
    ResumeObjectsExperiencePropertiesShort:
      properties:
        area:
          description: 'Region of the company. Possible valuse are listed in the [directory of regions](#tag/Public-directories/operation/get-areas)'
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesIdNameUrl'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        company:
          description: Company name
          nullable: true
          type: string
        company_id:
          description: Unique identifier of the company
          nullable: true
          type: string
        company_url:
          description: Company website
          nullable: true
          type: string
        employer:
          description: Employer
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/EmployersEmployerInfoShort'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        end:
          description: End date (`YYYY-MM-DD`)
          nullable: true
          type: string
        id:
          description: ID
          nullable: true
          type: string
        industries:
          description: 'List of the company''s industries. Possible values are listed in [directory of industries](#tag/Public-directories/operation/get-industries)'
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          type: array
        industry:
          description: Company industry
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ResumeObjectsIndustry'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        position:
          description: Position
          type: string
        start:
          description: Start date (`YYYY-MM-DD`)
          type: string
      title: Work experience in a company
      type: object
    EmployersEmployerInfoShort:
      properties:
        alternate_url:
          description: URL to the employer description on the website
          type: string
        id:
          description: Employer ID
          type: string
        logo_urls:
          description: |
            Links to employer logo images in different sizes. `original` is a raw unprocessed logo, which may be large. If the originally uploaded logo is smaller than 240px and/or 90px on its shorter side, the corresponding keys will contain links to images of the original size. The object may be `null` if the company has not uploaded a logo. The client should handle the case of the logo is missing at the specified link (response with `404 Not Found`). A company may not have 90 and 240 logos
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesLogoUrls'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        name:
          description: Employer name
          type: string
        url:
          description: URL to retrieve full employer description
          type: string
      required:
        - id
        - name
        - url
        - alternate_url
      title: Employer
      type: object
    ResumeObjectsIndustry:
      deprecated: true
      properties:
        id:
          description: Industry ID
          type: string
        name:
          description: Industry name
          type: string
      required:
        - id
        - name
      title: Industry
      type: object
    _IncludesIdNameUrl:
      allOf:
        - $ref: '#/components/schemas/_IncludesIdName'
        - properties:
            url:
              description: URL for getting info about the field
              type: string
          required:
            - url
          type: object
      title: 'Object with ID, name, and URL'
      type: object
    ResumeObjectsNegotiationsHistoryUrl:
      properties:
        url:
          description: 'URL to send a GET request to retrieve the [detailed history of responses and invitations](#tag/Employer-responsesinvitations/operation/get-resume-negotiations-history) for the resume'
          type: string
      required:
        - url
      title: Negotiation history
      type: object
    ResumeObjectsOneOfPhotoNoId:
      description: Applicant photo
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/ResumeObjectsPhotoNoId'
        - $ref: '#/components/schemas/_IncludesNullableObject'
      title: Photo
      type: object
    ResumeObjectsPhotoNoId:
      properties:
        '40':
          deprecated: true
          description: 40x40 px image URL. The image at this URL is available for a limited time after receiving the response. The application must handle the case a request to this URL may return a `404 Not Found` error
          nullable: true
          type: string
        '100':
          deprecated: true
          description: 100x100 px image URL. The image at this URL is available for a limited time after receiving the response. The application must handle the case a request to this URL may return a `404 Not Found` error
          nullable: true
          type: string
        '500':
          deprecated: true
          description: 500x500 px image URL. The image at this URL is available for a limited time after receiving the response. The application must handle the case a request to this URL may return a `404 Not Found` error
          nullable: true
          type: string
        medium:
          description: Medium image URL. The image at this URL is available for a limited time after receiving the response. The application must handle the case a request to this URL may return a `404 Not Found` error
          type: string
        small:
          description: Small image URL. The image at this URL is available for a limited time after receiving the response. The application must handle the case a request to this URL may return a `404 Not Found` error
          type: string
      required:
        - small
        - medium
      title: User photo
      type: object
    ResumeObjectsOwner:
      properties:
        comments:
          allOf:
            - $ref: '#/components/schemas/ResumeObjectsOwnerComments'
          description: |
            Returns [Comments about the resume owner](#tag/Applicant-comments/operation/get-applicant-comments-list) section
          type: object
        id:
          description: Resume owner ID
          type: string
      required:
        - id
        - comments
      title: Resume owner
      type: object
    ResumeObjectsOwnerComments:
      properties:
        counters:
          allOf:
            - $ref: '#/components/schemas/ResumeObjectsOwnerCommentsCounters'
          description: Information on the comment number
          type: object
        url:
          description: URL to send a GET request to retrieve the list of comments
          type: string
      required:
        - url
        - counters
      title: Comments about the resume owner
      type: object
    ResumeObjectsOwnerCommentsCounters:
      properties:
        total:
          description: Number of comments
          type: number
      required:
        - total
      title: Total number of comments
      type: object
    ResumeResumeCommon:
      allOf:
        - $ref: '#/components/schemas/ResumeResumeNano'
        - $ref: '#/components/schemas/ResumeResumeEmploymentTerms'
        - properties:
            age:
              description: Age
              nullable: true
              type: number
            area:
              $ref: '#/components/schemas/ResumeObjectsArea'
            can_view_full_info:
              description: Whether the current employer can view contact information in the resume
              nullable: true
              type: boolean
            certificate:
              description: Applicant's certificate list
              items:
                $ref: '#/components/schemas/ResumeObjectsCertificate'
              minItems: 0
              type: array
            citizenship:
              description: List of applicant citizenship
              items:
                $ref: '#/components/schemas/_IncludesArea'
              nullable: false
              type: array
            contact_view_status:
              description: |
                Contact channel access status for the resume.

                * `FULL` - direct applicant contacts are available.
                * `IPC` - communication is available only inside the platform, direct contacts are hidden.
                * `NONE` - contact channels are unavailable
              enum:
                - FULL
                - IPC
                - NONE
              nullable: true
              type: string
            created_at:
              description: Date and time the resume was created
              type: string
            download:
              allOf:
                - $ref: '#/components/schemas/ResumeObjectsDownload'
              description: Resume download links for different formats
              type: object
            education:
              allOf:
                - $ref: '#/components/schemas/ResumeObjectsEducation'
              description: |
                Applicant education.

                Features when saving education: 

                * If both higher and secondary education are provided and the education level is "secondary", only secondary education will be saved. 
                * If both higher and secondary education aare provided and the education level is "higher", only higher education will be saved
              type: object
            experience_group_by_company:
              description: Группировка опыта работы по компаниям
              items:
                $ref: '#/components/schemas/ProfileFieldsExperienceGroupItem'
              nullable: true
              type: array
            first_name:
              description: First name
              nullable: true
              type: string
            gender:
              $ref: '#/components/schemas/ResumeObjectsGender'
            hidden_fields:
              description: |
                List of hidden fields. Possible values are listed in the `resume_hidden_fields` field of the [directory](#tag/Public-directories/operation/get-dictionaries)"
              items:
                $ref: '#/components/schemas/_IncludesIdName'
              minItems: 0
              type: array
            last_name:
              description: Last name
              nullable: true
              type: string
            marked:
              default: false
              description: Whether the resume is highlighted in the search
              type: boolean
            middle_name:
              description: Middle name
              nullable: true
              type: string
            platform:
              allOf:
                - $ref: '#/components/schemas/_IncludesId'
              description: Platform on which the resume was published
              type: object
            real_id:
              description: Unique resume ID
              type: string
            salary:
              $ref: '#/components/schemas/ResumeObjectsSalaryProperties'
            total_experience:
              $ref: '#/components/schemas/ResumeObjectsTotalExperience'
            updated_at:
              description: Date and time the resume was updated
              type: string
          required:
            - real_id
            - created_at
            - updated_at
            - certificate
            - education
            - experience
            - download
            - hidden_fields
          type: object
      title: Resume info
      type: object
    ProfileFieldsExperienceGroupItem:
      description: Информация об опыте работы в одной компании
      properties:
        duration:
          description: Длительность работы в компании (в месяцах)
          type: integer
        experience_ids:
          description: Список идентификаторов записей опыта работы
          items:
            type: string
          type: array
      required:
        - duration
        - experience_ids
      title: Опыт работы в организации
      type: object
    ResumeObjectsArea:
      description: 'Area of residence. Values from the [areas directory](#tag/Public-directories/operation/get-areas)'
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/_IncludesIdNameUrl'
        - $ref: '#/components/schemas/_IncludesNullableObject'
      title: Area
      type: object
    ResumeObjectsCertificate:
      properties:
        achieved_at:
          description: Issue date (`YYYY-MM-DD`)
          type: string
        owner:
          description: Certificate holder. Returned only for certificates with `type = microsoft`
          nullable: true
          type: string
        title:
          description: Certificate name
          type: string
        type:
          description: |
            Certificate type. Available values:

            * `custom`;
            * `microsoft`
          type: string
        url:
          description: Link to the page with the certificate description
          nullable: true
          type: string
      title: Certificate
      type: object
    ResumeObjectsEducation:
      properties:
        additional:
          description: List of professional training courses
          items:
            $ref: '#/components/schemas/ResumeObjectsEducationAdditional'
          nullable: true
          type: array
        attestation:
          description: List of completed tests or exams
          items:
            $ref: '#/components/schemas/ResumeObjectsEducationAdditional'
          nullable: true
          type: array
        elementary:
          description: Secondary education. Typically filled in only when there is no higher education
          items:
            $ref: '#/components/schemas/ResumeObjectsEducationElementary'
          nullable: true
          type: array
        level:
          $ref: '#/components/schemas/_IncludesEducationLevel'
          description: 'Education level. Possible values are listed in the `education_level` field of [directories](#tag/Public-directories/operation/get-dictionaries)'
        primary:
          description: List of post-secondary education qualifications
          items:
            $ref: '#/components/schemas/ResumeObjectsEducationPrimary'
          nullable: true
          type: array
      required:
        - level
      title: Education
      type: object
    ResumeObjectsEducationAdditional:
      properties:
        id:
          description: ID
          nullable: true
          type: string
        name:
          description: Course/test/exam name
          type: string
        organization:
          description: Company conducted the courses/test/exam
          type: string
        result:
          description: Profession/specialist area
          nullable: true
          type: string
        year:
          description: Year of graduation or year the test/exam was passed
          type: number
      required:
        - name
        - year
      title: Additional education
      type: object
    ResumeObjectsEducationElementary:
      properties:
        id:
          description: ID
          nullable: true
          type: string
        name:
          description: Name of educational institution
          type: string
        year:
          description: Year of graduation
          type: number
      required:
        - year
        - name
      title: Secondary education
      type: object
    ResumeObjectsEducationPrimary:
      properties:
        education_level:
          $ref: '#/components/schemas/_IncludesEducationLevel'
          description: 'Education level. Possible values are listed in the `education_level` field of [directories](#tag/Public-directories/operation/get-dictionaries)'
        id:
          description: ID
          nullable: true
          type: string
        name:
          description: Name of educational institution
          type: string
        name_id:
          description: Educational institution ID
          nullable: true
          type: string
        organization:
          description: Faculty
          nullable: true
          type: string
        organization_id:
          description: Faculty ID
          nullable: true
          type: string
        result:
          description: Profession/specialist area
          nullable: true
          type: string
        result_id:
          description: Profession/specialist area ID
          nullable: true
          type: string
        university_acronym:
          description: Short name of education institution
          nullable: true
          type: string
        year:
          description: Year of graduation
          type: number
      required:
        - name
        - year
      title: Higher education
      type: object
    _IncludesEducationLevel:
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/_IncludesIdName'
        - $ref: '#/components/schemas/_IncludesNullableObject'
      title: Education level
      type: object
    ResumeObjectsGender:
      description: 'Applicant''s gender. Possible values are listed in the `gender` field of [directories](#tag/Public-directories/operation/get-dictionaries)'
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/_IncludesIdName'
        - $ref: '#/components/schemas/_IncludesNullableObject'
      title: Applicant gender
      type: object
    ResumeObjectsSalaryProperties:
      nullable: true
      properties:
        amount:
          description: Amount
          nullable: true
          type: number
        currency:
          description: 'Currency ID. Possible values are listed in the `currency` array in the [field directories](#tag/Public-directories/operation/get-dictionaries)'
          nullable: true
          type: string
      title: Salary
      type: object
    ResumeObjectsTotalExperience:
      nullable: true
      properties:
        months:
          description: 'Total number of working months, rounded up to a month'
          nullable: true
          type: number
      title: Total work experience
      type: object
    ResumeResumeEmploymentTerms:
      properties:
        employment_form:
          $ref: '#/components/schemas/ResumeObjectsEmploymentFormEmploymentFormResponse'
        work_format:
          $ref: '#/components/schemas/ResumeObjectsWorkFormatWorkFormatResponse'
      title: Section regarding employment conditions for the request response
      type: object
    ResumeObjectsEmploymentFormEmploymentFormResponse:
      description: List of employment types
      items:
        $ref: '#/components/schemas/ResumeObjectsEmploymentFormEmploymentFormItemResponse'
      title: Employment types
      type: array
    ResumeObjectsEmploymentFormEmploymentFormItemResponse:
      allOf:
        - $ref: '#/components/schemas/ResumeObjectsEmploymentFormEmploymentFormItem'
        - properties:
            name:
              description: Название типа занятости
              type: string
          type: object
      title: Employment type
      type: object
    ResumeObjectsEmploymentFormEmploymentFormItem:
      properties:
        id:
          description: 'Values from [dictionary employment_form](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Employment type
      type: object
    ResumeObjectsWorkFormatWorkFormatResponse:
      description: List of work formats
      items:
        $ref: '#/components/schemas/ResumeObjectsWorkFormatWorkFormatItemResponse'
      title: Work formats
      type: array
    ResumeObjectsWorkFormatWorkFormatItemResponse:
      allOf:
        - $ref: '#/components/schemas/ResumeObjectsWorkFormatWorkFormatItem'
        - properties:
            name:
              description: Название формата работы
              type: string
          type: object
      title: Work format
      type: object
    ResumeObjectsWorkFormatWorkFormatItem:
      properties:
        id:
          description: 'Values from the [work_format directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Work format
      type: object
    ResumeResumeNano:
      properties:
        alternate_url:
          description: Resume URL on the website
          type: string
        id:
          description: Resume ID
          type: string
        title:
          description: Desired position
          nullable: true
          type: string
      required:
        - id
        - title
        - alternate_url
      title: Resume summary
      type: object
    _IncludesIdNameLastChangeTime:
      allOf:
        - $ref: '#/components/schemas/_IncludesIdName'
        - properties:
            last_change_time:
              description: Last change time
              type: string
          type: object
      title: 'Object with the ID, name, and last change time fields'
      type: object
    NegotiationsObjectsTopicItemCommon:
      properties:
        applicant_question_state:
          description: Whether it is a question before the response
          type: boolean
        chat_id:
          description: Идентификатор чата
          type: number
        counters:
          $ref: '#/components/schemas/NegotiationsObjectsCounters'
        created_at:
          description: Date and time when the negotiation was created
          type: string
        has_updates:
          $ref: '#/components/schemas/VacancyHasUpdates'
        id:
          description: Negotiation ID
          type: string
        messages_url:
          deprecated: true
          description: 'URL to send a GET request to obtain the [list of messages for the response/invitation](#tag/Employer-responsesinvitations/operation/get-negotiation-messages). If `can_edit` is `false`, the field value should be ignored'
          type: string
        messaging_status:
          description: |
            Current messaging status.

            Possible values are specified in the `messaging_status` field in [directories of fields](#tag/Public-directories/operation/get-dictionaries)
          type: string
        professional_roles:
          oneOf:
            - $ref: '#/components/schemas/VacancyProfessionalRoles'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        source:
          description: Negotiation source
          enum:
            - NEGOTIATION
            - PHONE_CALL
            - CHAT
            - VR
            - AUTO_INVITE
            - APPLICANT_QUESTIONS
            - AUTO_RESPONSE
            - CLICKME_CPA
            - REGISTRATION
          type: string
        state:
          allOf:
            - $ref: '#/components/schemas/_IncludesIdName'
          description: |
            Current negotiation state.

            Possible values are specified in the `negotiations_state` field in [directories of fields](#tag/Public-directories/operation/get-dictionaries)
          type: object
        updated_at:
          description: Date and time when the negotiation was updated
          type: string
        viewed_by_opponent:
          description: Whether the recipient viewed the negotiation
          type: boolean
      required:
        - id
        - state
        - created_at
        - updated_at
        - has_updates
        - viewed_by_opponent
        - messaging_status
      title: Common negotiation information
      type: object
    NegotiationsObjectsCounters:
      properties:
        messages:
          description: Total count of messages
          type: number
        unread_messages:
          description: Count of messages unread by the employer
          type: number
      title: Counters
      type: object
    VacancyHasUpdates:
      description: Whether there are updates requiring attention in responses/invitations for this vacancy
      title: Update for this vacancy
      type: boolean
    VacancyProfessionalRoles:
      description: List of professional roles
      items:
        $ref: '#/components/schemas/VacancyProfessionalRoleItem'
      title: List of professional roles
      type: array
    VacancyProfessionalRoleItem:
      properties:
        id:
          description: 'Professional role ID. Values from the [professional_roles directory](#tag/Public-directories/operation/get-professional-roles-dictionary)'
          type: string
      title: Professional role object
      type: object
    _IncludesSortingType:
      properties:
        ordered_by:
          allOf:
            - $ref: '#/components/schemas/_IncludesIdName'
          description: Type of sorting used
      required:
        - ordered_by
      title: Sorting
      type: object
    NegotiationsListResponse:
      anyOf:
        - $ref: '#/components/schemas/NegotiationsNegotiationsCollections'
      title: Successful response
    NegotiationsNegotiationsCollections:
      properties:
        collections:
          description: Collections of negotiation for this vacancy
          items:
            $ref: '#/components/schemas/NegotiationsNegotiationsCollection'
          type: array
        employer_states:
          description: |
            Negotiation [states](#term-employer-state) for employer
          items:
            $ref: '#/components/schemas/EmployersEmployersState'
          type: array
        generated_collections:
          description: Generated collections of negotiation for this vacancy
          items:
            $ref: '#/components/schemas/NegotiationsNegotiationsCollection'
          type: array
      required:
        - collections
        - generated_collections
        - employer_states
      title: Collections of negotiation
      type: object
    NegotiationsNegotiationsCollection:
      allOf:
        - $ref: '#/components/schemas/NegotiationsObjectsStates'
        - properties:
            counters:
              $ref: '#/components/schemas/NegotiationsObjectsEmployerCounters'
            order_types:
              items:
                $ref: '#/components/schemas/NegotiationsNegotiationsOrderTypes'
              type: array
          required:
            - order_types
          type: object
      title: Collection information
      type: object
    NegotiationsNegotiationsOrderTypes:
      properties:
        id:
          description: Sorting option ID
          type: string
        name:
          description: Sorting option name
          type: string
        url:
          description: URL to the negotiation collection sorted by the current option
          type: string
      required:
        - id
        - name
        - url
      title: Negotiation sorting options
      type: object
    NegotiationsObjectsEmployerCounters:
      description: Statistics of negotiation collection
      properties:
        total:
          description: Total number of negotiation in the collection
          type: integer
        with_updates:
          description: Number of negotiation in the collection that require attention
          type: integer
      title: Object with statistics
      type: object
    NegotiationsObjectsStates:
      properties:
        description:
          description: Collection description
          type: string
        hidden:
          description: Whether the collection is hidden
          type: boolean
        id:
          description: Collection ID
          type: string
        name:
          description: Collection name
          type: string
        sub_collections:
          description: Collection of negotiation substatuses for this vacancy
          items:
            $ref: '#/components/schemas/NegotiationsNegotiationsSubCollection'
          type: array
        url:
          description: |
            URL to send a [GET request](#tag/Employer-responsesinvitations/operation/get-collection-negotiations-list) to obtain a list of collection negotiation
          type: string
      required:
        - id
        - name
        - description
        - url
      title: Collection information
      type: object
    NegotiationsNegotiationsSubCollection:
      allOf:
        - $ref: '#/components/schemas/NegotiationsObjectsSubCollections'
        - properties:
            counters:
              $ref: '#/components/schemas/NegotiationsObjectsEmployerCounters'
            order_types:
              items:
                $ref: '#/components/schemas/NegotiationsNegotiationsOrderTypes'
              type: array
          required:
            - order_types
          type: object
      title: Collection Information
      type: object
    NegotiationsObjectsSubCollections:
      properties:
        id:
          description: Substatus collection ID
          type: string
        name:
          description: Substatus collection name
          type: string
        root_collection:
          description: Whether the substatus collection is required. The collection always contains only one required substatus collection
          type: boolean
        url:
          description: |
            URL to send a [GET request](#tag/Employer-responsesinvitations/operation/get-collection-negotiations-list) to obtain a list of negotiation in the substatus collection
          type: string
      required:
        - id
        - name
        - root_collection
        - url
      title: Substatus collection information
      type: object
    NegotiationsMessageSent:
      allOf:
        - $ref: '#/components/schemas/NegotiationsMessage'
        - properties:
            address:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/VacancyAddressOutput'
                - $ref: '#/components/schemas/_IncludesNullableObject'
              type: object
          type: object
      title: Sending confirmation
      type: object
    NegotiationsMessage:
      description: Message in negotiation
      properties:
        author:
          $ref: '#/components/schemas/NegotiationsAuthor'
        created_at:
          description: Date and time of the message
          type: string
        editable:
          description: Whether the message is editable
          type: boolean
        id:
          description: Message ID
          type: string
        read:
          description: Whether the message is read
          type: boolean
        state:
          allOf:
            - $ref: '#/components/schemas/_IncludesIdName'
          description: Message state
          type: object
        text:
          description: Message text
          nullable: true
          type: string
        viewed_by_me:
          description: Whether the applicant has viewed the message (`true` for messages sent by applicants)
          type: boolean
        viewed_by_opponent:
          description: Whether the employer has viewed the message (`true` for messages sent by employers)
          type: boolean
      required:
        - id
        - viewed_by_me
        - viewed_by_opponent
        - editable
        - created_at
        - text
        - state
        - author
        - address
      title: Message in negotiation
      type: object
    NegotiationsAuthor:
      description: Author of the message
      properties:
        participant_type:
          description: 'Participant type: `applicant` or `employer`'
          type: string
      required:
        - participant_type
      title: Message author
      type: object
    VacancyAddressOutput:
      allOf:
        - $ref: '#/components/schemas/GeocoderAddress'
        - $ref: '#/components/schemas/VacancyDescriptionAddress'
        - properties:
            metro_stations:
              items:
                $ref: '#/components/schemas/_IncludesMetroStation'
              minItems: 0
              type: array
          type: object
      description: Address
      nullable: true
      title: Address
      type: object
    GeocoderAddress:
      description: Address
      nullable: true
      properties:
        building:
          description: Building
          nullable: true
          type: string
        city:
          description: City
          nullable: true
          type: string
        lat:
          description: Latitude
          nullable: true
          type: number
        lng:
          description: Longitude
          nullable: true
          type: number
        street:
          description: Street
          nullable: true
          type: string
      title: Address for geocoder
      type: object
    VacancyDescriptionAddress:
      nullable: true
      properties:
        description:
          description: Description
          nullable: true
          type: string
      title: Address description
      type: object
    NegotiationsMessagesGetResponse:
      allOf:
        - $ref: '#/components/schemas/_IncludesPagination'
        - properties:
            items:
              description: List of messages
              items:
                $ref: '#/components/schemas/NegotiationsMessagesGet'
              type: array
          type: object
      description: View the list of messages in the response
      title: List of messages
    NegotiationsMessagesGet:
      allOf:
        - $ref: '#/components/schemas/NegotiationsMessage'
        - properties:
            address:
              $ref: '#/components/schemas/VacancyAddressRawOutput'
            assessments:
              description: Assessment tools linked to the message
              items:
                $ref: '#/components/schemas/NegotiationsAssessment'
              type: array
          type: object
      description: Message in negotiation
      title: Message in negotiation
      type: object
    NegotiationsAssessment:
      allOf:
        - $ref: '#/components/schemas/_IncludesIdName'
        - properties:
            actions:
              description: Assessment tools
              items:
                $ref: '#/components/schemas/NegotiationsAction'
              type: array
          required:
            - actions
          type: object
      description: Tests and questionnaires for applicants
      title: Assessment tools
      type: object
    NegotiationsAction:
      description: |
        Depending on the assessment tool's status, specific actions may or may not be available
      properties:
        alternate_url:
          description: Link to a website clicking on which triggers an action
          type: string
        disable_reason:
          description: Explanation why the action is unavailable
          type: string
        enabled:
          description: Whether the action is available
          type: boolean
        id:
          description: Action type
          type: string
        name:
          description: Action description
          type: string
      required:
        - id
        - name
        - enabled
      title: Action on the tool
      type: object
    VacancyAddressRawOutput:
      description: Address
      nullable: true
      properties:
        building:
          description: Building
          nullable: true
          type: string
        city:
          description: City
          nullable: true
          type: string
        description:
          description: Description
          nullable: true
          type: string
        id:
          description: 'Address from the [directory of available employer addresses](https://api.hh.ru/openapi/en/redoc#tag/Employer-addresses)'
          nullable: true
          type: string
        lat:
          description: Latitude
          nullable: true
          type: number
        lng:
          description: Longitude
          nullable: true
          type: number
        metro:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/_IncludesMetroStation'
          type: object
        metro_stations:
          items:
            $ref: '#/components/schemas/_IncludesMetroStation'
          minItems: 0
          type: array
        raw:
          description: Full address
          nullable: true
          type: string
        street:
          description: Street
          nullable: true
          type: string
      title: Address
      type: object
    NegotiationsNegotiationGetResponse:
      anyOf:
        - $ref: '#/components/schemas/NegotiationsEmployerNegotiation'
      title: Successful response
      type: object
    NegotiationsEmployerNegotiation:
      allOf:
        - $ref: '#/components/schemas/NegotiationsObjectsTopicItemCommon'
        - $ref: '#/components/schemas/NegotiationsNegotiationCommonFields'
        - properties:
            resume:
              description: Resume summary
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/_IncludesNullableObject'
                - $ref: '#/components/schemas/NegotiationsObjectsEmployerTopicResume'
              type: object
            vacancy:
              description: Vacancy summary
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/VacanciesNegotiationsVacancyShort'
                - $ref: '#/components/schemas/_IncludesNullableObject'
              type: object
          type: object
      title: Negotiation information (employer)
      type: object
    VacanciesNegotiationsVacancyShort:
      properties:
        address:
          $ref: '#/components/schemas/VacancyAddressRawOutput'
        alternate_url:
          description: Link to the vacancy on the website
          type: string
        apply_alternate_url:
          description: Link to the application for the vacancy on the website
          type: string
        archived:
          description: Whether the vacancy is archived
          type: boolean
        area:
          $ref: '#/components/schemas/_IncludesArea'
        created_at:
          description: Date and time of the vacancy publication
          type: string
        department:
          $ref: '#/components/schemas/VacanciesObjectsDepartment'
        employer:
          $ref: '#/components/schemas/VacanciesObjectsEmployer'
        has_test:
          description: Whether a test assignment is attached to the vacancy
          type: boolean
        id:
          description: Vacancy ID
          type: string
        insider_interview:
          $ref: '#/components/schemas/VacanciesObjectsInsiderInterview'
        name:
          description: Vacancy name
          type: string
        premium:
          description: Whether it is a premium vacancy
          type: boolean
        professional_roles:
          $ref: '#/components/schemas/VacancyProfessionalRolesOutput'
        published_at:
          description: Date and time of the vacancy publication
          type: string
        response_letter_required:
          description: Whether a cover letter is required
          type: boolean
        response_url:
          description: Response URL for direct vacancies (`type.id=direct`)
          nullable: true
          type: string
        salary:
          $ref: '#/components/schemas/VacancySalary'
          deprecated: true
        salary_range:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancySalaryRangeSalaryRangeOutput'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        show_contacts:
          $ref: '#/components/schemas/VacancyShowContactsNotNull'
        show_logo_in_search:
          description: Whether to show the vacancy logo in search results
          nullable: true
          type: boolean
        sort_point_distance:
          description: |
            Distance in meters between the sort center (specified by the `sort_point_lat`, `sort_point_lng` parameters) and the address provided in the vacancy. If the address only includes metro stations, the distance returned is between the sort center and the geometric midpoint of the specified stations.

            The `sort_point_distance` value is returned only if the `sort_point_lat`, `sort_point_lgn`, and `order_by=distance` parameters are provided
          nullable: true
          type: number
        type:
          $ref: '#/components/schemas/VacancyTypeOutput'
        url:
          description: Vacancy URL
          type: string
      required:
        - id
        - premium
        - name
        - department
        - response_letter_required
        - area
        - salary
        - salary_range
        - type
        - published_at
        - archived
        - apply_alternate_url
        - url
        - alternate_url
        - employer
        - has_test
        - show_contacts
      title: Vacancy summary
      type: object
    VacanciesObjectsDepartment:
      description: Object with information about a company department
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/VacancyDepartmentOutput'
        - $ref: '#/components/schemas/_IncludesNullableObject'
      title: Object
      type: object
    VacancyDepartmentOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyDepartment'
        - properties:
            name:
              description: Employer's department name
              type: string
          type: object
      nullable: true
      title: Department
      type: object
    VacancyDepartment:
      nullable: true
      properties:
        id:
          description: 'Department from the [directory](https://api.hh.ru/openapi/en/redoc#tag/Employer-info/operation/get-employer-departments) on behalf of which the vacancy is published (if this option is available to the company)'
          type: string
      title: Department
      type: object
    VacanciesObjectsEmployer:
      description: Employer's company information
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/VacanciesObjectsVacanciesEmployer'
        - $ref: '#/components/schemas/_IncludesNullableObject'
      title: Object
      type: object
    VacanciesObjectsVacanciesEmployer:
      anyOf:
        - $ref: '#/components/schemas/VacanciesEmployerPublic'
      title: Vacancies
    VacanciesEmployerPublic:
      properties:
        accredited_it_employer:
          description: Indicates if the company is IT accredited
          type: boolean
        alternate_url:
          description: Link to the company's profile on the site
          example: 'https://hh.ru/employer/1455'
          nullable: true
          type: string
        country_id:
          description: Information about company's country
          type: integer
        employer_rating:
          $ref: '#/components/schemas/VacanciesEmployerRating'
        id:
          description: Company ID
          example: '1455'
          nullable: true
          type: string
        is_identified_by_esia:
          description: Indicates whether the employer has been identified via ESIA
          type: boolean
        logo_urls:
          description: Links to employer's logos of different size
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesLogoUrls'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        name:
          description: Company name
          example: HeadHunter
          type: string
        trusted:
          description: Indicates whether the company has been verified on the site
          type: boolean
        url:
          description: URL to send a GET request to get information about the company
          example: 'https://api.hh.ru/employers/1455'
          nullable: true
          type: string
        vacancies_url:
          description: Link to the vacancy search results for the company
          example: 'https://api.hh.ru/vacancies?employer_id=1455'
          nullable: true
          type: string
      required:
        - name
        - trusted
      title: Employer's company information
      type: object
    VacanciesEmployerRating:
      properties:
        reviews_count:
          description: Number of reviews
          example: 700
        total_rating:
          description: Joint company rating
          example: '4.3'
          type: string
      required:
        - total_rating
        - reviews_count
      title: Employer rating information
      type: object
    VacanciesObjectsInsiderInterview:
      description: Object with interview about life in the company
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/VacancyInsiderInterview'
        - $ref: '#/components/schemas/_IncludesNullableObject'
      title: Object with interview about life in the company
      type: object
    VacancyInsiderInterview:
      properties:
        id:
          description: Interview ID
          type: string
        url:
          description: Interview URL
          type: string
      required:
        - id
        - url
      title: Info on interview about life in the company
      type: object
    VacancyProfessionalRolesOutput:
      description: List of professional roles
      items:
        $ref: '#/components/schemas/VacancyProfessionalRoleItemOutput'
      title: Professional roles
      type: array
    VacancyProfessionalRoleItemOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyProfessionalRoleItem'
        - properties:
            name:
              description: Professional role name
              type: string
          type: object
      title: Professional role name
    VacancySalary:
      deprecated: true
      description: Salary
      nullable: true
      properties:
        currency:
          description: 'Currency code from the [currency directories](#tag/Public-directories/operation/get-dictionaries)'
          nullable: true
          type: string
        from:
          description: Minimum salary
          nullable: true
          type: integer
        gross:
          description: Indicates whether the salary range is specified before tax deductions
          nullable: true
          type: boolean
        to:
          description: Maximum salary
          nullable: true
          type: integer
      title: Salary
      type: object
    VacancySalaryRangeSalaryRangeOutput:
      description: Salary
      properties:
        currency:
          description: 'Currency code from the [currency directories](#tag/Public-directories/operation/get-dictionaries)'
          type: string
        frequency:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancySalaryRangeSalaryRangeFrequencyOutput'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        from:
          description: Minimum salary
          nullable: true
          type: integer
        gross:
          description: Indicates whether the salary range is specified before tax deductions
          type: boolean
        mode:
          $ref: '#/components/schemas/VacancySalaryRangeSalaryRangeModeOutput'
        to:
          description: Maximum salary
          nullable: true
          type: integer
      required:
        - currency
        - mode
        - gross
      title: Salary
      type: object
    VacancySalaryRangeSalaryRangeFrequencyOutput:
      allOf:
        - $ref: '#/components/schemas/VacancySalaryRangeSalaryRangeFrequency'
        - properties:
            name:
              description: Salary payment frequency name
              type: string
          type: object
      title: Salary payment frequency name
      type: object
    VacancySalaryRangeSalaryRangeFrequency:
      properties:
        id:
          description: 'Values from the [salary_range_frequency directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Salary payment frequency
      type: object
    VacancySalaryRangeSalaryRangeModeOutput:
      allOf:
        - $ref: '#/components/schemas/VacancySalaryRangeSalaryRangeMode'
        - properties:
            name:
              description: Salary mode name
              type: string
          type: object
      title: Salary mode name
      type: object
    VacancySalaryRangeSalaryRangeMode:
      properties:
        id:
          description: 'Values from the [salary_range_mode directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Salary mode
      type: object
    VacancyShowContactsNotNull:
      description: Whether contact information is available in the vacancy
      readOnly: true
      title: Whether contact information is available in the vacancy
      type: boolean
    VacancyTypeOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyType'
        - properties:
            name:
              description: Vacancy type name
              type: string
          type: object
      title: Vacancy type
      type: object
    VacancyType:
      description: Vacancy type
      properties:
        id:
          description: 'Type from the [vacancy_type directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      required:
        - id
      title: Vacancy type
      type: object
    NegotiationsNegotiationMessageTemplates:
      properties:
        mail:
          $ref: '#/components/schemas/NegotiationsNegotiationMessageTemplate'
          description: Message templates list
        sms:
          $ref: '#/components/schemas/NegotiationsNegotiationMessageTemplate'
          description: Message templates list
      required:
        - mail
      title: Negotiation templates list
      type: object
    NegotiationsNegotiationMessageTemplate:
      properties:
        employer_state:
          description: Employer status corresponding to this template; may be empty if the template is not associated with any status
          type: string
        template_modified:
          description: Whether the template has been modified by the employer or the default template provided by HeadHunter is used
          type: boolean
        text:
          description: Template text
          type: string
      required:
        - text
        - template_modified
      title: Applicant response template
      type: object
    NegotiationsNegotiationTestResultsResponse:
      properties:
        test_result:
          description: Applicant's completed tests
          properties:
            duration:
              description: 'Time taken to complete the test, in seconds'
              type: number
            mark:
              description: |
                Test score categories:
                * `UNFAIR` — 0 to 14 points
                * `FAIR` — 15 to 44 points
                * `GOOD` — 45 to 79 points
                * `EXCELLENT` — 80 to 100 points
              enum:
                - UNFAIR
                - FAIR
                - GOOD
                - EXCELLENT
              type: string
            name:
              description: Test name
              type: string
            score:
              description: Test result in points (from 0 to 100)
              type: number
            tasks:
              items:
                $ref: '#/components/schemas/SkillVerificationsTestResultTasks'
              type: array
          required:
            - name
            - score
            - mark
            - duration
            - tasks
          type: object
      required:
        - test_result
      title: Information about completed tests
      type: object
    SkillVerificationsTestResultTasks:
      properties:
        closed_answers:
          description: Answer options for closed-ended questions
          items:
            properties:
              correct:
                description: Whether the answer option is correct
                type: boolean
              selected:
                description: Whether the answer option is selected
                type: boolean
              value:
                description: Answer option for an open-ended question
                type: string
            type: object
          type: array
        opened_answer:
          description: Answer to open question
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/SkillVerificationsOpenedAnswer'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        question:
          description: Question text
          type: string
      required:
        - question
        - closed_answers
      title: Test questions
      type: object
    SkillVerificationsOpenedAnswer:
      properties:
        mark:
          description: |
            Employer's differentiated score for the answer:
            * `UNFAIR` — 0 points
            * `FAIR` — 30 points
            * `GOOD` — 60 points
            * `EXCELLENT` — 100 points
          enum:
            - UNFAIR
            - FAIR
            - GOOD
            - EXCELLENT
          type: string
        value:
          description: Answer to the question
          type: string
      required:
        - value
        - mark
      title: Answer to an open-ended question
      type: object
    NegotiationsNegotiationsStatisticsEmployerResponse:
      properties:
        employer_statistics:
          $ref: '#/components/schemas/NegotiationsNegotiationsStatistics'
      required:
        - employer_statistics
      title: Negotiation statistics for the employer
      type: object
    NegotiationsNegotiationsStatistics:
      properties:
        average_reply_time:
          description: Average time (in days) between receiving a response and sending a message
          nullable: true
          type: number
        politeness:
          description: Politeness index
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/NegotiationsObjectsPoliteness'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        received:
          description: Number of negotiations received during the period (last 30 days)
          type: number
        replied_percent:
          description: |
            Percentage of negotiations moved to any other [collection](#term-collection) with a message sent, during the period
          nullable: true
          type: number
        viewed_percent:
          description: Percentage of negotiations read during the period
          nullable: true
          type: number
      required:
        - received
      title: Negotiation statistics
      type: object
    NegotiationsObjectsPoliteness:
      properties:
        article_url:
          description: URL of the HH article about the politeness index
          type: string
        description:
          description: Current politeness index determination
          type: string
        hint:
          description: Politeness index value description
          type: string
        index:
          description: Politeness index value
          type: number
        index_change:
          deprecated: true
          description: Politeness index update for the last 24 hours
          type: number
      required:
        - index
        - index_change
        - hint
        - description
        - article_url
      title: Politeness index information
      type: object
    NegotiationsNegotiationsStatisticsManagerResponse:
      properties:
        manager_statistics:
          $ref: '#/components/schemas/NegotiationsNegotiationsStatistics'
      required:
        - manager_statistics
      title: Negotiation statistics for the manager
      type: object
    ProfessionalRolesCatalog:
      additionalProperties: false
      description: Catalog of professional roles and categories
      properties:
        categories:
          description: Information about the professional role category
          items:
            $ref: '#/components/schemas/ProfessionalRolesCategory'
          minItems: 1
          title: Professional role category
          type: array
      required:
        - categories
      title: Professional role catalog
      type: object
    ProfessionalRolesCategory:
      properties:
        id:
          description: Professional role category ID
          example: '123'
          minLength: 1
          type: string
        name:
          description: Professional role category name
          example: 'Construction industry, real estate'
          minLength: 1
          nullable: true
          type: string
        roles:
          description: |
            List of professional roles included in this category
          items:
            $ref: '#/components/schemas/ProfessionalRolesRole'
          minItems: 1
          type: array
      required:
        - id
        - name
        - roles
      title: Professional role categories
      type: object
    ProfessionalRolesRole:
      properties:
        accept_incomplete_resumes:
          description: Applications with incomplete resumes are accepted for this role
          example: true
          type: boolean
        id:
          description: Professional role ID
          example: '1'
          minLength: 1
          type: string
        is_default:
          description: Default role
          example: true
          type: boolean
        name:
          description: Professional role name
          example: Architect
          minLength: 1
          type: string
        search_deprecated:
          description: Indicates whether this role is deprecated for search queries
          example: true
          type: boolean
        search_deprecated_datetime:
          description: |
            Time from which the role is deprecated for use in search when composing a search query.
            In [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) with second precision: `YYYY-MM-DDThh:mm:ss±hhmm`
          example: '2023-06-01T08:00:00+0300'
          format: date-time
          nullable: true
          type: string
        select_deprecated:
          description: Indicates whether this role is deprecated when creating new entities (resumes or vacancies)
          example: true
          type: boolean
        select_deprecated_datetime:
          description: |
            Time from which the role is deprecated for creating new entities.
            In [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) with second precision: `YYYY-MM-DDThh:mm:ss±hhmm`
          example: '2023-06-01T08:00:00+0300'
          format: date-time
          nullable: true
          type: string
      required:
        - id
        - name
        - accept_incomplete_resumes
        - is_default
      title: Professional role
      type: object
    ResumeResumeViewResponse:
      anyOf:
        - $ref: '#/components/schemas/ResumeResumeForEmployer'
      description: Information about resume
      title: Resume
      type: object
    ResumeResumeForEmployer:
      allOf:
        - $ref: '#/components/schemas/ResumeResumeFull'
        - $ref: '#/components/schemas/ResumeEmployerFields'
      title: Information about resume for the employer
      type: object
    ResumeEmployerFields:
      properties:
        actions:
          allOf:
            - $ref: '#/components/schemas/ResumeObjectsActions'
          description: Additional actions
          type: object
        can_view_full_info:
          description: Whether the employer can get the resume contact info
          nullable: true
          type: boolean
        complaint_status:
          properties:
            applicant_topics_are_hidden:
              description: Information whether the resume was blacklisted
              type: boolean
          type: object
        contact_view_status:
          description: |
            Contact channel access status for the resume.

            * `FULL` — direct applicant contacts are available.
            * `IPC` — communication is available only inside the platform, direct contacts are hidden.
            * `NONE` — contact channels are unavailable
          enum:
            - FULL
            - IPC
            - NONE
          nullable: true
          type: string
        contacts_open_until_date:
          description: Date when resume contacts will be hidden (in `YYYY-MM-DD` format)
          nullable: true
          type: string
        favorited:
          description: Whether the resume is added to favorite
          type: boolean
        job_search_status:
          allOf:
            - $ref: '#/components/schemas/_IncludesIdNameLastChangeTime'
          description: |
            To obtain data, specify the query parameter `with_job_search_status=true`. 
            Possible values are listed in the `job_search_statuses_employer` field in [/dictionaries](#tag/Public-directories/operation/get-dictionaries)
        negotiations_history:
          allOf:
            - $ref: '#/components/schemas/ResumeObjectsNegotiationsHistoryForEmployer'
          description: Brief history of negotiations
          type: object
        owner:
          allOf:
            - $ref: '#/components/schemas/ResumeObjectsOwner'
          description: Information about resume owner
          type: object
        paid_services:
          $ref: '#/components/schemas/ResumeObjectsEmployerPaidServices'
        photo:
          $ref: '#/components/schemas/ResumeObjectsOneOfPhotoNoId'
        portfolio:
          description: List of images in the user's portfolio
          items:
            $ref: '#/components/schemas/ResumeObjectsPortfolioNoId'
          type: array
        view_without_contacts_reason:
          description: Reason for hiding contacts
          nullable: true
          type: string
      required:
        - owner
        - favorited
        - portfolio
        - paid_services
        - actions
        - complaint_status
      title: Fields returning for an employer
      type: object
    ResumeObjectsEmployerPaidServices:
      description: |
        Paid resume services for employers

        The employer may be offered a list of paid resume services.

        For example, if full resume data is unavailable, a recommended service will be offered for purchase to gain access to that data
      items:
        properties:
          description:
            description: Note for using the service
            type: string
          id:
            description: Service ID
            type: string
          name:
            description: Service name
            type: string
          price_list:
            description: Price for the service
            properties:
              alternate_url:
                description: Link to the full price list for the service
                type: string
            required:
              - alternate_url
            type: object
          quick_purchase:
            description: 'Description of quick service purchase, if available'
            properties:
              alternate_url:
                description: Link to the site where the service can be purchased
                type: string
              currency:
                description: Service currency
                properties:
                  abbr:
                    description: Short name
                    type: string
                  code:
                    description: Code
                    type: string
                  name:
                    description: Name
                    type: string
                required:
                  - abbr
                  - code
                  - name
                type: object
              name:
                description: Name of the service order action
                type: string
              price:
                description: Price of the service
                type: number
            required:
              - alternate_url
              - currency
              - name
              - price
            type: object
        required:
          - id
          - name
          - price_list
        type: object
      title: Paid resume services
      type: array
    ResumeObjectsNegotiationsHistoryForEmployer:
      allOf:
        - $ref: '#/components/schemas/ResumeObjectsNegotiationsHistoryUrl'
        - properties:
            vacancies:
              description: Vacancy array
              items:
                $ref: '#/components/schemas/ResumesResumeNegotiationsHistoryVacancy'
              nullable: true
              type: array
          type: object
      title: Negotiation history
      type: object
    ResumesResumeNegotiationsHistoryVacancy:
      properties:
        archived:
          description: Indicates whether the vacancy is archived
          type: boolean
        can_edit:
          description: Indicates whether the manager can edit vacancy details and work with information on the responses/invitations for this vacancy
          type: boolean
        id:
          description: Unique vacancy ID
          type: string
        items:
          description: List of recent status changes for responses/invitations related to the specified resume and vacancy
          items:
            $ref: '#/components/schemas/ResumesResumeNegotiationsHistoryVacancyItem'
          type: array
        messages_url:
          description: 'URL to send a GET request to obtain the [list of messages for the response/invitation](#tag/Employer-responsesinvitations/operation/get-negotiation-messages). If `can_edit` is `false`, the field value should be ignored'
          type: string
        name:
          description: Vacancy name
          type: string
        negotiations_url:
          description: 'URL to send a GET request to obtain the [information on the response/invitation](#tag/Employer-responsesinvitations/operation/get-negotiation-item). If `can_edit` is `false`, the field value should be ignored'
          type: string
        url:
          description: 'URL to send a GET request to obtain the [information on the vacancy](#tag/Vacancy-management/operation/get-vacancy)'
          type: string
      required:
        - id
        - name
        - url
        - archived
        - can_edit
        - items
        - negotiations_url
        - messages_url
      title: Vacancy related to the resume
      type: object
    ResumesResumeNegotiationsHistoryVacancyItem:
      allOf:
        - $ref: '#/components/schemas/ResumesNegotiationNano'
        - properties:
            with_message:
              description: Indicates whether a message was sent to the applicant when the response/invitation status had been changed
              type: boolean
          required:
            - with_message
          type: object
      title: Response/invitation status change
      type: object
    ResumesNegotiationNano:
      properties:
        created_at:
          description: Date of the response/invitation status change
          type: string
        employer_state:
          allOf:
            - description: Response/invitation
              type: object
            - $ref: '#/components/schemas/_IncludesIdName'
      required:
        - employer_state
        - created_at
      title: Basic information about the response/invitation
      type: object
    ResumeObjectsPortfolioNoId:
      properties:
        description:
          description: Image description in portfolio
          type: string
        medium:
          description: |
            Medium image URL. The image at this URL is available for a limited time after receiving the response. The application must handle the case a request to this URL may return a `404 Not Found` error
          type: string
        small:
          description: |
            Small image URL. The image at this URL is available for a limited time after receiving the response. The application must handle the case a request to this URL may return a `404 Not Found` error
          type: string
      required:
        - small
        - medium
      title: Portfolio
      type: object
    ResumeResumeFull:
      allOf:
        - $ref: '#/components/schemas/ResumeResume'
        - properties:
            birth_date:
              description: Birthday (`YYYY-MM-DD`)
              nullable: true
              type: string
            business_trip_readiness:
              allOf:
                - $ref: '#/components/schemas/_IncludesIdName'
              description: 'Readiness to go on business trips. The [business_trip_readiness](#tag/Public-directories/operation/get-dictionaries) directory entry'
            citizenship:
              description: 'List of applicant citizenship. Values from the [areas directory](#tag/Public-directories/operation/get-areas)'
              items:
                $ref: '#/components/schemas/_IncludesIdNameUrl'
              type: array
            contact:
              description: Applicant's contact information
              items:
                $ref: '#/components/schemas/_IncludesContact'
              type: array
            creds:
              $ref: '#/components/schemas/CredsResumeCreds'
            driver_license_types:
              description: List of applicant's driving license types
              items:
                $ref: '#/components/schemas/ResumeObjectsDriverLicenseTypes'
              type: array
            employment:
              allOf:
                - $ref: '#/components/schemas/_IncludesIdName'
              deprecated: true
            employments:
              description: 'List of employment types suitable for the applicant. Values from the [employment directory](#tag/Public-directories/operation/get-dictionaries)'
              items:
                $ref: '#/components/schemas/_IncludesIdName'
              type: array
            has_vehicle:
              description: Whether the applicant has a car
              nullable: true
              type: boolean
            language:
              description: 'List of languages spoken by the applicant. Values from the [languages directory](#tag/Public-directories/operation/get-languages)'
              items:
                $ref: '#/components/schemas/_IncludesLanguageLevel'
              type: array
            metro:
              $ref: '#/components/schemas/ResumeObjectsOneOfMetroStation'
            paid_services:
              description: Resume-related paid services
              items:
                $ref: '#/components/schemas/ResumeObjectsPaidServices'
              type: array
            professional_roles:
              description: Array of professional role objects
              items:
                $ref: '#/components/schemas/_IncludesIdName'
              nullable: true
              type: array
            recommendation:
              description: List of recommendations
              items:
                $ref: '#/components/schemas/ResumeObjectsRecommendation'
              type: array
            relocation:
              allOf:
                - $ref: '#/components/schemas/ResumeObjectsRelocationPublic'
              description: Readiness for relocation
              type: object
            resume_locale:
              allOf:
                - $ref: '#/components/schemas/_IncludesIdName'
              description: 'Resume locale. The [resume locale](#tag/Directories/operation/get-locales-for-resume) directory entry'
              type: object
            schedule:
              allOf:
                - $ref: '#/components/schemas/_IncludesIdName'
              deprecated: true
            schedules:
              description: 'List of work schedule options suitable for the applicant. Values from the [schedule directory](#tag/Public-directories/operation/get-dictionaries)'
              items:
                $ref: '#/components/schemas/_IncludesIdName'
              type: array
            site:
              description: Profiles in social networks and other services
              items:
                $ref: '#/components/schemas/ResumeObjectsSite'
              type: array
            skill_set:
              description: Key skills (a list of unique strings)
              items:
                type: string
              type: array
            skills:
              description: 'Additional information, a free-form description of skills'
              nullable: true
              type: string
            tags:
              description: Resume tags
              items:
                $ref: '#/components/schemas/_IncludesId'
              type: array
            travel_time:
              allOf:
                - $ref: '#/components/schemas/_IncludesIdName'
              description: 'Acceptable travel time to the place of work. The [travel_time](#tag/Public-directories/operation/get-dictionaries) directory entry'
            work_ticket:
              description: |
                List of regions where the applicant has a work permission. The [areas](#tag/Public-directories/operation/get-areas) directory entries
              items:
                $ref: '#/components/schemas/_IncludesIdNameUrl'
              type: array
          required:
            - contact
            - resume_locale
            - citizenship
            - work_ticket
            - recommendation
            - relocation
            - employments
            - schedule
            - schedules
            - site
            - travel_time
            - business_trip_readiness
            - skill_set
            - driver_license_types
            - language
            - paid_services
          type: object
      title: Full resume
      type: object
    CredsResumeCreds:
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/CredsCreds'
        - $ref: '#/components/schemas/_IncludesNullableObject'
      title: Creds
      type: object
    CredsCreds:
      description: |
        Supporting documents that verify the applicant's experience or qualifications for a particular type of work. 
        Depend on the resume's professional roles
      properties:
        answers:
          additionalProperties:
            $ref: '#/components/schemas/CredsAnswers'
          title: Answers to creds in the answer_id -> object form
          type: object
        question_to_answer_map:
          additionalProperties:
            items:
              type: string
            type: array
          title: Selected user answers for creds
          type: object
        questions:
          additionalProperties:
            $ref: '#/components/schemas/CredsQuestions'
          title: Question body in the question_id -> object form
          type: object
      title: 'Credentials object. Contains questions, answer options, and the user''s selected answers'
      type: object
    CredsAnswers:
      properties:
        answer_group:
          description: 'Answer group: positive, negative, neutral'
          type: string
        answer_id:
          description: Answer ID (matches the object key)
          type: string
        ask_questions_after:
          description: Questions to ask after the user uses this answer
          items:
            description: Array of question_id
            type: string
          type: array
        description:
          description: Answer description
          nullable: true
          type: string
        positive_title:
          description: Answer text that can be displayed without the question itself
          type: string
        skip_at_result:
          description: Whether to skip this answer on a form displaying user creds
          type: boolean
        title:
          description: Answer text to be displayed to collect responses from the user
          type: string
      title: Answers
      type: object
    CredsQuestions:
      properties:
        description:
          description: Question description
          nullable: true
          type: string
        is_active:
          description: Whether the question is initially shown. Applicable to dynamic questions
          type: boolean
        possible_answers:
          description: Available answer options. Guaranteed to be provided in the answers field
          items:
            description: The guaranteed value indicates that there is an answer matching the provided key
            type: string
          minItems: 1
          type: array
        question_id:
          description: Question ID (matches the object key)
          type: string
        question_title:
          description: Question text to be displayed on the form
          type: string
        question_type:
          description: 'Whether multiple answers can be selected: single_choice / multi_select'
          type: string
        required:
          description: Whether the question is required to get an answer
          type: boolean
        skip_title_at_view:
          description: Whether to skip the question text in the view. If false — answers are shown inside a placeholder. If true — answers are listed without the question text
          type: boolean
        view_title:
          description: Question text displayed on the view
          nullable: true
          type: string
      title: Questions
      type: object
    ResumeObjectsDriverLicenseTypes:
      properties:
        id:
          description: 'Applicant''s driver license type. The [driver license types](#tag/Public-directories/operation/get-dictionaries) directory entry'
          type: string
      required:
        - id
      title: Driver license type
      type: object
    ResumeObjectsOneOfMetroStation:
      nullable: true
      oneOf:
        - $ref: '#/components/schemas/ResumeObjectsMetroStation'
        - $ref: '#/components/schemas/_IncludesNullableObject'
      title: Metro station
      type: object
    ResumeObjectsMetroStation:
      description: |
        The nearest metro station. The [metro](#tag/Public-directories/operation/get-metro-stations) directory entry
      properties:
        id:
          description: Metro station ID
          type: string
        lat:
          description: Latitude of the station location
          type: number
        line:
          allOf:
            - $ref: '#/components/schemas/ResumeObjectsMetroLine'
          description: Metro line
          type: object
        lng:
          description: Longitude of the station location
          type: number
        name:
          description: Metro station name
          type: string
        order:
          description: Sequential number of the station in the metro line (starting with 0)
          type: number
      required:
        - id
        - lat
        - lng
        - order
        - line
      title: Metro station
      type: object
    ResumeObjectsMetroLine:
      properties:
        hex_color:
          description: Line color in HEX format `RRGGBB` (from `000000` to `FFFFFF`)
          type: string
        id:
          description: Line identifier
          type: string
        name:
          description: Line name
          type: string
      required:
        - id
        - hex_color
        - name
      title: Metro line
      type: object
    ResumeObjectsPaidServices:
      properties:
        active:
          description: Whether the service is active at the moment
          type: boolean
        expires:
          description: Expiration time of the service. Applicable only if the service is active
          type: string
        id:
          description: Service ID
          type: string
        name:
          description: Service name
          type: string
      required:
        - id
        - name
      title: Paid service
      type: object
    ResumeObjectsRecommendation:
      properties:
        contact:
          description: Contact
          type: string
        name:
          description: Name of the person who has given the recommendation
          type: string
        organization:
          description: Company
          type: string
        position:
          description: Position
          type: string
      required:
        - name
        - position
        - organization
      title: Recommendation
      type: object
    ResumeObjectsRelocationPublic:
      properties:
        area:
          description: 'List of cities for potential relocation. Contains entries of the [directory of regions](#tag/Public-directories/operation/get-areas)'
          items:
            $ref: '#/components/schemas/_IncludesArea'
          type: array
        district:
          description: List of districts for potential relocation. Only relevant with the corresponding `type` field
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          type: array
        type:
          allOf:
            - $ref: '#/components/schemas/_IncludesIdName'
          description: 'Readiness for relocation. The [relocation_type](#tag/Public-directories/operation/get-dictionaries) directory entry'
      required:
        - type
      title: Readiness for relocation
      type: object
    ResumeObjectsSite:
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/_IncludesIdName'
          description: 'Profile type. The [resume_contacts_site_type](#tag/Public-directories/operation/get-dictionaries) directory entry'
        url:
          description: Link to profile or ID
          nullable: true
          type: string
      title: Profile on website
      type: object
    ResumeResume:
      allOf:
        - $ref: '#/components/schemas/ResumeResumeCommon'
        - properties:
            experience:
              description: Applicant's experience
              items:
                $ref: '#/components/schemas/ResumeObjectsExperience'
              minItems: 0
              type: array
          required:
            - created_at
            - updated_at
            - certificate
            - education
            - experience
            - download
            - hidden_fields
          type: object
      title: Resume info
      type: object
    ResumeObjectsExperience:
      allOf:
        - $ref: '#/components/schemas/ResumeObjectsExperienceProperties'
      required:
        - start
        - position
        - industries
      title: Work experience in a company
    ResumeObjectsExperienceProperties:
      allOf:
        - $ref: '#/components/schemas/ResumeObjectsExperiencePropertiesShort'
        - properties:
            description:
              description: 'Responsibilities, functions, achievements'
              nullable: true
              type: string
          type: object
      title: Work experience in a company
      type: object
    _IncludesContact:
      allOf:
        - $ref: '#/components/schemas/_IncludesContactProperties'
      required:
        - type
        - preferred
        - contact_value
        - kind
      title: Contact
    _IncludesContactProperties:
      properties:
        comment:
          description: Contact comment
          nullable: true
          type: string
        contact_value:
          description: Contact value
          nullable: true
          type: string
        kind:
          description: 'Type of contact. Email, phone number, social networks (Telegram, Viber, etc) and other communication methods'
          nullable: false
          type: string
        links:
          allOf:
            - $ref: '#/components/schemas/_IncludesLinks'
          description: Links to open app/website for a particular platform
          nullable: true
          type: object
        need_verification:
          description: Is phone verification required?
          nullable: true
          type: boolean
        preferred:
          description: Is it the preferred method of communication?
          nullable: false
          type: boolean
        type:
          allOf:
            - $ref: '#/components/schemas/_IncludesIdName'
          description: Contact type
        value:
          deprecated: true
          description: 'Deprecated. Use `contact_value`. Contact value: for phone, it is object, for email, it is string'
          oneOf:
            - $ref: '#/components/schemas/_IncludesContactEmailValue'
            - $ref: '#/components/schemas/_IncludesContactPhoneValue'
        verified:
          description: Is the phone verified?
          nullable: true
          type: boolean
      title: Contact
      type: object
    _IncludesContactEmailValue:
      description: Email
      format: email
      nullable: true
      title: Email
      type: string
    _IncludesContactPhoneValue:
      nullable: true
      properties:
        city:
          description: City code
          nullable: false
          type: string
        country:
          description: Country code
          nullable: false
          type: string
        formatted:
          description: Formatted phone number
          nullable: false
          type: string
        number:
          description: Phone number
          nullable: false
          type: string
      required:
        - country
        - city
        - number
        - formatted
      title: Phone
      type: object
    _IncludesLinks:
      properties:
        android:
          type: string
        ios:
          type: string
        web:
          type: string
      title: Links to access the contact method
      type: object
    _IncludesLanguageLevel:
      allOf:
        - $ref: '#/components/schemas/_IncludesLanguageProperties'
      required:
        - level
      title: Language and proficiency
    _IncludesLanguageProperties:
      allOf:
        - $ref: '#/components/schemas/_IncludesIdName'
        - properties:
            level:
              allOf:
                - $ref: '#/components/schemas/_IncludesIdName'
              description: 'Proficiency level. Possible values are listed in the `language_level` field of the [directories](#tag/Public-directories/operation/get-dictionaries)'
          type: object
      title: Language and proficiency
      type: object
    ResumesResumeNegotiationsHistoryResponse:
      properties:
        vacancies:
          description: Vacancy array
          items:
            $ref: '#/components/schemas/ResumesResumeNegotiationsHistoryVacancy'
          type: array
      required:
        - vacancies
      title: History of responses/invitations for a resume
      type: object
    ResumesSearchForResumesResponse:
      allOf:
        - $ref: '#/components/schemas/_IncludesPagination'
          type: object
        - $ref: '#/components/schemas/ResumesSearchForResumesItems'
          type: object
      title: Resume search results
      type: object
    ResumesSearchForResumesItems:
      properties:
        items:
          description: Array of the resumes found
          items:
            $ref: '#/components/schemas/ResumesSearchForResumesItem'
          type: array
      required:
        - items
      title: Resumes found
      type: object
    ResumesSearchForResumesItem:
      anyOf:
        - $ref: '#/components/schemas/ResumesSearchForEmployerAndApplicant'
      title: Resume found
      type: object
    ResumesSearchForEmployerAndApplicant:
      allOf:
        - $ref: '#/components/schemas/ResumeResumeShort'
        - $ref: '#/components/schemas/ResumeObjectsLastNegotiations'
        - $ref: '#/components/schemas/ResumesSearchForResumesPrivateFields'
        - properties:
            contacts_open_until_date:
              description: Date of hiding resume contact information in `YYYY-MM-DD` format
              nullable: true
              type: string
            job_search_status:
              allOf:
                - $ref: '#/components/schemas/_IncludesIdNameLastChangeTime'
              description: 'To obtain this data, provide the `with_job_search_status=true` parameter'
            url:
              description: Link to the resume
              type: string
          type: object
      title: Resume found
      type: object
    ResumeObjectsLastNegotiations:
      properties:
        last_negotiation:
          description: Information about the last status in the negotiation history
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/ResumesNegotiationNano'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
      title: Last status in negotiation history
      type: object
    ResumesSearchForResumesPrivateFields:
      properties: {}
      title: Private fields for resume searching
      type: object
    SalaryStatisticsEvaluationResponse:
      properties:
        market_salary:
          $ref: '#/components/schemas/SalaryStatisticsMarketSalary'
          required:
            - average
            - minimum
            - maximum
        resulting_parameters:
          $ref: '#/components/schemas/SalaryStatisticsResultingParameters'
      required:
        - market_salary
        - resulting_parameters
      title: Salary estimate
      type: object
    SalaryStatisticsMarketSalary:
      properties:
        average:
          description: Average calculated value
          type: number
        bottom:
          description: Lower bound of the market range (25th percentile)
          type: number
        maximum:
          description: Maximum values (90th percentile)
          type: number
        median:
          description: Market median value
          type: number
        minimum:
          description: Minimum values (10th percentile)
          type: number
        upper:
          description: Upper bound of the market range (75th percentile)
          type: number
      required:
        - upper
        - median
        - bottom
      title: Market salary statistics
      type: object
    SalaryStatisticsResultingParameters:
      description: Set of parameters used for the calculation
      properties:
        areas:
          description: Region codes
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          type: array
        employee_levels:
          description: Levels of specialists
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          nullable: true
          type: array
        employers_count:
          description: Number of employers whose positions are included in the sample collection
          type: number
        excluded_areas:
          description: Excluded region codes
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          nullable: true
          type: array
        indirect_calculation:
          description: Indirect salary estimation parameters
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/SalaryStatisticsIndirectCalculation'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        industries:
          description: Industries
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          nullable: true
          type: array
        positions_count:
          description: Number of positions on which the sample collection is based
          type: number
        sources:
          description: |
            Data sources used. Possible values:

            * `SALARIES` — data from the salary database
            * `RESUMES` — data from resumes
            * `VACANCIES` — data from vacancies
          items:
            enum:
              - SALARIES
              - RESUMES
              - VACANCIES
            type: string
          type: array
        specialities:
          description: Professional areas and specializations
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          nullable: true
          type: array
      required:
        - areas
        - sources
        - employers_count
        - positions_count
      title: Parameters
      type: object
    SalaryStatisticsIndirectCalculation:
      properties:
        indirect_areas:
          description: Regions used in obtaining the indirect estimate
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          nullable: true
          type: array
        indirect_employee_levels:
          description: Specialist levels included in the sample collection for the region used in obtaining the indirect estimate
          items:
            $ref: '#/components/schemas/_IncludesIdName'
          nullable: true
          type: array
        indirect_regional_ratio:
          description: Regional coefficient used to obtain the indirect salary estimate
          type: number
      required:
        - indirect_regional_ratio
      title: Indirect estimate
      type: object
    SavedSearchesSavedSearchItem:
      properties:
        created_at:
          description: Creation date and time
          type: string
        id:
          description: Saved search ID
          type: string
        items:
          allOf:
            - $ref: '#/components/schemas/_IncludesCountUrl'
            - description: Vacancy/resume found list data
              type: object
        name:
          description: Saved search name
          type: string
        new_items:
          allOf:
            - $ref: '#/components/schemas/_IncludesCountUrl'
            - description: |
                Information on the list of vacancies/resumes that have appeared since the last autosearch view. Upon requesting a `new_items` directory the new item counter resets (a slight delay is possible)

                The `new_items.count` is updated once per hour. Therefore, the real number of new items found may differ from this counter's value
              type: object
        subscription:
          description: Subscription status
          type: boolean
      required:
        - id
        - name
        - created_at
        - subscription
        - items
        - new_items
      title: Saved vacancy/resume search
      type: object
    _IncludesCountUrl:
      properties:
        count:
          description: Number of elements
          type: number
        url:
          description: Link to obtain elements
          type: string
      required:
        - count
        - url
      title: Elements
      type: object
    SavedSearchesSavedSearchResponse:
      allOf:
        - $ref: '#/components/schemas/SavedSearchesSavedSearchItems'
          type: object
        - $ref: '#/components/schemas/_IncludesPagination'
          type: object
      title: Successful response
    SavedSearchesSavedSearchItems:
      properties:
        items:
          description: List of saved vacancy/resume searches
          items:
            $ref: '#/components/schemas/SavedSearchesSavedSearchItem'
          minItems: 0
          type: array
      required:
        - items
      title: List of saved vacancy/resume searches
    ServicesVacancyAvailablePublication:
      properties:
        publication_variants:
          description: List of publication options available
          items:
            $ref: '#/components/schemas/ServicesVacanciesAvailablePublications'
          type: array
      required:
        - publication_variants
      title: List of vacancy publication options
      type: object
    ServicesVacanciesAvailablePublications:
      properties:
        appearance:
          $ref: '#/components/schemas/VacancyVacancyPropertiesAppearance'
          description: Display strings for the publication option
        available_publications_count:
          description: Number of available publications
          example: 0
          type: number
        suitable_packages:
          description: Applicable service packages available to the employer
          items:
            $ref: '#/components/schemas/ServicesPublicSuitablePackage'
          nullable: true
          type: array
        vacancy_properties:
          $ref: '#/components/schemas/VacancyVariantVacancyProperties'
          description: 'Vacancy properties such as tariff, anonymity, etc'
      required:
        - appearance
        - available_publications_count
        - suitable_packages
        - vacancy_properties
      title: Publication option available
      type: object
    ServicesPublicSuitablePackage:
      properties:
        count:
          description: Number of available publications
          example: 0
          type: number
        invalid:
          description: Whether this package can be published with the region and professional role specified in the query parameters
          type: boolean
        price_regions:
          description: Regions where the package is available
          example:
            - areas_url: 'https://api.hh.ru/areas?vacancy_publication_flag=true&price_region_id=2000231'
              id: '2000231'
              title: Москва и Московская область
          items:
            properties:
              areas_url:
                description: 'URL for the list of regions where a vacancy of this type can be published. The list is returned as a tree structure, and vacancy publication is only possible in leaf nodes of the tree. These are marked with the `can_publish=true` flag'
                type: string
              id:
                description: Region ID
                type: string
              title:
                description: Region name
                type: string
            type: object
          nullable: true
          type: array
      required:
        - invalid
        - count
        - price_regions
      title: Applicable service packages available to the employer
      type: object
    VacancyVacancyPropertiesAppearance:
      description: Translations
      properties:
        description:
          description: Publication option description
          type: string
        title:
          description: Publication option name
          type: string
      title: Translations
      type: object
    VacancyVariantVacancyProperties:
      description: 'Vacancy properties for the variant, such as tariff and anonymity'
      properties:
        required:
          $ref: '#/components/schemas/VacancyRequiredVacancyProperties'
      required:
        - required
      title: Variant vacancy properties
      type: object
    VacancyRequiredVacancyProperties:
      description: List of properties
      items:
        $ref: '#/components/schemas/VacancyRequiredVacancyPropertyItem'
      title: Required properties
      type: array
    VacancyRequiredVacancyPropertyItem:
      description: One property in a publication variant required-properties list
      properties:
        parameters:
          description: Property parameters when applicable to the variant
          items:
            properties:
              key:
                description: Parameter name
                type: string
              value:
                description: Parameter value
                type: string
            type: object
          nullable: true
          type: array
        property_type:
          description: Property name
          type: string
      required:
        - property_type
      title: Required vacancy property item
      type: object
    SuggestsAreas:
      additionalProperties: false
      description: Suggestions for regions
      properties:
        items:
          description: Info on regions found
          items:
            $ref: '#/components/schemas/SuggestsAreasItem'
          title: Array of regions found
          type: array
      required:
        - items
      title: Suggestions for regions
      type: object
    SuggestsAreasItem:
      properties:
        id:
          description: Region ID
          type: string
        parent:
          $ref: '#/components/schemas/SuggestsAreasItem'
          description: Parent region
        text:
          description: Region name
          type: string
        url:
          description: Region URL
          type: string
      required:
        - id
        - text
        - url
      title: Region
      type: object
    SuggestsCompanies:
      additionalProperties: false
      description: Company suggestions
      properties:
        items:
          description: Info on companies found
          items:
            $ref: '#/components/schemas/SuggestsCompanyItem'
          title: Array of companies found
          type: array
      required:
        - items
      title: Company suggestions
      type: object
    SuggestsCompanyItem:
      allOf:
        - $ref: '#/components/schemas/SuggestsEmployerItem'
        - properties:
            area:
              $ref: '#/components/schemas/SuggestsArea'
            industries:
              description: Scope of activity
              items:
                $ref: '#/components/schemas/_IncludesIdName'
              type: array
          required:
            - area
          type: object
      title: Information on companies found
      type: object
    SuggestsArea:
      properties:
        id:
          description: Area ID
          type: string
        name:
          description: Area name
          type: string
      required:
        - id
        - name
      title: Area
    SuggestsEmployerItem:
      properties:
        id:
          description: Company ID
          type: string
        logo_urls:
          $ref: '#/components/schemas/SuggestsLogoUrl'
          description: Company logo URL
        text:
          description: Company name
          type: string
        url:
          description: Company website
          type: string
      required:
        - id
        - text
      title: Information on companies found
    SuggestsLogoUrl:
      nullable: true
      properties:
        '90':
          description: Small logo URL
          type: string
        '240':
          description: Medium logo URL
          type: string
      required:
        - '90'
      title: Company logo URL
      type: object
    SuggestsEducationalInstitutions:
      properties:
        items:
          description: Info on educational institutions found
          items:
            $ref: '#/components/schemas/_IncludesEducationalInstitutionItem'
          title: Array of educational institutions found
          type: array
      required:
        - items
      title: Educational institutions
      type: object
    _IncludesEducationalInstitutionItem:
      properties:
        acronym:
          description: Short name of educational institution
          nullable: true
          type: string
        area:
          allOf:
            - $ref: '#/components/schemas/SuggestsArea'
            - type: object
          description: Area
        id:
          description: Educational institution ID
          type: string
        synonyms:
          description: Educational institution alternate name
          nullable: true
          type: string
        text:
          description: Educational institution full name
          type: string
      required:
        - id
        - text
        - area
      title: Educational institution
      type: object
    SuggestsErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            bad_argument:
              deprecated: true
              enum:
                - locale
                - text
                - area_id
              type: string
            bad_arguments:
              deprecated: true
              items:
                properties:
                  description:
                    type: string
                  name:
                    description: |
                      Field with an error. 
                      Possible values:
                      * `locale` — Unsupported language specified
                      * `text` — Search text must be between 2 and 30,000 characters long
                      * `area_id` - Invalid region ID specified
                    enum:
                      - locale
                      - text
                      - area_id
                    type: string
                type: object
              type: array
            description:
              deprecated: true
              type: string
            errors:
              items:
                properties:
                  type:
                    enum:
                      - bad_argument
                    type: string
                  value:
                    description: |
                      Field with an error. 
                      Possible values:
                        * `locale` — Unsupported language specified
                        * `text` — Search text must be between 2 and 30,000 characters long
                        * `area_id` - Invalid region ID specified
                    enum:
                      - locale
                      - text
                      - area_id
                    type: string
                type: object
              type: array
          required:
            - errors
          type: object
      title: Error
    SuggestsFieldsOfStudy:
      additionalProperties: false
      description: Specialization suggestions
      properties:
        items:
          description: Info on specializations found
          items:
            $ref: '#/components/schemas/SuggestsFieldsOfStudyItem'
          title: Array of specializations found
          type: array
      required:
        - items
      title: Specialization suggestions
      type: object
    SuggestsFieldsOfStudyItem:
      properties:
        id:
          description: Specialization ID
          type: string
        text:
          description: Specialization name
          type: string
      required:
        - id
        - text
      title: Information on specializations found
      type: object
    SuggestsPositions:
      additionalProperties: false
      description: Resume position suggestions
      properties:
        items:
          description: Info on resume positions found
          items:
            $ref: '#/components/schemas/SuggestsPositionItem'
          title: Array of resume positions found
          type: array
      required:
        - items
      title: Resume position suggestions
      type: object
    SuggestsPositionItem:
      properties:
        id:
          description: Position ID
          example: '2063'
          type: string
        professional_roles:
          description: Information about professional roles corresponding to the position
          items:
            $ref: '#/components/schemas/SuggestsProfessionalRoleItemWithName'
          minItems: 1
          title: Array of professional roles corresponding to the position
          type: array
        specializations:
          description: Information about specializations corresponding to the position
          items:
            $ref: '#/components/schemas/SuggestsSpecializationsWithName'
          minItems: 1
          title: Array of specializations corresponding to the position
          type: array
        text:
          description: Position name
          example: Personal driver
          type: string
      required:
        - id
        - text
        - professional_roles
      title: Information on positions found
      type: object
    SuggestsProfessionalRoleItemWithName:
      properties:
        accept_incomplete_resumes:
          description: Applications with incomplete resumes are accepted for this role
          example: true
          type: boolean
        id:
          description: Professional role ID
          example: '21'
          type: string
        name:
          description: Professional role name
          example: Driver
          type: string
      required:
        - id
        - name
        - accept_incomplete_resumes
      title: Information on professional roles with the name found
      type: object
    SuggestsSpecializationsWithName:
      properties:
        id:
          description: Specialization ID
          example: '21.17'
          type: string
        name:
          description: Specialization name
          example: Truck haulage
          type: string
        profarea_id:
          description: Professional role ID
          example: '21'
          type: string
        profarea_name:
          description: Professional role name
          example: 'Transport, logistics'
          type: string
      required:
        - id
        - name
        - profarea_id
        - profarea_name
      title: Information about found specializations with the name
      type: object
    SuggestsProfessionalRoles:
      additionalProperties: false
      description: Professional role suggestions
      properties:
        items:
          description: Info on professional roles found
          items:
            $ref: '#/components/schemas/SuggestsProfessionalRoleItem'
          title: Array of professional roles found
          type: array
      required:
        - items
      title: Professional role suggestions
      type: object
    SuggestsProfessionalRoleItem:
      properties:
        accept_incomplete_resumes:
          description: Applications with incomplete resumes are accepted for this role
          example: true
          type: boolean
        id:
          description: Professional role ID
          example: '21'
          type: string
        text:
          description: Professional role name
          example: Driver
          type: string
      required:
        - id
        - text
        - accept_incomplete_resumes
      title: Information on professional roles found
      type: object
    SuggestsSearchKeyword:
      additionalProperties: false
      description: Suggestions for search key words
      properties:
        items:
          items:
            $ref: '#/components/schemas/SuggestsSearchKeywordItem'
          title: Array of key words
          type: array
        suggest_id:
          title: Suggestion UUID
          type: string
      required:
        - items
      title: Suggestions for search key words
      type: object
    SuggestsSearchKeywordItem:
      properties:
        text:
          description: Key word
          type: string
      required:
        - text
      title: Key word
      type: object
    SuggestsSkillSet:
      additionalProperties: false
      description: Key skills suggestions
      properties:
        items:
          description: Array of key skills found
          items:
            $ref: '#/components/schemas/_IncludesSkillSetItem'
          type: array
      required:
        - items
      title: Key skills suggestions
      type: object
    SuggestsVacancyPositions:
      additionalProperties: false
      description: Vacancy position suggestions
      properties:
        items:
          description: Information about vacancy positions found
          items:
            $ref: '#/components/schemas/SuggestsVacancyPositionItem'
          title: Array of vacancy positions found
          type: array
      required:
        - items
      title: Vacancy position suggestions
      type: object
    SuggestsVacancyPositionItem:
      properties:
        id:
          description: Position ID
          example: '2063'
          type: string
        professional_roles:
          description: Information about professional roles corresponding to the position
          items:
            $ref: '#/components/schemas/SuggestsProfessionalRoleItemWithName'
          minItems: 1
          title: Array of professional roles corresponding to the position
          type: array
        text:
          description: Position name
          example: Personal driver
          type: string
      required:
        - id
        - text
        - professional_roles
      title: Information on positions found
      type: object
    VacanciesArchivedVacancyListResponse:
      allOf:
        - $ref: '#/components/schemas/_IncludesPagination'
          type: object
        - $ref: '#/components/schemas/VacanciesArchivedVacancyList'
          type: object
      title: Vacancies in the archive
      type: object
    VacanciesArchivedVacancyList:
      properties:
        items:
          description: List of the archived vacancies
          items:
            $ref: '#/components/schemas/VacanciesVacancyArchived'
          type: array
      required:
        - items
      title: Archived vacancies
    VacanciesVacancyArchived:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyShort'
        - $ref: '#/components/schemas/VacanciesVacancyArchivedFields'
      title: Archived vacancy representation
      type: object
    VacanciesVacancyArchivedFields:
      properties:
        archived_at:
          description: Date and time of the vacancy archiving
          type: string
        closed_for_applicants:
          $ref: '#/components/schemas/VacancyClosedForApplicants'
        counters:
          $ref: '#/components/schemas/VacancyCountersForArchivedOrHidden'
        created_at:
          description: Date and time of the vacancy publication
          type: string
        sort_point_distance:
          description: |
            Distance in meters between the sort center (specified by the `sort_point_lat`, `sort_point_lng` parameters) and the address provided in the vacancy. If the address only includes metro stations, the distance returned is between the sort center and the geometric midpoint of the specified stations.

            The `sort_point_distance` value is returned only if the `sort_point_lat`, `sort_point_lgn`, and `order_by=distance` parameters are provided
          nullable: true
          type: number
        vacancy_properties:
          $ref: '#/components/schemas/VacancyVacancyProperties'
          description: 'Vacancy properties such as tariff, anonymity, etc'
      required:
        - counters
        - vacancy_properties
        - closed_for_applicants
        - archived_at
        - created_at
      title: Fields for an archived vacancy
      type: object
    VacancyClosedForApplicants:
      nullable: true
      title: Whether the vacancy is hidden from applicants
      type: boolean
    VacancyCountersForArchivedOrHidden:
      allOf:
        - $ref: '#/components/schemas/VacancyCounters'
        - properties:
            invitations_and_responses:
              description: Number of invitations and responses to a vacancy
              type: number
          type: object
      title: Counters for an archived vacancy
      type: object
    VacancyCounters:
      description: |
        Number of responses/invitations. Available for applicant authorization and application authorization with the `responses_count_enabled=true` query-parameter
      properties:
        responses:
          description: Number of responses to the vacancy since publication
          type: number
        total_responses:
          description: Number of responses to the vacancy since creation
          type: number
      title: Counters
      type: object
    VacancyVacancyProperties:
      description: 'Vacancy properties such as tariff, anonymity, etc'
      properties:
        appearance:
          $ref: '#/components/schemas/VacancyVacancyPropertiesAppearance'
          description: Переводы
        properties:
          description: |
            Vacancy properties.
            Available only for managers of the employer who owns the vacancy
          items:
            properties:
              end_time:
                description: Property expiration time
                type: string
              parameters:
                description: Property parameters
                items:
                  properties:
                    key:
                      description: Parameter name
                      type: string
                    value:
                      description: Parameter value
                      type: string
                  type: object
                type: array
              property_type:
                $ref: '#/components/schemas/VacancyPublicPropertyTypes'
              start_time:
                description: Property activation time
                type: string
            required:
              - parameters
              - property_type
            type: object
          type: array
      required:
        - properties
      title: Vacancy properties
      type: object
    VacancyPublicPropertyTypes:
      description: |
        Property type name:
        * `HH_ANONYMOUS` — Published without company name and logo
        * `HH_STANDARD_PLUS` — With promotion; for faster hiring
        * `HH_STANDARD` — No promotion; for regular hiring
        * `HH_FREE` — Free vacancy for candidate search
        * `HH_PREMIUM` — Stays above standard vacancies for 7 days; more candidates will notice you
        * `HH_ADVERTISING` — Brand promotion and vacancy responses on your website
        * `HH_PAY_FOR_PERFORMANCE` — Pay-per-contact vacancy
        * `ZP_CROSSPOSTING` — Vacancy on hh.ru with additional publication on zarplata.ru
      title: Vacancy property type
      type: string
    VacanciesVacancyShort:
      properties:
        address:
          $ref: '#/components/schemas/VacancyAddressRawOutput'
        alternate_url:
          description: Link to the vacancy on the website
          type: string
        apply_alternate_url:
          description: Link to the application for the vacancy on the website
          type: string
        archived:
          description: Whether the vacancy is archived
          type: boolean
        area:
          $ref: '#/components/schemas/_IncludesArea'
        department:
          $ref: '#/components/schemas/VacanciesObjectsDepartment'
        employer:
          $ref: '#/components/schemas/VacanciesObjectsEmployer'
        employment_form:
          $ref: '#/components/schemas/VacancyEmploymentFormOutput'
        has_test:
          description: Whether a test assignment is attached to the vacancy
          type: boolean
        id:
          description: Vacancy ID
          type: string
        name:
          description: Vacancy name
          type: string
        premium:
          deprecated: true
          description: 'Deprecated. Replaced by the [vacancy_properties](#tag/Employer-services/operation/get-vacancy-available-services-list) parameter'
          type: boolean
        published_at:
          description: Date and time of the vacancy publication
          type: string
        relations:
          description: 'Returns the applicant''s relations to the vacancy. Values from the `vacancy_relation` field of the [field directory](#tag/Public-directories/operation/get-dictionaries)'
          items:
            $ref: '#/components/schemas/VacancyRelationItem'
          type: array
        response_letter_required:
          description: Whether a cover letter is required
          type: boolean
        response_url:
          description: Response URL for direct vacancies (`type.id=direct`)
          nullable: true
          type: string
        salary:
          $ref: '#/components/schemas/VacancySalary'
          deprecated: true
        salary_range:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancySalaryRangeSalaryRangeOutput'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        show_contacts:
          $ref: '#/components/schemas/VacancyShowContacts'
        show_logo_in_search:
          description: Whether to show the vacancy logo in search results
          nullable: true
          type: boolean
        type:
          $ref: '#/components/schemas/VacancyDeprecatedTypeOutput'
        url:
          description: Vacancy URL
          type: string
      required:
        - id
        - premium
        - name
        - department
        - response_letter_required
        - area
        - salary
        - salary_range
        - published_at
        - archived
        - apply_alternate_url
        - url
        - alternate_url
        - relations
        - employer
        - has_test
      title: Vacancy summary
      type: object
    VacancyDeprecatedTypeOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyDeprecatedType'
        - properties:
            name:
              description: Vacancy type name
              type: string
          type: object
      description: 'The `open/close` values have been replaced with `closed_for_applicants` and `anonymous`, `direct` have been replaced with `vacancy_properties`'
      title: Vacancy type
      type: object
    VacancyDeprecatedType:
      deprecated: true
      description: 'Vacancy type. The `open/close` values have been replaced with `closed_for_applicants` and `anonymous`, `direct` have been replaced with `vacancy_properties` (HH_ANONYMOUS, HH_ADVERTISING). If `vacancy_properties` is provided, the value of this field will be ignored. If only `closed_for_applicants` is provided without `vacancy_properties`, it will be ignored'
      properties:
        id:
          description: 'Type from the [vacancy_type directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      required:
        - id
      title: Vacancy type
      type: object
    VacancyEmploymentFormOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyEmploymentForm'
        - properties:
            name:
              description: Employment type name
              type: string
          type: object
      nullable: true
      title: Employment type
      type: object
    VacancyEmploymentForm:
      nullable: true
      properties:
        id:
          description: 'Values from the [employment_form directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Employment type
      type: object
    VacancyRelationItem:
      enum:
        - favorited
        - got_response
        - got_invitation
        - got_rejection
        - blacklisted
        - null
      nullable: true
      title: Relation text identifier
      type: string
    VacancyShowContacts:
      description: Whether contact information is available in the vacancy
      nullable: true
      readOnly: true
      title: Whether contact information is available in the vacancy
      type: boolean
    VacanciesAvailableVacancyTypeResponse:
      properties:
        items:
          description: Array of vacancy publication options
          items:
            $ref: '#/components/schemas/VacanciesAvailableVacancyTypeItem'
          type: array
      required:
        - items
      title: Information about vacancy publication options
      type: object
    VacanciesAvailableVacancyTypeItem:
      properties:
        available_publications_count:
          description: Total number of publications available to this manager
          type: number
        description:
          description: Description of publication type
          type: string
        name:
          description: Name of the publication type
          type: string
        publications:
          $ref: '#/components/schemas/VacancyPublications'
        vacancy_billing_type:
          allOf:
            - description: 'Vacancy billing type. Possible values are listed in the `vacancy_billing_type` field of [directories](#tag/Public-directories/operation/get-dictionaries)'
              type: object
            - $ref: '#/components/schemas/VacancyBillingType'
        vacancy_types:
          $ref: '#/components/schemas/VacancyTypes'
      required:
        - name
        - description
        - available_publications_count
        - vacancy_billing_type
        - vacancy_types
        - publications
      title: Vacancy publication option
      type: object
    VacancyBillingType:
      properties:
        id:
          description: 'Billing type [from vacancy_billing_type dictionary](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      required:
        - id
      title: Billing type
      type: object
    VacancyPublications:
      description: List of regions available for vacancy publication and the number of publications available to the employer
      items:
        $ref: '#/components/schemas/VacancyPublication'
      title: Information about regions and number of publications
      type: array
    VacancyPublication:
      properties:
        areas_url:
          description: 'URL for the list of regions where a vacancy of this type can be published. The list is returned as a tree structure, and vacancy publication is only possible in leaf nodes of the tree. These are marked with the `can_publish=true` flag'
          type: string
        count:
          description: Number of publications in the region available to the employer
          type: number
        name:
          description: Region name
          type: string
      required:
        - name
        - count
        - areas_url
      title: Publication information
      type: object
    VacancyTypes:
      description: List of vacancy types
      items:
        $ref: '#/components/schemas/VacancyType'
      title: List of vacancy types
      type: array
    VacanciesDeletedVacancyListResponse:
      allOf:
        - $ref: '#/components/schemas/_IncludesPagination'
        - $ref: '#/components/schemas/VacanciesDeletedVacancyListItems'
      title: Successful response
    VacanciesDeletedVacancyListItems:
      properties:
        items:
          description: List of deleted vacancies
          items:
            $ref: '#/components/schemas/VacanciesVacancyArchived'
          minItems: 0
          type: array
      required:
        - items
      title: List of deleted vacancies
    VacanciesPreferredNegotiationsOrder:
      properties:
        order_type:
          allOf:
            - $ref: '#/components/schemas/_IncludesIdName'
          description: Sorting type
      required:
        - order_type
      title: Preferred response sorting method
      type: object
    VacanciesPreferredNegotiationsOrderRequest:
      properties:
        order:
          description: 'Sort option ID. Possible values are listed in the `order_types` field of the [responses and invitations collection](#tag/Employer-responsesinvitations/operation/get-negotiations). API does not support some sort options'
          type: string
      required:
        - order
      title: Preferred response sorting
      type: object
    VacanciesVacanciesResponse:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacanciesItems'
          type: object
        - $ref: '#/components/schemas/_IncludesPagination'
          type: object
        - $ref: '#/components/schemas/VacanciesClusters'
          type: object
        - $ref: '#/components/schemas/VacanciesArguments'
          type: object
        - properties:
            alternate_url:
              description: Link to the vacancy
              nullable: true
              type: string
            fixes:
              $ref: '#/components/schemas/VacanciesFixes'
            suggests:
              $ref: '#/components/schemas/VacanciesSuggests'
          type: object
      title: Successful response
    VacanciesArguments:
      properties:
        arguments:
          description: |
            Array of search parameters provided in the request.

            Returned only if the `describe_arguments=true` parameter is specified. The array only includes those arguments that affect vacancy search. Unknown arguments are ignored. An array item with a single argument value may appear multiple times if the parameter has multiple values
          items:
            $ref: '#/components/schemas/VacanciesArgumentItem'
          nullable: true
          type: array
      title: Selected arguments in a vacancy search
      type: object
    VacanciesArgumentItem:
      properties:
        argument:
          description: Vacancy search parameter
          type: string
        cluster_group:
          description: Cluster group related to this argument
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesIdName'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        disable_url:
          description: URL of the resulting vacancy search if this parameter is no longer selected
          type: string
        hex_color:
          description: Line color in HEX format `RRGGBB` (from `000000` to `FFFFFF`). Returned only for the `metro` parameter
          nullable: true
          type: string
        metro_type:
          description: Metro station or line (`station`/`line`). Returned only for the `metro` parameter
          nullable: true
          type: string
        name:
          description: Value name
          nullable: true
          type: string
        value:
          description: Parameter value
          type: string
        value_description:
          description: Parameter description
          nullable: true
          type: string
      required:
        - argument
        - value
        - disable_url
      title: Search argument
      type: object
    VacanciesClusters:
      properties:
        clusters:
          description: 'Array of [search clusters](#tag/Vacancy-search/Clusters-of-vacancy-search)'
          items:
            $ref: '#/components/schemas/VacanciesClusterItem'
          nullable: true
          type: array
      title: Clusters in the vacancy search
      type: object
    VacanciesClusterItem:
      properties:
        id:
          description: Cluster ID
          type: string
        items:
          description: 'Array of search queries within this cluster, including additional parameters'
          items:
            $ref: '#/components/schemas/VacanciesItemsOfClusterItem'
          type: array
        name:
          description: Cluster type name
          type: string
      required:
        - id
        - name
        - items
      title: Cluster
      type: object
    VacanciesItemsOfClusterItem:
      properties:
        count:
          description: Number of vacancies in this cluster element
          type: number
        metro_line:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/_IncludesClusterMetroLine'
          type: object
        metro_station:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/_IncludesClusterMetroStation'
          type: object
        name:
          description: Cluster element name
          type: string
        type:
          description: Type of value related to the group
          enum:
            - metro_station
            - metro_line
          nullable: true
          type: string
        url:
          description: Link to search results for this cluster element
          type: string
      required:
        - name
        - url
        - count
      title: Search query in a cluster
      type: object
    _IncludesClusterMetroLine:
      properties:
        area:
          allOf:
            - description: Region (city) where the line is located
              type: object
            - $ref: '#/components/schemas/_IncludesArea'
        hex_color:
          description: Line color in HEX format `RRGGBB` (from `000000` to `FFFFFF`)
          type: string
        id:
          description: Line ID
          type: string
      required:
        - id
        - hex_color
        - area
      title: Metro line
      type: object
    _IncludesClusterMetroStation:
      properties:
        area:
          allOf:
            - description: Region of the metro station
              type: object
            - $ref: '#/components/schemas/_IncludesArea'
        hex_color:
          description: Line color in HEX format `RRGGBB` (from `000000` to `FFFFFF`)
          type: string
        id:
          description: Metro station ID
          type: string
        lat:
          description: Latitude
          type: number
        lng:
          description: Longitude
          type: number
        order:
          description: Sequential number of the station in the metro line
          type: number
      required:
        - id
        - hex_color
        - lat
        - lng
        - order
        - area
      title: Metro station
      type: object
    VacanciesFixes:
      nullable: true
      properties:
        fixed:
          description: Fixed text
          type: string
        original:
          description: Original text
          type: string
      title: Corrections applied to the query text
      type: object
    VacanciesSuggests:
      nullable: true
      properties:
        found:
          description: Results found for suggested text
          type: integer
        value:
          description: Suggested text
          type: string
      title: Corrections suggested for the query text
      type: object
    VacanciesVacanciesItems:
      properties:
        items:
          description: Vacancy list
          items:
            $ref: '#/components/schemas/VacanciesVacanciesItem'
          minItems: 0
          type: array
      required:
        - items
      title: Vacancy list
    VacanciesVacanciesItem:
      allOf:
        - $ref: '#/components/schemas/VacanciesStandardVacancyFields'
        - $ref: '#/components/schemas/VacanciesAdditionalVacancyFields'
        - properties:
            show_logo_in_search:
              description: Whether to show the vacancy logo in search results
              nullable: true
              type: boolean
          type: object
      title: Vacancy
    VacanciesAdditionalVacancyFields:
      properties:
        counters:
          $ref: '#/components/schemas/VacancyCounters'
        employment:
          $ref: '#/components/schemas/VacancyEmploymentOutput'
          deprecated: true
        employment_form:
          $ref: '#/components/schemas/VacancyEmploymentFormOutput'
        experience:
          $ref: '#/components/schemas/VacancyExperienceOutput'
        snippet:
          $ref: '#/components/schemas/VacancySnippet'
          description: 'Additional text snippets for the found vacancy. If a search phrase (the `text` parameter) appears in a snippet, it will be highlighted with the `highlighttext` tag.'
        sort_point_distance:
          $ref: '#/components/schemas/VacancySortPointDistance'
      required:
        - snippet
      title: Vacancy
      type: object
    VacancyEmploymentOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyEmployment'
        - properties:
            name:
              description: Name of the employment type
              type: string
          type: object
      deprecated: true
      nullable: true
      title: Employment type
      type: object
    VacancyEmployment:
      deprecated: true
      nullable: true
      properties:
        id:
          description: 'Employment type from the [employment directory](#tag/Public-directories/operation/get-dictionaries)'
          nullable: true
          type: string
      title: Employment type
      type: object
    VacancyExperienceOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyExperience'
        - properties:
            name:
              description: Work experience name
              type: string
          type: object
      nullable: true
      title: Work experience
      type: object
    VacancyExperience:
      nullable: true
      properties:
        id:
          description: 'Required work experience from the [experience directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Work experience
      type: object
    VacancySnippet:
      properties:
        requirement:
          description: 'Snippet from the vacancy requirements, if found in the description text'
          nullable: true
          type: string
        responsibility:
          description: 'Snippet from the vacancy responsibilities, if found in the description text'
          nullable: true
          type: string
      title: Additional text snippets
      type: object
    VacancySortPointDistance:
      description: |
        Distance in meters between the sort center (specified by the `sort_point_lat`, `sort_point_lng` parameters) and the address provided in the vacancy. If the address only includes metro stations, the distance returned is between the sort center and the geometric midpoint of the specified stations.

            The `sort_point_distance` value is returned only if the `sort_point_lat`, `sort_point_lgn`, and `order_by=distance` parameters are provided
      nullable: true
      title: Distance between the sort center and the address specified in the vacancy
      type: number
    VacanciesStandardVacancyFields:
      properties:
        accept_incomplete_resumes:
          $ref: '#/components/schemas/VacancyAcceptIncompleteResumes'
        accept_labor_contract:
          $ref: '#/components/schemas/VacancyAcceptLaborContract'
        accept_temporary:
          $ref: '#/components/schemas/VacancyAcceptTemporary'
          deprecated: true
        address:
          $ref: '#/components/schemas/VacancyAddressRawOutput'
        alternate_url:
          description: Link to the vacancy on site
          type: string
        apply_alternate_url:
          description: Link to the vacancy application on site
          type: string
        archived:
          description: Whether the vacancy is archived
          nullable: true
          type: boolean
        area:
          $ref: '#/components/schemas/_IncludesArea'
        civil_law_contracts:
          $ref: '#/components/schemas/VacancyCivilLawContractsCivilLawContractsOutput'
        contacts:
          $ref: '#/components/schemas/VacancyContactsOutput'
        created_at:
          description: Date and time of the vacancy publication
          type: string
        department:
          $ref: '#/components/schemas/VacanciesObjectsDepartment'
        employer:
          $ref: '#/components/schemas/VacanciesEmployerPublic'
        fly_in_fly_out_duration:
          $ref: '#/components/schemas/VacancyFlyInFlyOutDurationFlyInFlyOutDurationOutput'
        has_test:
          description: Whether a test assignment is attached to the vacancy
          type: boolean
        id:
          description: The vacancy ID
          type: string
        insider_interview:
          $ref: '#/components/schemas/VacanciesObjectsInsiderInterview'
        internship:
          $ref: '#/components/schemas/VacancyInternship'
        metro_stations:
          $ref: '#/components/schemas/_IncludesMetroStation'
        name:
          $ref: '#/components/schemas/VacancyName'
        night_shifts:
          $ref: '#/components/schemas/VacancyNightShifts'
        premium:
          description: Whether the vacancy is the premium one
          nullable: true
          type: boolean
        professional_roles:
          $ref: '#/components/schemas/VacancyProfessionalRolesOutput'
        published_at:
          description: Date and time of the vacancy publication
          type: string
        relations:
          $ref: '#/components/schemas/VacancyRelations'
        response_letter_required:
          $ref: '#/components/schemas/VacancyResponseLetterRequired'
        response_url:
          $ref: '#/components/schemas/VacancyResponseUrl'
        salary:
          $ref: '#/components/schemas/VacancySalary'
          deprecated: true
        salary_range:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancySalaryRangeSalaryRangeOutput'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        schedule:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyScheduleOutput'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        show_contacts:
          $ref: '#/components/schemas/VacancyShowContacts'
        sort_point_distance:
          $ref: '#/components/schemas/VacancySortPointDistance'
        type:
          $ref: '#/components/schemas/VacancyTypeOutput'
        url:
          description: The vacancy URL
          type: string
        work_format:
          $ref: '#/components/schemas/VacancyWorkFormatWorkFormatOutput'
        work_schedule_by_days:
          $ref: '#/components/schemas/VacancyWorkScheduleByDaysWorkScheduleByDaysOutput'
        working_days:
          $ref: '#/components/schemas/VacancyWorkingDaysOutput'
          deprecated: true
        working_hours:
          $ref: '#/components/schemas/VacancyWorkingHoursWorkingHoursOutput'
        working_time_intervals:
          $ref: '#/components/schemas/VacancyWorkingTimeIntervalsOutput'
          deprecated: true
        working_time_modes:
          $ref: '#/components/schemas/VacancyWorkingTimeModesOutput'
          deprecated: true
      required:
        - id
        - name
        - department
        - has_test
        - response_letter_required
        - area
        - salary
        - salary_range
        - type
        - published_at
        - apply_alternate_url
        - url
        - alternate_url
        - relations
        - employer
        - accept_incomplete_resumes
        - professional_roles
      title: Vacancy
      type: object
    VacancyAcceptIncompleteResumes:
      description: Allow applications with incomplete resumes
      title: Incomplete resume
      type: boolean
    VacancyAcceptLaborContract:
      description: Indicates whether the candidate can be hired under an employment contract in accordance with labor legislation
      nullable: true
      title: Hiring under an employment contract
      type: boolean
    VacancyAcceptTemporary:
      deprecated: true
      description: Indicates that temporary employment is available for the vacancy. Use `accept_labor_contract` and/or `civil_law_contracts` instead
      nullable: true
      title: Temporary employment
      type: boolean
    VacancyCivilLawContractsCivilLawContractsOutput:
      description: List of valid civil law contract options
      items:
        $ref: '#/components/schemas/VacancyCivilLawContractsCivilLawContractsItemOutput'
      nullable: true
      title: Civil law contract
      type: array
    VacancyCivilLawContractsCivilLawContractsItemOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyCivilLawContractsCivilLawContractsItem'
        - properties:
            name:
              description: Name of the civil law contract option
              type: string
          type: object
      nullable: true
      title: Civil law contract option name
      type: object
    VacancyCivilLawContractsCivilLawContractsItem:
      properties:
        id:
          description: 'Values from the [civil_law_contracts directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Civil law contract option
      type: object
    VacancyContactsOutput:
      description: Contact information
      nullable: true
      properties:
        call_tracking_enabled:
          description: Flag of virtual number connection
          nullable: true
          type: boolean
        email:
          deprecated: true
          description: Email. Value must fit the email format
          nullable: true
          type: string
        name:
          description: Contact name
          nullable: true
          type: string
        phones:
          description: List of contact numbers
          items:
            $ref: '#/components/schemas/VacancyPhoneItem'
          nullable: true
          type: array
      title: Contact information
      type: object
    VacancyPhoneItem:
      properties:
        city:
          description: City code
          type: string
        comment:
          description: Comment (preferred time to call at this number)
          nullable: true
          type: string
        country:
          description: Country code
          type: string
        formatted:
          description: Phone number
          type: string
        number:
          description: Phone number
          type: string
      title: Contact number object
      type: object
    VacancyFlyInFlyOutDurationFlyInFlyOutDurationOutput:
      description: Fly-in fly-out duration options
      items:
        $ref: '#/components/schemas/VacancyFlyInFlyOutDurationFlyInFlyOutDurationItemOutput'
      nullable: true
      title: Fly-in fly-out duration options
      type: array
    VacancyFlyInFlyOutDurationFlyInFlyOutDurationItemOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyFlyInFlyOutDurationFlyInFlyOutDurationItem'
        - properties:
            name:
              description: Fly-in fly-out duration option name
              type: string
          type: object
      nullable: true
      title: Fly-in fly-out duration option name
      type: object
    VacancyFlyInFlyOutDurationFlyInFlyOutDurationItem:
      properties:
        id:
          description: 'Values from the [fly_in_fly_out_duration directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Fly-in fly-out duration options
      type: object
    VacancyInternship:
      description: Internship
      nullable: true
      title: Internship
      type: boolean
    VacancyName:
      description: Name
      title: Name
      type: string
    VacancyNightShifts:
      description: Night shifts
      nullable: true
      title: Night shifts
      type: boolean
    VacancyRelations:
      description: 'Returns the applicant''s relations to the vacancy. Values from the `vacancy_relation` field of the [field directory](#tag/Public-directories/operation/get-dictionaries)'
      items:
        $ref: '#/components/schemas/VacancyRelationItem'
      title: Applicant's relations to the vacancy
      type: array
    VacancyResponseLetterRequired:
      description: Request a cover letter
      title: Cover letter
      type: boolean
    VacancyResponseUrl:
      description: Response URL for direct vacancies (`type.id=direct`)
      nullable: true
      title: URL
      type: string
    VacancyScheduleOutput:
      allOf:
        - $ref: '#/components/schemas/VacancySchedule'
        - properties:
            name:
              description: Schedule name
              type: string
          type: object
      deprecated: true
      title: Schedule
      type: object
    VacancySchedule:
      deprecated: true
      nullable: true
      properties:
        id:
          description: 'Work schedule from the [schedule directory](#tag/Public-directories/operation/get-dictionaries)'
          nullable: true
          type: string
      title: Schedule
      type: object
    VacancyWorkFormatWorkFormatOutput:
      description: List of work formats
      items:
        $ref: '#/components/schemas/VacancyWorkFormatWorkFormatItemOutput'
      nullable: true
      title: Work formats
      type: array
    VacancyWorkFormatWorkFormatItemOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyWorkFormatWorkFormatItem'
        - properties:
            name:
              description: Work format name
              type: string
          type: object
      nullable: true
      title: Work format name
      type: object
    VacancyWorkFormatWorkFormatItem:
      properties:
        id:
          description: 'Values from the [work_format directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Work format
      type: object
    VacancyWorkScheduleByDaysWorkScheduleByDaysOutput:
      description: List of work schedules by days
      items:
        $ref: '#/components/schemas/VacancyWorkScheduleByDaysWorkScheduleByDaysItemOutput'
      nullable: true
      title: Work schedule by days
      type: array
    VacancyWorkScheduleByDaysWorkScheduleByDaysItemOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyWorkScheduleByDaysWorkScheduleByDaysItem'
        - properties:
            name:
              description: Name of the work schedule by days
              type: string
          type: object
      nullable: true
      title: Name of the work schedule by days
      type: object
    VacancyWorkScheduleByDaysWorkScheduleByDaysItem:
      properties:
        id:
          description: 'Values from the [work_schedule_by_days directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Work schedule by days
      type: object
    VacancyWorkingDaysOutput:
      deprecated: true
      description: List of working days
      items:
        $ref: '#/components/schemas/VacancyWorkingDayItemOutput'
      nullable: true
      title: List of working days
      type: array
    VacancyWorkingDayItemOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyWorkingDayItem'
        - properties:
            name:
              description: Working day name
              type: string
          type: object
      deprecated: true
      nullable: true
      title: Working days list
      type: object
    VacancyWorkingDayItem:
      deprecated: true
      properties:
        id:
          description: 'Values from the [working_days directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Work day
      type: object
    VacancyWorkingHoursWorkingHoursOutput:
      description: List of options for working hours per day
      items:
        $ref: '#/components/schemas/VacancyWorkingHoursWorkingHoursItemOutput'
      nullable: true
      title: Daily working hours options
      type: array
    VacancyWorkingHoursWorkingHoursItemOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyWorkingHoursWorkingHoursItem'
        - properties:
            name:
              description: Daily working hours option name
              type: string
          type: object
      nullable: true
      title: Working hours per day option names
      type: object
    VacancyWorkingHoursWorkingHoursItem:
      properties:
        id:
          description: 'Values from the [working_hours directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Working hours per day
      type: object
    VacancyWorkingTimeIntervalsOutput:
      deprecated: true
      description: List of working time periods
      items:
        $ref: '#/components/schemas/VacancyWorkingTimeIntervalItemOutput'
      nullable: true
      title: Working time periods
      type: array
    VacancyWorkingTimeIntervalItemOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyWorkingTimeIntervalItem'
        - properties:
            name:
              description: Working time period name
              type: string
          type: object
      deprecated: true
      nullable: true
      title: Working time period name
      type: object
    VacancyWorkingTimeIntervalItem:
      deprecated: true
      properties:
        id:
          description: 'Working time period from the [working_time_intervals directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Working time period
      type: object
    VacancyWorkingTimeModesOutput:
      deprecated: true
      description: List of working time modes options
      items:
        $ref: '#/components/schemas/VacancyWorkingTimeModeItemOutput'
      nullable: true
      title: Working time modes options
      type: array
    VacancyWorkingTimeModeItemOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyWorkingTimeModeItem'
        - properties:
            name:
              description: Working time period name
              type: string
          type: object
      deprecated: true
      nullable: true
      title: Working time period name
      type: object
    VacancyWorkingTimeModeItem:
      deprecated: true
      properties:
        id:
          description: 'Work schedule options from the [working_time_modes directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Work schedule options
      type: object
    VacanciesVacancy:
      anyOf:
        - $ref: '#/components/schemas/VacanciesVacancyForApplication'
        - $ref: '#/components/schemas/VacanciesVacancyForManager'
      title: Vacancy
      type: object
    VacanciesVacancyForApplication:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyCommonFields'
        - $ref: '#/components/schemas/VacancyHiddenDeprecated'
        - $ref: '#/components/schemas/VacancyBillingTypeObject'
        - $ref: '#/components/schemas/VacancyAddressCommon'
        - properties:
            inclusiveness_description:
              description: Text description of accessibility conditions
              nullable: true
              type: string
            inclusiveness_types:
              description: 'Categories of health characteristics. Values come from the [`inclusiveness_types` directory](#tag/Public-directories/operation/get-dictionaries)'
              items:
                type: string
              type: array
          type: object
      title: Vacancy information with application token
      type: object
    VacanciesVacancyCommonFields:
      properties:
        accept_handicapped:
          $ref: '#/components/schemas/VacancyAcceptHandicapped'
          deprecated: true
        accept_incomplete_resumes:
          $ref: '#/components/schemas/VacancyAcceptIncompleteResumes'
        accept_kids:
          $ref: '#/components/schemas/VacancyAcceptKids'
          deprecated: true
        accept_labor_contract:
          $ref: '#/components/schemas/VacancyAcceptLaborContract'
        accept_temporary:
          $ref: '#/components/schemas/VacancyAcceptTemporary'
          deprecated: true
        age_restriction:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyAgeRestrictionOutput'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        allow_messages:
          $ref: '#/components/schemas/VacancyAllowMessages'
        alternate_url:
          $ref: '#/components/schemas/VacancyAlternateUrl'
        apply_alternate_url:
          $ref: '#/components/schemas/VacancyApplyAlternateUrl'
        approved:
          $ref: '#/components/schemas/VacancyApproved'
        archived:
          $ref: '#/components/schemas/VacancyArchived'
        area:
          $ref: '#/components/schemas/_IncludesArea'
        auto_response:
          $ref: '#/components/schemas/VacancyAutoResponse'
        billing_type:
          $ref: '#/components/schemas/VacancyDeprecatedBillingTypeOutput'
          description: 'Replaced by the [vacancy_properties](#tag/Employer-services/operation/get-vacancy-available-services-list) parameter'
        branded_description:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyBrandedDescription'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: string
        civil_law_contracts:
          $ref: '#/components/schemas/VacancyCivilLawContractsCivilLawContractsOutput'
        closed_for_applicants:
          $ref: '#/components/schemas/VacancyClosedForApplicants'
        code:
          $ref: '#/components/schemas/VacancyCode'
        contacts:
          $ref: '#/components/schemas/VacancyContactsOutput'
        created_at:
          allOf:
            - $ref: '#/components/schemas/VacancyCreatedAt'
          deprecated: true
        department:
          $ref: '#/components/schemas/VacanciesObjectsDepartment'
        description:
          $ref: '#/components/schemas/VacancyDescription'
        driver_license_types:
          $ref: '#/components/schemas/VacancyDriverLicenseTypes'
        employer:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacanciesVacancyEmployer'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        employment:
          $ref: '#/components/schemas/VacancyEmploymentOutput'
          deprecated: true
        employment_form:
          $ref: '#/components/schemas/VacancyEmploymentFormOutput'
        experience:
          $ref: '#/components/schemas/VacancyExperienceOutput'
        fly_in_fly_out_duration:
          $ref: '#/components/schemas/VacancyFlyInFlyOutDurationFlyInFlyOutDurationOutput'
        has_test:
          $ref: '#/components/schemas/VacancyHasTest'
        id:
          $ref: '#/components/schemas/VacancyId'
        initial_created_at:
          $ref: '#/components/schemas/VacancyInitialCreatedAt'
        insider_interview:
          $ref: '#/components/schemas/VacanciesObjectsInsiderInterview'
        internship:
          $ref: '#/components/schemas/VacancyInternship'
        key_skills:
          $ref: '#/components/schemas/VacancyKeySkills'
        languages:
          oneOf:
            - $ref: '#/components/schemas/VacancyLanguagesOutput'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        name:
          $ref: '#/components/schemas/VacancyName'
        negotiations_url:
          description: Link to get the list of responses/invitations
          nullable: true
          type: string
        night_shifts:
          $ref: '#/components/schemas/VacancyNightShifts'
        premium:
          $ref: '#/components/schemas/VacancyPremium'
        professional_roles:
          $ref: '#/components/schemas/VacancyProfessionalRolesOutput'
        published_at:
          $ref: '#/components/schemas/VacancyCreatedAt'
        relations:
          $ref: '#/components/schemas/VacancyRelations'
        response_letter_required:
          $ref: '#/components/schemas/VacancyResponseLetterRequired'
        response_url:
          $ref: '#/components/schemas/VacancyResponseUrl'
        salary:
          $ref: '#/components/schemas/VacancySalary'
          deprecated: true
        salary_range:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancySalaryRangeSalaryRangeOutput'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        schedule:
          $ref: '#/components/schemas/VacancyScheduleOutput'
          deprecated: true
        show_contacts:
          $ref: '#/components/schemas/VacancyShowContacts'
        suitable_resumes_url:
          description: Suitable resumes for the vacancy
          nullable: true
          type: string
        test:
          $ref: '#/components/schemas/VacancyDraftTest'
        type:
          allOf:
            - $ref: '#/components/schemas/_IncludesIdName'
          deprecated: true
          description: |
            Vacancy type (from the [vacancy_type directory](#tag/Public-directories/operation/get-dictionaries)). The open/close values have been replaced with closed_for_applicants and anonymous, direct have been replaced with vacancy_properties (HH_ANONYMOUS, HH_ADVERTISING)
        vacancy_constructor_template:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyVacancyConstructorTemplate'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        vacancy_properties:
          $ref: '#/components/schemas/VacancyPublicationVacancyProperties'
          description: 'Vacancy properties such as tariff, anonymity, etc'
        video_vacancy:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyVideoVacancyVideoVacancyItem'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        work_format:
          $ref: '#/components/schemas/VacancyWorkFormatWorkFormatOutput'
        work_schedule_by_days:
          $ref: '#/components/schemas/VacancyWorkScheduleByDaysWorkScheduleByDaysOutput'
        working_days:
          $ref: '#/components/schemas/VacancyWorkingDaysOutput'
          deprecated: true
        working_hours:
          $ref: '#/components/schemas/VacancyWorkingHoursWorkingHoursOutput'
        working_time_intervals:
          $ref: '#/components/schemas/VacancyWorkingTimeIntervalsOutput'
          deprecated: true
        working_time_modes:
          $ref: '#/components/schemas/VacancyWorkingTimeModesOutput'
          deprecated: true
      required:
        - id
        - description
        - key_skills
        - accept_handicapped
        - accept_kids
        - experience
        - alternate_url
        - apply_alternate_url
        - archived
        - name
        - area
        - initial_created_at
        - created_at
        - published_at
        - response_letter_required
        - type
        - has_test
        - billing_type
        - allow_messages
        - premium
        - driver_license_types
        - accept_incomplete_resumes
        - professional_roles
        - approved
      title: Vacancy common fields
      type: object
    VacanciesVacancyEmployer:
      allOf:
        - $ref: '#/components/schemas/VacanciesEmployerPublic'
        - $ref: '#/components/schemas/VacancyEmployerBlacklisted'
        - $ref: '#/components/schemas/_IncludesEmployerApplicantServicesObject'
        - $ref: '#/components/schemas/VacancyEmployerBages'
      title: Employer fields in the vacancy
    VacancyEmployerBages:
      properties: {}
      title: Employer badges
      type: object
    VacancyEmployerBlacklisted:
      properties:
        blacklisted:
          description: Whether all of the employer's vacancies have been added to the hidden list
          type: boolean
      title: Employer company information
      type: object
    _IncludesEmployerApplicantServicesObject:
      properties:
        applicant_services:
          $ref: '#/components/schemas/_IncludesEmployerApplicantServices'
      title: Applicant services
      type: object
    VacancyAcceptHandicapped:
      deprecated: true
      description: Indicates whether the vacancy is available for applicants with disabilities
      title: Applicant with a disability
      type: boolean
    VacancyAcceptKids:
      deprecated: true
      description: |
        Deprecated. For vacancies with age restrictions, use the **age_restriction** field.

        This field indicates that the vacancy is available for applicants over 14 years old
      title: Applicant over 14 years old
      type: boolean
    VacancyAgeRestrictionOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyAgeRestriction'
        - properties:
            name:
              description: Field name for age restrictions
              type: string
          type: object
      description: |
        Publishing vacancies for applicants aged 14 and 16 is only permitted within the Russian Federation.
        Only verified Russian employers have the right to publish vacancies marked for applicants aged 14 and 16.
        To obtain the permissions for a foreign company, contact your personal manager.

        Once the permissions is granted, you will be able to publish new vacancies with this parameter or update existing ones
      nullable: true
      title: Access to the vacancy with age restrictions
      type: object
    VacancyAgeRestriction:
      nullable: true
      properties:
        id:
          description: 'Values from the [age_restriction directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Access to the vacancy with age restrictions
      type: object
    VacancyAllowMessages:
      description: 'Whether [messaging with candidates](https://hh.ru/article/inboxemp) is available for this vacancy'
      title: Messaging permission
      type: boolean
    VacancyAlternateUrl:
      description: Link to the vacancy on the website
      title: Link to the vacancy on the website
      type: string
    VacancyApplyAlternateUrl:
      description: Link to the application for the vacancy on the website
      title: Link to the application for the vacancy on the website
      type: string
    VacancyApproved:
      description: Whether the vacancy is approved
      title: Approved vacancy representation
      type: boolean
    VacancyArchived:
      description: Whether the vacancy is archived
      title: Whether the vacancy is archived
      type: boolean
    VacancyAutoResponse:
      allOf:
        - $ref: '#/components/schemas/VacancyAcceptAutoResponse'
      description: Autoresponse settings for vacancy
      nullable: true
      title: Autoresponse settings for vacancy
      type: object
    VacancyAcceptAutoResponse:
      description: Whether autoresponse is available for the vacancy
      properties:
        accept_auto_response:
          type: boolean
      title: Whether autoresponse is available for the vacancy
    VacancyBrandedDescription:
      description: |
        An HTML string (may contain <script/> and <style/> tags) that serves as an alternative to the standard vacancy description. The HTML is optimized for mobile devices and displayed correctly without JavaScript support. Key specifications:

        * The content width extends to 100% of the container width and fits within a height of 300px without scrolling.
        * The content is designed to be inserted into a wrapper that includes the vacancy name, required work experience, region, employment type, work schedule, and a link to the company that published the vacancy.
        * Any images in this description are optimized for Retina displays.
        * The font size is no less than 12px, and the line height is no less than 16px.
        * The value may be `null` if the vacancy does not have a custom description
      title: Branding description
      type: string
    VacancyCode:
      description: Internal vacancy code
      nullable: true
      title: Vacancy code
      type: string
    VacancyCreatedAt:
      description: Date and time of the vacancy publication
      title: Date and time of the vacancy publication
      type: string
    VacancyDeprecatedBillingTypeOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyDeprecatedBillingType'
        - properties:
            name:
              description: Billing type name
              type: string
          type: object
      deprecated: true
      description: 'Billing type from the [vacancy_billing_type directory](#tag/Public-directories/operation/get-dictionaries). Replaced by the [vacancy_properties](#tag/Employer-services/operation/get-vacancy-available-services-list) parameter'
      nullable: true
      title: Vacancy billing type
      type: object
    VacancyDeprecatedBillingType:
      deprecated: true
      description: 'Deprecated. Replaced by the [vacancy_properties](#tag/Employer-services/operation/get-vacancy-available-services-list) parameter. If `vacancy_properties` is provided, the value of this field will be ignored'
      properties:
        id:
          description: 'Billing type from the [vacancy_billing_type directory](#tag/Public-directories/operation/get-dictionaries). If `vacancy_properties` is provided, the value of this field will be ignored'
          type: string
      required:
        - id
      title: Vacancy billing type
      type: object
    VacancyDescription:
      description: Vacancy HTML description
      title: Description
      type: string
    VacancyDraftTest:
      description: 'Returns [test object](#tag/Employer-directories/operation/get-tests-dictionary) for the vacancy'
      nullable: true
      properties:
        id:
          description: Test to add to the vacancy
          nullable: true
          pattern: ^\d+$
          type: string
        required:
          description: Whether applicants must complete a test when applying
          nullable: true
          type: boolean
      title: Test
      type: object
    VacancyDriverLicenseTypes:
      description: List of required driver's license categories
      items:
        $ref: '#/components/schemas/VacancyDriverLicenceTypeItem'
      title: Driver's license category
      type: array
    VacancyDriverLicenceTypeItem:
      properties:
        id:
          description: 'Driver''s license category. Values from the [driver_license_types directory](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      title: Driver's license category
      type: object
    VacancyHasTest:
      description: Whether a test assignment is attached to the vacancy
      title: Whether there is a test assignment
      type: boolean
    VacancyId:
      description: Vacancy ID
      title: Vacancy ID
      type: string
    VacancyInitialCreatedAt:
      description: Date and time of the vacancy creation
      title: Date and time of the vacancy creation
      type: string
    VacancyKeySkills:
      description: 'List of key skills, up to 30'
      items:
        $ref: '#/components/schemas/VacancyKeySkillItem'
      title: Key skills
      type: array
    VacancyKeySkillItem:
      properties:
        name:
          description: Key skill name (maximum 100 characters)
          type: string
      title: Key skill object
      type: object
    VacancyLanguagesOutput:
      description: 'Array of the vacancy languages. Values from the [/languages](#tag/Public-directories/operation/get-languages) directory'
      items:
        $ref: '#/components/schemas/VacancyLanguageOutput'
      title: Vacancy languages
      type: array
    VacancyLanguageOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyLanguage'
        - properties:
            level:
              properties:
                id:
                  description: Language proficiency level ID
                  type: string
                name:
                  description: Language proficiency level name
                  type: string
              required:
                - id
                - name
              type: object
            name:
              description: Language name
              type: string
          required:
            - name
          type: object
      title: Language
    VacancyLanguage:
      nullable: true
      properties:
        id:
          description: 'Language ID from the [/languages directory](#tag/Public-directories/operation/get-languages)'
          type: string
        level:
          properties:
            id:
              description: 'Language proficiency. Values from the [`language_level` field of /dictionaries](#tag/Public-directories/operation/get-dictionaries)'
              type: string
          required:
            - id
          type: object
      required:
        - id
        - level
      title: Language object
      type: object
    VacancyPremium:
      deprecated: true
      description: 'Replaced by the [vacancy_properties](#tag/Employer-services/operation/get-vacancy-available-services-list) parameter'
      title: Whether it is a premium vacancy
      type: boolean
    VacancyPublicationVacancyProperties:
      description: 'Vacancy properties such as tariff, anonymity, etc'
      nullable: true
      properties:
        appearance:
          $ref: '#/components/schemas/VacancyVacancyPropertiesAppearance'
          description: Translations
        properties:
          description: List of vacancy properties
          items:
            properties:
              end_time:
                description: Property expiration time
                type: string
              parameters:
                description: Property parameters
                items:
                  type: string
                type: array
              property_type:
                $ref: '#/components/schemas/VacancyPublicPropertyTypes'
              start_time:
                description: Property activation time
                type: string
            type: object
          type: array
      title: Vacancy properties
      type: object
    VacancyVacancyConstructorTemplate:
      description: 'Information about the applied branded vacancy builder template. Only two images are supported: top image in the vacancy header, bottom image at the very bottom'
      properties:
        bottom_picture:
          description: Information about the template's bottom image
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacancyPicture'
          type: object
        id:
          description: Template ID
          type: number
        name:
          description: Template name
          type: string
        top_picture:
          description: Information about the template's top image
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacancyPicture'
          type: object
      title: Vacancy builder template
      type: object
    VacancyPicture:
      properties:
        blurred_path:
          description: Path to a small blurred image (approximately 4% of the original size). It needs to be scaled to the required size for displaying
          nullable: true
          type: string
        height:
          description: Picture height
          type: number
        path:
          description: Picture path
          type: string
        width:
          description: Picture width
          type: number
      title: Picture
      type: object
    VacancyVideoVacancyVideoVacancyItem:
      additionalProperties: false
      description: Information about the video vacancy. `null` if not used
      properties:
        cover_picture:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyVideoVacancyCoverPicture'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        video:
          $ref: '#/components/schemas/VacancyVideoVacancyVideo'
          nullable: false
        video_url:
          deprecated: true
          description: Video download link
          minLength: 1
          nullable: false
          type: string
      title: Video vacancy
      type: object
    VacancyVideoVacancyCoverPicture:
      additionalProperties: false
      description: Vacancy video image cover. `null` if there is no cover
      properties:
        resized_height:
          description: Image height
          type: number
        resized_path:
          description: Path to the image
          minLength: 1
          nullable: false
          type: string
        resized_width:
          description: Image width
          type: number
      required:
        - resized_path
        - resized_width
        - resized_height
      title: Vacancy video cover image
      type: object
    VacancyVideoVacancyVideo:
      additionalProperties: false
      description: Video details
      properties:
        upload_id:
          description: Video ID
          minLength: 1
          nullable: false
          type: string
        url:
          description: Link to the video
          minLength: 1
          nullable: false
          type: string
      required:
        - upload_id
        - url
      title: Video
      type: object
    VacancyAddressCommon:
      description: Address
      nullable: true
      properties:
        address:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyAddressOutput'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
      title: Address
      type: object
    VacancyBillingTypeObject:
      properties:
        billing_type:
          $ref: '#/components/schemas/VacancyDeprecatedBillingTypeOutput'
      title: Billing type
      type: object
    VacancyHiddenDeprecated:
      properties:
        hidden:
          deprecated: true
          description: Whether the vacancy has been deleted (hidden from the archive). Retained for backward compatibility
          type: boolean
      title: Whether the vacancy is deleted
    VacanciesVacancyForManager:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyCommonFields'
        - $ref: '#/components/schemas/VacancyBillingTypeObject'
        - $ref: '#/components/schemas/VacanciesVacancyManagerFields'
        - properties:
            inclusiveness_description:
              description: Text description of accessibility conditions
              nullable: true
              type: string
            inclusiveness_types:
              description: 'Categories of health characteristics. Values come from the [`inclusiveness_types` directory](#tag/Public-directories/operation/get-dictionaries)'
              items:
                type: string
              type: array
            previous_id:
              description: ID of the archived vacancy on which the current vacancy was based. `null` if the vacancy was created from scratch
              nullable: true
              type: string
          type: object
      title: Vacancy info response on a manager's request
      type: object
    VacanciesVacancyManagerFields:
      properties:
        address:
          allOf:
            - $ref: '#/components/schemas/VacanciesAddress'
            - $ref: '#/components/schemas/VacancyAddressCanEdit'
        archived_at:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyArchivedAt'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        branded_template:
          $ref: '#/components/schemas/VacancyBrandedTemplate'
        can_upgrade_billing_type:
          $ref: '#/components/schemas/VacancyCanUpgradeBillingType'
        counters:
          $ref: '#/components/schemas/VacancyCountersOutput'
        expires_at:
          $ref: '#/components/schemas/VacancyExpiresAt'
        hidden:
          $ref: '#/components/schemas/VacancyHidden'
        manager:
          $ref: '#/components/schemas/VacancyManagerGet'
        response_notifications:
          $ref: '#/components/schemas/VacancyResponseNotifications'
        vacancy_properties:
          $ref: '#/components/schemas/VacancyVacancyProperties'
          description: 'Vacancy properties such as tariff, anonymity, etc'
      required:
        - expires_at
        - manager
        - response_notifications
        - hidden
        - branded_template
        - can_upgrade_billing_type
        - address
      title: Vacancy manager fields
      type: object
    VacanciesAddress:
      allOf:
        - $ref: '#/components/schemas/VacancyAddressRawOutput'
        - properties:
            show_metro_only:
              description: Show the metro stations for this address only
              nullable: true
              type: boolean
          type: object
      title: Address for vacancy
    VacancyAddressCanEdit:
      properties:
        can_edit:
          description: Whether the current user has permission to edit this address
          type: boolean
      required:
        - can_edit
      title: Address
    VacancyArchivedAt:
      description: Date of the vacancy archiving
      title: Date of the vacancy archiving
      type: string
    VacancyCanUpgradeBillingType:
      description: Whether the vacancy billing type can be upgraded
      title: Upgrade the billing type
      type: boolean
    VacancyCountersOutput:
      properties:
        calls:
          description: Total number of calls
          type: number
        invitations:
          description: Number of invitations to the vacancy
          type: number
        invitations_and_responses:
          description: Number of invitations and responses to the vacancy
          type: number
        new_missed_calls:
          description: Total number of new missed calls
          type: number
        responses:
          description: Number of responses to the vacancy
          type: number
        resumes_in_progress:
          description: Number of resumes in progress per vacancy
          type: number
        unread_responses:
          description: Number of non-viewed responses to the vacancy
          type: number
        views:
          description: Number of the vacancy views
          type: number
      required:
        - views
        - responses
        - unread_responses
        - resumes_in_progress
        - invitations
        - invitations_and_responses
        - calls
        - new_missed_calls
      title: Counters in the output
      type: object
    VacancyExpiresAt:
      description: Date and time of the vacancy expiration
      title: Date and time
      type: string
    VacancyHidden:
      description: Whether the vacancy is deleted (hidden from the archive)
      title: Whether the vacancy is deleted
      type: boolean
    VacancyManagerGet:
      properties:
        id:
          description: |
            Manager responsible for the vacancy
          nullable: true
          type: string
      title: Manager
      type: object
    VacancyResponseNotifications:
      description: Notify manager about new responses
      title: New responses
      type: boolean
    VacanciesVacancyConditions:
      additionalProperties: true
      description: 'Field requirements for [publishing vacancies](#tag/Vacancy-management/operation/publish-vacancy)'
      properties:
        accept_handicapped:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        accept_incomplete_resumes:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        accept_kids:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        accept_labor_contract:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        accept_temporary:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        address:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsAddressCondition'
          type: object
        age_restriction:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        allow_messages:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        area:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        auto_response:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsAutoResponseCondition'
          type: object
        billing_type:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        branded_template:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredLengthWithTitle'
          type: object
        civil_law_contracts:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredCountWithTitle'
          type: object
        closed_for_applicants:
          description: Will become a required field once the `type` and `billing_type` fields are removed
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        code:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredLengthWithTitle'
          type: object
        contacts:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsContactsCondition'
          type: object
        custom_employer_name:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredLengthWithTitle'
          type: object
        department:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredLengthWithTitle'
          type: object
        description:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredLengthWithTitle'
          type: object
        driver_license_types:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredCountWithTitle'
          type: object
        employment:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        employment_form:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        experience:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        fly_in_fly_out_duration:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredCountWithTitle'
          type: object
        inclusiveness_description:
          description: 'Rule object for `inclusiveness_description`; usually `required`, `max_length`, and optionally `min_length` and other keys'
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredLengthWithTitle'
          type: object
        inclusiveness_types:
          description: |
            Rule object for `inclusiveness_types` (`required` and other standard vacancy-condition keys)
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsInclusivenessTypesCondition'
          type: object
        key_skills:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredCountWithTitle'
          type: object
        languages:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredCountWithTitle'
          type: object
        manager:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        name:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredLengthWithTitle'
          type: object
        professional_roles:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredCountWithTitle'
          type: object
        response_letter_required:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        response_notifications:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        response_url:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsResponseUrlCondition'
          type: object
        salary:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsSalaryCondition'
          type: object
        salary_range:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsSalaryRangeCondition'
          type: object
        schedule:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        test:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsTestCondition'
          type: object
        type:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        vacancy_properties:
          description: Will become a required field once the `type` and `billing_type` fields are removed
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        work_format:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredCountWithTitle'
          type: object
        work_schedule_by_days:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredCountWithTitle'
          type: object
        working_days:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredCountWithTitle'
          type: object
        working_hours:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredCountWithTitle'
          type: object
        working_time_intervals:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredCountWithTitle'
          type: object
        working_time_modes:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredCountWithTitle'
          type: object
      title: Field requirements
      type: object
    VacanciesVacancyConditionFieldsAddressCondition:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
        - properties:
            fields:
              $ref: '#/components/schemas/VacanciesVacancyConditionFieldsAddressFields'
          type: object
      title: Address field requirements
      type: object
    VacanciesVacancyConditionFieldsAddressFields:
      nullable: true
      properties:
        show_metro_only:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequired'
          type: object
      title: Field requirements
      type: object
    VacanciesVacancyConditionFieldsRequired:
      properties:
        required:
          description: Is the field required?
          nullable: true
          type: boolean
      title: Field requirement
      type: object
    VacanciesVacancyConditionFieldsRequiredWithTitle:
      properties:
        required:
          description: Is the field required?
          nullable: true
          type: boolean
      title: Field requirement
      type: object
    VacanciesVacancyConditionFieldsAutoResponseCondition:
      title: Autoresponse field requirements
    VacanciesVacancyConditionFieldsContactsCondition:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
        - properties:
            fields:
              $ref: '#/components/schemas/VacanciesVacancyConditionFieldsContactFields'
          type: object
      title: Contact filling our requirements
      type: object
    VacanciesVacancyConditionFieldsContactFields:
      nullable: true
      properties:
        email:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredLengthWithTitle'
          type: object
        name:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredLengthWithTitle'
          type: object
        phones:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsPhoneCondition'
          type: object
      title: Field requirements
      type: object
    VacanciesVacancyConditionFieldsPhoneCondition:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredCountWithTitle'
        - properties:
            fields:
              $ref: '#/components/schemas/VacanciesVacancyConditionFieldsPhoneFields'
          type: object
      title: Phone number field requirements
      type: object
    VacanciesVacancyConditionFieldsPhoneFields:
      nullable: true
      properties:
        comment:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredLengthWithTitle'
          type: object
        number:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsNumberCondition'
          type: object
      title: Field requirements
      type: object
    VacanciesVacancyConditionFieldsNumberCondition:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredLengthWithTitle'
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRegexp'
      title: Number field requirements
      type: object
    VacanciesVacancyConditionFieldsRegexp:
      properties:
        regexp:
          description: Regular expression that the field value must match
          nullable: true
          type: string
      title: Regular expression that the field value must match
      type: object
    VacanciesVacancyConditionFieldsRequiredLengthWithTitle:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsMaxMinLength'
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequired'
      title: Field requirements
      type: object
    VacanciesVacancyConditionFieldsMaxMinLength:
      properties:
        max_length:
          description: Maximum length for text fields
          nullable: true
          type: number
        min_length:
          description: Minimum length for text fields
          nullable: true
          type: number
      title: Text field length
      type: object
    VacanciesVacancyConditionFieldsRequiredCountWithTitle:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsMaxMinCount'
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequired'
      title: Field requirements
      type: object
    VacanciesVacancyConditionFieldsMaxMinCount:
      properties:
        max_count:
          description: 'Maximum number of items for fields that accept a list. If `null`, the number is unlimited'
          type: number
        min_count:
          description: Minimum number of items for fields that accept a list
          type: number
      title: Quantity requirements for fields
      type: object
    VacanciesVacancyConditionFieldsInclusivenessTypesCondition:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequired'
      description: |
        Validation object for the `inclusiveness_types` array (`required` and other standard vacancy-condition keys)
      title: Validation rules for inclusiveness_types
      type: object
    VacanciesVacancyConditionFieldsResponseUrlCondition:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredLengthWithTitle'
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRegexp'
      title: Url filling our requirements
      type: object
    VacanciesVacancyConditionFieldsSalaryCondition:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
        - properties:
            fields:
              $ref: '#/components/schemas/VacanciesVacancyConditionFieldsSalaryFields'
          type: object
      title: Salary field requirements
      type: object
    VacanciesVacancyConditionFieldsSalaryFields:
      nullable: true
      properties:
        currency:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        from:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredValueWithTitle'
          type: object
        gross:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        to:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredValueWithTitle'
          type: object
      title: Field requirements
      type: object
    VacanciesVacancyConditionFieldsRequiredValueWithTitle:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsMaxMinValue'
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequired'
      title: Field requirements
      type: object
    VacanciesVacancyConditionFieldsMaxMinValue:
      properties:
        max_value:
          description: Maximum value
          nullable: true
          type: number
        min_value:
          description: Minimum value
          nullable: true
          type: number
      title: Numeric field values
      type: object
    VacanciesVacancyConditionFieldsSalaryRangeCondition:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
        - properties:
            fields:
              $ref: '#/components/schemas/VacanciesVacancyConditionFieldsSalaryRangeFields'
          type: object
      title: Salary field requirements
      type: object
    VacanciesVacancyConditionFieldsSalaryRangeFields:
      nullable: true
      properties:
        currency:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        frequency:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        from:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredValueWithTitle'
          type: object
        gross:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        mode:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
          type: object
        to:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredValueWithTitle'
          type: object
      title: Field requirements
      type: object
    VacanciesVacancyConditionFieldsTestCondition:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequiredWithTitle'
        - properties:
            fields:
              $ref: '#/components/schemas/VacanciesVacancyConditionFieldsTestFields'
          type: object
      title: Test field requirements
      type: object
    VacanciesVacancyConditionFieldsTestFields:
      nullable: true
      properties:
        required:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesNullableObject'
            - $ref: '#/components/schemas/VacanciesVacancyConditionFieldsRequired'
          type: object
      title: Field requirements
      type: object
    VacanciesVacancyListResponse:
      anyOf:
        - $ref: '#/components/schemas/VacanciesActiveListItems'
        - $ref: '#/components/schemas/VacanciesMatchListItems'
      title: Successful response
    VacanciesActiveListItems:
      allOf:
        - properties:
            items:
              description: List of active vacancies
              items:
                $ref: '#/components/schemas/VacanciesActiveListItem'
              minItems: 0
              type: array
          required:
            - items
          type: object
        - $ref: '#/components/schemas/_IncludesPagination'
      title: List of active vacancies (?resume_id is not specified)
    VacanciesActiveListItem:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyShort'
        - $ref: '#/components/schemas/VacancyBillingTypeObject'
        - $ref: '#/components/schemas/VacanciesActiveVacancyFields'
        - properties: {}
          type: object
      title: Active vacancy information
      type: object
    VacanciesActiveVacancyFields:
      properties:
        address:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacanciesAddress'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        can_upgrade_billing_type:
          $ref: '#/components/schemas/VacancyCanUpgradeBillingType'
        closed_for_applicants:
          $ref: '#/components/schemas/VacancyClosedForApplicants'
        counters:
          $ref: '#/components/schemas/VacancyCountersForActive'
        created_at:
          description: Date and time of the vacancy publication
          type: string
        expires_at:
          $ref: '#/components/schemas/VacancyExpiresAt'
        has_updates:
          $ref: '#/components/schemas/VacancyHasUpdates'
        manager:
          $ref: '#/components/schemas/VacancyManagerOutput'
        sort_point_distance:
          description: |
            Distance in meters between the sort center (specified by the `sort_point_lat`, `sort_point_lng` parameters) and the address provided in the vacancy. If the address only includes metro stations, the distance returned is between the sort center and the geometric midpoint of the specified stations.
            The `sort_point_distance` value is returned only if the `sort_point_lat`, `sort_point_lgn`, and `order_by=distance` parameters are provided
          nullable: true
          type: number
        vacancy_properties:
          $ref: '#/components/schemas/VacancyVacancyProperties'
          description: 'Vacancy properties such as tariff, anonymity, etc'
      required:
        - counters
        - expires_at
        - manager
        - can_upgrade_billing_type
        - has_updates
        - created_at
      title: Fields in the published vacancy
      type: object
    VacancyCountersForActive:
      properties:
        calls:
          description: Total number of calls
          type: number
        invitations:
          description: Number of invitations to the vacancy
          type: number
        invitations_and_responses:
          description: Number of invitations and responses to a vacancy
          type: number
        new_missed_calls:
          description: Total number of new missed calls
          type: number
        responses:
          description: Number of responses to the vacancy
          type: number
        resumes_in_progress:
          description: Number of resumes in progress for a vacancy
          type: number
        unread_responses:
          description: Number of non-viewed responses to the vacancy
          type: number
        views:
          description: Number of vacancy views
          type: number
      required:
        - views
        - responses
        - unread_responses
        - resumes_in_progress
        - invitations
      title: Counters
      type: object
    VacancyManagerOutput:
      properties:
        first_name:
          description: Manager first name
          type: string
        id:
          description: Contact person (manager) for the vacancy; current user by default
          type: string
        last_name:
          description: Manager last name
          type: string
        middle_name:
          description: Manager middle name
          nullable: true
          type: string
      required:
        - id
        - first_name
        - last_name
        - middle_name
      title: Manager
      type: object
    VacanciesMatchListItems:
      allOf:
        - properties:
            items:
              description: List of vacancies matching the resume
              items:
                $ref: '#/components/schemas/VacanciesMatchListItem'
              minItems: 0
              type: array
          required:
            - items
          type: object
        - $ref: '#/components/schemas/_IncludesPagination'
      title: 'List of vacancies matching the resume (?resume_id={resume_id})'
    VacanciesMatchListItem:
      allOf:
        - $ref: '#/components/schemas/VacanciesVacancyShort'
        - $ref: '#/components/schemas/VacanciesMatchVacancyFields'
        - properties:
            vacancy_constructor_template:
              deprecated: true
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/VacancyVacancyConstructorTemplate'
                - $ref: '#/components/schemas/_IncludesNullableObject'
              type: object
            vacancy_properties:
              $ref: '#/components/schemas/VacancyVacancyProperties'
              description: 'Vacancy properties such as tariff, anonymity, etc'
          type: object
      title: Information about a vacancy matching the resume
      type: object
    VacanciesMatchVacancyFields:
      properties:
        address:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacanciesAddress'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        can_invite:
          description: Whether the applicant can be invited to this vacancy
          type: boolean
        created_at:
          description: Date and time of the vacancy publication
          type: string
        employer_negotiations_state:
          description: 'Employer response/invitation status for this vacancy with the specified resume, or `null` if there has been no response/invitation. Possible values are listed in the `employer_states` field in the [list of employer statuses for the vacancy](#tag/Employer-responsesinvitations/operation/get-negotiations)'
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesIdName'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        manager:
          $ref: '#/components/schemas/VacancyManagerOutput'
        negotiations_actions:
          description: 'List of possible actions on response/invitation for [creating invitation](#tag/Employer-responsesinvitations/operation/invite-applicant-to-vacancy). If a response cannot be created (e.g., required services are not available), an empty array will be returned'
          items:
            $ref: '#/components/schemas/VacancyNegotiationActions'
          minItems: 0
          type: array
        negotiations_state:
          description: 'Response/invitation status for this vacancy with the specified resume or `null` if there has been no response/invitation. Possible values are listed in the `negotiations_state` field in [directories](#tag/Public-directories/operation/get-dictionaries)'
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesIdName'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        sort_point_distance:
          description: |
            Distance in meters between the sort center (specified by the `sort_point_lat`, `sort_point_lng` parameters) and the address provided in the vacancy. If the address only includes metro stations, the distance returned is between the sort center and the geometric midpoint of the specified stations.
            The `sort_point_distance` value is returned only if the `sort_point_lat`, `sort_point_lgn`, and `order_by=distance` parameters are provided
          nullable: true
          type: number
        templates:
          description: Mail templates
          items:
            $ref: '#/components/schemas/VacancyTemplates'
          type: array
      required:
        - negotiations_state
        - employer_negotiations_state
        - can_invite
        - negotiations_actions
        - manager
        - created_at
      title: Vacancy field matches
      type: object
    VacanciesVacancyProlongate:
      properties:
        actions:
          description: List of available actions to prolong the vacancy
          items:
            oneOf:
              - $ref: '#/components/schemas/VacanciesVacancyProlongateAvailableActions'
              - $ref: '#/components/schemas/VacanciesVacancyProlongateUnavailableActions'
          type: array
        expires_at:
          description: Vacancy expiration date
          type: string
        id:
          description: Vacancy ID
          type: string
      required:
        - id
        - expires_at
        - actions
      title: Vacancy prolongation information
      type: object
    VacanciesVacancyProlongateAvailableActions:
      properties:
        enabled:
          description: Is the action possible
          type: boolean
        id:
          description: Action ID
          type: string
        method:
          description: HTTP request method for performing the action
          type: string
        url:
          description: URL request for performing the action
          type: string
      required:
        - id
        - enabled
        - url
        - method
      title: Prolongation is possible
      type: object
    VacanciesVacancyProlongateUnavailableActions:
      properties:
        disable_reason:
          allOf:
            - description: 'Reason why the action cannot be performed. Values from the `vacancy_not_prolonged_reason` field in the [directories](#tag/Public-directories/operation/get-dictionaries)'
              type: object
            - $ref: '#/components/schemas/_IncludesIdName'
        enabled:
          description: Is the action possible
          type: boolean
        id:
          description: Action ID
          type: string
      required:
        - id
        - enabled
        - disable_reason
      title: Prolongation is impossible
      type: object
    VacanciesVacancyStatsResponse:
      properties:
        items:
          description: Statistics for the last five days of the vacancy's life
          items:
            $ref: '#/components/schemas/VacanciesVacancyStatsItem'
          maxItems: 5
          minItems: 5
          type: array
      required:
        - items
      title: Statistics for the published vacancy over 5 days
      type: object
    VacanciesVacancyStatsItem:
      properties:
        date:
          description: Date in `YYYY-MM-DD` format
          type: string
        responses:
          description: Number of vacancy applications. `null` if the date is in the future or no data is available for this date
          nullable: true
          type: number
        views:
          description: Number of vacancy views. `null` if the date is in the future or no data is available for this date
          nullable: true
          type: number
      required:
        - date
      title: Vacancy statistics
      type: object
    VacanciesVacancyUpgradeListResponse:
      properties:
        error_reason:
          description: Описание ошибки в случае невозможности смены тарифа
          nullable: true
          type: string
        items:
          description: List of vacancy upgrades
          items:
            $ref: '#/components/schemas/VacanciesVacancyUpgradeListItem'
          type: array
      required:
        - items
      title: List of vacancy upgrades
      type: object
    VacanciesVacancyUpgradeListItem:
      properties:
        actions:
          description: List of available actions
          items:
            $ref: '#/components/schemas/VacanciesUpgradeFieldsAction'
          minItems: 0
          type: array
        appearance:
          $ref: '#/components/schemas/VacanciesUpgradeFieldsAppearance'
          description: Display strings for the tariff change option
        vacancy_billing_type:
          $ref: '#/components/schemas/VacanciesUpgradeFieldsBillingTypeFull'
        vacancy_properties:
          $ref: '#/components/schemas/VacancyVariantVacancyProperties'
          description: 'Properties of the upgrade variant (tariff, anonymity, and others)'
        without_action:
          description: An object describing why the vacancy cannot be upgraded to the given type. `null` if the `actions` array is not empty
          items:
            oneOf:
              - $ref: '#/components/schemas/VacanciesUpgradeFieldsWithoutAction'
              - $ref: '#/components/schemas/_IncludesNullableObject'
          nullable: true
          type: array
      required:
        - vacancy_billing_type
        - actions
      title: Vacancy upgrade item
      type: object
    VacanciesUpgradeFieldsAction:
      description: Possible action
      properties:
        cart_id:
          description: Order ID pending activation. Returned only for actions with `actions.type=activate`
          nullable: true
          type: integer
        price:
          description: Publication price. Returned only for actions with `actions.type=buy`
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacanciesUpgradeFieldsPrice'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        type:
          description: |
            Action type:

            * `direct_upgrade` — You have available publications of this vacancy type. You can change the vacancy type now
            * `activate` — You have publications of this vacancy type in pending orders. Follow the link in the `actions.url` field to activate the order. After activation, upgrading the vacancy will become available
            * `buy` — No available publications of this vacancy type. Follow the link in the `actions.url` field to purchase publications of the required type
          type: string
        url:
          description: Link to an action
          nullable: true
          type: string
      required:
        - type
      title: Possible action
      type: object
    VacanciesUpgradeFieldsPrice:
      properties:
        amount:
          description: Price amount
          type: string
        currency_code:
          description: 'Currency ID. Possible values are listed in the `currency` field of [directories](#tag/Public-directories/operation/get-dictionaries)'
          type: string
      required:
        - amount
        - currency_code
      title: Price
      type: object
    VacanciesUpgradeFieldsAppearance:
      properties:
        description:
          description: Tariff change option description
          type: string
        title:
          description: Tariff change option name
          type: string
      title: Tariff description
      type: object
    VacanciesUpgradeFieldsBillingTypeFull:
      allOf:
        - $ref: '#/components/schemas/VacancyBillingTypeOutput'
        - properties:
            description:
              description: Description of the vacancy type
              type: string
          type: object
      deprecated: true
      title: Vacancy billing type
    VacancyBillingTypeOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyBillingType'
        - properties:
            name:
              description: Billing type name
              type: string
          type: object
      description: 'Billing type [from vacancy_billing_type dictionary](#tag/Public-directories/operation/get-dictionaries)'
      nullable: true
      title: Vacancy billing type
      type: object
    VacanciesUpgradeFieldsWithoutAction:
      properties:
        reason:
          description: Description of why the vacancy cannot be upgraded to the given type
          type: string
      required:
        - reason
      title: Upgrade is not possible
    VacanciesVisitorsResponse:
      allOf:
        - $ref: '#/components/schemas/VacanciesVisitorsVisitorItems'
          type: object
        - $ref: '#/components/schemas/_IncludesPagination'
          type: object
        - $ref: '#/components/schemas/VacanciesVisitorsHiddenOnPage'
          type: object
      title: Successful response
    VacanciesVisitorsHiddenOnPage:
      properties:
        hidden_on_page:
          description: Number of deleted or hidden resumes per page
          type: number
      required:
        - hidden_on_page
      title: Number of deleted or hidden resumes
      type: object
    VacanciesVisitorsVisitorItems:
      properties:
        items:
          description: List of resume summaries
          items:
            allOf:
              - $ref: '#/components/schemas/ResumeResumeShort'
              - $ref: '#/components/schemas/_IncludesUrl'
              - $ref: '#/components/schemas/ResumeObjectsJobSearchStatus'
              - $ref: '#/components/schemas/ResumeObjectsLastNegotiations'
          minItems: 0
          type: array
      required:
        - items
      title: List of resume summaries
    ResumeObjectsJobSearchStatus:
      properties:
        job_search_status:
          description: Information about the applicant's job search status
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/_IncludesIdNameLastChangeTime'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
      title: Job search status of the applicant
      type: object
    VacancyCreate:
      allOf:
        - $ref: '#/components/schemas/VacancyCommonFields'
        - $ref: '#/components/schemas/VacancyAnyOfCreateFieldsOrWithProperties'
      description: Parameters provided in the request using the deprecated `billing_type` and `type` fields
      title: Parameters provided in the request using the deprecated `billing_type` and `type` fields
      type: object
    VacancyAnyOfCreateFieldsOrWithProperties:
      anyOf:
        - $ref: '#/components/schemas/VacancyCreateFields'
        - $ref: '#/components/schemas/VacancyCreateFieldsWithProperties'
      description: Parameters provided in the create vacancy request
      title: Parameters provided in the create vacancy request
      type: object
    VacancyCreateFields:
      deprecated: true
      description: Parameters provided in the create vacancy request using the deprecated `billing_type` and `type` fields
      properties:
        area:
          $ref: '#/components/schemas/VacancyArea'
        billing_type:
          $ref: '#/components/schemas/VacancyDeprecatedBillingType'
          description: 'Replaced by the [vacancy_properties](#tag/Employer-services/operation/get-vacancy-available-services-list) parameter. If `vacancy_properties` is provided, the value of this field will be ignored'
        description:
          $ref: '#/components/schemas/VacancyDescription'
        driver_license_types:
          oneOf:
            - $ref: '#/components/schemas/VacancyDriverLicenseTypes'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        manager:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyManagerPost'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        name:
          $ref: '#/components/schemas/VacancyName'
        previous_id:
          description: 'If this parameter is provided, the new vacancy will additionally have a link to the previous vacancy (the previous_id field). This parameter does not affect other parameters and is independent of them; they still need to be specified. Must be set to the ID of an archived vacancy only. The archived vacancy ID can be obtained by requesting the [list of archived vacancies(#tag/Vacancy-management/operation/get-archived-vacancies). <a name=''previous_id''></a>'
          nullable: true
          title: Previous vacancy ID
          type: string
        type:
          $ref: '#/components/schemas/VacancyDeprecatedType'
          description: |
            Vacancy type (from the [vacancy_type directory](#tag/Public-directories/operation/get-dictionaries)). The open/close values have been replaced with `closed_for_applicants` and `anonymous`, direct have been replaced with `vacancy_properties` (HH_ANONYMOUS, HH_ADVERTISING)
      required:
        - name
        - description
        - area
        - type
        - billing_type
        - professional_roles
      title: Parameters provided in the create vacancy request using the deprecated `billing_type` and `type` fields
      type: object
    VacancyArea:
      properties:
        id:
          description: 'Publication area from the [directory](#tag/Public-directories/operation/get-areas)'
          example: '1625'
          pattern: ^\d+$
          type: string
      required:
        - id
      title: Area
      type: object
    VacancyManagerPost:
      properties:
        id:
          description: |
            Contact person (manager) for the vacancy, defaults to the current user. Value from the [company's manager list](#tag/Employer-managers/operation/get-employer-managers)
          nullable: true
          type: string
      title: Manager
      type: object
    VacancyCreateFieldsWithProperties:
      description: Parameters provided in the create vacancy request
      properties:
        area:
          $ref: '#/components/schemas/VacancyArea'
        closed_for_applicants:
          $ref: '#/components/schemas/VacancyClosedForApplicants'
        description:
          $ref: '#/components/schemas/VacancyDescription'
        driver_license_types:
          oneOf:
            - $ref: '#/components/schemas/VacancyDriverLicenseTypes'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        manager:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyManagerPost'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        name:
          $ref: '#/components/schemas/VacancyName'
        previous_id:
          description: |
            If this parameter is provided, the new vacancy will additionally have a link to the previous vacancy (the previous_id field). This parameter does not affect other parameters and is independent of them; they still need to be specified. Must be set to the ID of an archived vacancy only. The archived vacancy ID can be obtained by requesting the [list of archived vacancies(#tag/Vacancy-management/operation/get-archived-vacancies). <a name='previous_id'></a>
          nullable: true
          title: Previous vacancy ID
          type: string
        vacancy_properties:
          $ref: '#/components/schemas/VacancySetterVacancyProperties'
          description: 'Vacancy properties such as tariff, anonymity, etc'
      required:
        - name
        - description
        - area
        - vacancy_properties
        - professional_roles
      title: Parameters provided in the create vacancy request
      type: object
    VacancySetterVacancyProperties:
      description: 'Vacancy properties such as tariff, anonymity, etc'
      nullable: true
      properties:
        properties:
          description: 'List of vacancy properties corresponding to the available publication option. The required set of properties can be found in the `vacancy_properties.required` field in the [available publication options](#tag/Employer-services/operation/get-vacancy-available-services-list)'
          items:
            properties:
              property_type:
                description: Property name
                type: string
            type: object
          type: array
      title: Vacancy properties
      type: object
    VacancyCommonFields:
      description: Fields that can be specified in the create and edit requests
      properties:
        accept_handicapped:
          deprecated: true
          description: |
            Indicates that the vacancy is available for applicants with disabilities. Use `inclusiveness_types` and `inclusiveness_description` instead of this field.
            For backward compatibility, if `accept_handicapped=true` is sent, it overwrites all current values of `inclusiveness_types` and sets the special value `UNSPECIFIED`
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyAcceptHandicappedSetter'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: boolean
        accept_incomplete_resumes:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyAcceptIncompleteResumes'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: boolean
        accept_kids:
          deprecated: true
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyAcceptKids'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: boolean
        accept_labor_contract:
          $ref: '#/components/schemas/VacancyAcceptLaborContract'
        accept_temporary:
          $ref: '#/components/schemas/VacancyAcceptTemporary'
          deprecated: true
        address:
          $ref: '#/components/schemas/VacancyAddress'
        age_restriction:
          $ref: '#/components/schemas/VacancyAgeRestriction'
          description: |
            Publishing vacancies for applicants aged 14 and 16 is only permitted within the Russian Federation.
            Only verified Russian employers have the right to publish vacancies marked for applicants aged 14 and 16.
            To obtain the permissions for a foreign company, contact your personal manager.

            Once the permissions is granted, you will be able to publish new vacancies with this parameter or update existing ones
        allow_messages:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyAllowMessages'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: boolean
        auto_response:
          $ref: '#/components/schemas/VacancyAutoResponse'
        branded_template:
          $ref: '#/components/schemas/VacancyBrandedTemplate'
        civil_law_contracts:
          $ref: '#/components/schemas/VacancyCivilLawContractsCivilLawContracts'
        code:
          $ref: '#/components/schemas/VacancyCode'
        contacts:
          $ref: '#/components/schemas/VacancyContacts'
        custom_employer_name:
          $ref: '#/components/schemas/VacancyCustomEmployerName'
        department:
          $ref: '#/components/schemas/VacancyDepartment'
        driver_license_types:
          oneOf:
            - $ref: '#/components/schemas/VacancyDriverLicenseTypes'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        employment:
          $ref: '#/components/schemas/VacancyEmployment'
          deprecated: true
        employment_form:
          $ref: '#/components/schemas/VacancyEmploymentForm'
        experience:
          $ref: '#/components/schemas/VacancyExperience'
        fly_in_fly_out_duration:
          $ref: '#/components/schemas/VacancyFlyInFlyOutDurationFlyInFlyOutDuration'
          default:
            - id: DAYS_30
        inclusiveness_description:
          description: |
            Text description of accessibility conditions
          oneOf:
            - type: string
            - $ref: '#/components/schemas/_IncludesNullableObject'
        inclusiveness_types:
          description: |
            Categories of health characteristics. Values come from the [`inclusiveness_types` directory](#tag/Public-directories/operation/get-dictionaries)
          oneOf:
            - items:
                type: string
              type: array
            - $ref: '#/components/schemas/_IncludesNullableObject'
        internship:
          $ref: '#/components/schemas/VacancyInternship'
        key_skills:
          oneOf:
            - $ref: '#/components/schemas/VacancyKeySkills'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        languages:
          oneOf:
            - $ref: '#/components/schemas/VacancyLanguages'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        night_shifts:
          $ref: '#/components/schemas/VacancyNightShifts'
        professional_roles:
          $ref: '#/components/schemas/VacancyProfessionalRoles'
        response_letter_required:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyResponseLetterRequired'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: boolean
        response_notifications:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyResponseNotifications'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: boolean
        response_url:
          $ref: '#/components/schemas/VacancyResponseUrl'
        salary:
          $ref: '#/components/schemas/VacancySalary'
          deprecated: true
        salary_range:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancySalaryRangeSalaryRange'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        schedule:
          $ref: '#/components/schemas/VacancySchedule'
          deprecated: true
        show_contacts:
          $ref: '#/components/schemas/VacancyShowContacts'
        test:
          $ref: '#/components/schemas/VacancyDraftTest'
        work_format:
          $ref: '#/components/schemas/VacancyWorkFormatWorkFormat'
        work_schedule_by_days:
          $ref: '#/components/schemas/VacancyWorkScheduleByDaysWorkScheduleByDays'
        working_days:
          $ref: '#/components/schemas/VacancyWorkingDays'
          deprecated: true
        working_hours:
          $ref: '#/components/schemas/VacancyWorkingHoursWorkingHours'
        working_time_intervals:
          $ref: '#/components/schemas/VacancyWorkingTimeIntervals'
          deprecated: true
        working_time_modes:
          $ref: '#/components/schemas/VacancyWorkingTimeModes'
          deprecated: true
      title: Fields specified in the create and edit requests
      type: object
    VacancyAcceptHandicappedSetter:
      deprecated: true
      title: Applicant with a disability
      type: boolean
    VacancyAddress:
      description: Address
      nullable: true
      properties:
        id:
          description: 'Address from the [directory of available employer addresses](#tag/Employer-addresses/operation/get-employer-addresses)'
          nullable: true
          type: string
        show_metro_only:
          description: Show metro station info for the specified address only
          nullable: true
          type: boolean
      title: Address
      type: object
    VacancyCivilLawContractsCivilLawContracts:
      description: List of valid civil law contract options
      items:
        $ref: '#/components/schemas/VacancyCivilLawContractsCivilLawContractsItem'
      nullable: true
      title: Civil law contract
      type: array
    VacancyContacts:
      description: 'Contact details. If this parameter is used, either the `phones` or `email` attributes must be included'
      nullable: true
      properties:
        email:
          deprecated: true
          description: Email. Value must fit the email format
          nullable: true
          type: string
        name:
          description: Contact name
          nullable: false
          type: string
        phones:
          description: List of contact numbers
          items:
            $ref: '#/components/schemas/VacancyPhoneItem'
          nullable: true
          type: array
      required:
        - name
      title: Contact information
      type: object
    VacancyCustomEmployerName:
      description: 'Company name for anonymous vacancies (`type.id=anonymous`), e.g., "a major Russian bank". For the anonymous vacancy publication, this field becomes required'
      nullable: true
      title: Company name
      type: string
    VacancyFlyInFlyOutDurationFlyInFlyOutDuration:
      description: List of fly-in fly-out (FIFO) duration options (will become a required field within the next six months!)
      items:
        $ref: '#/components/schemas/VacancyFlyInFlyOutDurationFlyInFlyOutDurationItem'
      nullable: true
      title: Fly-in fly-out duration options
      type: array
    VacancyLanguages:
      description: List of vacancy languages
      items:
        $ref: '#/components/schemas/VacancyLanguage'
      title: Vacancy languages
      type: array
    VacancySalaryRangeSalaryRange:
      description: Salary
      properties:
        currency:
          description: 'Currency code from the [currency directories](#tag/Public-directories/operation/get-dictionaries)'
          type: string
        frequency:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancySalaryRangeSalaryRangeFrequency'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        from:
          description: Minimum salary
          nullable: true
          type: integer
        gross:
          description: Indicates whether the salary range is specified before tax deductions
          type: boolean
        mode:
          $ref: '#/components/schemas/VacancySalaryRangeSalaryRangeMode'
        to:
          description: Maximum salary
          nullable: true
          type: integer
      required:
        - currency
        - mode
        - gross
      title: Salary
      type: object
    VacancyWorkFormatWorkFormat:
      description: List of work formats
      items:
        $ref: '#/components/schemas/VacancyWorkFormatWorkFormatItem'
      nullable: true
      title: Work format
      type: array
    VacancyWorkScheduleByDaysWorkScheduleByDays:
      description: List of work schedules by days
      items:
        $ref: '#/components/schemas/VacancyWorkScheduleByDaysWorkScheduleByDaysItem'
      nullable: true
      title: Work schedule by days
      type: array
    VacancyWorkingDays:
      deprecated: true
      description: List of work days
      items:
        $ref: '#/components/schemas/VacancyWorkingDayItem'
      nullable: true
      title: List of work days
      type: array
    VacancyWorkingHoursWorkingHours:
      description: Daily working hours options
      items:
        $ref: '#/components/schemas/VacancyWorkingHoursWorkingHoursItem'
      nullable: true
      title: Working hours per day
      type: array
    VacancyWorkingTimeIntervals:
      deprecated: true
      description: List of working time periods
      items:
        $ref: '#/components/schemas/VacancyWorkingTimeIntervalItem'
      nullable: true
      title: Working time periods
      type: array
    VacancyWorkingTimeModes:
      deprecated: true
      description: List of work time modes options
      items:
        $ref: '#/components/schemas/VacancyWorkingTimeModeItem'
      nullable: true
      title: Time modes options
      type: array
    VacancyDraftDraftResponseSchema:
      allOf:
        - $ref: '#/components/schemas/Id'
        - example:
            $ref: '#/components/examples/VacancyDraftVacancyDraftResponse/value'
          properties:
            ignored_fields:
              description: Fields that were not saved in the process of creating the draft due to incorrect input
              items:
                description: Name of the ignored field
                type: string
              type: array
            name:
              description: Draft title
              type: string
            publication_ready:
              description: Draft publication readiness
              type: boolean
            validation_errors:
              description: 'Fields that were saved in the process of creating the draft, along with corresponding errors that must be resolved for the draft-based vacancy to be published successfully'
              items:
                $ref: '#/components/schemas/VacancyDraftDraftVacancyError'
              type: array
          required:
            - name
            - publication_ready
          type: object
      title: Response to the vacancy draft publication
      type: object
    VacancyDraftDraftVacancyError:
      properties:
        reason:
          description: Error reason
          type: string
        value:
          description: Field with an error
          type: string
      required:
        - value
      title: Error
      type: object
    VacancyDraftVacanciesDraftResponse:
      nullable: false
      properties:
        vacancy_ids:
          example:
            - 30251619
            - 30251620
          items:
            type: number
          minItems: 1
          type: array
      title: Response for the vacancy draft creation
      type: object
    VacancyDraftVacancyDraftCreate:
      allOf:
        - $ref: '#/components/schemas/VacancyDraftVacancyDraftBodyCommon'
        - properties: {}
          type: object
        - $ref: '#/components/schemas/VacancyDraftVacancyDraftAnyOfCreateFieldsOrWithProperties'
      title: Object for a vacancy draft creation
    VacancyDraftVacancyDraftAnyOfCreateFieldsOrWithProperties:
      anyOf:
        - $ref: '#/components/schemas/VacancyDraftVacancyDraftTypeBillingType'
        - $ref: '#/components/schemas/VacancyDraftVacancyDraftCreateProperties'
      description: Fields passed in the vacancy draft creation request
      title: Fields passed in the vacancy draft creation request
      type: object
    VacancyDraftVacancyDraftCreateProperties:
      properties:
        closed_for_applicants:
          $ref: '#/components/schemas/VacancyClosedForApplicants'
        vacancy_properties:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftSetterVacancyProperties'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          description: 'Vacancy properties such as tariff, anonymity, etc'
      title: Fields provided in the request
      type: object
    VacancyDraftSetterVacancyProperties:
      description: 'Vacancy properties such as tariff, anonymity, etc'
      nullable: true
      properties:
        properties:
          description: 'List of vacancy properties to provide corresponding to the vacancy publication option available. The required set of properties can be found in the `vacancy_properties.required` field in [available publication options](#tag/Employer-services/operation/get-vacancy-available-services-list)'
          items:
            properties:
              property_type:
                description: Property name
                type: string
            type: object
          type: array
      title: Vacancy properties
      type: object
    VacancyDraftVacancyDraftTypeBillingType:
      deprecated: true
      properties:
        billing_type:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftDeprecatedBillingType'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          deprecated: true
          description: 'Replaced by the [vacancy_properties](#tag/Employer-services/operation/get-vacancy-available-services-list) parameter. If `vacancy_properties` is provided, the value of this field will be ignored'
        type:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftDeprecatedType'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          deprecated: true
          description: |
            Vacancy type (from the [vacancy_type directory](#tag/Public-directories/operation/get-dictionaries)). The `open/close` values have been replaced with `closed_for_applicants` and `anonymous`, `direct` have been replaced with `vacancy_properties` (HH_ANONYMOUS, HH_ADVERTISING)
      title: Parameters provided in the request using the deprecated billing_type and type fields
      type: object
    VacancyDraftDeprecatedBillingType:
      deprecated: true
      description: 'Replaced by the [vacancy_properties](#tag/Employer-services/operation/get-vacancy-available-services-list) parameter. If vacancy_properties is provided, the value of this field will be ignored'
      nullable: true
      properties:
        id:
          description: 'Billing type [from the vacancy_billing_type directory](#tag/Public-directories/operation/get-dictionaries). If vacancy_properties is provided, the value of this field will be ignored'
          type: string
      title: Billing type
      type: object
    VacancyDraftDeprecatedType:
      deprecated: true
      description: 'The open/close values have been replaced with closed_for_applicants and anonymous, direct have been replaced with vacancy_properties (HH_ANONYMOUS, HH_ADVERTISING). If vacancy_properties is provided, the value of this field will be ignored. If only closed_for_applicants is provided without vacancy_properties, it will be ignored'
      nullable: true
      properties:
        id:
          description: 'Type from the [vacancy_type directory](#tag/Public-directories/operation/get-dictionaries). The `open/close` values have been replaced with `closed_for_applicants` and `anonymous`, `direct` have been replaced with `vacancy_properties` (HH_ANONYMOUS, HH_ADVERTISING). If `vacancy_properties` is provided, the value of this field will be ignored. If only `closed_for_applicants` is provided without `vacancy_properties`, it will be ignored'
          minLength: 1
          type: string
      title: Type
      type: object
    VacancyDraftVacancyDraftBodyCommon:
      properties:
        accept_handicapped:
          anyOf:
            - $ref: '#/components/schemas/VacancyAcceptHandicappedSetter'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          deprecated: true
          description: |
            Indicates that the vacancy is available for applicants with disabilities. Use `inclusiveness_types` and `inclusiveness_description` instead of this field.
            For backward compatibility, if `accept_handicapped=true` is sent, it overwrites all current values of `inclusiveness_types` and sets the special value `UNSPECIFIED`
        accept_incomplete_resumes:
          anyOf:
            - $ref: '#/components/schemas/VacancyAcceptIncompleteResumes'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        accept_kids:
          anyOf:
            - $ref: '#/components/schemas/VacancyAcceptKids'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          deprecated: true
        accept_labor_contract:
          anyOf:
            - $ref: '#/components/schemas/VacancyAcceptLaborContract'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        accept_temporary:
          anyOf:
            - $ref: '#/components/schemas/VacancyAcceptTemporary'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          deprecated: true
        address:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftAddress'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        age_restriction:
          anyOf:
            - $ref: '#/components/schemas/VacancyAgeRestriction'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          description: |
            Publishing vacancies for applicants aged 14 and 16 is only permitted within the Russian Federation.
            Only verified Russian employers have the right to publish vacancies marked for applicants aged 14 and 16.
            To obtain the permissions for a foreign company, contact your personal manager.

            Once the permissions is granted, you will be able to publish new vacancies with this parameter or update existing ones
        allow_messages:
          anyOf:
            - $ref: '#/components/schemas/VacancyAllowMessages'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        area:
          anyOf:
            - $ref: '#/components/schemas/VacancyArea'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          deprecated: true
        areas:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftAreas'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          description: Maximum 50 elements
        assigned_manager_id:
          $ref: '#/components/schemas/VacancyDraftAssignedManagerId'
        auto_response:
          $ref: '#/components/schemas/VacancyAutoResponse'
        branded_template:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftBrandedTemplate'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        civil_law_contracts:
          anyOf:
            - $ref: '#/components/schemas/VacancyCivilLawContractsCivilLawContracts'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        code:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftCode'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        contacts:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftContacts'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        custom_employer_name:
          anyOf:
            - $ref: '#/components/schemas/VacancyCustomEmployerName'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        department:
          anyOf:
            - $ref: '#/components/schemas/VacancyDepartment'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        description:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftDescription'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        driver_license_types:
          anyOf:
            - $ref: '#/components/schemas/VacancyDriverLicenseTypes'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        employment:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftEmployment'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          deprecated: true
        employment_form:
          anyOf:
            - $ref: '#/components/schemas/VacancyEmploymentForm'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        experience:
          anyOf:
            - $ref: '#/components/schemas/VacancyExperience'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        fly_in_fly_out_duration:
          anyOf:
            - $ref: '#/components/schemas/VacancyFlyInFlyOutDurationFlyInFlyOutDuration'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          default:
            - id: DAYS_30
          description: List of fly-in fly-out (FIFO) duration options (will become a required field within the next six months!)
        inclusiveness_description:
          anyOf:
            - nullable: true
              type: string
            - $ref: '#/components/schemas/_IncludesNullableObject'
          description: |
            Text description of inclusive conditions in the vacancy draft
        inclusiveness_types:
          anyOf:
            - items:
                type: string
              nullable: true
              type: array
            - $ref: '#/components/schemas/_IncludesNullableObject'
          description: |
            Inclusive workplace format codes from the `inclusiveness_types` dictionary
        internship:
          anyOf:
            - $ref: '#/components/schemas/VacancyInternship'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        key_skills:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftKeySkills'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        languages:
          anyOf:
            - $ref: '#/components/schemas/VacancyLanguages'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        name:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftName'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        night_shifts:
          anyOf:
            - $ref: '#/components/schemas/VacancyNightShifts'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        professional_roles:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftProfessionalRoles'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        response_letter_required:
          anyOf:
            - $ref: '#/components/schemas/VacancyResponseLetterRequired'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        response_notifications:
          anyOf:
            - $ref: '#/components/schemas/VacancyResponseNotifications'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        response_url:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftResponseUrl'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        salary:
          anyOf:
            - $ref: '#/components/schemas/VacancySalary'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          deprecated: true
        salary_range:
          anyOf:
            - $ref: '#/components/schemas/VacancySalaryRangeSalaryRange'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        schedule:
          anyOf:
            - $ref: '#/components/schemas/VacancySchedule'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          deprecated: true
        scheduled_at:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyDraftScheduledAt'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: string
        test:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftTest'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        with_zp:
          anyOf:
            - $ref: '#/components/schemas/VacancyDraftWithZp'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        work_format:
          anyOf:
            - $ref: '#/components/schemas/VacancyWorkFormatWorkFormat'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        work_schedule_by_days:
          anyOf:
            - $ref: '#/components/schemas/VacancyWorkScheduleByDaysWorkScheduleByDays'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        working_days:
          anyOf:
            - $ref: '#/components/schemas/VacancyWorkingDays'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          deprecated: true
        working_hours:
          anyOf:
            - $ref: '#/components/schemas/VacancyWorkingHoursWorkingHours'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        working_time_intervals:
          anyOf:
            - $ref: '#/components/schemas/VacancyWorkingTimeIntervals'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          deprecated: true
        working_time_modes:
          anyOf:
            - $ref: '#/components/schemas/VacancyWorkingTimeModes'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          deprecated: true
      title: Vacancy draft object
      type: object
    VacancyDraftAddress:
      description: Address
      nullable: true
      properties:
        id:
          description: 'Address from [list of employer''s available addresses](#tag/Employer-addresses/operation/get-employer-addresses)'
          nullable: true
          pattern: ^\d+$
          type: string
        show_metro_only:
          description: Show the metro stations for this address only
          nullable: true
          type: boolean
      title: Address
      type: object
    VacancyDraftAreas:
      description: Areas list
      items:
        $ref: '#/components/schemas/VacancyArea'
      nullable: true
      title: Vacancy publication areas
      type: array
    VacancyDraftAssignedManagerId:
      description: Manager work account ID to assign the vacancy to after publication
      nullable: true
      title: Manager to assign the vacancy to after publication
      type: string
    VacancyDraftBrandedTemplate:
      description: |
        One of the available [branded employer vacancy template](#tag/Employer-info/operation/get-vacancy-branded-templates-list), or `null` if not used by the company
      properties:
        id:
          description: 'Branded vacancy template ID of the available [branded employer vacancy template](#tag/Employer-info/operation/get-vacancy-branded-templates-list)'
          type: string
      required:
        - id
      title: Branded template
      type: object
    VacancyDraftCode:
      description: Internal vacancy code
      minLength: 1
      nullable: true
      title: Vacancy code
      type: string
    VacancyDraftContacts:
      description: Contact info
      nullable: true
      properties:
        email:
          deprecated: true
          description: Email
          nullable: true
          type: string
        name:
          description: Manager's name
          nullable: true
          type: string
        phones:
          description: List of contact phone numbers
          items:
            $ref: '#/components/schemas/VacancyDraftPhoneItem'
          nullable: true
          type: array
      title: Contacts
      type: object
    VacancyDraftPhoneItem:
      oneOf:
        - $ref: '#/components/schemas/VacancyDraftPhone'
        - $ref: '#/components/schemas/VacancyDraftPhoneFormatted'
      title: Contact phone object
    VacancyDraftPhone:
      properties:
        city:
          description: City code
          pattern: ^\d+$
          type: string
        comment:
          description: Comment (preferred time to call at this number)
          nullable: true
          type: string
        country:
          description: Country code
          pattern: ^\d+$
          type: string
        number:
          description: Subscriber part of the phone number
          pattern: ^\d+$
          type: string
      required:
        - country
        - city
        - number
      title: Phone number for the draft vacancy
      type: object
    VacancyDraftPhoneFormatted:
      properties:
        comment:
          description: Comment (preferred time to call at this number)
          nullable: true
          type: string
        formatted:
          description: Full phone number
          pattern: ^\d+$
          type: string
      required:
        - formatted
      title: Formatted phone number
      type: object
    VacancyDraftDescription:
      description: Vacancy HTML description
      minLength: 1
      nullable: true
      title: Description
      type: string
    VacancyDraftEmployment:
      nullable: true
      properties:
        id:
          description: 'Employment type from the [employment directory](#tag/Public-directories/operation/get-dictionaries). Defaults to `full` if not specified or if an invalid value is provided'
          nullable: true
          type: string
      title: Employment type
      type: object
    VacancyDraftKeySkills:
      description: 'List of key skills, maximum 30'
      items:
        $ref: '#/components/schemas/VacancyDraftKeySkillItem'
      nullable: true
      title: Key skills
      type: array
    VacancyDraftKeySkillItem:
      nullable: true
      properties:
        name:
          description: Key skill name (100 characters maximum)
          minLength: 1
          type: string
      title: Key skill object
      type: object
    VacancyDraftName:
      description: Vacancy name
      minLength: 1
      nullable: true
      title: Name
      type: string
    VacancyDraftProfessionalRoles:
      description: List of professional roles
      items:
        $ref: '#/components/schemas/VacancyDraftProfessionalRoleItem'
      nullable: true
      title: Professional roles
      type: array
    VacancyDraftProfessionalRoleItem:
      properties:
        id:
          description: 'Professional role ID. Values from the [professional_roles directory](#tag/Public-directories/operation/get-professional-roles-dictionary)'
          pattern: ^\d+$
          type: string
      title: Professional role object
      type: object
    VacancyDraftResponseUrl:
      description: Application URL for direct vacancies (`type.id=direct`)
      minLength: 1
      nullable: true
      title: URL
      type: string
    VacancyDraftScheduledAt:
      description: 'Scheduled vacancy publication time (in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format with second precision: `YYYY-MM-DDThh:mm:ss±hhmm`'
      pattern: '^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?((\+|-)[0-1][0-9]{3})?$'
      title: Scheduled vacancy publication time
      type: string
    VacancyDraftWithZp:
      description: More people will see your vacancy. We will publish it additionally on Zarplata.ru
      title: Publishing on Zarplata.ru
      type: boolean
    VacancyDraftVacancyDraftEdit:
      allOf:
        - $ref: '#/components/schemas/VacancyDraftVacancyDraftBodyCommon'
        - $ref: '#/components/schemas/VacancyDraftVacancyDraftAnyOfCreateFieldsOrWithProperties'
      title: An object for editing a vacancy draft
    VacancyDraftVacancyDraftFull:
      allOf:
        - $ref: '#/components/schemas/VacancyDraftVacancyDraftCommon'
        - properties:
            address:
              $ref: '#/components/schemas/VacancyDraftAddressOutput'
            areas:
              description: 'Region codes and names (federal districts, federal subjects, cities)'
              items:
                $ref: '#/components/schemas/VacancyAreaOutput'
              minItems: 1
              type: array
            assigned_manager:
              $ref: '#/components/schemas/VacancyDraftAssignedManager'
            branded_template:
              $ref: '#/components/schemas/VacancyBrandedTemplate'
            closed_for_applicants:
              $ref: '#/components/schemas/VacancyClosedForApplicants'
            contacts:
              $ref: '#/components/schemas/VacancyDraftContactsWithFullPhone'
            custom_employer_name:
              $ref: '#/components/schemas/VacancyCustomEmployerName'
            employer:
              $ref: '#/components/schemas/VacancyDraftEmployer'
            inclusiveness_description:
              description: Text description of accessibility conditions
              nullable: true
              type: string
            inclusiveness_types:
              description: 'Categories of health characteristics. Values come from the [`inclusiveness_types` directory](#tag/Public-directories/operation/get-dictionaries)'
              items:
                type: string
              type: array
            meta_info:
              $ref: '#/components/schemas/VacancyDraftVacancyDraftBase'
            vacancy_properties:
              $ref: '#/components/schemas/VacancyDraftVacancyProperties'
              description: 'Vacancy properties such as tariff, anonymity, etc'
            with_zp:
              $ref: '#/components/schemas/VacancyDraftWithZp'
          required:
            - meta_info
            - areas
            - address
            - contacts
            - employer
            - with_zp
          type: object
      title: Object for a vacancy draft
    VacancyAreaOutput:
      properties:
        id:
          description: 'Area ID from the [directory](#tag/Public-directories/operation/get-areas)'
          type: string
        name:
          description: Area name
          type: string
      required:
        - id
        - name
      title: Area
      type: object
    VacancyDraftAddressOutput:
      allOf:
        - $ref: '#/components/schemas/VacancyAddressOutput'
        - $ref: '#/components/schemas/VacancyAddress'
        - $ref: '#/components/schemas/VacancyAddressCanEdit'
      title: Address
    VacancyDraftAssignedManager:
      nullable: true
      properties:
        full_name:
          description: Full name
          type: string
        id:
          description: Manager work account ID to assign the vacancy to after publication
          type: string
      title: Manager to assign the vacancy to after publication
      type: object
    VacancyDraftContactsWithFullPhone:
      description: Contact information
      properties:
        email:
          deprecated: true
          description: Email
          nullable: true
          type: string
        name:
          description: Manager's name
          nullable: true
          type: string
        phones:
          description: List of contact phone numbers
          items:
            $ref: '#/components/schemas/VacancyDraftPhoneItemWithFullPhone'
          nullable: true
          type: array
      required:
        - phones
        - name
      title: Contacts
      type: object
    VacancyDraftPhoneItemWithFullPhone:
      properties:
        comment:
          description: Comment (preferred time to call at this number)
          nullable: true
          type: string
        formatted:
          description: Phone number
          pattern: '^\+?\d{1,3} \(?\d{1,5}\)? [\d -]{4,10}$'
          type: string
      title: Object for the phone number for communications
      type: object
    VacancyDraftEmployer:
      properties:
        alternate_url:
          description: URL to view the employer on the website
          type: string
        id:
          description: Employer ID
          type: string
        logo_urls:
          description: Links to employer logos of various sizes
          properties:
            '90':
              type: string
            '240':
              type: string
            original:
              type: string
          required:
            - '90'
            - '240'
          type: object
        name:
          description: Employer name
          type: string
        url:
          description: URL to view the employer
          type: string
      required:
        - id
        - name
        - logo_urls
        - alternate_url
        - url
      title: Employer
      type: object
    VacancyDraftVacancyDraftBase:
      properties:
        auto_publication:
          description: 'Auto-publication status. Object if this feature is enabled, otherwise null'
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyDraftAutoPublicationState'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        completed_fields_percentage:
          description: Draft completion percentage
          type: number
        draft_id:
          description: Draft ID
          minLength: 1
          type: string
        insufficient_publications:
          description: Array of objects with information about which publications are insufficient in the account to publish the vacancy from this draft
          items:
            $ref: '#/components/schemas/VacancyDraftPublications'
          nullable: true
          type: array
        insufficient_quotas:
          description: Array of objects with information about which quotas have been exceeded
          items:
            $ref: '#/components/schemas/VacancyDraftPublications'
          nullable: true
          type: array
        last_change_time:
          description: 'Draft modification time (in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format with second precision `YYYY-MM-DDThh:mm:ss±hhmm`)'
          nullable: true
          type: string
        publication_ready:
          description: Whether the draft is ready for publication
          type: boolean
        required_publications:
          description: Array of objects with information about the publications required in the account
          items:
            $ref: '#/components/schemas/VacancyDraftPublications'
          nullable: true
          type: array
        scheduled_at:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyDraftScheduledAt'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: string
      required:
        - completed_fields_percentage
        - draft_id
        - publication_ready
        - scheduled_at
      title: Draft
      type: object
    VacancyDraftAutoPublicationState:
      properties:
        bill_uid:
          description: Invoice number
          type: string
        cart_id:
          description: Order ID
          type: string
      required:
        - bill_uid
        - cart_id
      title: Publication state
      type: object
    VacancyDraftPublications:
      properties:
        appearance:
          $ref: '#/components/schemas/VacancyVacancyPropertiesAppearance'
          description: Display strings for the publication variant (title and optional description)
        billing_type:
          $ref: '#/components/schemas/VacancyDeprecatedBillingTypeOutput'
          deprecated: true
          description: 'Billing type (from the [vacancy_billing_type directory](#tag/Public-directories/operation/get-dictionaries)). Deprecated; use `vacancy_properties`'
        count:
          description: Number of publications
          type: number
        publication_type:
          deprecated: true
          description: 'Publication type (from the [vacancy_billing_type directory](#tag/Public-directories/operation/get-dictionaries)). Deprecated; use `vacancy_properties`'
          type: string
        vacancy_properties:
          $ref: '#/components/schemas/VacancyVariantVacancyProperties'
          description: 'Vacancy properties for the publication variant (tariff, anonymity, and others)'
        vacancy_type:
          deprecated: true
          description: 'Vacancy type (from the [vacancy_type directory](#tag/Public-directories/operation/get-dictionaries)). Deprecated; do not use for new integrations'
          type: string
      required:
        - publication_type
        - billing_type
        - vacancy_type
        - vacancy_properties
        - count
      title: Publication
      type: object
    VacancyDraftVacancyDraftCommon:
      properties:
        accept_handicapped:
          $ref: '#/components/schemas/VacancyAcceptHandicapped'
          deprecated: true
        accept_incomplete_resumes:
          $ref: '#/components/schemas/VacancyAcceptIncompleteResumes'
        accept_kids:
          $ref: '#/components/schemas/VacancyAcceptKids'
          deprecated: true
        accept_labor_contract:
          $ref: '#/components/schemas/VacancyAcceptLaborContract'
        accept_temporary:
          $ref: '#/components/schemas/VacancyAcceptTemporary'
          deprecated: true
        age_restriction:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyAgeRestrictionOutput'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        allow_messages:
          $ref: '#/components/schemas/VacancyAllowMessages'
        auto_response:
          $ref: '#/components/schemas/VacancyAutoResponse'
        billing_type:
          $ref: '#/components/schemas/VacancyDeprecatedBillingTypeOutput'
          description: 'Deprecated. Replaced by the [vacancy_properties](#tag/Employer-services/operation/get-vacancy-available-services-list) parameter'
        civil_law_contracts:
          $ref: '#/components/schemas/VacancyCivilLawContractsCivilLawContractsOutput'
        code:
          $ref: '#/components/schemas/VacancyCode'
        department:
          $ref: '#/components/schemas/VacancyDepartmentOutput'
        description:
          $ref: '#/components/schemas/VacancyDescription'
        driver_license_types:
          $ref: '#/components/schemas/VacancyDriverLicenseTypes'
        employment:
          $ref: '#/components/schemas/VacancyEmploymentOutput'
          deprecated: true
        employment_form:
          $ref: '#/components/schemas/VacancyEmploymentFormOutput'
        experience:
          $ref: '#/components/schemas/VacancyExperienceOutput'
        fly_in_fly_out_duration:
          $ref: '#/components/schemas/VacancyFlyInFlyOutDurationFlyInFlyOutDurationOutput'
        has_test:
          description: Whether a test assignment is attached to the vacancy
          type: boolean
        internship:
          $ref: '#/components/schemas/VacancyInternship'
        key_skills:
          $ref: '#/components/schemas/VacancyKeySkills'
        languages:
          $ref: '#/components/schemas/VacancyLanguagesOutput'
        manager:
          $ref: '#/components/schemas/VacancyManagerGet'
        name:
          $ref: '#/components/schemas/VacancyName'
        night_shifts:
          $ref: '#/components/schemas/VacancyNightShifts'
        professional_roles:
          $ref: '#/components/schemas/VacancyProfessionalRolesOutput'
        response_letter_required:
          $ref: '#/components/schemas/VacancyResponseLetterRequired'
        response_notifications:
          $ref: '#/components/schemas/VacancyResponseNotifications'
        response_url:
          $ref: '#/components/schemas/VacancyResponseUrl'
        salary:
          $ref: '#/components/schemas/VacancySalary'
          deprecated: true
        salary_range:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancySalaryRangeSalaryRangeOutput'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          type: object
        schedule:
          $ref: '#/components/schemas/VacancyScheduleOutput'
          deprecated: true
        test:
          $ref: '#/components/schemas/VacancyDraftTest'
        type:
          $ref: '#/components/schemas/VacancyDeprecatedTypeOutput'
          description: |
            Vacancy type (directory [vacancy_type](#tag/Public-directories/operation/get-dictionaries)). The open/close values have been replaced with closed_for_applicants and anonymous, direct have been replaced with vacancy_properties (HH_ANONYMOUS, HH_ADVERTISING)
        work_format:
          $ref: '#/components/schemas/VacancyWorkFormatWorkFormatOutput'
        work_schedule_by_days:
          $ref: '#/components/schemas/VacancyWorkScheduleByDaysWorkScheduleByDaysOutput'
        working_days:
          $ref: '#/components/schemas/VacancyWorkingDaysOutput'
          deprecated: true
        working_hours:
          $ref: '#/components/schemas/VacancyWorkingHoursWorkingHoursOutput'
        working_time_intervals:
          $ref: '#/components/schemas/VacancyWorkingTimeIntervalsOutput'
          deprecated: true
        working_time_modes:
          $ref: '#/components/schemas/VacancyWorkingTimeModesOutput'
          deprecated: true
      required:
        - name
        - description
        - key_skills
        - accept_handicapped
        - accept_kids
        - experience
        - response_letter_required
        - type
        - billing_type
        - allow_messages
        - driver_license_types
        - accept_incomplete_resumes
        - professional_roles
        - manager
        - languages
        - response_notifications
        - has_test
      title: Vacancy draft fields
      type: object
    VacancyDraftVacancyProperties:
      description: 'Vacancy properties such as tariff, anonymity, etc'
      nullable: true
      properties:
        appearance:
          $ref: '#/components/schemas/VacancyVacancyPropertiesAppearance'
          description: Translations
        properties:
          description: List of vacancy properties
          items:
            properties:
              parameters:
                description: Property parameters
                items:
                  type: string
                type: array
              property_type:
                $ref: '#/components/schemas/VacancyPublicPropertyTypes'
            type: object
          type: array
      title: Vacancy properties
      type: object
    VacancyDraftVacancyDraftItems:
      properties:
        found:
          title: Number of drafts found
          type: integer
        items:
          description: List of drafts
          items:
            $ref: '#/components/schemas/VacancyDraftVacancyDraftItem'
          type: array
        page:
          title: Current page number
          type: integer
        pages:
          title: Number of pages with drafts
          type: integer
        per_page:
          title: Number of items per page
          type: integer
      required:
        - items
        - found
        - page
        - pages
        - per_page
      title: Successful response
    VacancyDraftVacancyDraftItem:
      allOf:
        - $ref: '#/components/schemas/VacancyDraftVacancyDraftBase'
        - properties:
            areas:
              description: 'Region codes and names (federal districts, federal subjects, cities)'
              items:
                $ref: '#/components/schemas/VacancyAreaOutput'
              minItems: 1
              type: array
            assigned_manager:
              $ref: '#/components/schemas/VacancyDraftAssignedManager'
            auto_response:
              $ref: '#/components/schemas/VacancyAutoResponse'
            billing_type:
              $ref: '#/components/schemas/VacancyDeprecatedBillingTypeOutput'
            closed_for_applicants:
              $ref: '#/components/schemas/VacancyClosedForApplicants'
            name:
              description: Vacancy name
              type: string
            publication_type:
              deprecated: true
              description: 'Publication type (from the [vacancy_billing_type directory](#tag/Public-directories/operation/get-dictionaries))'
              type: string
            url:
              description: Full draft info URL
              type: string
            vacancy_properties:
              $ref: '#/components/schemas/VacancyDraftVacancyProperties'
              description: 'Vacancy properties such as tariff, anonymity, etc'
            vacancy_type:
              deprecated: true
              description: 'Vacancy type (from the [vacancy_type directory](#tag/Public-directories/operation/get-dictionaries))'
              nullable: true
              type: string
          required:
            - areas
            - publication_type
            - billing_type
            - vacancy_type
            - url
          type: object
      title: Draft
    VacancyDuplicates:
      additionalProperties: false
      properties:
        found:
          description: Total number of the vacancy duplicates
          type: number
        has_duplicates:
          description: Whether the vacancy duplicates exist
          type: boolean
        items:
          description: List of vacancy duplicate IDs
          items:
            type: number
          type: array
      required:
        - has_duplicates
        - found
        - items
      title: Checking for vacancy duplicates
      type: object
    VacancyEdit:
      anyOf:
        - $ref: '#/components/schemas/VacancyEditCommon'
        - $ref: '#/components/schemas/VacancyEditBillingType'
        - $ref: '#/components/schemas/VacancyEditVacancyProperties'
        - $ref: '#/components/schemas/VacancyEditManager'
      title: Editable vacancy fields
      type: object
    VacancyEditBillingType:
      description: Request field for a vacancy billing type change. The billing type can only be upgraded
      properties:
        billing_type:
          $ref: '#/components/schemas/VacancyDeprecatedBillingType'
          nullable: true
      required:
        - billing_type
      title: Change billing type
      type: object
    VacancyEditCommon:
      allOf:
        - $ref: '#/components/schemas/VacancyCommonFields'
        - $ref: '#/components/schemas/VacancyEditFields'
      title: Vacancy fields that can be edited by one request
      type: object
    VacancyEditFields:
      description: Fields that can be specified in the edit request
      properties:
        description:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyDescription'
            - $ref: '#/components/schemas/_IncludesNullableObject'
        name:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/VacancyName'
            - $ref: '#/components/schemas/_IncludesNullableObject'
      title: Fields for the vacancy editing
      type: object
    VacancyEditManager:
      description: Request field for a vacancy manager change
      properties:
        manager:
          allOf:
            - $ref: '#/components/schemas/_IncludesId'
          description: 'Manager ID to assign the saved search to (from the [directory of employer''s managers](#tag/Employer-managers/operation/get-employer-managers))'
          nullable: true
      required:
        - manager
      title: Change vacancy manager
      type: object
    VacancyEditVacancyProperties:
      description: Field provided in the request for changing the vacancy tariff. The vacancy can only be upgraded
      properties:
        vacancy_properties:
          properties:
            properties:
              description: |
                Set of properties for changing the vacancy tariff. Tariff properties available to upgrade:     
                * `HH_STANDARD` — No promotion; for regular hiring
                * `HH_STANDARD_PLUS` — With promotion; for faster hiring
                * `HH_PREMIUM` — Stays above standard vacancies for 7 days; more candidates will notice you
                Anonymous and advertising vacancies can only be upgraded to the "Premium" tariff by providing the corresponding property in addition to HH_PREMIUM:
                * `HH_ANONYMOUS` — Published without company name and logo
                * `HH_ADVERTISING` — Brand promotion and vacancy responses on your website
              items:
                properties:
                  property_type:
                    description: Tariff property
                    title: Property name
                    type: string
                required:
                  - property_type
                type: object
              type: array
          title: Vacancy properties
          type: object
      required:
        - vacancy_properties
      title: Changing the vacancy tariff
      type: object
    WebhookBadDataError:
      description: Request parameter error
      oneOf:
        - $ref: '#/components/schemas/ErrorsCommonBadJsonDataErrors'
        - $ref: '#/components/schemas/WebhookErrors'
      title: Request parameter error
    WebhookErrors:
      allOf:
        - $ref: '#/components/schemas/ErrorsCommonErrorRequestId'
        - properties:
            errors:
              description: Array of error details
              items:
                $ref: '#/components/schemas/WebhookError'
              minItems: 1
              type: array
          required:
            - errors
          type: object
      description: Error details
      title: Business errors
    WebhookError:
      additionalProperties: false
      properties:
        type:
          description: Text identifier of the error type
          example: notifications
          type: string
        value:
          description: |
            Error description:
              * already_exist - The current user/company is already subscribed to this application (including a resume subscription)
          enum:
            - already_exist
          example: already_exist
          type: string
      required:
        - type
        - value
      title: Error
      type: object
    WebhookSendObjectBaseUser:
      properties:
        action_type:
          description: Action type
          type: string
        id:
          description: Message ID
          type: string
        payload:
          oneOf:
            - $ref: '#/components/schemas/WebhookPayloadNewNegotiationVacancy'
            - $ref: '#/components/schemas/WebhookPayloadChatMessageCreated'
            - $ref: '#/components/schemas/WebhookPayloadChatCreated'
            - $ref: '#/components/schemas/WebhookPayloadNewResponseOrInvitationVacancy'
            - $ref: '#/components/schemas/WebhookPayloadVacancyArchivation'
            - $ref: '#/components/schemas/WebhookPayloadVacancyPublicationForVacancyManager'
            - $ref: '#/components/schemas/WebhookPayloadVacancyProlongation'
            - $ref: '#/components/schemas/WebhookPayloadVacancyChange'
            - $ref: '#/components/schemas/WebhookPayloadNegotiationEmployerStateChange'
        subscription_id:
          description: Subscription ID
          type: string
        user_id:
          deprecated: true
          description: User ID. The field may be set to 0 for backward compatibility
          type: string
      required:
        - id
        - subscription_id
        - action_type
        - user_id
        - payload
      title: Reporting an event on the manager level
      type: object
    WebhookPayloadChatCreated:
      description: Создание чата
      properties:
        chat_id:
          description: Идентификатор чата
          type: string
        creation_time:
          description: Время создания чата
          example: '2024-01-31T00:00:00+0300'
          type: string
        type:
          description: |
            Тип чата. Возможные значения:
            NEGOTIATION - чат по откликам, 
            SUPPORT - чат техподдержки, 
            BOT - чат бота с уведомлениями
            COMMON - свободный вид чата
          enum:
            - NEGOTIATION
            - SUPPORT
            - BOT
            - COMMON
          type: string
      required:
        - chat_id
        - creation_time
        - type
      title: CHAT_CREATED
      type: object
    WebhookPayloadChatMessageCreated:
      description: Создание сообщения в чате
      properties:
        chat_id:
          description: Идентификатор чата
          type: string
        creation_time:
          description: Время создания сообщения
          example: '2024-01-31T00:00:00+0300'
          type: string
        is_current_participant:
          description: Является ли получатель события отправителем сообщения
          type: boolean
        message_id:
          description: Идентификатор сообщения в чате
          type: string
        message_type:
          description: |
            Тип сообщения
            Возможные значения:
            * `SIMPLE` - сообщение с текстом либо вложениями
            * `PARTICIPANT_LEFT` - участник покинул чат
            * `PARTICIPANT_JOINED` - участник добавлен в чат
          enum:
            - SIMPLE
            - PARTICIPANT_LEFT
            - PARTICIPANT_JOINED
          type: string
        role:
          description: |
            Роль участника чата. Возможные значения:
            APPLICANT - соискатель, 
            EMPLOYER - менеджер работодателя, 
            BOT - бот
          enum:
            - APPLICANT
            - EMPLOYER
            - BOT
          nullable: true
          type: string
        sender_participant_id:
          description: Идентификатор отправителя сообщения
          type: string
      required:
        - chat_id
        - message_id
        - message_type
        - sender_participant_id
        - is_current_participant
        - creation_time
        - role
      title: CHAT_MESSAGE_CREATED
      type: object
    WebhookPayloadNegotiationEmployerStateChange:
      description: |
        Contains information about changes of topic status
      properties:
        employer_manager_id:
          description: ID of the manager who changed the status
          type: string
        from_state:
          description: Initial status
          type: string
        resume_id:
          description: Resume ID
          type: string
        to_state:
          description: Resulting status
          type: string
        topic_id:
          description: Topic ID
          type: string
        transferred_at:
          description: Time of the status update
          type: string
        vacancy_id:
          description: Vacancy ID
          type: string
      required:
        - topic_id
        - vacancy_id
        - from_state
        - to_state
        - employer_manager_id
        - resume_id
        - transferred_at
      title: NEGOTIATION_EMPLOYER_STATE_CHANGE
      type: object
    WebhookPayloadNewNegotiationVacancy:
      description: New vacancy response
      properties:
        chat_id:
          description: Applicant chat ID
          type: string
        employer_id:
          description: Employer ID
          type: string
        negotiation_date:
          description: 'Negotiation date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format with second precision: `YYYY-MM-DDThh:mm:ss±hhmm'
          type: string
        resume_id:
          description: Resume ID
          nullable: true
          type: string
        topic_id:
          description: Topic ID
          type: string
        vacancy_id:
          description: Vacancy ID
          nullable: true
          type: string
      required:
        - chat_id
        - topic_id
        - resume_id
        - vacancy_id
        - employer_id
        - negotiation_date
      title: NEW_NEGOTIATION_VACANCY
      type: object
    WebhookPayloadNewResponseOrInvitationVacancy:
      description: 'New response or invitation to vacancies (unlike NEW_NEGOTIATION_VACANCY, this event will be triggered both by responses from applicants and by invitations from employers)'
      properties:
        chat_id:
          description: Applicant chat ID
          type: string
        employer_id:
          description: Employer ID
          type: string
        response_date:
          description: 'Date of the response or invitation in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format with second precision: `YYYY-MM-DDThh:mm:ss±hhmm`'
          type: string
        resume_id:
          description: Resume ID
          nullable: true
          type: string
        topic_id:
          description: Topic ID
          type: string
        vacancy_id:
          description: Vacancy ID
          nullable: true
          type: string
      required:
        - chat_id
        - topic_id
        - resume_id
        - vacancy_id
        - employer_id
        - response_date
      title: NEW_RESPONSE_OR_INVITATION_VACANCY
      type: object
    WebhookPayloadVacancyArchivation:
      description: Vacancy archiving
      properties:
        archivation_date:
          description: 'Date of the vacancy archiving in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format with second precision: `YYYY-MM-DDThh:mm:ss±hhmm`'
          type: string
        vacancy_id:
          description: Vacancy ID
          nullable: true
          type: string
      required:
        - vacancy_id
        - archivation_date
      title: VACANCY_ARCHIVATION
      type: object
    WebhookPayloadVacancyChange:
      description: Vacancy change
      properties:
        change_date:
          description: 'Date of the vacancy change in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format with second precision: `YYYY-MM-DDThh:mm:ss±hhmm`'
          type: string
        vacancy_id:
          description: Vacancy ID
          type: string
      required:
        - vacancy_id
        - change_date
      title: VACANCY_CHANGE
      type: object
    WebhookPayloadVacancyProlongation:
      description: Vacancy prolongation
      properties:
        prolongation_date:
          description: 'Vacancy prolongation date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format with second precision: `YYYY-MM-DDThh:mm:ss±hhmm`'
          type: string
        vacancy_id:
          description: Vacancy ID
          type: string
      required:
        - vacancy_id
        - prolongation_date
      title: VACANCY_PROLONGATION
      type: object
    WebhookPayloadVacancyPublicationForVacancyManager:
      properties:
        creation_date:
          description: 'Date of the vacancy creation in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format accurate to the second: `YYYY-MM-DDThh:mm:ss±hhmm'
          type: string
        employer_manager_id:
          description: Vacancy moderator ID
          type: string
        previous_vacancy_id:
          description: ID of the archived vacancy specified in the previous_id field when publishing the vacancy
          nullable: true
          type: string
        vacancy_id:
          description: Vacancy ID
          type: string
      required:
        - vacancy_id
        - employer_manager_id
        - creation_date
      title: VACANCY_PUBLICATION_FOR_VACANCY_MANAGER
      type: object
    WebhookSubscriptionCreate:
      allOf:
        - $ref: '#/components/schemas/WebhookSubscriptionCommonItem'
        - properties: {}
          type: object
      title: Subscription object
    WebhookSubscriptionCommonItem:
      properties:
        actions:
          description: List of events
          discriminator:
            mapping:
              CHAT_CREATED: '#/components/schemas/WebhookActionChatCreated'
              CHAT_MESSAGE_CREATED: '#/components/schemas/WebhookActionChatMessageCreated'
              NEGOTIATION_EMPLOYER_STATE_CHANGE: '#/components/schemas/WebhookActionNegotiationEmployerStateChange'
              NEW_NEGOTIATION_VACANCY: '#/components/schemas/WebhookActionNewNegotiationVacancy'
              NEW_RESPONSE_OR_INVITATION_VACANCY: '#/components/schemas/WebhookActionNewResponseOrInvitationVacancy'
              VACANCY_ARCHIVATION: '#/components/schemas/WebhookActionVacancyArchivation'
              VACANCY_CHANGE: '#/components/schemas/WebhookActionVacancyChange'
              VACANCY_PROLONGATION: '#/components/schemas/WebhookActionVacancyProlongation'
              VACANCY_PUBLICATION_FOR_VACANCY_MANAGER: '#/components/schemas/WebhookActionVacancyPublicationForVacancyManager'
            propertyName: type
          items:
            anyOf:
              - $ref: '#/components/schemas/WebhookActionNewNegotiationVacancy'
              - $ref: '#/components/schemas/WebhookActionNewResponseOrInvitationVacancy'
              - $ref: '#/components/schemas/WebhookActionVacancyArchivation'
              - $ref: '#/components/schemas/WebhookActionVacancyChange'
              - $ref: '#/components/schemas/WebhookActionVacancyProlongation'
              - $ref: '#/components/schemas/WebhookActionVacancyPublicationForVacancyManager'
              - $ref: '#/components/schemas/WebhookActionChatMessageCreated'
              - $ref: '#/components/schemas/WebhookActionChatCreated'
              - $ref: '#/components/schemas/WebhookActionNegotiationEmployerStateChange'
          minItems: 1
          type: array
        url:
          description: URL to send a POST request after the event happens
          example: 'http://www.example.com'
          format: uri
          type: string
      required:
        - url
        - actions
      title: Subscription object
      type: object
    WebhookActionChatCreated:
      additionalProperties: false
      properties:
        type:
          description: |
            Создание чата. Событие присылается менеджеру работодателя по тем чатам, в которых он является участником
          enum:
            - CHAT_CREATED
          type: string
      required:
        - type
      title: Подписка на CHAT_CREATED
      type: object
    WebhookActionChatMessageCreated:
      additionalProperties: false
      properties:
        type:
          description: |
            Создание сообщения в чате. Событие присылается менеджеру работодателя по тем чатам, в которых он является активным участником
          enum:
            - CHAT_MESSAGE_CREATED
          type: string
      required:
        - type
      title: Подписка на CHAT_MESSAGE_CREATED
      type: object
    WebhookActionNegotiationEmployerStateChange:
      additionalProperties: false
      properties:
        settings:
          anyOf:
            - $ref: '#/components/schemas/WebhookActionVacancyOnlyMineSettings'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          nullable: true
        type:
          description: |
            Moving a candidate's resume to another vacancy state.

            Contains the following information:

            * who has moved the resume
            * the resume identifier
            * initial resume state
            * new resume state
          enum:
            - NEGOTIATION_EMPLOYER_STATE_CHANGE
          type: string
      required:
        - type
      title: Subscription to NEGOTIATION_EMPLOYER_STATE_CHANGE
      type: object
    WebhookActionVacancyOnlyMineSettings:
      additionalProperties: false
      properties:
        vacancies_only_mine:
          default: false
          description: |
            If `true`, the service only sends notifications only about the current user's vacancies.

            Default value is `false` — the service sends notifications about all accessible vacancies
          type: boolean
      title: Subscribe only to my vacancies setting
      type: object
    WebhookActionNewNegotiationVacancy:
      additionalProperties: false
      properties:
        settings:
          anyOf:
            - $ref: '#/components/schemas/WebhookActionVacancyOnlyMineSettings'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          nullable: true
        type:
          description: New vacancy response. This event is triggered only by responses from applicants
          enum:
            - NEW_NEGOTIATION_VACANCY
          type: string
      required:
        - type
      title: Subscription to NEW_NEGOTIATION_VACANCY
      type: object
    WebhookActionNewResponseOrInvitationVacancy:
      additionalProperties: false
      properties:
        settings:
          anyOf:
            - $ref: '#/components/schemas/WebhookActionVacancyOnlyMineSettings'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          nullable: true
        type:
          description: New vacancy response or invitation. This event is triggered both by responses from applicants and by invitations from employers
          enum:
            - NEW_RESPONSE_OR_INVITATION_VACANCY
          type: string
      required:
        - type
      title: Subscription to NEW_RESPONSE_OR_INVITATION_VACANCY
      type: object
    WebhookActionVacancyArchivation:
      additionalProperties: false
      properties:
        settings:
          anyOf:
            - $ref: '#/components/schemas/WebhookActionVacancyOnlyMineSettings'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          nullable: true
        type:
          description: Vacancy archiving
          enum:
            - VACANCY_ARCHIVATION
          type: string
      required:
        - type
      title: Subscription to VACANCY_ARCHIVATION
      type: object
    WebhookActionVacancyChange:
      additionalProperties: false
      properties:
        settings:
          anyOf:
            - $ref: '#/components/schemas/WebhookActionVacancyOnlyMineSettings'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          nullable: true
        type:
          description: |
            Vacancy update. Accumulates changes made over the last few seconds and sends a webhook containing the time of the last update.

            If you make two changes within a second apart, the service sends only one webhook containing the time of the most recent change. If there is a single change, the service sends a webhook after a delay of a few seconds
          enum:
            - VACANCY_CHANGE
          type: string
      required:
        - type
      title: Subscription to VACANCY_CHANGE
      type: object
    WebhookActionVacancyProlongation:
      additionalProperties: false
      properties:
        settings:
          anyOf:
            - $ref: '#/components/schemas/WebhookActionVacancyOnlyMineSettings'
            - $ref: '#/components/schemas/_IncludesNullableObject'
          nullable: true
        type:
          description: Vacancy prolongation
          enum:
            - VACANCY_PROLONGATION
          type: string
      required:
        - type
      title: Subscription to VACANCY_PROLONGATION
      type: object
    WebhookActionVacancyPublicationForVacancyManager:
      additionalProperties: false
      properties:
        type:
          description: |
            Vacancy publication. This event is triggered only by vacancy publication that is made by a vacancy owner. 

            Such publication may be:
            * a standard vacancy publication
            * a publication of suspended vacancy
            * a publication from a draft
          enum:
            - VACANCY_PUBLICATION_FOR_VACANCY_MANAGER
          type: string
      required:
        - type
      title: Subscription to VACANCY_PUBLICATION_FOR_VACANCY_MANAGER
      type: object
    WebhookSubscriptionUpdate:
      additionalProperties: false
      properties:
        actions:
          description: List of events to subscribe to
          discriminator:
            mapping:
              CHAT_CREATED: '#/components/schemas/WebhookActionChatCreated'
              CHAT_MESSAGE_CREATED: '#/components/schemas/WebhookActionChatMessageCreated'
              NEGOTIATION_EMPLOYER_STATE_CHANGE: '#/components/schemas/WebhookActionNegotiationEmployerStateChange'
              NEW_NEGOTIATION_VACANCY: '#/components/schemas/WebhookActionNewNegotiationVacancy'
              NEW_RESPONSE_OR_INVITATION_VACANCY: '#/components/schemas/WebhookActionNewResponseOrInvitationVacancy'
              VACANCY_ARCHIVATION: '#/components/schemas/WebhookActionVacancyArchivation'
              VACANCY_CHANGE: '#/components/schemas/WebhookActionVacancyChange'
              VACANCY_PROLONGATION: '#/components/schemas/WebhookActionVacancyProlongation'
              VACANCY_PUBLICATION_FOR_VACANCY_MANAGER: '#/components/schemas/WebhookActionVacancyPublicationForVacancyManager'
            propertyName: type
          items:
            anyOf:
              - $ref: '#/components/schemas/WebhookActionNewNegotiationVacancy'
              - $ref: '#/components/schemas/WebhookActionNewResponseOrInvitationVacancy'
              - $ref: '#/components/schemas/WebhookActionVacancyArchivation'
              - $ref: '#/components/schemas/WebhookActionVacancyChange'
              - $ref: '#/components/schemas/WebhookActionVacancyProlongation'
              - $ref: '#/components/schemas/WebhookActionVacancyPublicationForVacancyManager'
              - $ref: '#/components/schemas/WebhookActionChatMessageCreated'
              - $ref: '#/components/schemas/WebhookActionChatCreated'
              - $ref: '#/components/schemas/WebhookActionNegotiationEmployerStateChange'
          minItems: 1
          type: array
        url:
          description: URL to send a POST request to when an event occurs
          example: 'http://www.example.com'
          format: uri
          type: string
      title: Subscription object
      type: object
    WebhookSubscriptionsOutput:
      additionalProperties: false
      properties:
        items:
          description: List of user subscriptions
          items:
            $ref: '#/components/schemas/WebhookSubscriptionItem'
          minItems: 0
          type: array
      required:
        - items
      title: Object with subscriptions
      type: object
    WebhookSubscriptionItem:
      allOf:
        - $ref: '#/components/schemas/WebhookSubscriptionCommonItem'
        - additionalProperties: false
          properties:
            id:
              description: Subscription ID
              example: q1ww2e2r4ty
              type: string
          required:
            - id
          type: object
      title: User subscription
  securitySchemes:
    OauthToken:
      description: |
        Access token for authorization, provided in the header in the `Authorization: Bearer {ACCESS_TOKEN}` format (see [Authorization ](#section/Authorization))
      flows:
        authorizationCode:
          authorizationUrl: 'https://hh.ru/oauth/authorize'
          refreshUrl: 'https://api.hh.ru/token'
          scopes: {}
          tokenUrl: 'https://api.hh.ru/token'
        clientCredentials:
          scopes: {}
          tokenUrl: 'https://api.hh.ru/token'
      type: oauth2
info:
  contact:
    email: api@hh.ru
    name: API Support
    url: 'https://api.hh.ru/openapi/en/redoc'
  description: |
    In English | [По-русски](https://api.hh.ru/openapi/redoc)

    You can use Ctrl+F to search through the documentation.

    # General information

    * The whole API works using the HTTPS protocol.
    * Authorization is performed via the OAuth2 protocol.
    * All data is available only in the JSON format.
    * The basic URL is `https://api.hh.ru/`
    * Requests for [any site of HeadHunter Groups of Companies](#section/General-information/Host-selection)
    are available
    * <a name="date-format"></a> Dates are formatted according to
    [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601): `YYYY-MM-DDThh:mm:ss±hhmm`.


    <a name="request-requirements"></a>
    ## Request requirements

    Your request should send the `User-Agent` header, but if your
    HTTP client does not allow it, you can send an `HH-User-Agent` header. If no header is sent,
    you will receive the `400 Bad Request` as a response.
    By specifying the name of the application and the developer's contact email in the header,
    you will help us to contact you promptly if required.
    The `User-Agent` and `HH-User-Agent` headers are interchangeable. If you send both headers,
    only `HH-User-Agent` is processed.

    Example:
    ```
    User-Agent: MyApp/1.0 (my-app-feedback@example.com)
    ```

    <a name="request-body"></a>
    ### Request body format when sending JSON

    Data transferred in the request body must meet the requirements:

      * Valid JSON (it is acceptable to transfer both minified and
      pretty-printed variants with extra whitespace and line breaks).
      * It is recommended to use the UTF-8 encoding without extra escaping
    (`{"name": "Иванов Иван"}`).
      * It is also possible to use the ascii encoding with escaping
    (`{"name": "\u0418\u0432\u0430\u043d\u043e\u0432 \u0418\u0432\u0430\u043d"}`).
      * Data types in certain fields are supplemented with additional conditions
      described in each specific method. In JSON, data types are `string`, `number`,
      `boolean`, `null`, `object`, `array`.

    ### Response
    A response that exceeds a certain length will be compressed using gzip.

    ### Errors and response codes

    API extensively uses informing through response codes.
    The application must process them correctly.

    In case of failure or breakdown, responses with the `503` and `500` code may be
    returned.

    When an error occurs, the response body, besides the response code,
    may have additional information allowing the developer
    to learn the cause of a particular response.

    ## Undocumented fields and request parameters

    In responses and API parameters you can find keys that are not described in the
    documentation. It usually means that they are left for compatibility with older
    versions. It is not recommended to use them. If your application already uses
    such keys, switch to using desirable keys described in the documentation.


    ## Pagination

    For every request that presupposes the return of object list you can indicate
    `page=N&per_page=M` in the parameters. Numeration starts from zero; the first
    (zero) page is returned by default with 20 objects on it. In all responses where
    pagination is available, the uniform root object:

    ```json
    {
      "found": 1,
      "per_page": 1,
      "pages": 1,
      "page": 0,
      "items": [{}]
    }
    ```

    ## Host selection

    HeadHunter API allows you to obtain data from all of the HeadHunter group of
      companies websites.

    In particular:

    * hh.ru
    * rabota.by
    * hh1.az
    * hh.uz
    * hh.kz
    * headhunter.ge
    * headhunter.kg

    Requests for data on all the websites should be made to `https://api.hh.ru/`.

    If you need to track the specific websites, you can add `?host=` parameter to
        your request. Default is `hh.ru`.

    Example: to obtain [localizations](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-locales) available on hh.kz, you should
        make a GET-request to `https://api.hh.ru/locales?host=hh.kz`.

    ## CORS (Cross-Origin Resource Sharing)

    API supports the CORS technology for requesting browser data from any domain.
    This is preferable to using JSONP. It is not restricted to the GET method. To debug requests using CORS,
    a special URL is available in API: `/cors`.
    It supports the HEAD, GET, POST, PUT, DELETE methods.
    A request with any of these methods will return the standard response:
    ```
    {
      "method": "GET",
      "time": "2013-11-18T13:23:17+0400",
      "origin": null,
    }
    ```
    , where
    method (`string`) - method used in the request (HEAD, GET, POST, PUT, DELETE)
    time (`string`) - current time
    origin(`string`, `null`) - the value of the Origin header from the request, or null

    To use JSONP, transfer the
    `?callback=callback_name` parameter.

    * [CORS specification on w3.org](https://fetch.spec.whatwg.org)
    * [CORS on caniuse.com](https://caniuse.com/cors)
    * [CORS on en.wikipedia.org](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)

    ## External links to articles and standards

    * [HTTP/1.1](https://datatracker.ietf.org/doc/html/rfc2616)
    * [JSON](http://json.org/)
    * [URI Template](https://datatracker.ietf.org/doc/html/rfc6570)
    * [OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749)
    * [REST](https://ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm)
    * [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)

    # Authorization

    The API supports the following authorization levels:
      - [application authorization](#tag/Application-authorization)
      - [user authorization](#section/Authorization/User-authorization)

    * [Obtaining user authorization](#section/Authorization/User-authorization)
      * [Rules for generating special `redirect_uri`](#section/Authorization/Rules-for-generating-special-redirect_uri)
      * [Authorization process](#section/Authorization/Authorization-process)
      * [Successful obtaining temporary `authorization_code`](#get-authorization_code)
      * [Obtaining access and refresh tokens](#section/Authorization/Obtaining-access-and-refresh-tokens)
    * [Updating a pair of access and refresh tokens](#section/Authorization/Updating-a-pair-of-access-and-refresh-tokens)
    * [Authorization request under another user](#section/Authorization/Authorization-request-under-another-user)
    * [Authorization under different working account](#section/Authorization/Authorization-under-different-working-account)
    * [Obtaining application authorization](#tag/Application-authorization)


    ## User authorization
    To make requests as a user you need a user token.

    Assign a user to the application (open the page) via the request:

    ```
    https://hh.ru/oauth/authorize?
    response_type=code&
    client_id={client_id}&
    state={state}&
    redirect_uri={redirect_uri}&
    code_challenge={code_challenge}&
    code_challenge_method=S256
    ```

    Required parameters:

    * `response_type=code` — specifies authorization method using the `authorization code`
    * `client_id` — ID obtained when creating the application


    Optional parameters:

    * `state` — if specified, it will be added in the redirect link of the response.
      It allows to prevent cross-site request forgery. More info see in [RFC 6749. Section 10.12](https://datatracker.ietf.org/doc/html/rfc6749#section-10.12)
    * `redirect_uri` — a URI for redirecting user after authorization.
      If not specified, the value from the application settings is used. If the value is specified, its validation is carried out. Probably, you will need to make `urlencode` of the value.
     * `code_challenge` — used for
      [PKCE (Proof Key for Code Exchange, RFC 7636)](https://datatracker.ietf.org/doc/html/rfc7636) support,
      which protects the `authorization_code` from interception.
      The result of applying the `S256` method to the randomly generated `code_verifier`.
      Must be provided together with `code_challenge_method`; supplying only one of them is an error.
      When using PKCE, the `code_verifier` must be provided when exchanging the code for a token.
    * `code_challenge_method` — the `code_verifier` transformation method for
      [PKCE](https://datatracker.ietf.org/doc/html/rfc7636).
      Only `S256` (SHA-256) is supported; any other value is an error.
      Must be provided together with `code_challenge`; supplying only one of them is an error.

    ## Rules for generating special redirect_uri

    For example, if `http://example.com/oauth` is saved in the settings, it is allowed to specify:

    * `http://www.example.com/oauth` — a subdomain (www);
    * `http://www.example.com/oauth/sub/path` — a detailed path;
    * `http://example.com/oauth?lang=RU` — an additional parameter;
    * `http://www.example.com/oauth/sub/path?lang=RU` — all the mentioned.

    Forbidden:

    * `https://example.com/oauth` — another protocols;
    * `http://wwwexample.com/oauth` — another domains;
    * `http://test.example.com/` — additional domain;
    * `http://wwwexample.com/` — another paths;
    * `http://example.com/oauths` — another paths;
    * `http://example.com:80/oauths` — originally missing port.

    ## Authorization process

    If the user is not authorized, the site login form appears. When the authorization is done, the form with subject access request is shown.

    If the user rejects the access request, it triggers the redirection on the specified `redirect_uri` with `?error=access_denied` and
    `state={state}`, if any.

    <a name="get-authorization_code"></a>
    ### Successful obtaining temporary `authorization_code`

    If the user accepts the access request, the redirect link contains a temporary `authorization_code`:

    ```http
    HTTP/1.1 302 FOUND
    Location: {redirect_uri}?code={authorization_code}
    ```

    If the user is already authorized, and the access to the application was granted earlier, then the login and subject access request are omitted, and the above redirect link returns as a response.

    ## Obtaining access and refresh tokens

    After obtaining the `authorization_code` the application makes a server-server request `POST https://api.hh.ru/token` to exchange the `authorization_code` to an `access_token` (old `POST https://hh.ru/oauth/token` request should consider as deprecated).

    The request body should contain [additional parameters](#required_parameters).

    The request body should be sent in standard `application/x-www-form-urlencoded` format with the corresponding `Content-Type` header.

    The `authorization_code` has a short lifetime. When it expires, request another `authorization_code`.

    ## Updating a pair of access and refresh tokens
    The `access_token` also has a lifetime (`expires_in` parameter, in seconds). When it expires, the application should make a request with the `refresh_token` to obtain a new one.

    The request should be done in `application/x-www-form-urlencoded` format.

    ```
    POST https://api.hh.ru/token
    ```

    (old `POST https://hh.ru/oauth/token` request should consider as deprecated)

    The request body should contain [additional parameters](#required_parameters).

    You can use the `refresh_token` only once and only after expiration of the `access_token`.

    A new pair of access and refresh tokens should be used for further API requests and requests for token prolongation.

    ## Authorization request under another user

    The following case is possible:

    1. Application redirects a user to the site with the authorization request.
    2. The user is already authorized on site and application already has an access granted.
    3. The user will be proposed to continue the work under current account or login to another one.

    If you need to replace step 3 by instant redirection with temporary token, you should add the parameter `skip_choose_account=true` to `/oauth/authorize...` request. Then the authorized user gets access immediately.

    If you need to show the authorization form every time, you should add the parameter `force_login=true` to `/oauth/authorize...` request. In this case the authorization form appears even if the user is already authorized.

    This feature may be useful for applications that provide services for applicants only. If an employer user tries to log in, the application may propose them to get access under another user.

    Also, after the authorization the application can show a message:

    ```
    You logged in as %FirstName_LastName%. Is it not you?
    ```
    and propose a link with `force_login=true` for authorization under another login.

    ## Authorization under different working account

    To obtain information about getting a list of manager working accounts and working under different working accounts, see the [manager working account](#tag/Employer-managers/operation/get-manager-accounts) section.


    <!-- ReDoc-Inject: <security-definitions> -->
  termsOfService: 'https://dev.hh.ru/admin/developer_agreement'
  title: HeadHunter API
  version: 1.0.0
  x-logo:
    altText: HH Logo
    url: 'https://hhcdn.ru/icms/10132131.svg'
openapi: 3.0.3
security:
  - OauthToken: []
servers:
  - description: Api production server
    url: 'https://api.hh.ru'
tags:
  - description: |
      Methods for obtaining a token for an [application](#section/Authorization/User-authorization)
    name: Applicant authorization
  - description: |
      Methods for obtaining a token for an [application](#section/Authorization/User-authorization)
    name: Employer authorization
  - name: Application authorization
    description: |
      Application token should be generated once.

      If the token is compromised, you should request it once again. In this case, the previously assigned token is withdrawn.

      An application owner can see the up to date `access_token` for the application on the site [https://dev.hh.ru/admin](https://dev.hh.ru/admin). If you have never [got an application topic](#section/Authorization/Obtaining-application-authorization), it is not shown.

      <a name="get-client-token"></a>
      ### Obtaining application token

      To obtain `access_token`, make the request:

      ```
      POST https://api.hh.ru/token
      ```
      (old `POST https://hh.ru/oauth/token` request should consider as deprecated)

      The request body should contain [additional parameters](#required_parameters).
      The request body should be sent in standard `application/x-www-form-urlencoded` format with the corresponding `Content-Type` header.

      This `access_token` has **unlimited** lifetime. In case of repeated request the previously assigned token is withdrawn and a new one is assigned. The `access_token` request can be made no more than once in five minutes
  - description: Methods CV request by applicant
    name: CVs for an applicant
  - description: Employer managers manipulation methods
    name: Employer managers
  - description: Employer addresses manipulation methods
    name: Employer addresses
  - description: How to get public directories
    name: Directories
  - description: How to get employer directories<br><br>Attention! The values in the directories may change at any time. Do not address them directly
    name: Employer directories
  - description: 'When filling in the experience and education fields, it is recommended to use the tips services (autocomplete, autosuggest)'
    name: Suggestions
  - description: Suggests by company
    name: Suggestions by company
  - description: Obtaining info about a manager
    name: Manager info
  - description: Obtaining info about an applicant
    name: Applicant info
  - description: Obtaining info about an application
    name: Application info
  - description: A requests for work with available vacancy drafts for the current manager
    name: Vacancy draft
  - description: 'Saved search (autosearch) is the saved set of search parameters used to track new CVs on this request. In addition to saving search request parameters the autosearch function allows to obtain notifications on new search results. For convenience, you can assign a name to the autosearch'
    name: Saved resume searches
  - description: 'Saved search (autosearch) is the saved set of search parameters used to track new vacancies on this request. In addition to saving search request parameters the autosearch function allows to obtain notifications on new search results. For convenience, you can assign a name to the autosearch'
    name: Saved vacancy searches
  - description: Methods for managing notification subscriptions
    name: Managing Webhook Subscriptions
  - description: 'Methods for managing notification subscriptions. Description of callback fields is in the [Callbacks](#callbacks) section'
    name: Webhook API
  - description: |
      Vacancy search requests

      ## Clusters of vacancy search

      When you make a [vacancy search](#tag/Vacancy-search/operation/get-vacancies), you can need to obtain information on vacancy distribution by a search criteria. For example, how many vacancies have a specified salary, or how many vacancies have a salary greater than specified one. To obtain this data with the regular method, you should make a separate request for each criteria needed.

      It is much more convenient to use a special feature of the search engine — dividing data on clusters. A cluster contains a link on list of vacancies that conform specified criterions. You can find an example of cluster usage on the hh.ru homepage, in the left column of the [page with vacancies search results](https://hh.ru/search/vacancy).

      Clusters are combined in groups (elements of the `clusters` array). A group contains clusters with values of one type. For example, the the `Salary` group may contain clusters `from RUB45,000` and `from RUB75,000`. The set of cluster groups depends on query parameters. The list of possible cluster groups is contained in the `vacancy_cluster` field of [directories](#tag/Public-directories/operation/get-dictionaries).

      To obtain cluster divided data, specify the query parameter `?clusters=true`. Besides of standard response fields, the response will contain vacancy clusters.

      To obtain only clusters in a response, without standard fields, specify the query parameter `?per_page=0`
    name: Vacancy search
  - description: |
      Negotiations documentation for the employer is available in the [separate article](#negotiation_workflow).

      Using the website, applicants choose vacancies. In order to contact an employer
      for vacancy details, an applicant can respond to the chosen vacancy. An
      employer, on his part, can offer an applicant to consider a vacancy (invitation).

      For these purposes, there are special entities – responses and invitations.
      They can include a vacancy, CV and negotiations with employer; at any given time
      such entities have one of the states. Transition between the states is
      accompanied by appearance of messages with optional text descriptions and other
      fields. Messages with `null` status do not transit the whole respond to a new
      state.

      In order to contact an employer, an applicant can respond to the chosen vacancy. An employer, on his part, can invite an applicant to consider a vacancy.

      For these purposes, the service uses special entities — _negotiations_ (responses/invitations). They can include a vacancy, resume and messaging with employer.

      At any given time a negotiation has one of the states (`consider`, `response`, `invitation`, etc.) and cannot be in two states simultaneously. Messages with `null` status do not change the state of the negotiation.

      For more information about negotiations, see [Negotiations (responses/invitations) for employers](#tag/Employer-responsesinvitations/operation/get-collection-negotiations-list)
    name: Negotiations (responses/invitations) for applicants
  - description: |
      Methods for vacancy management behalf employer manager.
      ## Restoring archived vacancies

      To restore a vacancy, it is necessary to use the publication vacancy method and follow the rule of using the previous_id parameter described in [this method](#previous_id)
    name: Vacancy management
  - description: |
      General information about working with responses/invitations.

      <a name="negotiation_workflow"></a>
      ### Model of work, terms and procedures

        Responses and invitations correspond to the model that is expressed in the requests and
        API responses. If the application uses the model properly, then changes
        in the business logic of responses and invitations will not cause the need for modification or
        correction.

      Responses and invitations use the following terms:
        
        * *response* is an object generated at the initiative of the applicant as a response to a job.
        A response always involves the use of one resume to apply for one job.
        
        * *invitation* is an object generated at the initiative of the employer as an invitation to apply
        for a job. An invitation always implies the use of one resume to apply for one job.
        
        Except for the object generation process, the rest of the work with the response or invitation is
        the same.
        
        * <a name="term-collection"></a> *collection* is a set of responses/invitations,
        which are combined according to certain criteria. Collections are used when your
        application should **display** a list of responses/invitations. You should not
        rely on the fact that at certain stages of processing a response/invitation,
        your application will use the known collections, as this logic may vary.
        
        * <a name="term-state"></a> *applicant's response/invitation status* is the
        response/invitation status that is **displayed for the applicant**. The possible values
        are available [in the `negotiations_state` directory](#tag/Public-directories/operation/get-dictionaries) and
        do not depend on the job in response/invitation.
        
        * <a name="term-employer-state"></a> *employer's response/invitation status* is the
        response/invitation status that is displayed for the employer. It may differ from the
        applicant's status. The list of possible statuses
        **depends on the job and employer**, therefore this list
        [must be requested](#tag/Employer-responsesinvitations/operation/get-negotiations), while passing the desired job.
        
        * <a name="term-action"></a> *action regarding the response/invitation* is the action that
        can be performed in relation to a response/invitation. As a result of the action,
        the employer's or the applicant's response/invitation status can
        change or stay the same.
        
        Do not confuse *action*, *collection*, and *status*, because they may be similar,
        but they are designed for different purposes.
        
        
        ### General description of the process of working with responses/invitations
        
        All work with responses/invitations takes place within the framework of a
        **single selected job**. Even the same employer can have jobs
        with different rules for working with responses/invitations.
        
        First, you need to get a list of
        [collections and employer's statuses](#tag/Employer-responsesinvitations/operation/get-negotiations). Then you should use collections
        to **get the lists of responses/invitations**. Prompt the user
        to choose which collection to get. To get all the
        responses/invitations, you need to request all the collections sequentially. The list of
        statuses is used only as a directory.
        
        To **create an invitation**, you should request employer's jobs
        applicable to the selected resume. You can get this information in the
        [employer job list](#tag/Vacancy-management/operation/get-active-vacancy-list), which also
        contains the required parameters (the "arguments" key) and the status of the created
        response (the "resulting_employer_state" key). Different employers and different
        jobs may have different rules and statuses for added responses. Each
        *job + resume* pair can have only one response/invitation.
        
        To create an invitation, an employer must have activated access to the database of
        resumes. Employers do not need such access to work with an existing response/invitation. This
        allows them to process responses to jobs even without access to the resume database.
        
        If you need to **take an action** with respect to a response/invitation,
        please refer to the [list of actions](#tag/Employer-responsesinvitations/operation/change-negotiation-action) that will be available in the
        [list (collection) of responses/invitations](#tag/Employer-responsesinvitations/operation/get-collection-negotiations-list) and in the
        [individual response/invitation](#tag/Employer-responsesinvitations/operation/get-negotiation-item). If the action
        changes the status of a response/invitation, it will be explicitly specified in the
        "resulting_employer_state" key. Not all actions lead to a status change.
        
        After inviting the applicant, you can start a
        [free conversation](#tag/Employer-responsesinvitations/operation/get-negotiation-messages). You will be able to
        [send messages](#tag/Employer-responsesinvitations/operation/send-negotiation-message) and receive responses from the applicant.
        If necessary, you
        [can disable](#tag/Vacancy-management/operation/get-vacancy) conversations for a specific job (the `allow_messages` field).

      Take one of the following actions to make sure that the application registers as viewed by the employer:
        * request a list of messages using the URL received upon request [a list (collection) of applications/invitations](#tag/Employer-responsesinvitations/operation/get-collection-negotiations-list)
        or [individual application/invitation](#tag/Employer-responsesinvitations/operation/get-negotiation-item)
        * [request message](#tag/Employer-responsesinvitations/operation/get-negotiation-messages) by response
        * request resume using the URL received upon request [a list (collection) of applications/invitations](#tag/Employer-responsesinvitations/operation/get-collection-negotiations-list)
        or [individual response/invitation](#tag/Employer-responsesinvitations/operation/get-negotiation-item)
        * call [the specific method](#tag/Employer-responsesinvitations/operation/post-negotiations-topics-read) to set certain responses as read
    name: Employer responses/invitations
  - description: |
      Resume search

      ## Search request examples

      * `GET /resumes?text=programmer` – will return all CVs that have the given word 'programmer' in any place.

      * `GET /resumes?text=programmer&text=java` – finds all CVs that have the words 'programmer' and 'java' in any place.

      * `GET /resumes?text=programmer%20java&text.logic=any&text.field=everywhere&text.period=all_time` – will find a CV that has a word from the given phrase in the text parameter ('programmer' or 'java') in any place. If extra fields are used, all of them must be indicated.

      * `GET /resumes?text=Headhunter&text.logic=all&text.field=experience&text.period=last_three_years` – will find all CVs that have the word 'Headhunter' in the last 3 years' work experience.

      * `GET /resumes?text=project%20manager&text.logic=all&text.field=experience%2Cskills&text.period=last_year&text=responsible&text.logic=all&text.field=everywhere&text.period=all_time` – will find all CVs that have the words 'project' and 'manager', and also 'responsible' in any place of the work experience and key skills fields. It should be noted that extra parameters text.logic=all&text.field=experience%2Cskills&text.period=last_year are indicated for text=project%20manager, and text.logic=all&text.field=everywhere&text.period=all_time for the text=responsible parameter
    name: Resume search
  - description: |
      Resume view

      ## Resume download links

      Currently, resumes are available for download in PDF and RTF formats.
      The name of the downloaded file may contain the candidate's name or their desired position.
      A successful response returns with HTTP status code 200 and contains the requested file in the response body.

      ## Resume view with contacts

      Note that there is a cap on the number of requests for the resume viewing method in relation to resumes retrieved through the use of resume database search. 
      To receive your current request quota, there is a special [method](#tag/Employer-services/operation/get-payable-api-actions) you can use. 
      Once the quota is exceeded, an error will return when a request is lodged for the resume viewing method.

      Where not a single manager has thus far viewed a resume with contact info, in all places where that full or short resume appears, 
      the resume will be displayed without the contact info (null in the respective fields).

      From the moment when a manager of the company has viewed a resume with contact info, 
      the resume will start to be displayed with contact info in all places and for all managers for as long as the current database access service with the option of viewing contact info remains enabled.

      To view and download a resume with contact info in API, dedicated links in actions will arrive when resumes are retrieved by their ID. 
      When those links are used, the contact will be debited to the client. The contact will also be debited when the candidate is invited to fill a vacancy. However, the debit will happen once only: either when the resume is viewed with the contact info, or when the candidate is offered to fill one of the vacancies in the company. There will be no debit where the candidate responded first. In this case, the contact info will be visible immediately, without any further action.

      Where the employer is subscribed to database access service with the option of viewing contact details, 
      there will be a single debit per contact view. Where a manager of the company has viewed (whether on the website or via API) a resume with contact info, the resume in question will from that moment on be available, contacts and all, to any manager of the company

      Contact info is deemed to include:

      - Last name (last_name), given name (first_name), patronymic (middle_name);
      - Contact (contact);
      - Links to social media profiles or other websites (site);
      - Photograph (photo).

      Note that when contact details are requested, it may transpire that the user has hidden their contact details. In this case, the viewing will be debited 
      regardless while the reply body will return null in the respective contact data fields. To safeguard against this eventuality, 
      make sure the fields you want are available in hidden_fields the resume
    name: Resume view
x-tagGroups:
  - name: Employer
    tags:
      - Employer authorization
      - Employer info
      - Employer services
      - Employer managers
      - Employer addresses
      - Manager info
      - Vacancy draft
      - Applicant comments
      - Employer directories
      - Vacancy management
      - Employer responses/invitations
      - Saved resume searches
      - Resume search
      - Resume view
      - Webhook API
      - Salary Database
      - Chats
      - Employer
      - Vacancy search
      - Salary Database directories
      - Suggestions by key words
      - Directories
      - Suggestions by company
  - name: Applicant
    tags:
      - Applicant authorization
      - Applicant info
  - name: Methods with common access
    tags:
      - Public directories
      - Suggestions
  - name: Application
    tags:
      - Application authorization
      - Application info
      - Managing Webhook Subscriptions
      - Employer
      - Vacancy search
      - Salary Database directories
      - Suggestions by key words
      - Public directories
      - Directories
      - Suggestions by company
  - name: Integration for employer
    tags:
      - Integration for employer
paths:
  '/employers/{employer_id}/managers/{manager_id}/limits/resume':
    x-name: '/employers/{employer_id}/managers/{manager_id}/limits/resume'
    get:
      operationId: get-employer-manager-limits
      tags:
        - Employer managers
      summary: Daily limit of resume views for current manager
      description: This method is only available to a manager with the purpose of daily limit view
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained from the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
        - name: manager_id
          in: path
          description: 'Manager ID that can be obtained from the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployerManagersEmployerManagerLimits'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/EmployerManagerLimits'
        '403':
          description: Bad authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The employer or manager is not found or the user does not have the appropriate permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  /me:
    x-name: /me
    get:
      operationId: get-current-user-info
      tags:
        - Applicant info
        - Manager info
        - Application info
        - Employer info
        - Employer integration info
      summary: Info on current authorized user
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful server response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeProfile'
        '403':
          description: Application authorization failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
  /manager_accounts/mine:
    x-name: /manager_accounts/mine
    get:
      operationId: get-manager-accounts
      tags:
        - Employer managers
      summary: Manager's work accounts
      description: |
        Returns a list of the manager's work accounts and information about the primary and current account.

        To use a certain account, you need to pass the account_id value obtained from the list in the header:

        `X-Manager-Account-Id: {account_id}`

        This header can be used in all methods available to employers.

        You can pass the account_id of the primary account in the header; this account is also assumed by default if there is no header
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagerAccounts'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  /token:
    x-name: /token
    post:
      operationId: authorize
      tags:
        - Application authorization
        - Employer authorization
        - Applicant authorization
      summary: Getting an access token
      requestBody:
        description: |
          Depending on the token assignment method (`grant_type`), different parameter sets must be specified
          <a name="required_parameters"></a>
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              oneOf:
                - $ref: '#/components/schemas/AuthCode'
                - $ref: '#/components/schemas/AuthRefreshToken'
                - $ref: '#/components/schemas/AuthClientCredentials'
            examples:
              authorization_code:
                value:
                  grant_type: authorization_code
                  client_id: ETVQdMs2n9VKw7SMXkh9nX5H
                  client_secret: 95dNjB8FmtxQsmygm6dtEy53
                  redirect_uri: 'http://www.example.com/oauth'
                  code: 29CtxMcaA8pRFDYyC8e8Gkm4
              refresh_token:
                value:
                  grant_type: refresh_token
                  refresh_token: xuLNvUSv7FYM4MPfXDP9aJWe
              client_credentials:
                value:
                  grant_type: client_credentials
                  client_id: ETVQdMs2n9VKw7SMXkh9nX5H
                  client_secret: 95dNjB8FmtxQsmygm6dtEy53
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthUserTokenAndAppToken'
              examples:
                user auth:
                  value:
                    access_token: exampleAccessTokenRandomSymbols012345678900000000000000000000000
                    token_type: bearer
                    expires_in: 1209600
                    refresh_token: exampleRefreshTokenRandomSymbols01234567890000000000000000000000
                app auth:
                  value:
                    access_token: exampleApplicationTokenRandomSymbols0123456789000000000000000000
                    token_type: bearer
        '400':
          description: Request parameter error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationBadParameters'
              examples:
                account not found:
                  value:
                    summary: Invalid pair of `client_id` and `client_secret` provided
                    error: invalid_request
                    error_description: account not found
                account is locked:
                  value:
                    summary: The user account is blocked. Contact the site support team (mail to api@hh.ru)
                    error: invalid_request
                    error_description: account is locked
        '403':
          description: Request was executed without user authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
    delete:
      operationId: invalidate-token
      tags:
        - Employer authorization
        - Applicant authorization
        - Employer-level authorization
      summary: Access token invalidation
      description: |
        Token invalidation only applies to the current access token.
        Once invalidated, the token cannot be refreshed using the refresh token — you will need to re-authenticate with the API to obtain a new token.
        Application tokens cannot be invalidated in this way. If the token is compromised, you must invalidate the compromised token and request a new token immediately!
        <a name="invalidate_token"></a>
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '403':
          description: Request was executed without user authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  '/employers/{employer_id}/manager_types':
    x-name: '/employers/{employer_id}/manager_types'
    get:
      operationId: get-employer-manager-types
      tags:
        - Employer managers
        - Employer-level managers
      summary: Directory of manager types and permissions
      parameters:
        - name: employer_id
          in: path
          description: Employer ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployerManagerTypesResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/EmployerManagerTypes'
        '403':
          description: Current user is not allowed to view this employer's manager types
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The employer does not exist or current user is not allowed to view the information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/managers':
    x-name: '/employers/{employer_id}/managers'
    get:
      operationId: get-employer-managers
      tags:
        - Employer managers
        - Employer-level managers
      summary: Directory of employer's managers
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained from the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: number
            default: 0
        - name: per_page
          in: query
          description: Number of items
          required: false
          schema:
            type: number
            default: 200
            maximum: 200
        - name: search_text
          in: query
          description: Search string by manager's name
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployerManagersResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/EmployerManagers'
        '403':
          description: Current user is not allowed to view this employer's managers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The employer does not exist or current user is not allowed to view the information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
    post:
      operationId: add-employer-manager
      tags:
        - Employer managers
      summary: Adding a manager
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained from the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmployerManagersAddEmployerManager'
            examples:
              Пример запроса:
                $ref: '#/components/examples/AddEmployerManager'
      responses:
        '201':
          description: Manager has been created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployerManagersEmployerManagerId'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/EmployerManagerId'
        '400':
          description: Parameters in the input JSON contain errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsEmployerManagerBadRequestAndBadArgumentErrors'
        '403':
          description: Bad authorization or other reasons
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsEmployerManagerBadAuthorizationErrors'
        '404':
          description: The specified employer does not exist or the user does not have permission to add a manager
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/addresses':
    x-name: '/employers/{employer_id}/addresses'
    get:
      operationId: get-employer-addresses
      tags:
        - Employer addresses
        - Employer-level addresses
      summary: Directory of employer's addresses
      description: 'Returns a list of employer addresses. For companies with a large number of addresses, there may be a delay between creating an address and it being available for retrieval. This means a newly created address may not appear in the response body immediately'
      parameters:
        - name: employer_id
          in: path
          description: Employer ID
          required: true
          schema:
            type: string
        - name: changed_after
          in: query
          description: 'Allows you to retrieve all addresses modified after this date (address added, deleted, or changed). Changes are returned without pagination. The value must be specified in [ISO 8601](#date-format) format — `YYYY-MM-DDThh:mm:ss` or with a time zone offset `YYYY-MM-DDThh:mm:ss±hhmm` The maximum offset from the current date is 7 days. When this parameter is provided, each address in the response body includes a `deleted` field indicating whether the address has been deleted. Additionally, when this parameter is used, all other parameters are ignored'
          required: false
          schema:
            type: string
            pattern: '^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?((\+|-)[0-1][0-9]{3})?$'
        - name: manager_id
          in: query
          description: ID of the manager created the address
          required: false
          schema:
            type: string
        - name: with_manager
          in: query
          description: 'If true, the response will include information about the manager who created the address'
          required: false
          schema:
            type: boolean
        - name: per_page
          in: query
          description: |
            Number of items per page. [Standard pagination parameters](#section/General-information/Pagination) are supported. The default and maximum value for per_page is 10,000
          required: false
          schema:
            type: integer
        - name: page
          in: query
          description: |
            Page number in the results. [Standard pagination parameters](#section/General-information/Pagination) are supported. By default, page numbering starts from 0
          required: false
          schema:
            type: integer
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response. The `items` field contains a list of the company's addresses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployerAddressesEmployerAddressesResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/EmployerAddresses'
        '400':
          description: Request parameter error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadRequestBadArgumentBadRequestAndBadArgumentErrors'
        '403':
          description: Current user is not allowed to view this employer's managers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The employer does not exist or current user is not allowed to view the information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/addresses/{address_id}':
    x-name: '/employers/{employer_id}/addresses/{address_id}'
    get:
      operationId: get-address
      tags:
        - Employer addresses
        - Employer-level addresses
      summary: Get address by ID
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained from the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
        - name: address_id
          in: path
          description: Employer address ID
          required: true
          schema:
            type: string
        - name: with_manager
          in: query
          description: 'If true, the response will include information about the manager who created the address'
          required: false
          schema:
            type: boolean
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployerAddressesEmployerAddressItemResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/EmployerAddressItem'
        '403':
          description: Current user is not allowed to get the address
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The employer or address does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/managers/{manager_id}/settings':
    x-name: '/employers/{employer_id}/managers/{manager_id}/settings'
    get:
      operationId: get-manager-settings
      tags:
        - Employer managers
      summary: Manager preferences
      description: |
        Returns information about the manager's preferences.

        The easiest way to obtain the URL is from the `manager_settings_url` field in the `manager` object
        in the [current user information](#tag/Employer-info/operation/get-current-user-info).

        Manager preferences *do not affect* default API behavior. For instance, a branded template
        (`default_vacancy_branded_template`) will not be automatically applied when the vacancy is published unless the template is explicitly passed.
        Applications can use this information to implement pre-filling logic for fields
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained from the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
          example: '1455'
        - name: manager_id
          in: path
          description: 'Manager ID from the [directory of employer''s managers](#tag/Employer-managers/operation/get-employer-managers)'
          required: true
          schema:
            type: string
          example: '87654321'
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagerSettings'
        '403':
          description: The current user is not a manager
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: 'Manager does not exist, or the settings cannot be viewed'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/managers/{manager_id}':
    x-name: '/employers/{employer_id}/managers/{manager_id}'
    put:
      operationId: edit-employer-manager
      tags:
        - Employer managers
        - Employer-level managers
      summary: Editing a manager
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained from the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
        - name: manager_id
          in: path
          description: 'Manager ID from the [directory of employer''s managers](#tag/Employer-managers/operation/get-employer-managers)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmployerManagersManagerData'
            examples:
              Пример запроса:
                $ref: '#/components/examples/EditEmployerManagers'
      responses:
        '200':
          description: Manager's parameters have been edited
        '400':
          description: Parameters in the input JSON contain an error. The system returns the error description in the body. Unknown parameters and parameters with errors in names are ignored
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsEmployerManagerBadRequestAndBadArgumentErrors'
        '403':
          description: Current user does not have permission to edit the manager or other reasons
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsEmployerManagerBadAuthorizationErrors'
        '404':
          description: The employer or manager does not exist or the user is not allowed to edit a manager
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
    get:
      operationId: get-employer-manager
      tags:
        - Employer managers
      summary: Getting information about a manager
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained from the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
        - name: manager_id
          in: path
          description: 'Manager ID from the [directory of employer''s managers](#tag/Employer-managers/operation/get-employer-managers)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployerManagersEmployerManagerInfo'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/EmployerManagerInfo'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The employer or manager does not exist or the user is not allowed to edit a manager
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
    delete:
      operationId: delete-employer-manager
      tags:
        - Employer managers
      summary: Deleting a manager
      description: 'Deleting a manager takes some time. Therefore, if you request, for example, a list of managers immediately after successfully deleting a manager, the deleted manager may still appear in the response'
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained from the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
        - name: manager_id
          in: path
          description: 'Manager ID from the [directory of employer''s managers](#tag/Employer-managers/operation/get-employer-managers)'
          required: true
          schema:
            type: string
        - name: successor_id
          in: query
          description: 'ID of the manager who receives the data related to the manager being deleted, including: vacancies, applications, files with selected resumes, comments on candidates, autosearches, etc'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          description: Successful response. The manager has been deleted
        '400':
          description: Request parameters contain errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsEmployerManagerBadRequestAndBadArgumentErrors'
        '403':
          description: Incorrect authorization or other reasons to cancel manager deletion
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsEmployerManagerBadAuthorizationErrors'
        '404':
          description: The employer or manager does not exist or the user is not allowed to delete a manager
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  /industries:
    x-name: /industries
    get:
      operationId: get-industries
      tags:
        - Public directories
      summary: Industries
      description: Returns a two-level directory of all industries
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionariesIndustriesResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/DictionariesIndustries'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  /dictionaries:
    x-name: /dictionaries
    get:
      operationId: get-dictionaries
      tags:
        - Public directories
      summary: Directories of fields
      description: Directories of fields and entities used in API. The values in the directories may change at any time
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionariesDictResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/DictionariesDictionaries'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  /professional_roles:
    x-name: /professional_roles
    get:
      operationId: get-professional-roles-dictionary
      tags:
        - Public directories
      summary: Professional role directory
      description: |
        Returns professional roles, their categories and other information about professional roles
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfessionalRolesCatalog'
        '400':
          $ref: '#/components/responses/ErrorBadArgument'
  /educational_institutions:
    x-name: /educational_institutions
    get:
      operationId: get-educational-institutions-dictionary
      tags:
        - Directories
      summary: Basic information about educational institutions
      parameters:
        - name: id
          in: query
          description: 'Educational institution IDs. The ID of specific institution can be obtained using [suggestion](#tag/Suggestions/operation/get-educational-institutions-suggests). No more than 50 values can be sent. For example: `?id=39196&id=45470&id=0`. If an ID of a non-existent university is provided, no information will be returned for that ID'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsEducationalInstitutions'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/SuggestsEducationalInstitutions'
        '400':
          description: 'Invalid request parameters, or a bulk request error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
  /languages:
    x-name: /languages
    get:
      operationId: get-languages
      tags:
        - Public directories
      summary: The list of all languages
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionariesLangResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/Languages'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  /skills:
    x-name: /skills
    get:
      operationId: get-skills
      tags:
        - Directories
      summary: The list of key skills
      description: |
        The method returns information on the requested key skills.

        Values in the directory may change at any time
      parameters:
        - name: id
          in: query
          description: 'Key skill IDs. The ID of a specific key skill can be obtained using [suggestion](#tag/Suggestions/operation/get-skill-set-suggests). No more than 50 values can be sent. For example: `?id=2716&id=3019&id=0`. If an ID of a non-existent key skill is provided, no information will be returned for that ID'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionariesSkillsResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/DictionariesSkills'
        '400':
          description: 'Invalid request parameters, or a bulk request error'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
  '/educational_institutions/{id}/faculties':
    x-name: '/educational_institutions/{id}/faculties'
    get:
      operationId: get-faculties
      tags:
        - Directories
      summary: List of educational institution faculties
      description: The method returns a faculty list of the specified educational institution
      parameters:
        - name: id
          in: path
          description: 'Educational institution ID that can be obtained by the [suggestion](#tag/Suggestions/operation/get-educational-institutions-suggests)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionariesFacultiesResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/DictionariesFaculties'
        '404':
          description: The specified educational institution does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  /employers:
    x-name: /employers
    get:
      operationId: search-employer
      tags:
        - Employer
      summary: Employer search
      description: 'For pagination parameters (`page`, `per_page`), the following limitation applies: the number of results returned cannot exceed `5000`. For instance, a request with `per_page=10&page=499` is valid (returning results from `4991` to `5000`), but a request with `per_page=10&page=500` returns an error (as it would request employers from `5001` to `5010`)'
      parameters:
        - name: text
          in: query
          description: Text field. Sent value is searched in the name and description of the employer
          required: false
          schema:
            type: string
        - name: area
          in: query
          description: 'Employer region ID, multiple values allowed. Can be obtained from the [directory of regions](#tag/Public-directories/operation/get-areas)'
          required: false
          schema:
            type: string
        - name: type
          in: query
          description: 'Employer type, multiple values allowed. Possible values are listed in the [directory](#tag/Public-directories/operation/get-dictionaries) in the `employer_type` field'
          required: false
          schema:
            type: string
        - name: only_with_vacancies
          in: query
          description: Whether query returns only employers that currently have active vacancies (`true`) or all employers (`false`). Default is `false`
          required: false
          schema:
            type: boolean
        - name: sort_by
          in: query
          description: Sort by name (`by_name`) or by the number of active vacancies (`by_vacancies_open`). Default is `by_name`
          required: false
          schema:
            type: string
            enum:
              - by_name
              - by_vacancies_open
        - name: page
          in: query
          description: 'Number of page with employers (starting from 0, default is 0)'
          required: false
          schema:
            type: number
        - name: per_page
          in: query
          description: 'Number of items per page (default is 20, maximum is 100)'
          required: false
          schema:
            type: number
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployersEmployersList'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/EmployersEmployersExample'
        '400':
          description: Error in the request parameters. The response body may contain details of the field with an error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
  '/employers/{employer_id}/vacancy_branded_templates':
    x-name: '/employers/{employer_id}/vacancy_branded_templates'
    get:
      operationId: get-vacancy-branded-templates-list
      tags:
        - Employer info
        - Employer-level info about the employer
      summary: Employer's branded vacancy templates
      description: |
        Attention! The values in the directories may change at any time. Do not address them directly.

        Branded vacancy templates are available to employers who have purchased and activated the corresponding service. 
        See more details on the [hh.ru](https://hh.ru/article/brandpage) website
      parameters:
        - name: employer_id
          in: path
          description: Employer ID
          required: true
          schema:
            type: string
          example: '12345'
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployersVacancyBrandedTemplatesList'
        '403':
          description: Current user is not authorized or is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: Templates for this company are not available or the company doesn't exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/vacancy_areas/active':
    x-name: '/employers/{employer_id}/vacancy_areas/active'
    get:
      operationId: get-employer-vacancy-areas
      tags:
        - Employer info
      summary: List of regions with active vacancies
      description: |
        The method returns the list of regions where the specified employer currently has active vacancies.

        The values in the directory may change at any time
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained in the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployersEmployerVacancyAreasResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/EmployersEmployerVacancyAreas'
        '400':
          description: Request parameter error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: Current user has no access to view the information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The employer is not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/departments':
    x-name: '/employers/{employer_id}/departments'
    get:
      operationId: get-employer-departments
      tags:
        - Employer info
        - Employer-level info about the employer
      summary: Employer's department directory
      description: |
        The method returns employer's department list.

        Values in the directory may change at any time
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained from [the employer list](#tag/Employer/operation/search-employer)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployersEmployerDepartmentsResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/EmployersEmployerDepartments'
        '403':
          description: Current user has no access to view the information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The employer is not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}':
    x-name: '/employers/{employer_id}'
    get:
      operationId: get-employer-info
      tags:
        - Employer
      summary: Employer info
      description: Returns information about the employer along with a link to the employer's vacancies
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained by the [employer search](#tag/Employer/operation/search-employer)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployersEmployerInfo'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/EmployersEmployerInfoExample'
        '400':
          description: Request parameter error
          content:
            application/json: {}
        '404':
          description: The employer is not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/webhook/subscriptions/{subscription_id}':
    x-name: '/webhook/subscriptions/{subscription_id}'
    put:
      operationId: change-webhook-subscription
      tags:
        - Webhook API
      summary: Change a subscription to notifications
      parameters:
        - name: subscription_id
          in: path
          description: Subscription ID
          required: true
          schema:
            type: string
          example: '1455'
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      description: |
        You can update either individual field (send only the field being updated) or multiple fields simultaneously. 

        To update `actions` specify the full list of event types according to which notifications will be composed. The specified event types are not added to the event types that the user is already subscribed to.

        An empty `actions` list cannot be specified
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookSubscriptionUpdate'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '400':
          description: Request parameter error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadJsonDataErrors'
        '403':
          description: The current user is an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: Subscription is not found or the current user has no access to the subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
    delete:
      operationId: cancel-webhook-subscription
      tags:
        - Webhook API
        - Managing Webhook subscriptions
      summary: Delete a subscription to notifications
      parameters:
        - name: subscription_id
          in: path
          description: Subscription ID
          required: true
          schema:
            type: string
          example: '1455'
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: Subscription is not found or the current user has no access to the subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  /webhook/subscriptions:
    x-name: /webhook/subscriptions
    post:
      operationId: post-webhook-subscription
      tags:
        - Webhook API
      summary: Subscribe to notifications
      description: |
        User can only subscribe to one URL within a single application. You cannot subscribe to different actions at different URLs.

        When an event occurs, a POST request with a JSON body is sent to the specified URL (**see the "Callbacks" section below**).

        Response codes are: 
        * `2xx Success` — Message is accepted
        * `409 Conflict` — Duplicate received

        To identify duplicates, use the `id` from the request. It is a unique identifier for the "user + application" pair within a single event type in the subscription.

        Duplicates may occur if:
        * The URL to which the callback was sent did not respond within 2 seconds
        * The server could not establish a connection to the URL to which the callback needed to be sent
        * The URL responded with an unexpected code (other than `2xx Success` or `409 Conflict`)

        In these cases, the server schedules a retry of the callback, with gradually increasing intervals between retries.

        If expected responses are not received for a long time within a single subscription, a notification email will be sent to the application developer's email address, the subscription will be queued for blocking, and callbacks will be stopped.

        If your service responds with the expected code within the established timeout for the subscription before the application is blocked, the subscription is removed from the blocking queue.

        All notification subscriptions are deleted when the owner deletes the application or a user revokes application access. If access is granted again, a new subscription must be created.

        Webhooks are not a guaranteed delivery service. We send all the messages, but we do not guarantee that recipient will receive them.

        The structure and contents of callbacks are described in the [callbacks](#callbacks) section
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookSubscriptionCreate'
      responses:
        '201':
          $ref: '#/components/responses/SuccessCreated'
        '400':
          description: Request parameter error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookBadDataError'
        '403':
          description: |
            The current <a name="callbacks"></a> user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
      callbacks:
        onData:
          /url_used_for_subscription:
            post:
              requestBody:
                description: Object sent
                content:
                  application/json:
                    schema:
                      oneOf:
                        - $ref: '#/components/schemas/WebhookSendObjectBaseUser'
              responses:
                '409':
                  description: 'In response to our outgoing message, a 2** or 409 code is considered a success'
                2XX:
                  description: 'In response to our outgoing message, a 2** or 409 code is considered a success'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
    get:
      operationId: get-webhook-subscriptions
      tags:
        - Webhook API
      summary: Get a list of notifications the user is subscribed to
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSubscriptionsOutput'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
  /locales/resume:
    x-name: /locales/resume
    get:
      operationId: get-locales-for-resume
      tags:
        - Directories
      summary: The list of available resume locales
      description: |
        Returns a directory of possible resume locales. The subcollection of the [locale directory](#tag/Public-directories/operation/get-locales).

        By changing the locale you can, for example, create a resume in English
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalesResumeLocales'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/LocalesResumeLocales'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  /locales:
    x-name: /locales
    get:
      operationId: get-locales
      tags:
        - Public directories
      summary: The list of available locales
      description: |
        Returns a list of possible values (available locales) in the `id` field. The list of locales depends on specified site (`host` parameter). In any API request, you can specify the `?locale=` parameter to provide a locale value (`language`)
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocalesLocales'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/LocalesLocales'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  /clickme/statistics:
    x-name: /clickme/statistics
    get:
      operationId: get-clickme-statistics
      tags:
        - Campaign statistics in Clickme
      summary: Getting info about Clickme ad campaign statistics
      description: Getting info about Clickme ad campaign statistics
      parameters:
        - name: date_from
          in: query
          description: |
            Date from which to start the search. The value must be specified in [ISO 8601](#date-format) format — `YYYY-MM-DD`
          required: true
          schema:
            type: string
        - name: date_to
          in: query
          description: |
            Date up to which to search. The value must be specified in [ISO 8601](#date-format) format — `YYYY-MM-DD`
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClickmeStatisticsResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/ClickmeStatisticsResponse'
        '400':
          description: Errors in arguments or in the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadRequestBadArgumentBadRequestAndBadArgumentErrors'
        '403':
          description: Not available for the current user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
  '/employers/{employer_id}/mail_templates':
    x-name: '/employers/{employer_id}/mail_templates'
    get:
      operationId: get-mail-templates
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: List of available applicant response templates
      description: |
        Returns a list of possible response template values for [negotiations](#tag/Employer-responsesinvitations)
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained from the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MailTemplatesMailTemplates'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/MailTemplatesMailTemplates'
        '403':
          description: Bad authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The specified employer does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/mail_templates/{template_id}':
    x-name: '/employers/{employer_id}/mail_templates/{template_id}'
    put:
      operationId: put-mail-templates-item
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: Edit an applicant response template
      description: |
        Editing a response template for [negotiations](#tag/Employer-responsesinvitations/operation/get-negotiation-messages)
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained from the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
        - name: template_id
          in: path
          description: 'ID of the template to edit that can be obtained from the [list of available applicant response templates](#tag/Employer-responsesinvitations/operation/get-mail-templates)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MailTemplatesMailTemplateInput'
            examples:
              Пример запроса:
                $ref: '#/components/examples/MailTemplatesMailTemplateInput'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '400':
          description: 'Template text is too long or contains an invalid variable (`too_long`, `wrong_variable`)'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadRequestBadJsonData'
        '403':
          description: Bad authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The specified employer or template does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/vacancies/drafts/{draft_id}/duplicates':
    x-name: '/vacancies/drafts/{draft_id}/duplicates'
    get:
      operationId: search-for-vacancy-draft-duplicates
      tags:
        - Vacancy draft
      summary: Checking for duplicates of a vacancy draft
      parameters:
        - name: draft_id
          in: path
          description: Vacancy draft identifier
          required: true
          schema:
            type: string
          example: '12358'
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Information about found duplicates of the vacancy draft
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacancyDuplicates'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacancyDuplicates'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The draft is not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/vacancies/drafts/{draft_id}':
    x-name: '/vacancies/drafts/{draft_id}'
    get:
      operationId: get-vacancy-draft
      tags:
        - Vacancy draft
      summary: Obtaining a vacancy draft
      parameters:
        - name: draft_id
          in: path
          description: Draft ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response contains information about the created draft and additional information about fields
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacancyDraftVacancyDraftFull'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacancyDraftVacancyDraftFull'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The draft is not found or the user has no access to view the draft
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
    put:
      operationId: change-vacancy-draft
      tags:
        - Vacancy draft
      summary: Editing a vacancy draft
      parameters:
        - name: draft_id
          in: path
          description: Draft ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VacancyDraftVacancyDraftEdit'
            examples:
              Пример запроса:
                $ref: '#/components/examples/VacancyDraftVacancyDraftCreate'
      responses:
        '200':
          description: Successful response contains information about the edited draft and additional information about fields
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacancyDraftDraftResponseSchema'
        '400':
          description: Provided format is not JSON
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadJsonDataErrors'
        '403':
          description: The current user is not an employer or not the owner of the draft
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The draft is not found
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
    delete:
      operationId: delete-vacancy-draft
      tags:
        - Vacancy draft
      summary: Deleting a vacancy draft
      parameters:
        - name: draft_id
          in: path
          description: Draft ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          description: Successful query execution. The draft has been deleted
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The draft is not found or the user does not have permission to delete the draft
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  /vacancies/auto_publication:
    x-name: /vacancies/auto_publication
    delete:
      operationId: disable-automatic-vacancy-publication
      tags:
        - Vacancy draft
      summary: Canceling vacancy auto-publication
      parameters:
        - name: draft_id
          in: query
          description: Draft ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          description: 'Successful response, auto-publication will not be performed'
        '400':
          description: No `draft_id` specified
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The draft is not found or the user has no access to delete this auto-publication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  /vacancies/drafts:
    x-name: /vacancies/drafts
    post:
      operationId: create-vacancy-draft
      tags:
        - Vacancy draft
      summary: Creating vacancy draft
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VacancyDraftVacancyDraftCreate'
            examples:
              Пример запроса:
                $ref: '#/components/examples/VacancyDraftVacancyDraftCreate'
      responses:
        '201':
          description: Successful response contains information about the created draft and additional field information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacancyDraftDraftResponseSchema'
        '400':
          description: Provided format is not JSON
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadJsonDataErrors'
        '403':
          description: Authorization is not on behalf employer manager
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '429':
          description: Vacancy draft limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsDraftError'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
    get:
      operationId: get-vacancy-draft-list
      tags:
        - Vacancy draft
      summary: Getting a list of vacancy drafts
      parameters:
        - name: page
          in: query
          description: 'Page number (starting from 0, default is 0)'
          required: false
          schema:
            type: number
        - name: per_page
          in: query
          description: 'Number of items per page (default is 20, maximum is 50)'
          required: false
          schema:
            type: number
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response contains information about the created draft and additional field information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacancyDraftVacancyDraftItems'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacancyDraftVacancyDraftItems'
        '403':
          description: Current user is not the employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
  '/vacancies/drafts/{draft_id}/publish':
    x-name: '/vacancies/drafts/{draft_id}/publish'
    post:
      operationId: publish-vacancy-from-draft
      tags:
        - Vacancy draft
      summary: Publishing a vacancy from draft
      parameters:
        - name: draft_id
          in: path
          description: Vacancy draft identifier
          required: true
          schema:
            type: string
          example: '1110031'
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '201':
          description: Array of published vacancy IDs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacancyDraftVacanciesDraftResponse'
        '400':
          description: Errors in vacancy draft fields
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsVacancyErrors'
        '403':
          description: Authorization is not on behalf employer manager
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: Draft is not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/resumes/{resume_id}/negotiations_history':
    x-name: '/resumes/{resume_id}/negotiations_history'
    get:
      operationId: get-resume-negotiations-history
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: History of responses/invitations for a resume
      description: |
        Recent activity for the specified resume, limited to 30 vacancies of this employer and 10 status changes of responses/invitations for each of these vacancies.

        The method requires [paid access for the employer](#tag/Employer-services/operation/get-payable-api-method-access)
      parameters:
        - name: resume_id
          in: path
          description: Resume ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResumesResumeNegotiationsHistoryResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/ResumesResumeNegotiationsHistory'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The resume does not exist or is not available for the current user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  /saved_searches/resumes:
    x-name: /saved_searches/resumes
    get:
      operationId: get-saved-resume-searches
      tags:
        - Saved resume searches
      summary: List of saved resume searches
      parameters:
        - name: page
          in: query
          description: 'Page number (starting from 0, default is 0)'
          required: false
          schema:
            type: number
        - name: per_page
          in: query
          description: 'Number of items (default is 5, maximum is 10)'
          required: false
          schema:
            type: number
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SavedSearchesSavedSearchResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/SavedSearchesSavedSearchResumes'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
    post:
      operationId: create-saved-resume-search
      tags:
        - Saved resume searches
      summary: Creating new saved resume search
      description: |
        Some parameters take multiple values: `key=value&key=value`.

        For pagination parameters (`page`, `per_page`), the following limitation applies: the number of results returned cannot exceed `2000`. For instance, a request with `per_page=10&page=199` is valid (returning vacancies from `1991` to `2000`), but a request with `per_page=10&page=200` returns an error (as it would request vacancies from `2001` to `2010`)
      parameters:
        - name: text
          in: query
          description: |
            Search phrase. The method will find resumes containing all the words in the specified query.

            Features:

            * Multiple values can be specified. Each additional value refines the search. 
            * The [search query language](https://hh.ru/article/1175) can be used as a search phrase. 
            * [Autocomplete suggestions](#tag/Suggestions-by-key-words/operation/get-resume-search-keywords-suggests) are available specifically for this field.
            * For fine-tuning the search by phrase, you can use the following parameters: `text.logic`, `text.field`, `text.period`. When using additional `text.*` fields, the entire set (triad) of parameters must be specified (see [usage examples](#tag/Resume-search/Search-request-examples))
          required: false
          schema:
            type: string
        - name: text.logic
          in: query
          description: |
            Describes how the search is performed. Possible values are listed in the `resume_search_logic` field in [directories of fields](#tag/Public-directories/operation/get-dictionaries)
          required: false
          schema:
            type: string
        - name: text.field
          in: query
          description: |
            Describes where the words from the `text` search phrase should appear.

            In the `text.field` parameter, multiple values can be specified as a comma-separated list, e.g., `?text.field=education,keywords`. Possible values are listed in the `resume_search_fields` field in [directories of fields](#tag/Public-directories/operation/get-dictionaries)
          required: false
          schema:
            type: string
        - name: text.period
          in: query
          description: |
            Work experience period.

            The parameter is only relevant when `text.field` is set to one of the following values: `experience`, `experience_company`, `experience_position`, `experience_description`. However, it must always be specified when other `text.*` parameters are provided. If the parameter is not applicable, its value can be left empty
          required: false
          schema:
            type: string
        - name: age_from
          in: query
          description: |
            Minimum applicant's age in years.

            Note that the search results will include resumes with unspecified age by default. To see resumes with specified age only, specify `only_with_age` value for the `label` parameter
          required: false
          schema:
            type: number
        - name: age_to
          in: query
          description: |
            Maximum applicant's age in years.

            Note that the search results will include resumes with unspecified age by default. To see resumes with specified age only, specify `only_with_age` value for the `label` parameter
          required: false
          schema:
            type: number
        - name: area
          in: query
          description: |
            Region. Possible values are listed in the [region directory](#tag/Public-directories/operation/get-areas).

            Multiple values can be specified. Resumes of applicants from specified regions or those who are ready to relocate are selected by default. Specify the `relocation` field to change this behavior
          required: false
          schema:
            type: string
        - name: relocation
          in: query
          description: |
            Willingness to relocate. Possible values are listed in the `resume_search_relocation` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Must be specified together with the `area` parameter
          required: false
          schema:
            type: string
        - name: period
          in: query
          description: |
            Search is performed on resumes published within the specified period in days. If no period is specified, the search is performed without any publication date restrictions
          required: false
          schema:
            type: number
        - name: date_from
          in: query
          description: |
            Date from which to start the search.

            The value must be specified in [ISO 8601](#date-format) format — `YYYY-MM-DD` or with second precision `YYYY-MM-DDThh:mm:ss±hhmm`. Cannot be used together with the `period` parameter
          required: false
          schema:
            type: string
        - name: date_to
          in: query
          description: |
            Date up to which to search.

            The value must be specified in [ISO 8601](#date-format) format — `YYYY-MM-DD` or with second precision `YYYY-MM-DDThh:mm:ss±hhmm`. Can only be used together with the `date_from` parameter. Cannot be used together with the `period` parameter
          required: false
          schema:
            type: string
        - name: education_level
          in: query
          description: |
            Education level. Possible values are listed in the `education_level` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). If this parameter is not specified, the search is performed without any education level restrictions

            Replaced by the `education_levels` parameter. Currently maintained for backward compatibility
          required: false
          schema:
            type: string
        - name: employment
          in: query
          description: |
            Employment type. Possible values are listed in the `employment` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: experience
          in: query
          description: |
            Work experience. Possible values are listed in the `experience` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: skill
          in: query
          description: |
            Key skills. Specifies one or more key skill IDs. Values can be obtained from the `id` field in the [key skills suggestion](#tag/Suggestions/operation/get-skill-set-suggests)
          required: false
          schema:
            type: string
        - name: gender
          in: query
          description: |
            Gender. Possible values are listed in the `gender` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries).

            Note that the search results will include resumes with unspecified gender by default. To exclude such resumes from search results, use the `label=only_with_gender` parameter
          required: false
          schema:
            type: string
        - name: label
          in: query
          description: |
            Extra filter. Possible values are listed in the `resume_search_label` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: language
          in: query
          description: |
            Language proficiency. Multiple values can be specified. The format is `language.level`, where:

            * `language` — value from the [/languages](#tag/Public-directories/operation/get-languages) directory
            * `level` — value from the language_level field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries)

            Example: `ita.c2`
          required: false
          schema:
            type: string
        - name: metro
          in: query
          description: |
            Metro line or station. Possible values are listed in the [/metro](#tag/Public-directories/operation/get-metro-stations) directory
          required: false
          schema:
            type: string
        - name: currency
          in: query
          description: |
            Currency code. Possible values are listed in the `currency.code` field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries)
          required: false
          schema:
            type: string
        - name: salary_from
          in: query
          description: |
            Minimum desired salary
          required: false
          schema:
            type: number
        - name: salary_to
          in: query
          description: |
            Maximum desired salary

            Note that the search results will include resumes without a specified salary by default. To see resumes with a specified salary only, use the `label=only_with_salary` parameter
          required: false
          schema:
            type: number
        - name: schedule
          in: query
          description: |
            Work schedule. Possible values are listed in the `schedule` field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: order_by
          in: query
          description: |
            Resume list sorting. Possible values are listed in the `resume_search_order` field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries)
          required: false
          schema:
            type: string
        - name: citizenship
          in: query
          description: |
            Applicant citizenship country. Possible values are listed in the [directory of countries](#tag/Public-directories/operation/get-countries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: work_ticket
          in: query
          description: |
            Country where the applicant is permitted to work in. Possible values are listed in the [directory of countries](#tag/Public-directories/operation/get-countries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: educational_institution
          in: query
          description: |
            Applicant's educational institutions. Suggestions on university names are used as parameters: [/suggests/educational_institutions](#tag/Suggestions/operation/get-educational-institutions-suggests). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: search_in_responses
          in: query
          description: |
            If `true`, the search is performed only on resumes that applicants used to respond to the employer's vacancies. If `false`, the search is is performed on all resumes. Default is `false`
          required: false
          schema:
            type: boolean
        - name: by_text_prefix
          in: query
          description: |
            If `true`, the search is performed by prefix. For each `text` parameter, the search results will include not only exact word matches but also words beginning with the `text` value. Default is `false`
          required: false
          schema:
            type: boolean
        - name: driver_license_types
          in: query
          description: |
            Driver license types. Possible values are listed in the `driver_license_types` field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: vacancy_id
          in: query
          description: |
            Vacancy ID for searching similar resumes. Must be the ID of an active employer vacancy or an archived employer vacancy
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: 'Page number (starting from 0, default is 0)'
          required: false
          schema:
            type: number
        - name: per_page
          in: query
          description: 'Number of items (default is 10, maximum is 50)'
          required: false
          schema:
            type: number
        - name: professional_role
          in: query
          description: |
            Professional role. Possible values are listed in the [professional role directory](#tag/Public-directories/operation/get-professional-roles-dictionary). Multiple values can be specified
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '201':
          description: Successfully created
          content:
            text/html:
              schema:
                type: string
          headers:
            Location:
              schema:
                type: string
                description: 'Path to the created autosearch. Example: `/`saved_searches/resumes/123`, where `123` is the `id` of the created autosearch'
        '400':
          description: Errors in arguments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
  '/resumes/{resume_id}':
    x-name: '/resumes/{resume_id}'
    get:
      operationId: get-resume
      tags:
        - Resume view
        - Resume. Viewing info
        - Information about the resume
        - Employer-level resume viewing
      summary: View a resume
      description: |
        Returns information about the specified resume.

        Features in case of the request sent by an employer:

        * [Paid access](#tag/Employer-services/operation/get-payable-api-method-access) is required.
        * For viewing a resume with contact information, [special rules](#tag/Resume-view/Resume-view-with-contacts) apply.
        * If full resume data is not available with the current authorization, some fields will contain `null`, and the `can_view_full_info` field will be `false`.
        * If the employer has a response/invitation for this resume, the response will be registered as viewed (only if the query parameter "topic_id" with the corresponding response ID is provided)
      parameters:
        - name: resume_id
          in: path
          description: Resume ID
          required: true
          schema:
            type: string
        - name: with_negotiations_history
          in: query
          description: |
            If this parameter is provided, the `negotiations_history.vacancies` field will be added to the response.
            Its format is described in the [detailed history of responses/invitations for a resume page](#tag/Employer-responsesinvitations/operation/get-resume-negotiations-history), and the only difference is that in this case,
            the list will be limited to 3 vacancies of this employer and the latest status change for the response/invitation for each of these vacancies
          required: false
          schema:
            type: boolean
        - name: with_creds
          in: query
          description: 'If this parameter is provided, the creds field will be added to the response'
          required: false
          schema:
            type: boolean
        - name: with_job_search_status
          in: query
          description: |
            Parameter for obtaining a resume with an applicant search status
          required: false
          schema:
            type: boolean
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResumeResumeViewResponse'
              examples:
                Пример ответа для работодателя:
                  $ref: '#/components/examples/ResumeResumeViewEmployer'
            text/html:
              schema:
                type: string
        '403':
          description: User authorization is needed
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ErrorsCommonBadAuthCaptchaPrivate'
        '404':
          description: The resume does not exist or is not available to the user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
        '429':
          description: The daily limit of resume views is exceeded for the employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsResumeTooManyRequestsEmployerErrors'
  /resumes:
    x-name: /resumes
    get:
      operationId: search-for-resumes
      tags:
        - Resume search
        - Employer-level resume search
      summary: Resume search
      description: |
        Returns resume search results.

        Some request parameters may take multiple values: `key=value&key=value`. If a parameter can take multiple values, this is explicitly stated in its description. Unknown parameters and parameters with incorrect names are ignored.

        For pagination parameters (`page`, `per_page`), the following limitation applies: the number of results returned cannot exceed `2000`. For instance, a request with `per_page=10&page=199` is valid (returning resumes from `1991` to `2000`), but a request with `per_page=10&page=200` returns an error (as it would request resumes from `2001` to `2010`).

        Resume search results are grouped by applicant. This means that the same applicant cannot appear multiple times in the result set. If an applicant has multiple resumes that match the query, only one of their resumes will be returned as an item in the items array
      parameters:
        - name: text
          in: query
          description: |
            Search phrase. The method will find resumes containing all the words in the specified query.

            Features:

            * Multiple values can be specified. Each additional value refines the search. 
            * The [search query language](https://hh.ru/article/1175) can be used as a search phrase. 
            * [Autocomplete suggestions](#tag/Suggestions-by-key-words/operation/get-resume-search-keywords-suggests) are available specifically for this field.
            * For fine-tuning the search by phrase, you can use the following parameters: `text.logic`, `text.field`, `text.period`. When using additional `text.*` fields, the entire set (triad) of parameters must be specified (see [usage examples](#tag/Resume-search/Search-request-examples))
          schema:
            type: string
        - name: text.logic
          in: query
          description: |
            Describes how the search is performed. Possible values are listed in the `resume_search_logic` field in [directories of fields](#tag/Public-directories/operation/get-dictionaries)
          schema:
            type: string
        - name: text.field
          in: query
          description: |
            Describes where the words from the `text` search phrase should appear.

            In the `text.field` parameter, multiple values can be specified as a comma-separated list, e.g., `?text.field=education,keywords`. Possible values are listed in the `resume_search_fields` field in [directories of fields](#tag/Public-directories/operation/get-dictionaries)
          schema:
            type: string
        - name: text.period
          in: query
          description: |
            Work experience period.

            The parameter is only relevant when `text.field` is set to one of the following values: `experience`, `experience_company`, `experience_position`, `experience_description`. However, it must always be specified when other `text.*` parameters are provided. If the parameter is not applicable, its value can be left empty
          schema:
            type: string
        - name: text.company_size
          in: query
          description: |
            Size of the company where the applicant has work experience.  
            This parameter is applied only if `text.field` is set to one of the following values: `workplaces`, `workplace_organization`, `workplace_position`, `workplace_description`.  

            Possible values:  
            * `any` — any company size
            * `small` — companies with up to 100 employees
            * `medium` — companies with 100-1000 employees
            * `large` — companies with over 1000 employees

            The number of values for this parameter must match the number of values in `text`, `text.field`, and `text.logic`
          schema:
            type: string
        - name: text.industry
          deprecated: true
          in: query
          description: |
            Industry ID in which the applicant must have work experience.  
            Possible values are listed in the [industry directory](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-industries) (the `id` field).  

            The number of values for this parameter must match the number of values in `text`, `text.field`, and `text.logic`
          schema:
            type: string
        - name: age_from
          in: query
          description: |
            Minimum applicant's age in years.

            Note that the search results will include resumes with unspecified age by default. To see resumes with specified age only, specify `only_with_age` value for the `label` parameter
          schema:
            type: string
        - name: age_to
          in: query
          description: |
            Maximum applicant's age in years.

            Note that the search results will include resumes with unspecified age by default. To see resumes with specified age only, specify `only_with_age` value for the `label` parameter
          schema:
            type: string
        - name: area
          in: query
          description: |
            Region. Possible values are listed in the [region directory](#tag/Public-directories/operation/get-areas).

            Multiple values can be specified. Resumes of applicants from specified regions or those who are ready to relocate are selected by default. Specify the `relocation` field to change this behavior
          schema:
            type: string
        - name: relocation
          in: query
          description: |
            Willingness to relocate. Possible values are listed in the `resume_search_relocation` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Must be specified together with the `area` parameter
          schema:
            type: string
        - name: period
          in: query
          description: |
            Search is performed on resumes published within the specified period in days. If no period is specified, the search is performed without any publication date restrictions
          schema:
            type: number
        - name: date_from
          in: query
          description: |
            Date from which to start the search.

            The value must be specified in [ISO 8601](#date-format) format — `YYYY-MM-DD` or with second precision `YYYY-MM-DDThh:mm:ss±hhmm`. Cannot be used together with the `period` parameter
          schema:
            type: string
        - name: date_to
          in: query
          description: |
            Date up to which to search.

            The value must be specified in [ISO 8601](#date-format) format — `YYYY-MM-DD` or with second precision `YYYY-MM-DDThh:mm:ss±hhmm`. Can only be used together with the `date_from` parameter. Cannot be used together with the `period` parameter
          schema:
            type: string
        - name: education_level
          deprecated: true
          in: query
          description: |
            Education level. Possible values are listed in the `education_level` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). If this parameter is not specified, the search is performed without any education level restrictions

            Replaced by the `education_levels` parameter. Currently maintained for backward compatibility
          schema:
            type: string
        - name: employment
          in: query
          description: |
            Employment type. Possible values are listed in the `employment` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          schema:
            type: string
        - name: experience
          in: query
          description: |
            Work experience. Possible values are listed in the `experience` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          schema:
            type: string
        - name: skill
          in: query
          description: |
            Key skills. Specifies one or more key skill IDs. Values can be obtained from the `id` field in the [key skills suggestion](#tag/Suggestions/operation/get-skill-set-suggests)
          schema:
            type: string
        - name: gender
          in: query
          description: |
            Gender. Possible values are listed in the `gender` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries).

            Note that the search results will include resumes with unspecified gender by default. To exclude such resumes from search results, use the `label=only_with_gender` parameter
          schema:
            type: string
        - name: label
          in: query
          description: |
            Extra filter. Possible values are listed in the `resume_search_label` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          schema:
            type: string
        - name: language
          in: query
          description: |
            Language proficiency. Multiple values can be specified. The format is `language.level`, where:

            * `language` — value from the [/languages](#tag/Public-directories/operation/get-languages) directory
            * `level` — value from the language_level field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries)

            Example: `ita.c2`
          schema:
            type: string
        - name: metro
          in: query
          description: |
            Metro line or station. Multiple values can be specified

            Possible values are listed in the [/metro](#tag/Public-directories/operation/get-metro-stations) directory
          schema:
            type: string
        - name: currency
          in: query
          description: |
            Currency code. Possible values are listed in the `currency.code` field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries)
          schema:
            type: string
        - name: salary_from
          in: query
          description: |
            Minimum desired salary.

            Note that the search results will include resumes without a specified salary by default. To see resumes with a specified salary only, use the `label=only_with_salary` parameter
          schema:
            type: number
        - name: salary_to
          in: query
          description: |
            Maximum desired salary.

            Note that the search results will include resumes without a specified salary by default. To see resumes with a specified salary only, use the `label=only_with_salary` parameter
          schema:
            type: number
        - name: schedule
          in: query
          description: |
            Work schedule. Possible values are listed in the `schedule` field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          schema:
            type: string
        - name: order_by
          in: query
          description: |
            Resume list sorting. Possible values are listed in the `resume_search_order` field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries)
          schema:
            type: string
        - name: citizenship
          in: query
          description: |
            Applicant citizenship country. Possible values are listed in the [directory of countries](#tag/Public-directories/operation/get-countries). Multiple values can be specified
          schema:
            type: string
        - name: work_ticket
          in: query
          description: |
            Country where the applicant is permitted to work in. Possible values are listed in the [directory of countries](#tag/Public-directories/operation/get-countries). Multiple values can be specified
          schema:
            type: string
        - name: educational_institution
          in: query
          description: |
            Applicant's educational institutions. Suggestions on university names are used as parameters: [/suggests/educational_institutions](#tag/Suggestions/operation/get-educational-institutions-suggests). Multiple values can be specified
          schema:
            type: string
        - name: search_in_responses
          in: query
          description: |
            If `true`, the search is performed only on resumes that applicants used to respond to the employer's vacancies. If `false`, the search is is performed on all resumes. Default is `false`
          schema:
            type: boolean
        - name: by_text_prefix
          in: query
          description: |
            If `true`, the search is performed by prefix. For each `text` parameter, the search results will include not only exact word matches but also words beginning with the `text` value. Default is `false`
          schema:
            type: boolean
        - name: driver_license_types
          in: query
          description: |
            Driver license types. Possible values are listed in the `driver_license_types` field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          schema:
            type: string
        - name: vacancy_id
          in: query
          description: |
            Vacancy ID for searching similar resumes. Must be the ID of an active employer vacancy or an archived employer vacancy
          schema:
            type: string
        - name: page
          in: query
          description: 'Page number (starting from 0, default is 0)'
          schema:
            type: number
        - name: per_page
          in: query
          description: 'Number of items per page (default is 20, maximum is 100)'
          schema:
            type: number
        - name: professional_role
          in: query
          description: |
            Professional role. Possible values are listed in the [professional role directory](#tag/Public-directories/operation/get-professional-roles-dictionary). Multiple values can be specified
          schema:
            type: string
        - name: folder
          in: query
          description: |
            One or more IDs of folders with favorite resumes. If this parameter is provided, the search will be limited to the contents of the specified folders. Multiple folder IDs can be specified, for example: `folder=111&folder=222&folder=333`
          schema:
            type: string
        - name: include_all_folders
          in: query
          description: |
            Indicates whether to search across all folders with favorite resumes. If a manager has access to favorite folders, the search will be limited to favorite folders by default

            If the `include_all_folders=false parameter` is provided, the search will not be limited to any folder. The `400 Bad Request` error will be returned if `folder` and `include_all_folders` parameters are specified in the same request
          schema:
            type: boolean
        - name: job_search_status
          in: query
          description: |
            Job search status.

            Possible values are listed in the `job_search_statuses_employer` field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          schema:
            type: string
        - name: resume
          in: query
          description: |
            Resume identifier for searching similar resumes
          schema:
            type: string
        - name: filter_exp_industry
          in: query
          description: |
            Processed in conjunction with the `filter_exp_period` parameter. Industry ID in which the applicant must have work experience.  
            Possible values are listed in the [industry directory](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-industries) (the `id` field). Multiple values can be specified
          schema:
            type: string
        - name: filter_exp_period
          in: query
          description: |
            Period during which the applicant must have work experience in the industry specified in the `filter_exp_industry` parameter.

            Possible values:
              
            * `all_time` — for the entire period
            * `last_year` — for the last year
            * `last_three_years` — for the last three years
            * `last_six_years` — for the last six years.

            Default is `all_time`
          schema:
            type: string
        - name: with_job_search_status
          in: query
          description: |
            Parameter for obtaining a resume with an applicant search status
          schema:
            type: boolean
        - name: education_levels
          in: query
          description: |
            Required education level of the applicant.
            Possible values are listed in the `education_level` field in the [field dictionary](#tag/Public-directories/operation/get-dictionaries).  

            If this parameter is not specified, the search is performed without any education level restrictions
          schema:
            type: string
        - name: district
          in: query
          description: |
            The district identifier. Possible values are provided in the [/districts](#tag/Public-directories/operation/get-all-districts) directory
          schema:
            type: string
        - name: saved_search_id
          in: query
          description: |
            Saved autosearch ID. 
            Returned in the `items.url` and `new_items.url` fields when [retrieving data about a specific autosearch](#tag/Saved-resume-searches/operation/get-saved-resume-search) and in the `items.items.url` and `items.new_items.url` fields when [retrieving the list of autosearches](#tag/Saved-resume-searches/operation/get-saved-resume-searches).  
            Using this parameter when searching for resumes updates the `last_used_timestamp` value in the specified autosearch
          schema:
            type: string
        - name: search_by_vacancy_id
          in: query
          description: |
            Vacancy ID to search for resumes among its responses
          schema:
            type: string
        - name: last_used_timestamp
          in: query
          description: |
            Timestamp of the last autosearch results view.  
            Used together with the `saved_search_id` parameter to find and count new resumes matching the query that have appeared since the last view.  
            The number of new resumes is returned in the `new_items.count` field when retrieving data for a specific autosearch and in the `items.new_items.count` field when retrieving a list of autosearches
          schema:
            type: string
        - name: last_used
          in: query
          description: |
            Date and time of the last autosearch results view, including the time zone.  
            Example: 2015-11-12T18:06:04+0300.  
            Used together with the `saved_search_id` parameter to find and count new resumes matching the query that have appeared since the last view.  
            The number of new resumes is returned in the `new_items.count` field when retrieving data for a specific autosearch and in the `items.new_items.count` field when retrieving a list of autosearches
          schema:
            type: string
        - name: business_trip_readiness
          in: query
          description: |
            Readiness for business trips. Possible values are listed in the `business_trip_readiness` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). If not specified, the search is performed without any restrictions on the business trip readiness
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResumesSearchForResumesResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/ResumesSearchForResumes'
        '400':
          description: Errors in arguments or in the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadRequestBadArgumentBadRequestAndBadArgumentErrors'
        '403':
          description: The current user is not an employer or has no access to the method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationCommonAndPaymentMethodError'
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsResumeTooManyRequestsEmployerResumeSearchErrors'
  '/saved_searches/resumes/{id}':
    x-name: '/saved_searches/resumes/{id}'
    get:
      operationId: get-saved-resume-search
      tags:
        - Saved resume searches
      summary: Getting single saved resume search
      description: |
        Note: the `new_items.count` counter is updated once per hour. Therefore, the actual number of new resumes found 
        may differ from this counter's value
      parameters:
        - name: id
          in: path
          description: 'Saved search ID from the [list](#tag/Saved-resume-searches/operation/get-saved-resume-searches)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SavedSearchesSavedSearchItem'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/SavedSearchesSavedSearchResumeItem'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: Saved search is not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
    put:
      operationId: update-saved-resume-search
      tags:
        - Saved resume searches
      summary: Updating saved resume search
      description: 'For a saved search, you can change the subscription name (`name`) and status (`subscription`). Only one of these parameters can be specified in a single request'
      parameters:
        - name: id
          in: path
          description: 'Saved search ID from the [list](#tag/Saved-resume-searches/operation/get-saved-resume-searches)'
          required: true
          schema:
            type: string
        - name: name
          in: query
          description: New saved search name
          required: false
          schema:
            type: string
        - name: subscription
          in: query
          description: Subscription status
          required: false
          schema:
            type: boolean
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '400':
          $ref: '#/components/responses/ErrorBadArgument'
        '403':
          $ref: '#/components/responses/ErrorBadAuthorization'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
        '409':
          $ref: '#/components/responses/ErrorBothChangedConflict'
    delete:
      operationId: delete-saved-resume-search
      tags:
        - Saved resume searches
      summary: Deleting saved resume search
      parameters:
        - name: id
          in: path
          description: 'Saved search ID from the [list](#tag/Saved-resume-searches/operation/get-saved-resume-searches)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '403':
          $ref: '#/components/responses/ErrorBadAuthorization'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
  '/saved_searches/resumes/{saved_search_id}/managers/{manager_id}':
    x-name: '/saved_searches/resumes/{saved_search_id}/managers/{manager_id}'
    put:
      operationId: move-saved-resume-search
      tags:
        - Saved resume searches
      summary: Assigning a saved resume search to another manager
      parameters:
        - name: saved_search_id
          in: path
          description: 'Autosearch ID that can be obtained from the [list of saved resume searches](#tag/Saved-resume-searches/operation/get-saved-resume-searches)'
          required: true
          schema:
            type: string
        - name: manager_id
          in: path
          description: 'ID of the manager to assign the autosearch to ([company managers list](#tag/Employer-managers/operation/get-employer-managers))'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsSavedSearchForbiddenErrors'
        '404':
          $ref: '#/components/responses/ErrorSavedSearchNotFound'
  /districts:
    x-name: /districts
    get:
      operationId: get-all-districts
      tags:
        - Public directories
      summary: List of available city districts
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionariesDistrictsResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/DistrictsDistricts'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  '/applicant_comments/{applicant_id}/{comment_id}':
    x-name: '/applicant_comments/{applicant_id}/{comment_id}'
    put:
      operationId: update-applicant-comment
      tags:
        - Applicant comments
        - Employer-level comments about an applicant
      summary: Update a comment
      description: |
        The method requires [paid access for the employer](#tag/Employer-services/operation/get-payable-api-method-access).

        The comment author can change its text and access type. If a parameter is not provided, its value will remain unchanged
      parameters:
        - name: applicant_id
          in: path
          description: 'Applicant ID provided in the `owner` field of the [resume](#tag/Resume-view/operation/get-resume)'
          required: true
          schema:
            type: string
        - name: comment_id
          in: path
          description: 'Comment ID that can be obtained from the [comment list](#tag/Applicant-comments/operation/get-applicant-comments-list)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                text:
                  description: Comment text
                  type: string
                access_type:
                  description: 'Access type. Possible values are provided in the `applicant_comment_access_type` field of the [directories](#tag/Public-directories/operation/get-dictionaries)'
                  type: string
      responses:
        '204':
          description: Successful response. Comment has been updated
        '400':
          description: 'Error in the request parameters. Additionally, the names of parameters with errors may be specified'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: The current user cannot edit this comment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The specified applicant or comment is not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
    delete:
      operationId: delete-applicant-comment
      tags:
        - Applicant comments
        - Employer-level comments about an applicant
      summary: Delete a comment
      description: |
        The method requires [paid access for the employer](#tag/Employer-services/operation/get-payable-api-method-access).

        Only the comment author can delete it
      parameters:
        - name: applicant_id
          in: path
          description: 'Applicant ID provided in the `owner` field of the [resume](#tag/Resume-view/operation/get-resume)'
          required: true
          schema:
            type: string
        - name: comment_id
          in: path
          description: 'ID of a comment to be deleted provided in the [comment list](#tag/Applicant-comments/operation/get-applicant-comments-list)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          description: Successful response. Comment has been deleted
        '403':
          description: The current user cannot delete this comment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The specified applicant is not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/applicant_comments/{applicant_id}':
    x-name: '/applicant_comments/{applicant_id}'
    get:
      operationId: get-applicant-comments-list
      tags:
        - Applicant comments
        - Employer-level comments about an applicant
      summary: Get the comment list
      description: |
        The method requires [paid access for the employer](#tag/Employer-services/operation/get-payable-api-method-access).

        The list contains comments from the current user, as well as comments from other company managers if they made them accessible at the moment of posting
      parameters:
        - name: applicant_id
          in: path
          description: 'Applicant ID provided in the `owner` field of the [resume](#tag/Resume-view/operation/get-resume)'
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: Page number
          schema:
            type: number
        - name: per_page
          in: query
          description: Results per page
          schema:
            type: number
        - name: order_by
          in: query
          description: 'Sorting comments. Available values are listed [in the directory](#tag/Public-directories/operation/get-dictionaries) in the `applicant_comments_order` field'
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicantCommentsApplicantCommentsList'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/ApplicantCommentsApplicantCommentsListExample'
        '403':
          description: Receiving comments is not available for the current user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The specified applicant is not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
    post:
      operationId: add-applicant-comment
      tags:
        - Applicant comments
        - Employer-level comments about an applicant
      summary: Add a comment
      description: 'The method requires [paid access for the employer](#tag/Employer-services/operation/get-payable-api-method-access)'
      parameters:
        - name: applicant_id
          in: path
          description: 'Applicant ID provided in the `owner` field of the [resume](#tag/Resume-view/operation/get-resume)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
                - text
                - access_type
              properties:
                text:
                  description: Comment text
                  type: string
                access_type:
                  description: 'Access type. Possible values are provided in the `applicant_comment_access_type` field of the [directories](#tag/Public-directories/operation/get-dictionaries)'
                  type: string
      responses:
        '201':
          description: Comment has been added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicantCommentsApplicantCommentItem'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/ApplicantCommentsAddApplicantCommentExample'
        '400':
          description: Error in the request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: The current user cannot view comments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The specified applicant is not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  /metro:
    x-name: /metro
    get:
      operationId: get-metro-stations
      tags:
        - Public directories
      summary: The list of metro stations in all cities
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetroMetroResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/MetroMetro'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  '/metro/{city_id}':
    x-name: '/metro/{city_id}'
    get:
      operationId: get-metro-stations-in-city
      tags:
        - Public directories
      summary: The list of metro stations in the specified city
      parameters:
        - name: city_id
          in: path
          description: City ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetroCityMetroItem'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/MetroCityMetro'
        '404':
          description: A city with the specified ID does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/negotiations/{nid}/messages':
    x-name: '/negotiations/{nid}/messages'
    post:
      operationId: send-negotiation-message
      tags:
        - Negotiations (responses/invitations) for applicants
        - Employer responses/invitations
      summary: Sending new message
      description: |
        Sends a new negotiation message.

        A new message can be sent if:

        * The employer has invited the applicant to the vacancy.
        * The applicant has responded to the vacancy.

        If the vacancy has been archived or the applicant has deleted their resume, the negotiation will be unavailable. The employer can also disable the negotiation for a vacancy manually.

        !! Note that the methods for handling response/invitation messages on behalf of an [employer manager](#tag/Employer-responsesinvitations/operation/get-negotiation-messages)
        are deprecated, and new chat features will not be supported in these methods. As a result, conversations may not display correctly
      parameters:
        - name: nid
          in: path
          description: Negotiation ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                message:
                  description: Negotiation message
                  type: string
      responses:
        '201':
          description: |
            Message sent.
            Note: For the employer, the response `Content-type` returned is `text/html`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NegotiationsMessageSent'
              examples:
                Пример ответа (соискатель):
                  $ref: '#/components/examples/NegotiationsMessageSent'
            text/html:
              schema:
                type: string
        '400':
          description: Request parameter error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
        '403':
          description: Failed to send the message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsNegotiationNegotiationsBadAuthorizationErrors'
        '404':
          description: 'The specified negotiation is not found, or the user has no access to view the negotiation'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsNegotiationNegotiationsNotFoundErrors'
    get:
      operationId: get-negotiation-messages
      tags:
        - Negotiations (responses/invitations) for applicants
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: View the list of messages in the negotiation
      description: |
        Returns a list of all messages for the selected response/invitation. The employer can view the list by the URL specified in the `messages` field of the [response/invitation list](#tag/Employer-responsesinvitations/operation/get-negotiations) or in anindividual [response](#tag/Employer-responsesinvitations/operation/get-negotiation-item).  

        Message types:

        * Applicant's cover letter
        * Employer's cover letter for changing the negotiation status
        * Free conversation between the applicant and the employer 

        !! Note that the methods for handling response/invitation [messages](#tag/Employer-responsesinvitations/operation/get-negotiation-messages) are deprecated, 
        and new chat features will not be supported in these methods. As a result, conversations may not display correctly
      parameters:
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: number
            default: 0
        - name: per_page
          in: query
          description: Number of items
          required: false
          schema:
            type: number
            default: 20
        - name: nid
          in: path
          description: Negotiation ID
          required: true
          schema:
            type: string
        - name: with_text_only
          in: query
          description: Return non-empty messages (contain text in the `text` parameter)
          required: false
          schema:
            type: boolean
            default: false
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NegotiationsMessagesGetResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/NegotiationsMessageGet'
  /negotiations/response:
    x-name: /negotiations/response
    get:
      operationId: get-collection-negotiations-list
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: Negotiation list of the collection
      description: |
        Returns a list of negotiation (responses/invitations) for the collection. The request URL must be obtained from the `collections[].url` field of the [collection list](#tag/Employer-responsesinvitations/operation/get-negotiations).

        > Instead of `response`, the `{collection_name}` parameter must be specified. Possible values are specified in the `collections[].id` field [list of collections](#tag/Employer-responsesinvitations/operation/get-negotiations).

        The response will contain only basic resume information. To obtain additional information, such as a contact phone number, it is necessary to [request the full resume](#tag/Vacancy-management/operation/get-vacancy).

        Some request parameters may take multiple values: `key=value&key=value`. If a parameter can take multiple values, this is explicitly stated in its description. Unknown parameters and parameters with incorrect names are ignored.

        > The `phone_calls` collection only accepts the `vacancy_id`, `order_by`, `page` and `per_page` parameters
      parameters:
        - name: vacancy_id
          in: query
          description: Vacancy ID
          required: true
          schema:
            type: string
        - name: order_by
          in: query
          description: |
            Resume list sorting. Possible values are listed in the `resume_search_order` field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries)
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: |
            Page number in the results. [Standard pagination parameters](#section/General-information/Pagination) are supported. By default, page numbering starts from 0
          required: false
          schema:
            type: integer
            default: 0
        - name: per_page
          in: query
          description: |
            Number of items per page. [Standard pagination parameters](#section/General-information/Pagination) are supported. The default and maximum value for per_page is 50
          required: false
          schema:
            type: integer
            default: 20
        - name: age_from
          in: query
          description: Minimum applicant's age in years
          required: false
          schema:
            type: string
        - name: age_to
          in: query
          description: |
            Maximum applicant's age in years
          required: false
          schema:
            type: string
        - name: area
          in: query
          description: |
            Region. Possible values are listed in the [region directory](#tag/Public-directories/operation/get-areas).

            Multiple values can be specified. Resumes of applicants from specified regions or those who are ready to relocate are selected by default. Specify the `relocation` field to change this behavior
          required: false
          schema:
            type: string
        - name: citizenship
          in: query
          description: |
            Applicant citizenship country. Possible values are listed in the [directory of countries](#tag/Public-directories/operation/get-countries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: currency
          in: query
          description: |
            Currency code. Possible values are listed in the `currency.code` field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries)
          required: false
          schema:
            type: string
        - name: driver_license_types
          in: query
          description: |
            Driver license types. Possible values are listed in the `driver_license_types` field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: educational_institution
          in: query
          description: |
            Applicant's educational institutions. Suggestions on university names are used as parameters: [/suggests/educational_institutions](#tag/Suggestions/operation/get-educational-institutions-suggests). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: education_level
          in: query
          description: |
            Education level. Possible values are listed in the `education_level` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). If this parameter is not specified, the search is performed without any education level restrictions

            Replaced by the `education_levels` parameter. Currently maintained for backward compatibility
          required: false
          schema:
            type: string
        - name: experience
          in: query
          description: |
            Work experience. Possible values are listed in the `experience` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: gender
          in: query
          description: |
            Gender. Possible values are listed in the `gender` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries).

            Note that the search results will include resumes with unspecified gender by default. To exclude such resumes from search results, use the `label=only_with_gender` parameter
          required: false
          schema:
            type: string
        - name: language
          in: query
          description: |
            Language proficiency. Multiple values can be specified. The format is `language.level`, where:

            * `language` — value from the [/languages](#tag/Public-directories/operation/get-languages) directory
            * `level` — value from the language_level field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries)

            Example: `ita.c2`
          required: false
          schema:
            type: string
        - name: relocation
          in: query
          description: |
            Willingness to relocate. Possible values are listed in the `resume_search_relocation` field in the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Must be specified together with the `area` parameter
          required: false
          schema:
            type: string
        - name: salary_from
          in: query
          description: |
            Minimum desired salary
          required: false
          schema:
            type: number
        - name: salary_to
          in: query
          description: |
            Maximum desired salary

            Note that the search results will include resumes without a specified salary by default. To see resumes with a specified salary only, use the `label=only_with_salary` parameter
          required: false
          schema:
            type: number
        - name: search_radius_meters
          in: query
          description: Distance to the candidate (in meters)
          required: false
          schema:
            type: number
        - name: search_text
          in: query
          description: Search string
          required: false
          schema:
            type: string
        - name: show_only_new_responses
          in: query
          description: |
            Show only unviewed responses of the “All unsorted” collection (`/response`)
          required: false
          schema:
            type: boolean
        - name: show_only_with_vehicle
          in: query
          description: Show applicants with a personal car
          required: false
          schema:
            type: boolean
        - name: show_only_new
          in: query
          description: |
            Show only responses with unread messages for all collections except “All unsorted” (`/response`)
          required: false
          schema:
            type: boolean
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NegotiationsCollectionNegotiationsResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/NegotiationsCollectionNegotiations'
        '400':
          description: Request parameter error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: The current user is not an employer or has no access to the method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationCommonAndPaymentMethodError'
        '404':
          description: 'The vacancy is not found, or the user has no access to view the vacancy'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  /negotiations/read:
    x-name: /negotiations/read
    post:
      operationId: post-negotiations-topics-read
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: Mark responses as read
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                topic_id:
                  description: Topic IDs. The responses passed in the parameter must belong to one vacancy
                  type: string
                  maximum: 50
              required:
                - topic_id
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '400':
          description: Request parameter error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The topic is not found or unavailable for the current user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  '/employers/{employer_id}/managers/{manager_id}/negotiations_statistics':
    x-name: '/employers/{employer_id}/managers/{manager_id}/negotiations_statistics'
    get:
      operationId: get-negotiations-statistics-manager
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: Negotiation statistics for the manager
      description: |
        Returns response handling statistics for the manager's vacancies responses/invitations over a period (30 days). Manager statistics are available to the manager themselves, as well as to managers with the `main_contact_person` [type](#tag/Employer-managers/operation/get-employer-manager-types).

        Additionally, the manager's [politeness index](https://hh.ru/article/23734) is calculated
      parameters:
        - name: employer_id
          in: path
          description: Employer ID
          required: true
          schema:
            type: string
          example: '1455'
        - name: manager_id
          in: path
          description: Manager ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NegotiationsNegotiationsStatisticsManagerResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/NegotiationsNegotiationsStatisticsManager'
        '403':
          description: The current user is not a manager or an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: 'The employer or manager is not found, or the user has no access to view the information'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/negotiations/{nid}/test/solution':
    x-name: '/negotiations/{nid}/test/solution'
    get:
      operationId: get-negotiation-test-results
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: Get test results attached to the vacancy
      description: The request returns information about the completed tests of the applicant who responded
      parameters:
        - name: nid
          in: path
          description: Negotiation ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NegotiationsNegotiationTestResultsResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/NegotiationsNegotiationTestResults'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: 'The specified negotiation is not found, or the user has no access to view it'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/negotiations/{collection_name}/{nid}':
    x-name: '/negotiations/{collection_name}/{nid}'
    put:
      operationId: change-negotiation-action
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: Actions with collection response/invitation
      description: |
        Change employer's state (`employer_state`) or applicant's state (`state`) for the negotiation.

        #### Changing the employer's state for the negotiation

        > Available actions for each negotiation are listed in the `employer_states` array [list of responses/invitations](#tag/Employer-responsesinvitations/operation/get-negotiations).

        To change the response state, make a request from the `actions[].url` parameter of the [response/invitation list](#tag/Employer-responsesinvitations/operation/get-collection-negotiations-list) for the selected response action.
        The request must include the arguments from the `actions[].arguments` array in `application/x-www-form-urlencoded' format.

        Action examples:

        * Postpone the response
        * Invite the applicant for an interview in response to an application
        * Reject the applicant

        #### Changing the applicant's state for the negotiation

        Changing the applicant's negotiation status affects the [response statistics](#tag/Employer-responsesinvitations/operation/get-negotiations-statistics-employer).

        The condition for changing the applicant's negotiation status is sending a message to the applicant in any of the following ways:

        - Perform an action on a response/invitation using the `/negotiations/{collection_name}/{nid}` method with an accompanying message.
        - [Send a message](#tag/Employer-responsesinvitations/operation/send-negotiation-message) in the response. The status will change if the employer state change method was used without an accompanying message beforehand.

        In both cases, the applicant's status will change to either invitation (`invitation`) or rejection (`discard`)
      parameters:
        - name: collection_name
          in: path
          description: |
            Collection name. Possible values are specified in the `collections[].id` field [list of collections](#tag/Employer-responsesinvitations/operation/get-negotiations)
          required: true
          schema:
            type: string
        - name: nid
          in: path
          description: Negotiation ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '400':
          description: Request parameter error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadRequestBadArgumentBadRequestAndBadArgumentErrors'
        '403':
          description: The negotiation action cannot be performed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsVacancyApplyForbiddenErrors'
        '404':
          description: 'The negotiation is not found, or the user has no access to view the information'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsNegotiationNegotiationsNotFoundErrors'
  /negotiations:
    x-name: /negotiations
    get:
      operationId: get-negotiations
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: Negotiation list
      description: |
        Returns ф list of negotiation (responses/invitations) collections for the employer's [vacancy](#tag/Vacancy-management/operation/get-active-vacancy-list).

        By default, negotiations are sorted by last update — from newest to oldest.

        To obtain the list of active negotiations, specify the `?status=active` parameter in the request
      parameters:
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: number
            default: 0
        - name: per_page
          in: query
          description: Number of items per page
          required: false
          schema:
            type: number
            default: 20
        - name: order_by
          in: query
          description: 'Sort type. Possible values are specified in the `negotiations_order` field in [directories of fields](#tag/Public-directories/operation/get-dictionaries)'
          required: false
          schema:
            type: string
        - name: order
          in: query
          description: 'Sort order. Possible values are: `asc`, `desc`. Default is `desc`'
          required: false
          schema:
            type: string
        - name: vacancy_id
          in: query
          description: Filter by a vacancy ID. Required for the employer
          required: false
          schema:
            type: string
        - name: status
          in: query
          description: |
            The request returns negotiations only in the specified status.

            Possible values are specified in the `applicant_negotiation_status` field in [directories of fields](#tag/Public-directories/operation/get-dictionaries)
          required: false
          schema:
            type: string
        - name: has_updates
          in: query
          description: |
            If `true` is provided, the request returns only responses with unread messages. Default is `false`
          required: false
          schema:
            type: boolean
        - name: with_job_search_status
          in: query
          description: |
            If `true` is provided, the request returns applicant's job search status
          required: false
          schema:
            type: boolean
        - name: with_generated_collections
          in: query
          description: |
            If `true` is provided, the request returns information about generated [responses/invitations collection](#term-collection) for the vacancy.

            To retrieve data for multiple collections, request them sequentially. Default is `false`
          required: false
          schema:
            type: boolean
            default: false
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NegotiationsListResponse'
              examples:
                Пример ответа (работодатель):
                  $ref: '#/components/examples/NegotiationsEmployerListResponse'
        '400':
          description: Request parameter error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadRequestBadArgumentBadRequestAndBadArgumentErrors'
        '403':
          description: Bad authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: 'The vacancy is not found, or the user has no access to view the vacancy'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/negotiations_statistics':
    x-name: '/employers/{employer_id}/negotiations_statistics'
    get:
      operationId: get-negotiations-statistics-employer
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: Negotiation statistics for the company
      description: |
        Returns response handling statistics for the company's vacancies over a period (30 days).

        Additionally, the company's [politeness index](https://hh.ru/article/23734) is calculated
      parameters:
        - name: employer_id
          in: path
          description: Employer ID
          required: true
          schema:
            type: string
          example: '1455'
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NegotiationsNegotiationsStatisticsEmployerResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/NegotiationsNegotiationsStatisticsEmployer'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: 'The employer is not found, or the user has no access to view the information'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  /negotiations/phone_interview:
    x-name: /negotiations/phone_interview
    post:
      operationId: invite-applicant-to-vacancy
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: Invite applicant for a vacancy
      description: |
        Forms an invitation to a vacancy for an applicant initiated by the employer.

        > Instead of `phone_interview`, you need to form a request from the `negotiations_actions[].url` parameter of the [list of suitable vacancies](#tag/Vacancy-management/operation/get-active-vacancy-list), providing arguments from the `negotiations_actions[].arguments` array.

        Request example:

        ```
        POST /negotiations/phone_interview?resume_id=123456&vacancy_id=654321&message=new_msg
        ```
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                resume_id:
                  description: Resume ID
                  type: string
                  maximum: 50
                vacancy_id:
                  description: Vacancy ID
                  type: string
                message:
                  description: 'Message to be send to an applicant email. Use [templates](#tag/Employer-responsesinvitations/operation/get-mail-templates) to obtain texts'
                  type: string
                send_sms:
                  description: Set `true` to notify the applicant about the invitation via SMS. Note that the SMS uses a standard text that cannot be changed
                  type: boolean
                  default: false
              required:
                - resume_id
                - vacancy_id
      responses:
        '201':
          description: Result of the invitation
          content:
            text/html:
              schema:
                type: string
          headers:
            Location:
              schema:
                type: string
                description: 'Path to the created negotiation. Example: `/negotiations/123`, where `123` is the `nid` of the created negotiation'
        '400':
          description: Request parameter error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadRequestBadArgumentBadRequestAndBadArgumentErrors'
        '403':
          description: Unable to invite to a vacancy
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsVacancyApplyForbiddenErrors'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  '/message_templates/{template}':
    x-name: '/message_templates/{template}'
    get:
      operationId: get-negotiation-message-templates
      tags:
        - Employer responses/invitations
      summary: Template list for the negotiation
      description: |
        This method requires [paid access for the employer](#operation/get-payable-api-method-access).

        Returns a list of response templates for a negotiation or resume. Can be used in invitations sent to applicants or in [negotiation actions](#tag/Employer-responsesinvitations/operation/put-negotiations-collection-to-next-state).

        > The number of available templates will depend on the specific negotiation or vacancy and their statuses.

        It is recommended to use the URL from the `templates.url` field in the [negotiations list](#tag/Employer-responsesinvitations/operation/get-collection-negotiations-list) and suitable vacancies. Examples:

        ```
        GET /message_templates/{template}?topic_id={topic_id}
        GET /message_templates/{template}?vacancy_id={vacancy_id}&resume_id={resume_id}
        ```
      parameters:
        - name: template
          in: path
          description: |
            Template name. Possible options:

            * `invite` — Text for inviting an applicant to a vacancy
            * `invite_after_response` — Text for [invitation after the applicant's response](#tag/Employer-responsesinvitations/operation/put-negotiations-collection-to-next-state)
            * `discard_after_response` — Text for [rejection after the response](#tag/Employer-responsesinvitations/operation/put-negotiations-collection-to-next-state)
            * `discard_after_interview` — Text for [rejection after inviting an applicant for an interview](#tag/Employer-responsesinvitations/operation/put-negotiations-collection-to-next-state)

            The list of templates may be expanded
          required: true
          schema:
            type: string
        - name: topic_id
          in: query
          description: Negotiation ID. Cannot be specified together with other parameters
          schema:
            type: string
        - name: vacancy_id
          in: query
          description: Vacancy ID for the invitation. Can only be specified together with the `resume_id` parameter
          schema:
            type: string
        - name: resume_id
          in: query
          description: Resume ID for vacancy invitation. Can only be specified together with the `vacancy_id` parameter
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NegotiationsNegotiationMessageTemplates'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/NegotiationsNegotiationMessageTemplates'
        '400':
          description: |
            Conflicting request parameters were provided (`topic_id` together with `resume_id` or `vacancy_id`), or no parameters were provided at all. Explanation of possible errors:

            * `topic_id` — 1) The specified negotiation does not exist, or the current user does not have access to it. 2) The negotiation vacancy has been archived. 3) The negotiation resume has been hidden/deleted
            * `resume_id` — The specified resume does not exist, or the current user does not have access to it
            * `vacancy_id` — 1) The specified vacancy does not exist. 2) The vacancy is hidden/archived. 3) The current user does not have access to the vacancy
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: Authorization error or there is no access to the paid method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The requested template does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/negotiations/{id}':
    x-name: '/negotiations/{id}'
    get:
      operationId: get-negotiation-item
      tags:
        - Negotiations (responses/invitations) for applicants
        - Employer responses/invitations
      summary: Viewing the response/invitation
      description: |
        Returns information about the negotiations by its ID.

        Employers can obtain the request URL from the [negotiations list](#tag/Employer-responsesinvitations/operation/get-collection-negotiations-list) (`items[].url` field).

        > !! Note that the methods for handling response/invitation messages on behalf of an [employer manager](#tag/Employer-responsesinvitations/operation/get-negotiation-messages) are deprecated, and new chat features will not be supported in these methods. As a result, conversations may not display correctly
      parameters:
        - name: id
          in: path
          description: Negotiation ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Response/invitation is received
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NegotiationsNegotiationGetResponse'
              examples:
                Пример ответа (работодатель):
                  $ref: '#/components/examples/NegotiationsEmployerNegotiationItem'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: 'The specified negotiation is not found, or the current user has no access to view it, or the applicant responded without answering the test questions'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsNegotiationNegotiationsNotFoundErrors'
    put:
      operationId: put-negotiations-collection-to-next-state
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: Actions with responses/invitations
      description: |
        Employers can change the response state for an applicant to improve feedback quality and simplify response statistics management.

        The method changes the state of the response and sends a corresponding message to the applicant.

        If an employer, using this method, sends a message to the applicant about the response/invitation state change (`message` field in the request body), this will also change the applicant state of the response/invitation.

        Requirements for request body arguments depend on particular response/invitation. To check whether an argument is required, refer to the `actions.arguments` field, which is returned for each response in the [response/invitation list](#tag/Employer-responsesinvitations/operation/get-collection-negotiations-list)
      parameters:
        - name: id
          in: path
          description: 'ID of the [topic collection](#tag/Employer-responsesinvitations/operation/get-negotiations) to which the response state will be moved'
          required: true
          schema:
            type: string
            example: discard
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                topic_id:
                  description: 'Topic IDs. No more than 50 IDs can be specified, listed with ampersands, for example, `topic_id=1&topic_id=2&topic_id=3...&topic_id=50`'
                  type: string
                address_id:
                  description: |
                    Describes [Address ID](#tag/Employer-addresses/operation/get-employer-addresses) to be specified in invitation
                  type: string
                message:
                  description: 'Message to be send to an applicant email. Use [templates](#tag/Employer-responsesinvitations/operation/get-mail-templates) to obtain texts'
                  type: string
                send_sms:
                  description: Set `true` to notify the applicant about the invitation via SMS. Note that the SMS uses a standard text that cannot be changed
                  type: boolean
                  default: false
              required:
                - topic_id
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '400':
          description: Request parameter error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: Response/invitation access error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsNegotiationForbiddenErrors'
        '404':
          description: The topic is not found or unavailable for the current user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/salary_statistics/paid/salary_evaluation/{area_id}':
    x-name: '/salary_statistics/paid/salary_evaluation/{area_id}'
    get:
      operationId: get-salary-evaluation
      tags:
        - Salary Database
        - Salary statistics database
      summary: Salary estimate without forecast
      description: |
        Returns salary statistics according to specified query parameters. The user must have access to paid reports of the [Salary Database](https://salary.hh.ru/promo).

        How it works:

        * The main data source for statistics is salary information provided by participants of the [Salary Database project](https://salary.hh.ru/promo).
        * All participant submissions are reviewed by moderators. If a reported salary differs significantly from the market average, it is not included in the salary database.
        * If there is insufficient data in the bank to create statistics for the query, the service uses the following procedures:

            * Combines data from multiple industries if there is insufficient data for the requested industry.
            * Combines data from multiple closely related specializations if there is insufficient data for the requested specialization.
            * Combines data from multiple cities within a region if there is insufficient data for the requested city.
            * Uses data for the requested specializations from another region if there is insufficient data for the requested region. In this case, an adjustment coefficient is calculated to reflect the salary differences between regions.

            If this procedures still do not provide a sufficient sample, the service may use salary information from vacancies and resumes. Such information is not pre-moderated and is considered less reliable, so it is used only as a last resort. To enable this feature, specify the `extend_sources=true` parameter in the request
      parameters:
        - name: area_id
          in: path
          description: |
            Returns [Region code directory](#tag/Salary-Database-directories/operation/get-salary-salary-areas) used to create the sample for report generation
          required: true
          schema:
            type: string
        - name: exclude_area
          in: query
          description: |
            Returns [Region code directory](#tag/Salary-Database-directories/operation/get-salary-salary-areas) to be excluded from the sample for report generation. The parameter is used to obtain an estimate for the regional market excluding specific cities or regions
          required: false
          schema:
            type: string
        - name: employee_level
          in: query
          description: |
            Returns [Competency level directory](#tag/Salary-Database-directories/operation/get-salary-employee-levels) to be included in the sample for report generation
          required: false
          schema:
            type: string
        - name: industry
          in: query
          description: |
            Returns [Industry code directory](#tag/Salary-Database-directories/operation/get-salary-industries) to be included in the sample for report generation
          required: false
          schema:
            type: string
        - name: speciality
          in: query
          description: |
            Returns [Professional area and specialization codes directory](#tag/Salary-Database-directories/operation/get-salary-professional-areas) to be included in the sample for report generation
          required: false
          schema:
            type: string
        - name: extend_sources
          in: query
          description: |
            Whether to use data from resumes and vacancies if no data is found in the Salary Database for the specified parameters. Default is `false`
          required: false
          schema:
            type: boolean
        - name: position_name
          in: query
          description: |
            Position name. If the `speciality` or `employee_level` are not provided, the service automatically determines the possible specializations and the specialist level of employee based on the specified position name and industry, and generate a report accordingly
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalaryStatisticsEvaluationResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/SalaryStatisticsEvaluation'
        '400':
          description: Error in the request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationBadParameters'
        '403':
          description: The user is not authorized or has no access to paid reports of the Salary Database
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: No data available for the specified parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  /suggests/positions:
    x-name: /suggests/positions
    get:
      operationId: get-positions-suggestions
      tags:
        - Suggestions
      summary: Resume position suggestions
      parameters:
        - name: text
          in: query
          description: Text for searching by position. The search text must be at least two characters long and no more than 3 000 characters
          required: true
          schema:
            type: string
          example: driver
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsPositions'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/SuggestsSuggestsPositions'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsErrors'
  /suggests/area_leaves:
    x-name: /suggests/area_leaves
    get:
      operationId: get-area-leaves-suggests
      tags:
        - Suggestions
      summary: Suggestions for regions that are leaf nodes in the region tree
      description: 'In addition to the region suggestion, the loading of the [full region tree](#tag/Public-directories/operation/get-areas) and [a part of the tree starting from a specific element](#tag/Public-directories/operation/get-areas-from-specified) is available'
      parameters:
        - name: text
          in: query
          description: Text for searching by region. The search text must be at least two characters long and no more than 3 000 characters
          required: true
          schema:
            type: string
        - name: area_id
          in: query
          description: 'Region ID from the [region dictionary](#tag/Public-directories/operation/get-areas). Narrows down suggestions to the subtree of the provided region ID'
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsAreas'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/SuggestsSuggestsAreas'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsErrors'
  /suggests/fields_of_study:
    x-name: /suggests/fields_of_study
    get:
      operationId: get-fields-of-study-suggestions
      tags:
        - Suggestions
      summary: Specialization suggestions
      parameters:
        - name: text
          in: query
          description: Text for searching by specialization. The search text must be at least two characters long and no more than 3 000 characters
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsFieldsOfStudy'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/SuggestsFieldsOfStudy'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsErrors'
  /suggests/vacancy_search_keyword:
    x-name: /suggests/vacancy_search_keyword
    get:
      operationId: get-vacancy-search-keywords
      tags:
        - Suggestions by key words
      summary: Suggestions for vacancy search key words
      description: 'This suggestion is intended for use in the `text` field for [searching for vacancies](#tag/Vacancy-search/operation/get-vacancies). Contains position names, company names, and other phrases commonly used in vacancy searches'
      parameters:
        - name: text
          in: query
          description: Text for keyword search. The search text must be at least two characters long and no more than 3 000 characters
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsSearchKeyword'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/SuggestsVacancySearchKeyword'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsErrors'
  /suggests/professional_roles:
    x-name: /suggests/professional_roles
    get:
      operationId: get-professional-roles-suggests
      tags:
        - Suggestions
      summary: Professional role suggestions
      parameters:
        - name: text
          in: query
          description: Text for searching by professional role. The search text must be at least two characters long and no more than 3 000 characters
          required: true
          schema:
            type: string
          example: driver
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsProfessionalRoles'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsErrors'
  /suggests/resume_search_keyword:
    x-name: /suggests/resume_search_keyword
    get:
      operationId: get-resume-search-keywords-suggests
      tags:
        - Suggestions by key words
      summary: Suggestions for resume search key words
      description: 'This suggestion is intended for use in the `text` field for [searching for resume](#tag/Resume-search/operation/search-for-resumes). Contains position names, company names, and other phrases commonly used in resume searches'
      parameters:
        - name: text
          in: query
          description: Text for keyword search. The search text must be at least two characters long and no more than 3 000 characters
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsSearchKeyword'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/SuggestsResumeSearchKeyword'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsErrors'
  /suggests/educational_institutions:
    x-name: /suggests/educational_institutions
    get:
      operationId: get-educational-institutions-suggests
      tags:
        - Suggestions
      summary: Educational institution name suggestions
      description: 'To get a list of faculties, refer to the [corresponding method](#tag/Directories/operation/get-faculties)'
      parameters:
        - name: text
          in: query
          description: Text for searching by educational institution. The search text must be at least two characters long and no more than 3 000 characters
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsEducationalInstitutions'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/SuggestsEducationalInstitutions'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsErrors'
  /suggests/companies:
    x-name: /suggests/companies
    get:
      operationId: get-registered-companies-suggests
      tags:
        - Suggestions by company
      summary: Company suggestions
      description: 'Data from this suggestion can be used to select a company for work experience in the process of working with the resume. To search companies (employers) that can publish vacancies, use the [search by companies](#tag/Employer/operation/search-employer)'
      parameters:
        - name: text
          in: query
          description: Text for searching by company. The search text must be at least two characters long and no more than 3 000 characters
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsCompanies'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/SuggestsCompanies'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsErrors'
  /suggests/vacancy_positions:
    x-name: /suggests/vacancy_positions
    get:
      operationId: get-vacancy-positions-suggests
      tags:
        - Suggestions
      summary: Vacancy position suggestions
      parameters:
        - name: text
          in: query
          description: Text for searching by vacancy position. The search text must be at least two characters long and no more than 3 000 characters
          required: true
          schema:
            type: string
          example: driver
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsVacancyPositions'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsErrors'
  /suggests/skill_set:
    x-name: /suggests/skill_set
    get:
      operationId: get-skill-set-suggests
      tags:
        - Suggestions
      summary: Key skills suggestions
      parameters:
        - name: text
          in: query
          description: Text for searching by key skill. The search text must be at least two characters long and no more than 3 000 characters
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsSkillSet'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/SuggestsSkillSet'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsErrors'
  /suggests/areas:
    x-name: /suggests/areas
    get:
      operationId: get-areas-suggests
      tags:
        - Suggestions
      summary: Suggestions for all regions
      description: 'In addition to the region suggestion, the loading of the [full region tree](#tag/Public-directories/operation/get-areas) and [a part of the tree starting from a specific element](#tag/Public-directories/operation/get-areas-from-specified) is available'
      parameters:
        - name: text
          in: query
          description: Text for searching by region. The search text must be at least two characters long and no more than 3 000 characters
          required: true
          schema:
            type: string
        - name: area_id
          in: query
          description: 'Region ID from the [region dictionary](#tag/Public-directories/operation/get-areas). Narrows down suggestions to the subtree of the provided region ID'
          required: false
          schema:
            type: string
        - name: include_parent
          in: query
          description: 'Whether to include in the response the region provided in the `area_id` parameter, if it matches the search text'
          required: false
          schema:
            type: boolean
            default: false
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsAreas'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/SuggestsSuggestsAreas'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestsErrors'
  '/employers/{employer_id}/services/payable_api_actions/active':
    x-name: '/employers/{employer_id}/services/payable_api_actions/active'
    get:
      operationId: get-payable-api-actions
      tags:
        - Employer services
      summary: Information about active API services for payable methods
      description: |
        Every activated service is displayed as a separate object in the `items` array, even if multiple services of the same type are activated.
        If the employer has no active services, an empty `items` array will be returned in the response
      parameters:
        - name: employer_id
          in: path
          description: Employer ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployerServicesEmployerServices'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/ServicesEmployerServices'
        '403':
          description: Current user is not the employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: 'The employer does not exist, or the current user does not have permission to view the information'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/managers/{manager_id}/method_access':
    x-name: '/employers/{employer_id}/managers/{manager_id}/method_access'
    get:
      operationId: get-payable-api-method-access
      tags:
        - Employer services
      summary: Checking access to the paid methods
      description: |
        The method returns information about access to groups of paid methods. Existing groups:

        1. Access to resume methods:
          * [Resume viewing](#tag/Resume-view/operation/get-resume)
          * [Response management](#tag/Employer-responsesinvitations)
          * [Conversations with applicants](#tag/Employer-responsesinvitations/operation/get-negotiation-messages)
        2. Access to vacancy search methods:
          * [Resume search](#tag/Resume-search/operation/search-for-resumes)
          * [Saved resume searches](#tag/Saved-resume-searches/operation/get-saved-resume-searches)
        3. Access to [viewing resumes](#tag/Resume-view/operation/get-resume) that have a response or invitation.
        4. Access to [viewing resumes](#tag/Resume-view/operation/get-resume) found through [database search](#tag/Resume-search/operation/search-for-resumes).

        **Attention!** Access to resume contact information has changed. Learn more about the [new model for working with the resume database](#tag/Resume-view/Resume-view-with-contacts)
      parameters:
        - name: employer_id
          in: path
          description: |
            Employer ID that can be obtained from the [information about the current user](#tag/Employer-info/operation/get-current-user-info)
          required: true
          schema:
            type: string
        - name: manager_id
          in: path
          description: |
            Manager ID that can be obtained from the [information about the current user](#tag/Employer-info/operation/get-current-user-info)
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployerServicesMethodAccess'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/ServicesMethodAccess'
        '403':
          description: Current user is not the employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The specified employer or manager not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/services/available_publications':
    x-name: '/employers/{employer_id}/services/available_publications'
    get:
      operationId: get-vacancy-available-services-list
      tags:
        - Employer services
      summary: Get a list of available vacancy publication options
      description: |
        This method is used to obtain a list of available publication options and to send these values to the vacancy publication/draft creation API
      parameters:
        - name: employer_id
          in: path
          description: Employer identifier
          required: true
          schema:
            type: string
        - name: area_id
          in: query
          description: Region for which available publication options need to be retrieved
          required: false
          schema:
            type: string
        - name: professional_role_id
          in: query
          description: Professional role for which available publication options need to be retrieved
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServicesVacancyAvailablePublication'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/ServicesVacancyAvailablePublication'
        '400':
          description: Errors in parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsVacancyBadAuthAndBadAppVacancyPublicationErrors'
        '404':
          description: Employer not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/tests':
    x-name: '/employers/{employer_id}/tests'
    get:
      operationId: get-tests-dictionary
      tags:
        - Employer directories
        - Employer-level info about the employer
      summary: Employer's test directory
      description: Returns the list of employer's saved tests
      parameters:
        - name: employer_id
          in: path
          description: Employer ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployerDictionariesTestsResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/EmployerDictionariesTests'
        '403':
          description: Authorization error. The user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The employer is not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/vacancies/{vacancy_id}/prolongate':
    x-name: '/vacancies/{vacancy_id}/prolongate'
    get:
      operationId: get-prolongation-vacancy-info
      tags:
        - Vacancy management
        - Employer-level vacancy management
      summary: Information about vacancy prolongation
      description: |
        Prolongation terms:

            * The cost of vacancy prolongation is the same as the cost of a new vacancy publication
      parameters:
        - name: vacancy_id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesVacancyProlongate'
              examples:
                'Пример ответа, когда продление возможно':
                  $ref: '#/components/examples/VacanciesVacancyProlongateAvailable'
                'Пример ответа, когда продление невозможно':
                  $ref: '#/components/examples/VacanciesVacancyProlongateUnavailable'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: 'The current user does not have access to information about the vacancy, or the vacancy does not exist'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
    post:
      operationId: vacancy-prolongation
      tags:
        - Vacancy management
        - Employer-level vacancy management
      summary: Vacancy prolongation
      description: |
        Prolongs the vacancy period.

        Prolongation terms:

        * The cost of vacancy prolongation is the same as the cost of a new vacancy publication
      parameters:
        - name: vacancy_id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '403':
          description: The current user is not an employer or prolongation is impossible
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsVacancyProlongateForbidden'
        '404':
          description: 'The current user does not have access to information about the vacancy, or the vacancy does not exist'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/vacancies/hidden':
    x-name: '/employers/{employer_id}/vacancies/hidden'
    get:
      operationId: get-hidden-vacancies
      tags:
        - Vacancy management
        - Employer-level vacancy management
      summary: Deleted vacancy list
      parameters:
        - name: employer_id
          in: path
          description: Employer's ID
          required: true
          schema:
            type: string
        - name: manager_id
          in: query
          description: |
            Manager's ID. Specify it if you need to get deleted vacancies of another manager.
            If multiple `manager_id` parameters are provided, only the last one is used.
            By default, the current user's vacancies are returned
          required: false
          schema:
            type: string
        - name: order_by
          in: query
          description: |
            Vacancy list sorting. Directory with possible values: `employer_archived_vacancies_order` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries)
          required: false
          schema:
            type: string
        - name: per_page
          in: query
          description: |
            Number of items per page. [Standard pagination parameters](#section/General-information/Pagination) are supported. The default and maximum value for per_page is 1000
          required: false
          schema:
            type: integer
        - name: page
          in: query
          description: |
            Page number in the results. [Standard pagination parameters](#section/General-information/Pagination) are supported. By default, page numbering starts from 0
          required: false
          schema:
            type: integer
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesDeletedVacancyListResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacanciesDeletedVacancyList'
        '400':
          description: Error in the request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: 'The current user is not an employer, or invalid employer ID is specified'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The current user has no access to obtain deleted vacancies
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/vacancies/{id}/preferred_negotiations_order':
    x-name: '/vacancies/{id}/preferred_negotiations_order'
    get:
      operationId: get-pref-negotiations-order
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: Viewing preferred response sorting
      parameters:
        - name: id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesPreferredNegotiationsOrder'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacanciesPreferredNegotiationsOrder'
        '404':
          description: The vacancy is not found or the user cannot view its responses/invitations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
    put:
      operationId: put-pref-negotiations-order
      tags:
        - Employer responses/invitations
        - Employer-level responses/invitations
      summary: Changing preferred response sorting
      parameters:
        - name: id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/VacanciesPreferredNegotiationsOrderRequest'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '400':
          description: 'Invalid sort type ID provided, or this sort type is unavailable'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '404':
          description: The vacancy is not found or the user cannot view its responses/invitations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/managers/{manager_id}/vacancies/available_types':
    x-name: '/employers/{employer_id}/managers/{manager_id}/vacancies/available_types'
    get:
      operationId: get-available-vacancy-types
      tags:
        - Manager info
      summary: Vacancy publication options for the current manager
      deprecated: true
      description: 'Use the [new method](#tag/Employer-services/operation/get-vacancy-available-services-list). The method helps to determine whether a manager can publish vacancies and which vacancy types are available to them. Returns all possible puvlication types'
      parameters:
        - name: employer_id
          in: path
          description: 'Employer ID that can be obtained from the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
        - name: manager_id
          in: path
          description: 'Manager ID that can be obtained from the [information on the current user](#tag/Employer-info/operation/get-current-user-info)'
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesAvailableVacancyTypeResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacanciesAvailableVacancyType'
        '403':
          description: The current user is not an employer or has no access to the data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: Manager or company does not exist or is not available for the current user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  /vacancies:
    x-name: /vacancies
    post:
      operationId: publish-vacancy
      tags:
        - Vacancy management
        - Employer-level vacancy management
      summary: Publishing vacancies
      description: |
        Creates a new vacancy with fields specified in the request body.

        In accordance with [Federal Law of the Russian Federation No. 1032-1 dated April 19, 1991, as revised on July 2, 2013](https://hh.ru/article/13967) it is prohibited to post information that restricts rights or establishes advantages to certain candidates based on gender, age, marital status, and other circumstances unrelated to the business qualities of employees.

        Notes:

        * Upon successful publication, the appropriate services will be charged.
        * All vacancies undergo manual moderation.
        * Within a few minutes after publication, the vacancy becomes available in search.

        Useful links:

        * [Vacancy publication rules](https://hh.ru/article/341)
        * [How to write a good vacancy description](https://hh.ru/article/24517)
      parameters:
        - name: ignore_duplicates
          in: query
          description: Force adding duplicate
          required: false
          schema:
            type: boolean
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VacancyCreate'
            examples:
              Пример запроса:
                $ref: '#/components/examples/VacancyCreate'
      responses:
        '201':
          description: Successful response
          headers:
            Location:
              schema:
                type: string
                description: 'Link to the published vacancy, i.e.: `/vacancies/78789890`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/_IncludesId'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/Id'
        '400':
          description: Error in request parameters
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ErrorsVacancyAddEditCombinedBadJsonDataErrors'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsVacancyAddEditBadAuthForbiddenErrors'
    get:
      operationId: get-vacancies
      tags:
        - Vacancy search
        - Vacancy search for applicants
      summary: Search for vacancies
      description: |
        Returns a list of vacancies that are posted in the service. The vacancy list is filtered according to the provided request parameters.

        Features:

        * Unknown parameters and parameters with incorrect names are ignored.
        * If no authorization token is provided, a captcha will be prompted to complete after the first request.
        * The vacancy list depends on the user authorization type.
        * The vacancy list also depends on a [website selected](#section/General-information/Host-selection) (the `host` parameter). However, selection of a regional site, such as hh.kz, does not limit the list to vacancies from that region. To limit the list by region, use the `area` parameter.    
        * For pagination parameters (`page`, `per_page`), the following limitation applies: the number of results returned cannot exceed `2000`. For instance, a request with `per_page=10&page=199` is valid (returning vacancies from `1991` to `2000`), but a request with `per_page=10&page=200` returns an error (as it would request vacancies from `2001` to `2010`)
      parameters:
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: number
            default: 0
        - name: per_page
          in: query
          description: Number of items
          required: false
          schema:
            type: number
            default: 10
            maximum: 100
        - name: text
          in: query
          description: |
            Text field. The provided value is searched in the vacancy fields specified in the `search_field` parameter.
            As with the main website, a [query language is supported](https://hh.ru/article/1175). [Suggestions](#tag/Suggestions-by-key-words/operation/get-vacancy-search-keywords) are available specifically for this field
          required: false
          schema:
            type: string
        - name: search_field
          in: query
          description: |
            Area of search. Directory with possible values: `vacancy_search_fields` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). By default, all fields are used. Multiple values can be specified
          required: false
          schema:
            type: string
        - name: experience
          in: query
          description: |
            Work experience. Directory with possible values: `experience` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: employment
          in: query
          description: |
            Employment type. Directory with possible values: `employment` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          deprecated: true
          schema:
            type: string
        - name: schedule
          in: query
          description: |
            Work schedule. Directory with possible values: `schedule` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          deprecated: true
          schema:
            type: string
        - name: area
          in: query
          description: |
            Region. Directory with possible values: [/areas](#tag/Public-directories/operation/get-areas). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: metro
          in: query
          description: |
            Metro line or station. Directory with possible values: [/metro](#tag/Public-directories/operation/get-metro-stations). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: professional_role
          in: query
          description: |
            Professional role. Directory with possible values: [professional_roles](#tag/Public-directories/operation/get-professional-roles-dictionary). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: industry
          in: query
          description: |
            Industry of the company that published the vacancy. Directory with possible values: [/industries](#tag/Public-directories/operation/get-industries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: employer_id
          in: query
          description: |
            Describes [Company](#tag/Employer) identifier. Multiple values can be specified
          required: false
          schema:
            type: string
        - name: currency
          in: query
          description: |
            Currency code. Directory with possible values: `currency` (code key) in [/dictionaries](#tag/Public-directories/operation/get-dictionaries)
          required: false
          schema:
            type: string
        - name: salary
          in: query
          description: |
            Salary amount. If this field is specified but currency is not, currency defaults to RUR.
            When a value is provided, vacancies with a salary range close to the specified amount will be found. Values are converted using current Central Bank of Russia exchange rates. For example, for `salary=100&currency=EUR`, vacancies with salary ranges in rubles that are close to 100 EUR after conversion will be found.
            By default, vacancies without a specified salary range are also included. To filter out such vacancies, use `only_with_salary=true`
          required: false
          schema:
            type: number
        - name: salary_frequency
          in: query
          description: |
            Payment frequency. You need to pass the `id` from the `salary_range_frequency` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).  
            Multiple values can be specified
          required: false
          schema:
            type: string
        - name: salary_mode
          in: query
          description: |
            Salary granularity. You need to pass the `id` from the `salary_range_mode` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).  
            Only one value can be specified
          required: false
          schema:
            type: string
        - name: label
          in: query
          description: |
            Filter by vacancy labels. Directory with possible values: `vacancy_label` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: only_with_salary
          in: query
          description: |
            Show only vacancies with a salary specified. Possible values: `true`or `false`. Default is `false`
          required: false
          deprecated: true
          schema:
            type: boolean
            default: false
        - name: period
          in: query
          description: |
            Number of days within which to search for vacancies. Maximal value is 30
          required: false
          schema:
            type: number
        - name: date_from
          in: query
          description: |
            Date that defines the lower bound of the vacancy publication date range. Cannot be used together with the period parameter.
            The value must be specified in ISO 8601 - `YYYY-MM-DD` format or with second precision `YYYY-MM-DDThh:mm:ss±hhmm`. The specified value will be rounded to the nearest five minutes
          required: false
          schema:
            type: string
        - name: date_to
          in: query
          description: |
            Date that defines the upper bound of the vacancy publication date range. Cannot be used together with the period parameter.
            The value must be specified in ISO 8601 - `YYYY-MM-DD` format or with second precision `YYYY-MM-DDThh:mm:ss±hhmm`. The specified value will be rounded to the nearest five minutes
          required: false
          schema:
            type: string
        - name: top_lat
          in: query
          description: |
            Upper latitude bound.
            The search uses the address specified in the vacancy. The value is accepted in degrees as a decimal fraction.
            All four geo-coordinate parameters must be given together; otherwise, an error will be returned
          required: false
          schema:
            type: number
        - name: bottom_lat
          in: query
          description: |
            Lower latitude bound.
            The search uses the address specified in the vacancy. The value is accepted in degrees as a decimal fraction.
            All four geo-coordinate parameters must be given together; otherwise, an error will be returned
          required: false
          schema:
            type: number
        - name: left_lng
          in: query
          description: |
            Left longitude bound.
            The search uses the address specified in the vacancy. The value is accepted in degrees as a decimal fraction.
            All four geo-coordinate parameters must be given together; otherwise, an error will be returned
          required: false
          schema:
            type: number
        - name: right_lng
          in: query
          description: |
            Right longitude bound.
            The search uses the address specified in the vacancy. The value is accepted in degrees as a decimal fraction.
            All four geo-coordinate parameters must be given together; otherwise, an error will be returned
          required: false
          schema:
            type: number
        - name: order_by
          in: query
          description: |
            Vacancy list sorting. Directory with possible values: `vacancy_search_order` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). 
            If sorting by distance from a geographic point (`distance`) is selected, its coordinates must also be specified: `sort_point_lat`, `sort_point_lng`
          required: false
          schema:
            type: string
        - name: sort_point_lat
          in: query
          description: |
            Latitude value of the point by distance from which vacancies will be sorted. Must be specified only if `order_by` is set to `distance`
          required: false
          schema:
            type: number
        - name: sort_point_lng
          in: query
          description: |
            Longitude value of the point by distance from which vacancies will be sorted. Must be specified only if `order_by` is set to `distance`
          required: false
          schema:
            type: number
        - name: clusters
          in: query
          description: |
            Whether the [clusters for this search](#tag/Vacancy-search/Clusters-of-vacancy-search) are returned. Default is `false`
          required: false
          schema:
            type: boolean
            default: false
        - name: describe_arguments
          in: query
          description: |
            Whether the description of the search parameters used is returned. A successful response contains the `arguments` [field](#tag/Vacancy-search/operation/get-vacancies). Default is `false`
          required: false
          schema:
            type: boolean
            default: false
        - name: no_magic
          in: query
          description: |
            If `true`, automatic vacancy transformation is disabled. Default is `false`.
            When automatic transformation is enabled, an attempt will be made to convert the user's text query into a set of parameters. For example, the query `text=moscow accountant 100500` will be transformed into `text=accountant&only_with_salary=true&area=1&salary=100500`
          required: false
          schema:
            type: boolean
            default: false
        - name: premium
          in: query
          description: |
            If `true`, the search results will include premium vacancies. This type of sorting is used on the website. Default is `false`
          required: false
          schema:
            type: boolean
            default: false
        - name: responses_count_enabled
          in: query
          description: |
            If `true`, the additional counters field with the number of responses for the vacancy is included. Default is `false`
          required: false
          schema:
            type: boolean
            default: false
        - name: part_time
          in: query
          description: |
            Part-time vacancies. Possible values:
            * All items from `working_days` in [/dictionaries](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-dictionaries).
            * All items from `working_time_intervals` in [/dictionaries](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-dictionaries).
            * All items from `working_time_modes` in [/dictionaries](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-dictionaries).
            * The `part` or `project` items from `employment` in [/dictionaries](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-dictionaries).
            * The `accept_temporary` item that shows only vacancies with temporary employment        
            Multiple values can be specified
          required: false
          deprecated: true
          schema:
            type: string
        - name: accept_temporary
          in: query
          description: |
            If `true`, the search is performed only on temporary work vacancies
            Default is `false`
          required: false
          schema:
            type: boolean
            default: false
        - name: employment_form
          in: query
          description: |
            Employment type. Directory with possible values: `employment_form` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: work_schedule_by_days
          in: query
          description: |
            Work schedule by days. Directory with possible values: `work_schedule_by_days` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries)
          required: false
          schema:
            type: string
        - name: working_hours
          in: query
          description: |
            Working hours. Directory with possible values: `working_hours` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries), Multiple values can be specified
          required: false
          schema:
            type: string
        - name: work_format
          in: query
          description: |
            Working format. Directory with possible values: `work_format` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: excluded_text
          in: query
          description: |
            Exclude the words. Vacancies containing the words passed in this parameter will be excluded from the result. The words are separated by a comma
          schema:
            type: string
        - name: education
          in: query
          description: |
            Education. Multiple values can be specified. Possible values:
            * `not_required_or_not_specified` — not required or not specified
            * `special_secondary' — secondary special
            * `higher` — higher education
          schema:
            type: string
        - name: driver_license_types
          in: query
          description: |
            Driver license types. Possible values are listed in the `driver_license_types` field of the [directories of fields](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesVacanciesResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacanciesVacancies'
        '400':
          description: Invalid parameters provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadRequestBadArgumentBadRequestAndBadArgumentErrors'
        '403':
          description: A captcha is required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonCaptchaErrors'
        '404':
          description: Specified vacancy does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/vacancies/{vacancy_id}/upgrades':
    x-name: '/vacancies/{vacancy_id}/upgrades'
    get:
      operationId: get-vacancy-upgrade-list
      tags:
        - Vacancy management
      summary: List of vacancy upgrades
      parameters:
        - name: vacancy_id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesVacancyUpgradeListResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacanciesVacancyUpgradeList'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The vacancy is not found or the user has no access to view the vacancy
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/vacancies/{vacancy_id}/related_vacancies':
    x-name: '/vacancies/{vacancy_id}/related_vacancies'
    get:
      operationId: get-vacancies-related-to-vacancy
      tags:
        - Vacancy search
        - Vacancy search for applicants
      summary: Search for vacancies related to a vacancy
      description: |
        By default, returns vacancies related to the vacancy.

        If the request comes from a vacancy page (the `hhtmSource` parameter is `vacancy` or `vacancy_search_list` or `vacancy_search_filter`):

        * when the user is not logged in — recommendations for anonymous users.

        For pagination parameters (`page`, `per_page`), the following limitation applies: the number of results returned cannot exceed `2000`. For instance, a request with `per_page=10&page=199` is valid (returning vacancies from `1991` to `2000`), but a request with `per_page=10&page=200` returns an error (as it would request vacancies from `2001` to `2010`)
      parameters:
        - name: vacancy_id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: Page number
          required: false
          schema:
            type: number
            default: 0
        - name: per_page
          in: query
          description: Number of items
          required: false
          schema:
            type: number
            default: 10
            maximum: 100
        - name: text
          in: query
          description: |
            Text field. The provided value is searched in the vacancy fields specified in the `search_field` parameter.
            As with the main website, a [query language is supported](https://hh.ru/article/1175). [Suggestions](#tag/Suggestions-by-key-words/operation/get-vacancy-search-keywords) are available specifically for this field
          required: false
          schema:
            type: string
        - name: search_field
          in: query
          description: |
            Area of search. Directory with possible values: `vacancy_search_fields` (`id` key) in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). By default, all fields are used. Multiple values can be specified
          required: false
          schema:
            type: string
        - name: experience
          in: query
          description: |
            Work experience. Directory with possible values: `experience` (`id` key) in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: employment
          in: query
          description: |
            Employment type. Directory with possible values: `employment` (`id` key) in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          deprecated: true
          schema:
            type: string
        - name: schedule
          in: query
          description: |
            Work schedule. Directory with possible values: `schedule` (`id` key) in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          deprecated: true
          schema:
            type: string
        - name: area
          in: query
          description: |
            Region. Directory with possible values: [/areas](#tag/Public-directories/operation/get-areas) (`id` key). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: metro
          in: query
          description: |
            Metro line or station. Directory with possible values: [/metro](#tag/Public-directories/operation/get-metro-stations) (`id` key). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: professional_role
          in: query
          description: |
            Professional role. Directory with possible values: [professional_roles](#tag/Public-directories/operation/get-professional-roles-dictionary) (`id` key). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: industry
          in: query
          description: |
            Industry of the company that published the vacancy. Directory with possible values: [/industries](#tag/Public-directories/operation/get-industries) (`id` key). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: employer_id
          in: query
          description: |
            Describes [Company](#tag/Employer) identifier. Multiple values can be specified
          required: false
          schema:
            type: string
        - name: excluded_employer_id
          in: query
          description: |
            Describes [Company](#tag/Employer) identifier whose vacancies to be excluded from the results. Multiple values can be specified
          required: false
          schema:
            type: string
        - name: currency
          in: query
          description: |
            Currency code. Directory with possible values: `currency` (`code` key) in [/dictionaries](#tag/Public-directories/operation/get-dictionaries)
          required: false
          schema:
            type: string
        - name: salary
          in: query
          description: |
            Salary amount. If this field is specified but currency is not, currency defaults to RUR.
            When a value is provided, vacancies with a salary range close to the specified amount will be found. Values are converted using current Central Bank of Russia exchange rates. For example, for `salary=100&currency=EUR`, vacancies with salary ranges in rubles that are close to 100 EUR after conversion will be found.
            By default, vacancies without a specified salary range are also included. To filter out such vacancies, use `only_with_salary=true`
          required: false
          schema:
            type: number
        - name: label
          in: query
          description: |
            Filter by vacancy labels. Directory with possible values: `vacancy_label` (`id` key) in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: only_with_salary
          in: query
          description: |
            Show only the vacancies with salary specified
          required: false
          deprecated: true
          schema:
            type: boolean
            default: false
        - name: period
          in: query
          description: |
            Number of days within which to search for vacancies
          required: false
          schema:
            type: number
            maximum: 30
        - name: date_from
          in: query
          description: |
            Date that defines the lower bound of the vacancy publication date range. Cannot be used together with the period parameter.
            The value must be specified in ISO 8601 - `YYYY-MM-DD` format or with second precision `YYYY-MM-DDThh:mm:ss±hhmm`. The specified value will be rounded to the nearest five minutes
          required: false
          schema:
            type: string
        - name: date_to
          in: query
          description: |
            Date that defines the upper bound of the vacancy publication date range. Cannot be used together with the period parameter.
            The value must be specified in ISO 8601 - `YYYY-MM-DD` format or with second precision `YYYY-MM-DDThh:mm:ss±hhmm`. The specified value will be rounded to the nearest five minutes
          required: false
          schema:
            type: string
        - name: top_lat
          in: query
          description: |
            Upper latitude bound.
            The search uses the address specified in the vacancy. The value is accepted in degrees as a decimal fraction.
            All four geo-coordinate parameters must be given together; otherwise, an error will be returned
          required: false
          schema:
            type: number
        - name: bottom_lat
          in: query
          description: |
            Lower latitude bound.
            The search uses the address specified in the vacancy. The value is accepted in degrees as a decimal fraction.
            All four geo-coordinate parameters must be given together; otherwise, an error will be returned
          required: false
          schema:
            type: number
        - name: left_lng
          in: query
          description: |
            Left longitude bound.
            The search uses the address specified in the vacancy. The value is accepted in degrees as a decimal fraction.
            All four geo-coordinate parameters must be given together; otherwise, an error will be returned
          required: false
          schema:
            type: number
        - name: right_lng
          in: query
          description: |
            Right longitude bound.
            The search uses the address specified in the vacancy. The value is accepted in degrees as a decimal fraction.
            All four geo-coordinate parameters must be given together; otherwise, an error will be returned
          required: false
          schema:
            type: number
        - name: order_by
          in: query
          description: |
            Vacancy list sorting. Directory with possible values: `vacancy_search_order` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). 
            If sorting by distance from a geographic point (`distance`) is selected, its coordinates must also be specified: `sort_point_lat`, `sort_point_lng`
          required: false
          schema:
            type: string
        - name: sort_point_lat
          in: query
          description: |
            Latitude value of the point by distance from which vacancies will be sorted. Must be specified only if `order_by` is set to `distance`
          required: false
          schema:
            type: number
        - name: sort_point_lng
          in: query
          description: |
            Longitude value of the point by distance from which vacancies will be sorted. Must be specified only if `order_by` is set to `distance`
          required: false
          schema:
            type: number
        - name: clusters
          in: query
          description: |
            Whether the [clusters for this search](#tag/Vacancy-search/Clusters-of-vacancy-search) are returned
          required: false
          schema:
            type: boolean
            default: false
        - name: describe_arguments
          in: query
          description: |
            Whether the description of the search parameters used is returned. A successful response contains the `arguments` [field](#tag/Vacancy-search/operation/get-vacancies)
          required: false
          schema:
            type: boolean
            default: false
        - name: no_magic
          in: query
          description: |
            If `true`, automatic vacancy transformation is disabled. Default is `false`.
            When automatic transformation is enabled, an attempt will be made to convert the user's text query into a set of parameters. For example, the query `text=moscow accountant 100500` will be transformed into `text=accountant&only_with_salary=true&area=1&salary=100500`
          required: false
          schema:
            type: boolean
            default: false
        - name: premium
          in: query
          description: |
            If `true`, the search results will include premium vacancies. This type of sorting is used on the website. Default is `false`
          required: false
          schema:
            type: boolean
            default: false
        - name: responses_count_enabled
          in: query
          description: |
            If `true`, the additional counters field with the number of responses for the vacancy is included. Default is `false`
          required: false
          schema:
            type: boolean
            default: false
        - name: part_time
          in: query
          description: |
            Part-time vacancies. Possible values:
            * All items from `working_days` in [/dictionaries](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-dictionaries).
            * All items from `working_time_intervals` in [/dictionaries](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-dictionaries).
            * All items from `working_time_modes` in [/dictionaries](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-dictionaries).
            * The `part` or `project` items from `employment` in [/dictionaries](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-dictionaries).
            * The `accept_temporary` item that shows only vacancies with temporary employment        
            Multiple values can be specified
          required: false
          deprecated: true
          schema:
            type: string
        - name: salary_frequency
          in: query
          description: |
            Payment frequency. You need to pass the `id` from the `salary_range_frequency` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).  
            Multiple values can be specified
          required: false
          schema:
            type: string
        - name: salary_mode
          in: query
          description: |
            Salary granularity. You need to pass the `id` from the `salary_range_mode` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).  
            Only one value can be specified
          required: false
          schema:
            type: string
        - name: employment_form
          in: query
          description: |
            Employment form. You must pass the `id` from the `vacancy_search_employment_form` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). 
            Multiple values can be specified
          required: false
          schema:
            type: string
        - name: work_schedule_by_days
          in: query
          description: |
            Work schedule. You must pass the `id` from the `work_schedule_by_days` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).
            Multiple values can be specified
          required: false
          schema:
            type: string
        - name: working_hours
          in: query
          description: |
            Working hours per day. You must pass the `id` from the `working_hours` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).
            Multiple values can be specified
          required: false
          schema:
            type: string
        - name: work_format
          in: query
          description: |
            Work format. You must pass the `id` from the `work_format` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).
            Multiple values can be specified
          required: false
          schema:
            type: string
        - name: education
          in: query
          description: |
            Образование. Можно указать несколько значений. Возможные значения:
            * `not_required_or_not_specified` - не требуется или не указано
            * `special_secondary` - среднее специальное
            * `higher` - высшее
          schema:
            type: string
        - name: driver_license_types
          in: query
          description: |
            Driver’s license category. You must pass the `id` from the `driver_license_types` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).
            Multiple values can be specified
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesVacanciesResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacanciesVacancies'
        '400':
          description: Invalid parameters provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: A captcha is required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonCaptchaErrors'
        '404':
          description: Specified vacancy does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/vacancies/active':
    x-name: '/employers/{employer_id}/vacancies/active'
    get:
      operationId: get-active-vacancy-list
      tags:
        - Vacancy management
        - Employer-level vacancy management
      summary: View a published vacancy list
      description: |
        Returns a list of published vacancies.

        If the `resume_id` parameter is provided, only vacancies that are suitable for the specified resume are included in the list. Additionally, the response contains additional fields
      parameters:
        - name: employer_id
          in: path
          description: Employer ID
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: 'Page number (starting from 0, default is 0)'
          required: false
          schema:
            type: number
            default: 0
        - name: per_page
          in: query
          description: Number of items
          required: false
          schema:
            type: number
            default: 20
            maximum: 50
        - name: manager_id
          deprecated: true
          in: query
          description: |
            ID of the manager whose vacancies will be returned in the response. By default, the current user's vacancies are returned.
            This parameter cannot be used in combination with `manager_ids` or `all_accessible`.
            If multiple `manager_id` parameters are provided, only the last one will be used. To obtain manager IDs, use [the method](#tag/Employer-managers/operation/get-employer-managers)
          required: false
          schema:
            type: string
        - name: manager_ids
          in: query
          description: |
            IDs of the managers whose vacancies will be returned in the response. By default, the current user's vacancies are returned.
            This parameter cannot be used in combination with `manager_id` or `all_accessible`.
            Values must be passed as a comma-separated string.
            To obtain manager IDs, use [the method](#tag/Employer-managers/operation/get-employer-managers)
          required: false
          example: '1,2,3'
          schema:
            type: string
        - name: text
          in: query
          description: String for searching by vacancy name
          required: false
          schema:
            type: string
        - name: area
          in: query
          description: 'Region ID for the vacancy. To obtain IDs of regions with active vacancies, use [the method](#tag/Employer-info/operation/get-employer-vacancy-areas)'
          required: false
          schema:
            type: string
        - name: all_accessible
          in: query
          description: |
            Returns all active vacancies of the current user along with all active vacancies of managers to whom the user has access.
            This parameter cannot be used in combination with `manager_id` or `manager_ids`
          required: false
          schema:
            type: boolean
        - name: department_id
          in: query
          description: |
            ID of the employer's department on whose behalf the vacancy is published (if this option is available to the company).
            To obtain department IDs, use [the method](#tag/Employer-info/operation/get-employer-departments)
          required: false
          schema:
            type: string
        - name: resume_id
          in: query
          description: 'Resume ID. This parameter cannot be used in combination with other parameters. If this parameter is provided, only vacancies that are suitable for the specified resume are returned in the response, along with additional fields'
          required: false
          schema:
            type: string
        - name: order_by
          in: query
          description: 'Vacancy sorting method. Possible values are listed in the `employer_active_vacancies_order` field of the [dictionary](#tag/Public-directories/operation/get-dictionaries)'
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesVacancyListResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacanciesActiveList'
                Пример ответа при указанном resume_id:
                  $ref: '#/components/examples/VacanciesMatchList'
        '400':
          description: 'Error in request parameters, or an incompatible combination of parameters was provided'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: 'The manager with the specified ID does not exist, or the current user does not have permission to view published vacancies'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/vacancies/{vacancy_id}/visitors':
    x-name: '/vacancies/{vacancy_id}/visitors'
    get:
      operationId: get-vacancy-visitors
      tags:
        - Vacancy management
      summary: Vacancy visitors
      description: |
        Returns a list of applicant resume summaries who have viewed the vacancy in the last week. The list is sorted in descending order by view date. If an applicant has multiple resumes, the resume with the most recent update date will be returned.

        Resumes that the applicant has deleted or hidden from the employer are not displayed in the `items` list. However, they are counted in pagination (`per_page`) and in the total number of found resumes (`found`). The `hidden_on_page` field shows the number of such omitted resumes per page
      parameters:
        - name: vacancy_id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: Page number (starting from 0)
          required: false
          schema:
            type: number
            default: 0
        - name: per_page
          in: query
          description: Number of items per page
          required: false
          schema:
            type: number
            default: 20
            maximum: 50
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesVisitorsResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacanciesVisitors'
        '400':
          description: Request parameter error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The vacancy does not exist or is not available to the current user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/vacancies/hidden/{vacancy_id}':
    x-name: '/employers/{employer_id}/vacancies/hidden/{vacancy_id}'
    put:
      operationId: add-vacancy-to-hidden
      tags:
        - Vacancy management
      summary: Deleting vacancies
      description: Only archived vacancies can be deleted
      parameters:
        - name: employer_id
          in: path
          description: Employer ID
          required: true
          schema:
            type: string
        - name: vacancy_id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '403':
          description: The current user is not an employer or you are trying to delete a vacancy that is not archived
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: 'Invalid employer or vacancy ID specified, or the current user does not have permission to delete archived vacancies'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
    delete:
      operationId: restore-vacancy-from-hidden
      tags:
        - Vacancy management
      summary: Restoring deleted vacancies
      description: Only a vacancy deleted from the archive can be restored. The vacancy will be returned to the archive
      parameters:
        - name: employer_id
          in: path
          description: Employer ID
          required: true
          schema:
            type: string
        - name: vacancy_id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '403':
          description: The current user is not an employer or you are trying to restore a vacancy that is not deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: 'Invalid employer or vacancy ID specified, or the current user does not have permission to restore archived vacancies'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  /vacancy_conditions:
    x-name: /vacancy_conditions
    get:
      operationId: get-vacancy-conditions
      tags:
        - Vacancy management
      summary: Field requirements for publishing and editing vacancies
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesVacancyConditions'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacanciesVacancyConditions'
        '403':
          description: The vacancy filling out field requirements are not available for this user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  '/employers/{employer_id}/vacancies/archived':
    x-name: '/employers/{employer_id}/vacancies/archived'
    get:
      operationId: get-archived-vacancies
      tags:
        - Vacancy management
        - Employer-level vacancy management
      summary: Archived vacancy list
      parameters:
        - name: employer_id
          in: path
          description: Employer's ID
          required: true
          schema:
            type: string
        - name: manager_id
          in: query
          description: |
            Manager ID from the [directory of employer's managers](#tag/Employer-managers/operation/get-employer-managers). Specify it if you need to get vacancies of another manager.

            If multiple `manager_id` parameters are provided, only the last one is used.

            By default, the current user's vacancies are returned
          required: false
          schema:
            type: string
        - name: order_by
          in: query
          description: |
            Vacancy list sorting. Directory with possible values: `employer_archived_vacancies_order` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries)
          required: false
          schema:
            type: string
        - name: per_page
          in: query
          description: |
            Number of items per page. [Standard pagination parameters](#section/General-information/Pagination) are supported. The default and maximum value for per_page is 10,000
          required: false
          schema:
            type: integer
        - name: page
          in: query
          description: |
            Page number in the results. [Standard pagination parameters](#section/General-information/Pagination) are supported. By default, page numbering starts from 0
          required: false
          schema:
            type: integer
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesArchivedVacancyListResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacanciesArchivedVacancyList'
        '400':
          description: Error in the request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: 'The current user is not an employer, or invalid employer ID is specified'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The current user has no access to obtain archived vacancies
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/employers/{employer_id}/vacancies/archived/{vacancy_id}':
    x-name: '/employers/{employer_id}/vacancies/archived/{vacancy_id}'
    put:
      operationId: add-vacancy-to-archive
      tags:
        - Vacancy management
        - Employer-level vacancy management
      summary: Archiving vacancies
      description: Move a vacancy to the archive
      parameters:
        - name: employer_id
          in: path
          description: Employer's ID
          required: true
          schema:
            type: string
        - name: vacancy_id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: 'Invalid employer ID specified, or the current user does not have permission to archive the vacancy, or the vacancy with the provided ID does not exist'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/vacancies/{vacancy_id}':
    x-name: '/vacancies/{vacancy_id}'
    get:
      operationId: get-vacancy
      tags:
        - Vacancies
        - Vacancy management
        - Employer-level vacancy management
      summary: View a vacancy
      description: Returns detailed information for the specified vacancy
      parameters:
        - name: vacancy_id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesVacancy'
              examples:
                Пример ответа с токеном приложения:
                  $ref: '#/components/examples/VacanciesVacancyForApplication'
                Пример ответа при запросе от менеджера:
                  $ref: '#/components/examples/VacanciesVacancyForManager'
        '403':
          description: Captcha is required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonCaptchaErrors'
        '404':
          description: 'The vacancy is not found, or the user has no access to view the vacancy'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
        '429':
          description: Too many requests
    put:
      operationId: edit-vacancy
      tags:
        - Vacancy management
      summary: Editing vacancies
      description: |
        Changes vacancy fields specified in the request body.

        Compound fields (such as `salary_range`, `contacts`, `professional_roles`) can only be edited entirely by providing the complete object. For example, to edit the salary currency, you must also provide the salary amount.

        The `billing_type` and `manager` fields must be sent in separate requests
      parameters:
        - name: vacancy_id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - name: ignore_duplicates
          in: query
          description: Ignore duplicates after editing a vacancy. Default is `false`
          required: false
          schema:
            type: boolean
        - name: ignore_replacement_warning
          in: query
          description: 'If the vacancy is significantly modified, the error will be ignored, which may lead to a risk of blocking. Default is `true`'
          required: false
          schema:
            type: boolean
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VacancyEdit'
      responses:
        '204':
          description: Successful response
        '400':
          description: Error in the request body
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ErrorsVacancyAddEditCombinedBadJsonDataErrors'
                  - $ref: '#/components/schemas/ErrorsCommonBadRequestErrors'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsVacancyAddEditBadAuthForbiddenErrors'
        '404':
          description: Vacancy with the specified ID is not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/vacancies/{vacancy_id}/similar_vacancies':
    x-name: '/vacancies/{vacancy_id}/similar_vacancies'
    get:
      operationId: get-vacancies-similar-to-vacancy
      tags:
        - Vacancy search
        - Vacancy search for applicants
      summary: Search for vacancies similar to a given vacancy
      description: |
        If no authorization token is provided, a captcha will be prompted to complete after the first request.

        For pagination parameters (`page`, `per_page`), the following limitation applies: the number of results returned cannot exceed `2000`. For instance, a request with `per_page=10&page=199` is valid (returning vacancies from `1991` to `2000`), but a request with `per_page=10&page=200` returns an error (as it would request vacancies from `2001` to `2010`)
      parameters:
        - name: vacancy_id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: 'Page number (starting from 0, default is 0)'
          required: false
          schema:
            type: number
            default: 0
        - name: per_page
          in: query
          description: Number of items
          required: false
          schema:
            type: number
            default: 10
            maximum: 100
        - name: text
          in: query
          description: |
            Text field. The provided value is searched in the vacancy fields specified in the `search_field` parameter.
            As with the main website, a [query language is supported](https://hh.ru/article/1175). [Suggestions](#tag/Suggestions-by-key-words/operation/get-vacancy-search-keywords) are available specifically for this field
          required: false
          schema:
            type: string
        - name: search_field
          in: query
          description: |
            Area of search. Directory with possible values: `vacancy_search_fields` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). By default, all fields are used. Multiple values can be specified
          required: false
          schema:
            type: string
        - name: experience
          in: query
          description: |
            Work experience. Directory with possible values: `experience` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: employment
          in: query
          description: |
            Employment type. Directory with possible values: `employment` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          deprecated: true
          schema:
            type: string
        - name: schedule
          in: query
          description: |
            Work schedule. Directory with possible values: `schedule` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          deprecated: true
          schema:
            type: string
        - name: area
          in: query
          description: |
            Region. Directory with possible values: [/areas](#tag/Public-directories/operation/get-areas). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: metro
          in: query
          description: |
            Metro line or station. Directory with possible values: [/metro](#tag/Public-directories/operation/get-metro-stations). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: professional_role
          in: query
          description: |
            Professional role. Directory with possible values: [professional_roles](#tag/Public-directories/operation/get-professional-roles-dictionary). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: industry
          in: query
          description: |
            Industry of the company that published the vacancy. Directory with possible values: [/industries](#tag/Public-directories/operation/get-industries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: employer_id
          in: query
          description: |
            Describes [Company](#tag/Employer) identifier. Multiple values can be specified
          required: false
          schema:
            type: string
        - name: excluded_employer_id
          in: query
          description: |
            Describes [Company](#tag/Employer) identifier whose vacancies to be excluded from the search results. Multiple values can be specified
          required: false
          schema:
            type: string
        - name: currency
          in: query
          description: |
            Currency code. Directory with possible values: `currency` (code key) in [/dictionaries](#tag/Public-directories/operation/get-dictionaries)
          required: false
          schema:
            type: string
        - name: salary
          in: query
          description: |
            Salary amount. If this field is specified but currency is not, currency defaults to RUR.
            When a value is provided, vacancies with a salary range close to the specified amount will be found. Values are converted using current Central Bank of Russia exchange rates. For example, for `salary=100&currency=EUR`, vacancies with salary ranges in rubles that are close to 100 EUR after conversion will be found.
            By default, vacancies without a specified salary range are also included. To filter out such vacancies, use `only_with_salary=true`
          required: false
          schema:
            type: number
        - name: label
          in: query
          description: |
            Filter by vacancy labels. Directory with possible values: `vacancy_label` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). Multiple values can be specified
          required: false
          schema:
            type: string
        - name: only_with_salary
          in: query
          description: |
            Show only vacancies with a salary specified. Possible values: `true`or `false`. Default is `false`
          required: false
          deprecated: true
          schema:
            type: boolean
        - name: period
          in: query
          description: |
            Number of days within which to search for vacancies. Maximal value is 30
          required: false
          schema:
            type: number
        - name: date_from
          in: query
          description: |
            Date that defines the lower bound of the vacancy publication date range. Cannot be used together with the period parameter.
            The value must be specified in ISO 8601 - `YYYY-MM-DD` format or with second precision `YYYY-MM-DDThh:mm:ss±hhmm`. The specified value will be rounded to the nearest five minutes
          required: false
          schema:
            type: string
        - name: date_to
          in: query
          description: |
            Date that defines the upper bound of the vacancy publication date range. Cannot be used together with the period parameter.
            The value must be specified in ISO 8601 - `YYYY-MM-DD` format or with second precision `YYYY-MM-DDThh:mm:ss±hhmm`. The specified value will be rounded to the nearest five minutes
          required: false
          schema:
            type: string
        - name: top_lat
          in: query
          description: |
            Upper latitude bound.
            The search uses the address specified in the vacancy. The value is accepted in degrees as a decimal fraction.
            All four geo-coordinate parameters must be given together; otherwise, an error will be returned
          required: false
          schema:
            type: number
        - name: bottom_lat
          in: query
          description: |
            Lower latitude bound.
            The search uses the address specified in the vacancy. The value is accepted in degrees as a decimal fraction.
            All four geo-coordinate parameters must be given together; otherwise, an error will be returned
          required: false
          schema:
            type: number
        - name: left_lng
          in: query
          description: |
            Left longitude bound.
            The search uses the address specified in the vacancy. The value is accepted in degrees as a decimal fraction.
            All four geo-coordinate parameters must be given together; otherwise, an error will be returned
          required: false
          schema:
            type: number
        - name: right_lng
          in: query
          description: |
            Right longitude bound.
            The search uses the address specified in the vacancy. The value is accepted in degrees as a decimal fraction.
            All four geo-coordinate parameters must be given together; otherwise, an error will be returned
          required: false
          schema:
            type: number
        - name: order_by
          in: query
          description: |
            Vacancy list sorting. Directory with possible values: `vacancy_search_order` in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). 
            If sorting by distance from a geographic point (`distance`) is selected, its coordinates must also be specified: `sort_point_lat`, `sort_point_lng`
          required: false
          schema:
            type: string
        - name: sort_point_lat
          in: query
          description: |
            Latitude value of the point by distance from which vacancies will be sorted. Must be specified only if `order_by` is set to `distance`
          required: false
          schema:
            type: number
        - name: sort_point_lng
          in: query
          description: |
            Longitude value of the point by distance from which vacancies will be sorted. Must be specified only if `order_by` is set to `distance`
          required: false
          schema:
            type: number
        - name: clusters
          in: query
          description: |
            Whether the [clusters for this search](#tag/Vacancy-search/Clusters-of-vacancy-search) are returned. Default is `false`
          required: false
          schema:
            type: boolean
        - name: describe_arguments
          in: query
          description: |
            Whether the description of the search parameters used is returned. A successful response contains the `arguments` [field](#tag/Vacancy-search/operation/get-vacancies). Default is `false`
          required: false
          schema:
            type: boolean
        - name: no_magic
          in: query
          description: |
            If `true`, automatic vacancy transformation is disabled. Default is `false`.
            When automatic transformation is enabled, an attempt will be made to convert the user's text query into a set of parameters. For example, the query `text=moscow accountant 100500` will be transformed into `text=accountant&only_with_salary=true&area=1&salary=100500`
          required: false
          schema:
            type: boolean
        - name: premium
          in: query
          description: |
            If `true`, the search results will include premium vacancies. This type of sorting is used on the website. Default is `false`
          required: false
          schema:
            type: boolean
        - name: responses_count_enabled
          in: query
          description: |
            If true – include optional field counters with responses on a vacancy. Default – false
            If `true`, the additional counters field with the number of responses for the vacancy is included. Default is `false`
          required: false
          schema:
            type: boolean
        - name: part_time
          in: query
          description: |
            Part-time vacancies. Possible values:
            * All items from `working_days` in [/dictionaries](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-dictionaries).
            * All items from `working_time_intervals` in [/dictionaries](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-dictionaries).
            * All items from `working_time_modes` in [/dictionaries](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-dictionaries).
            * The `part` or `project` items from `employment` in [/dictionaries](https://api.hh.ru/openapi/en/redoc#tag/Public-directories/operation/get-dictionaries).
            * The `accept_temporary` item that shows only vacancies with temporary employment        
            Multiple values can be specified
          required: false
          deprecated: true
          schema:
            type: string
        - name: salary_frequency
          in: query
          description: |
            Payment frequency. You need to pass the `id` from the `salary_range_frequency` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).  
            Multiple values can be specified
          required: false
          schema:
            type: string
        - name: salary_mode
          in: query
          description: |
            Salary granularity. You need to pass the `id` from the `salary_range_mode` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).  
            Only one value can be specified
          required: false
          schema:
            type: string
        - name: employment_form
          in: query
          description: |
            Employment form. You must pass the `id` from the `vacancy_search_employment_form` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries). 
            Multiple values can be specified
          required: false
          schema:
            type: string
        - name: work_schedule_by_days
          in: query
          description: |
            Work schedule. You must pass the `id` from the `work_schedule_by_days` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).
            Multiple values can be specified
          required: false
          schema:
            type: string
        - name: working_hours
          in: query
          description: |
            Working hours per day. You must pass the `id` from the `working_hours` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).
            Multiple values can be specified
          required: false
          schema:
            type: string
        - name: work_format
          in: query
          description: |
            Work format. You must pass the `id` from the `work_format` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).
            Multiple values can be specified
          required: false
          schema:
            type: string
        - name: education
          in: query
          description: |
            Образование. Можно указать несколько значений. Возможные значения:
            * `not_required_or_not_specified` - не требуется или не указано
            * `special_secondary` - среднее специальное
            * `higher` - высшее
          schema:
            type: string
        - name: driver_license_types
          in: query
          description: |
            Driver’s license category. You must pass the `id` from the `driver_license_types` directory in [/dictionaries](#tag/Public-directories/operation/get-dictionaries).
            Multiple values can be specified
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesVacanciesResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacanciesVacancies'
        '400':
          description: Invalid parameters provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          description: A captcha is required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonCaptchaErrors'
        '404':
          description: Specified vacancy does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/vacancies/{vacancy_id}/stats':
    x-name: '/vacancies/{vacancy_id}/stats'
    get:
      operationId: get-vacancy-stats
      tags:
        - Vacancy management
      summary: Vacancy statistics
      description: |
        Returns statistics for the last five days of the vacancy life.

        Notes:

        * If the vacancy is created less than five days ago, the first date in the response will be the vacancy creation date. For future dates, the `responses` and `views` fields return `null`.
        * If the vacancy is archived or deleted, the last date will be the archiving date
      parameters:
        - name: vacancy_id
          in: path
          description: Vacancy ID
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VacanciesVacancyStatsResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/VacanciesVacancyStats'
        '403':
          description: The current user is not an employer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The vacancy is not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonNotFoundErrors'
  '/common/chats/{chat_id}/messages':
    x-name: '/common/chats/{chat_id}/messages'
    get:
      operationId: get-chat-messages
      tags:
        - Chats
      summary: Retrieve a list of chat messages
      parameters:
        - name: chat_id
          in: path
          description: Chat identifier
          required: true
          schema:
            type: string
        - name: start_message_id
          in: query
          description: |
            The ID of the message from which to start retrieving the message list:

            * For `order = next`, by default `start_message_id` is the first message in the chat
            * For `order = prev`, by default `start_message_id` is the last message in the chat
          schema:
            type: string
        - name: limit
          in: query
          description: |
            Maximum number of messages to return
          schema:
            type: integer
            default: 10
            minimum: 1
            maximum: 50
        - name: order
          in: query
          description: |
            Message order. Defines in which direction messages will be retrieved starting from the message with the given `start_message_id`.
            For example:
            * For `order=next, start_message_id=100, limit=25`, the response will contain messages with IDs `100`...`125`
            * For `order=prev, start_message_id=100, limit=25`, the response will contain messages with IDs `75`...`100`
          schema:
            type: string
            default: next
            enum:
              - prev
              - next
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Chat messages
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatsCommonMessagesResponse'
        '400':
          description: Request parameter errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsMessageErrors'
        '403':
          $ref: '#/components/responses/ErrorBadAuthorization'
        '404':
          description: Chat not found or not accessible to the current user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsNotFoundErrors'
    post:
      operationId: chat-message-post
      tags:
        - Chats
      summary: Send a message to the chat
      description: 'Send a message to the chat. Along with the idempotency key, you can send either text or file upload identifiers (but not both)'
      parameters:
        - name: chat_id
          in: path
          description: Chat identifier
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatsCommonMessagePost'
            examples:
              Пример запроса c текстом:
                $ref: '#/components/examples/ChatsCommonMessagePostText'
              Пример запроса c id файла для отправки:
                $ref: '#/components/examples/ChatsCommonMessagePostFileUploadIds'
      responses:
        '201':
          description: Message sent successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/_IncludesId'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/Id'
        '400':
          description: Argument errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsChatBadArgument'
        '403':
          description: Invalid authorization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsChatForbidden'
        '404':
          description: Chat not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsNotFoundErrors'
        '409':
          description: Conflict during request execution – non-unique UUID in the `idempotency_key` field
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonConflictErrors'
  /common/chats/without_vacancy:
    x-name: /common/chats/without_vacancy
    post:
      operationId: get-or-create-chat-without-vacancy-common
      tags:
        - Чаты
      summary: Создание чата без вакансии
      description: |
        Создание или получение чата между соискателем и работодателем без вакансии, с привязкой к резюме
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatsCommonChatWithoutVacancyPost'
            examples:
              Пример запроса:
                $ref: '#/components/examples/ChatsCommonChatWithoutVacancyPost'
      responses:
        '200':
          description: Успешный ответ
          content:
            application/json: {}
        '400':
          description: Ошибка в аргументах
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadRequestBadArgumentBadRequestAndBadArgumentErrors'
        '403':
          description: Ошибка авторизации
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsChatForbidden'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  '/common/chats/{chat_id}/leave':
    x-name: '/common/chats/{chat_id}/leave'
    put:
      operationId: leave-chat
      tags:
        - Chats
      summary: Leave a chat
      parameters:
        - name: chat_id
          in: path
          description: Chat identifier
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '400':
          $ref: '#/components/responses/ErrorBadArgument'
        '403':
          $ref: '#/components/responses/ErrorBadAuthorization'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
  /common/chats/files/upload_links:
    x-name: /common/chats/files/upload_links
    post:
      operationId: get-common-chat-files-upload-links
      tags:
        - Chats
      summary: Get a link to upload a file to a chat
      description: |
        Get a link to upload a file to a chat  

        Using the received link, you should send a POST request with the file and an authorization header similar to the requests in the API.  
        The file must be sent in the body with type `form-data` and the key name `file`.  

        Example curl request:  
        ```  
        curl --location 'https://example.com' \  
        --header 'Authorization: Bearer AUTHTOKEN' \  
        --form 'file=@"/path/to/file"'  
        ```  
        In response, you will receive a success code with `upload_id`:  
        ```  
        200:  
        {  
          upload_id: "8abcdef8-4abc-4edf-1234-1234567890ab",  
          ...  
        }  
        ```  
        Possible errors when uploading files via the link:  

        If authorization is missing:  
        ```  
        403:   
        <html><title>403: Forbidden</title><body>403: Forbidden</body></html>  
        ```  
        If the file format is invalid:  
        ```  
        400:   
        {  
          "errors": [  
              {  
                  "type": "bad_argument",  
                  "value": "file"  
              }  
          ]  
        }  
        ```  
        If the upload link has expired:  
        ```  
        400:  
        {  
          "errors": [  
              {  
                  "type": "bad_argument",  
                  "value": "state"  
              }  
          ]  
        }  
        ```
      responses:
        '200':
          description: Link for file upload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatsCommonFilesUploadLinksResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/ChatsCommonFilesUploadLinks'
        '403':
          $ref: '#/components/responses/ErrorBadAuthorization'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  '/common/chats/{chat_id}/message/{message_id}/read':
    x-name: '/common/chats/{chat_id}/message/{message_id}/read'
    put:
      operationId: set-last-viewed-message
      tags:
        - Chats
      summary: Set the last read message
      parameters:
        - name: chat_id
          in: path
          description: Chat identifier
          required: true
          schema:
            type: string
        - name: message_id
          in: path
          description: Message identifier
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '400':
          $ref: '#/components/responses/ErrorBadArgument'
        '403':
          description: Invalid authorization or other reasons
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsChatForbidden'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
  /common/chats/files/conditions:
    x-name: /common/chats/files/conditions
    get:
      operationId: get-common-chat-files-conditions
      tags:
        - Chats
      summary: Get file properties for chats
      description: Get file properties for chats
      responses:
        '200':
          description: File properties
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatsCommonFilesConditionsResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/ChatsCommonFilesConditions'
        '403':
          $ref: '#/components/responses/ErrorBadAuthorization'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  '/common/chats/{chat_id}/messages/{message_id}':
    x-name: '/common/chats/{chat_id}/messages/{message_id}'
    put:
      operationId: chat-message-put
      tags:
        - Chats
      summary: Edit a message in the chat
      description: Edit a message in the chat
      parameters:
        - name: chat_id
          in: path
          description: Chat identifier
          required: true
          schema:
            type: string
        - name: message_id
          in: path
          description: Message identifier
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatsCommonMessagePut'
            examples:
              Пример запроса:
                $ref: '#/components/examples/ChatsCommonMessagePut'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '400':
          description: Parameters in the input JSON were provided with errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsChatBadArgument'
        '403':
          description: Invalid authorization or other reasons
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsChatForbidden'
        '404':
          description: 'The specified object does not exist, or the user does not have permissions'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsNotFoundErrors'
    delete:
      operationId: chat-message-delete
      tags:
        - Chats
      summary: Delete a message in the chat
      description: Delete a message in the chat
      parameters:
        - name: chat_id
          in: path
          description: Chat identifier
          required: true
          schema:
            type: string
        - name: message_id
          in: path
          description: Message identifier
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '403':
          description: Invalid authorization or the user does not have permission to delete the message
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ErrorsChatsForbiddenDeleteErrors'
                  - $ref: '#/components/schemas/ErrorsCommonBadAuthorizationErrors'
        '404':
          description: The message does not exist or the user does not have permission to delete it
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsNotFoundErrors'
  '/common/chats/{chat_id}/write_possibility':
    x-name: '/common/chats/{chat_id}/write_possibility'
    put:
      operationId: set-write-possibility-common
      tags:
        - Chats
      summary: Enable/disable messaging in the chat for the applicant
      parameters:
        - name: chat_id
          in: path
          description: Chat identifier
          required: true
          schema:
            type: string
        - name: applicant_write_possibility
          in: query
          description: Flag indicating whether messaging is allowed for the applicant
          required: true
          schema:
            type: boolean
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '400':
          $ref: '#/components/responses/ErrorBadArgument'
        '403':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsChatForbidden'
        '404':
          $ref: '#/components/responses/ErrorNotFound'
  /common/chats:
    x-name: /common/chats
    get:
      operationId: get-common-chat-list
      tags:
        - Chats
      summary: Get a list of chats
      description: Retrieve a list of chats with pagination
      parameters:
        - in: query
          name: page
          description: Page
          schema:
            type: integer
            default: 0
            minimum: 0
            maximum: 50
        - in: query
          name: per_page
          description: Number of chats requested per page
          schema:
            type: integer
            default: 20
            minimum: 1
            maximum: 20
        - in: query
          name: filter_unread
          description: Only unread chats
          schema:
            type: boolean
        - in: query
          name: filter_has_text_message
          required: false
          description: |
            Filter for chats with active conversations. Available only for employers
          schema:
            type: boolean
        - in: query
          name: vacancy_status
          description: Связанность с вакансиями
          schema:
            type: string
            enum:
              - all
              - with
              - without
            default: all
        - in: query
          name: filter_with_vacancy_ids
          description: |
            Одна строка в query — перечень id вакансий в квадратных скобках, через запятую, например `[1,2,3]` (допустимы пробелы вокруг запятых). Строка разбирается в не более **100** целых id. Пусто `[]` или параметр не передан — без отбора по списку вакансий; вместе с `vacancy_status` см. сценарии в описании метода
          schema:
            type: string
            example: '[1,2,3]'
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: List of chats
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatsCommonCommonChatListResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/ChatsCommonCommonChatListResponse'
        '400':
          $ref: '#/components/responses/ErrorBadArgument'
        '403':
          $ref: '#/components/responses/ErrorBadAuthorization'
  /common/chats/counters/unread:
    x-name: /common/chats/counters/unread
    get:
      operationId: unread-chats-count
      tags:
        - Chats
      summary: Get the number of unread chats
      responses:
        '200':
          description: Successful response with data on the number of unread chats
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatsCommonUnreadChatsCountResponse'
        '403':
          $ref: '#/components/responses/ErrorBadAuthorization'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  '/common/chats/{chat_id}/participants':
    x-name: '/common/chats/{chat_id}/participants'
    get:
      operationId: get-participant-list
      tags:
        - Chats
      summary: Get chat participant list
      parameters:
        - name: chat_id
          in: path
          description: Chat identifier
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Chat participants
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatsCommonParticipantListResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/ChatsCommonParticipantListResponse'
        '403':
          $ref: '#/components/responses/ErrorBadAuthorization'
        '404':
          description: Chat not found or not accessible to the current user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsNotFoundErrors'
    put:
      operationId: put-participant-list
      tags:
        - Chats
      summary: Add participant to chat
      parameters:
        - name: chat_id
          in: path
          description: Chat identifier
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatsCommonParticipantManager'
      responses:
        '204':
          $ref: '#/components/responses/SuccessNoContent'
        '400':
          description: Argument errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsCommonBadArgumentErrors'
        '403':
          $ref: '#/components/responses/ErrorBadAuthorization'
        '404':
          description: Chat not found or not accessible to the current user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsChatsNotFoundErrors'
  /areas/countries:
    x-name: /areas/countries
    get:
      operationId: get-countries
      tags:
        - Public directories
      summary: Countries
      description: |
        Returns a subset of regions which are countries.

        Values in the directories may change at any time
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionariesCountriesResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/AreasCountries'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  '/areas/{area_id}':
    x-name: '/areas/{area_id}'
    get:
      operationId: get-areas-from-specified
      tags:
        - Public directories
      summary: 'Region directory, starting from the specified region'
      description: |
        Returns a tree-structured list of regions starting from the specified one

        Values in the directories may change at any time
      parameters:
        - name: area_id
          in: path
          description: 'Region ID from the directory [/areas](#tag/Public-directories/operation/get-areas)'
          required: true
          schema:
            type: string
        - name: additional_case
          in: query
          description: |
            Applicable only to Russian localization.

            Additional field returns the region name in the specified case. Only the `prepositional` (prepositional case) value is supported
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionariesAreaItem'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/AreasAreaItem'
        '400':
          description: Errors in request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsDictionariesBadArgumentErrors'
  /areas:
    x-name: /areas
    get:
      operationId: get-areas
      tags:
        - Public directories
      summary: Tree view of all regions
      description: |
        Returns a tree-structured list of all regions.

        Values in the directories may change at any time
      parameters:
        - name: additional_case
          in: query
          description: |
            Applicable only to Russian localization.

            Additional field returns the region name in the specified case. Only the `prepositional` (prepositional case) value is supported
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionariesAreaResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/AreasAreas'
        '400':
          description: Errors in request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsDictionariesBadArgumentErrors'
  /salary_statistics/dictionaries/salary_industries:
    x-name: /salary_statistics/dictionaries/salary_industries
    get:
      operationId: get-salary-industries
      tags:
        - Salary Database directories
      summary: Industries and business areas
      description: Returns a two-level list of industries and business areas
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionariesIndustriesResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/DictionariesIndustries'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  /salary_statistics/dictionaries/professional_areas:
    x-name: /salary_statistics/dictionaries/professional_areas
    get:
      operationId: get-salary-professional-areas
      tags:
        - Salary Database directories
      summary: Professions and specializations
      description: Returns a list of professions and specializations
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionariesSalaryStatisticsProfessionalAreasResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/DictionariesSalaryStatisticsProfessionalAreas'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  /salary_statistics/dictionaries/employee_levels:
    x-name: /salary_statistics/dictionaries/employee_levels
    get:
      operationId: get-salary-employee-levels
      tags:
        - Salary Database directories
      summary: Competency levels
      description: Returns a list of competency levels
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionariesSalaryStatisticsEmployeeLevelResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/DictionariesSalaryStatisticsEmployeeLevel'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
  /salary_statistics/dictionaries/salary_areas:
    x-name: /salary_statistics/dictionaries/salary_areas
    get:
      operationId: get-salary-salary-areas
      tags:
        - Salary Database directories
      summary: Regions and cities
      description: Returns a list of regions and cities
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DictionariesSalaryStatisticsAreaResponse'
              examples:
                Пример ответа:
                  $ref: '#/components/examples/DictionariesSalaryStatisticsSalaryAreas'
      parameters:
        - $ref: '#/components/parameters/Host'
        - $ref: '#/components/parameters/Locale'
        - $ref: '#/components/parameters/HHUserAgent'
