Как найти по коду вакансии

Код вакансии на HH — специальный код, позволяющий сортировать вакансии, иногда просят при отклике, на HH размещается внизу (где дата публикации).

Разбираемся

  1. Информации об этом — почти нет. Но мне удалось выяснить что это)) Смотрите, часто когда от компании поступает заявка в кадровое агентство, мол нужен такой и такой сотрудник, то этой вакансии присваивается специальный код. Это нужно для того, чтобы было проще просматривать и сортировать резюме. Вакансия например может быть директор отдела. Но их может быть несколько, потому что и отделов несколько! Вот поэтому каждой — присваивается специальный код. По этому коду также резюме могут сортироваться — чтобы к тому, кто ведет определенную вакансию, приходили именно резюме на эту определенную вакансию.
  2. Так вот, при размещении вакансии на HH — нужно указать название, город, должность, зарплата, описание и прочее.. все это нужно конечно. Но вот после должности — можно указать некий код. Вот именно про него и шла речь выше.
  3. Бывает что работодатель просит указать этот код при отклике. Это нормальное явление))
  4. Где размещается этот код на HH? В самом низу на странице с вакансией, там еще идет дата когда опубликована.
  5. Но если в целом и общем — то код нужен только для уточнения вакансии. Они могут быть очень похожи — например компания одна, а требуется 5 администраторов с одинаковыми требованиями в 5 филиалов одной фирмы (поэтому требования одинаковы). Для того чтобы их отличить и используется код.

Вот пример обьявления:

А этот код находится в самом низу, после контактной информации, карты, но перед Оставьте свои контакты:

Надеюсь данная информация оказалась полезной. Удачи и добра, до новых встреч ребята!

На главную!

08.11.2021

Время на прочтение
4 мин

Количество просмотров 13K

Разбираемся на практике с API HeadHunter при помощи python.

Появилась задача анализа вакансий на рынке труда, и осуществлять ее надо базе HeadHunter. Необходимо получить все вакансии определенной компании по всем городам России. Ознакомившись с документацией по API на github, приступаем к работе.

Для решения задачи используем python. Импортируем необходимые для работы библиотеки:

import requests      # Для запросов по API
import json          # Для обработки полученных результатов
import time          # Для задержки между запросами
import os            # Для работы с файлами
import pandas as pd  # Для формирования датафрейма с результатами

Стоит разобраться с такой вещью как areas. Всего существует 9 условных зон (стран):

ID страны

Название страны

5

Украина

9

Азербайджан

16

Беларусь

28

Грузия

40

Казахстан

48

Кыргызстан

97

Узбекистан

113

Россия

1001

Другие регионы

Для каждой страны имеются свои внутренние зоны, которые можно просмотреть через обращение к HH (https://api.hh.ru/areas) с параметром area равным ID страны. К примеру, для России будет найдено свыше 4 тысяч различных городов, сел и других населенных пунктов.

Для получения всех стран со всеми их внутренними зонами воспользуемся следующим фрагментом кода:

def getAreas():
    req = requests.get('https://api.hh.ru/areas')    
    data = req.content.decode()
    req.close()
    jsObj = json.loads(data)
    areas = []
    for k in jsObj:
        for i in range(len(k['areas'])):
            if len(k['areas'][i]['areas']) != 0:                      # Если у зоны есть внутренние зоны
                for j in range(len(k['areas'][i]['areas'])):
                    areas.append([k['id'], 
                                  k['name'], 
                                  k['areas'][i]['areas'][j]['id'],
                                  k['areas'][i]['areas'][j]['name']])
            else:                                                                # Если у зоны нет внутренних зон
                areas.append([k['id'], 
                              k['name'], 
                              k['areas'][i]['id'], 
                              k['areas'][i]['name']])
    return areas

areas = getAreas()

Если интересует запрос по конкретной зоне (стране), то в параметры request нужно указать ID необходимой зоны, к примеру, для России: {‘area’: 113}

Вот часть того, что будет храниться в переменной areas:

Следующим шагом стоит найти ID работодателей.

Для этого нужно получить количество работодателей на данный момент и учесть тот факт, что не все порядковые номера существуют и внутренние ограничения API HH на постраничный поиск, глубина которого равна всего 2000 значений.

def getEmployers():
    req = requests.get('https://api.hh.ru/employers')
    data = req.content.decode()
    req.close()
    count_of_employers = json.loads(data)['found']
    employers = []
    i = 0
    j = count_of_employers
    while i < j:
            req = requests.get('https://api.hh.ru/employers/'+str(i+1))
            data = req.content.decode()
            req.close()
            jsObj = json.loads(data)
            try:
                employers.append([jsObj['id'], jsObj['name']])
                i += 1
                print([jsObj['id'], jsObj['name']])
            except:
                i += 1
                j += 1
            if i%200 == 0:
                time.sleep(0.2)
    return employers
    
employers = getEmployers()

Результат того, что будет храниться в переменной employers:

Возьмем для примера 2ГИС с ID 64174 и найдем все вакансии по работодателю в разрезе каждой зоны России (ID 113). В функцию getPage в качестве входных параметров сделаем только номер страницы для постраничного поиска и зону, где будем смотреть вакансии.

def getPage(page, area):
    params = {
        'employer_id': 3529,  # ID 2ГИС
        'area': area,         # Поиск в зоне
        'page': page,         # Номер страницы
        'per_page': 100       # Кол-во вакансий на 1 странице
    }   
    req = requests.get('https://api.hh.ru/vacancies', params)
    data = req.content.decode() 
    req.close()
    return data

Часть кода, где функция getPage и используется:

for area in areas:
    for page in range(0, 20):
        jsObj = json.loads(getPage(page, area[2]))
        if not os.path.exists('./areas/'):
            os.makedirs('./areas/')
        nextFileName = './areas/{}.json'.format(str(area[2])+'_'+str(area[3])+'_'+str(page))
        f = open(nextFileName, mode='w', encoding='utf8')
        f.write(json.dumps(jsObj, ensure_ascii=False))
        f.close()
        if (jsObj['pages'] - page) <= 1:  
            print('[{0}/{1}] Область: {3} ({2}) - {5} ({4}) Вакансий: {6}'.format(area_list_id+1, 
                                                                         len(areas), 
                                                                         area[0], 
                                                                         area[1], 
                                                                         area[2], 
                                                                         area[3], 
                                                                         jsObj['found']))
            break
    time.sleep(0.2)

Сохраняем промежуточные результаты в формате json для каждой зоны отдельно, в том числе и для зон, где не найдено ни одной вакансии. Теперь сгруппируем их в один файл:

dt = []
for fl in os.listdir('./areas/'):
    f = open('./areas/{}'.format(fl), encoding='utf8')
    jsonText = f.read()
    f.close()
    jsonObj = json.loads(jsonText)
    if jsonObj['found'] != 0:
        for js in jsonObj['items']:
            if js['salary'] != None:
                salary_from = js['salary']['from']
                salaty_to = js['salary']['to']
            else:
                salary_from = None
                salaty_to = None
            if js['address'] != None:
                address_raw = js['address']['raw']
            else:
                address_raw = None
            dt.append([
                js['id'],
                js['premium'],
                js['name'],
                js['department']['name'],
                js['has_test'],
                js['response_letter_required'],
                js['area']['id'],
                js['area']['name'],
                salary_from, 
                salaty_to,
                js['type']['name'],
                address_raw,
                js['response_url'],
                js['sort_point_distance'],
                js['published_at'],
                js['created_at'],
                js['archived'],
                js['apply_alternate_url'],
                js['insider_interview'],
                js['url'],
                js['alternate_url'],
                js['relations'],
                js['employer']['id'],
                js['employer']['name'],
                js['snippet']['requirement'],
                js['snippet']['responsibility'],
                js['contacts'],
                js['schedule']['name'],
                js['working_days'],
                js['working_time_intervals'],
                js['working_time_modes'],
                js['accept_temporary']
                ])

Полученный промежуточный результат сохраняем в DataFrame и сохраняем как файл Excel.

df = pd.DataFrame(dt, columns = [
                                'id',
                                'premium',
                                'name',
                                'department_name',
                                'has_test',
                                'response_letter_required',
                                'area_id',
                                'area_name',
                                'salary_from', 
                                'salaty_to',
                                'type_name',
                                'address_raw',
                                'response_url',
                                'sort_point_distance',
                                'published_at',
                                'created_at',
                                'archived',
                                'apply_alternate_url',
                                'insider_interview',
                                'url',
                                'alternate_url',
                                'relations',
                                'employer_id',
                                'employer_name',
                                'snippet_requirement',
                                'snippet_responsibility',
                                'contacts',
                                'schedule_name',
                                'working_days',
                                'working_time_intervals',
                                'working_time_modes',
                                'accept_temporary'
                                ])   
df.to_excel('result_2gis.xlsx')

Скриншот части конечного результата внутри Excel:

Без особых сложностей, поставленную перед нами задачу выполнили и получили все возможные вакансии по определенному работодателю на разных территориях.

В этом гайде по работе с API HeadHunter рассмотрен базовый функционал API. Тем не менее, для успешного понимая всего функционала и возможностей, вы можете самостоятельно ознакомиться на github HH.ru или подождать нашей следующей статьи по данной теме, где мы рассмотрим более сложные примеры.

С помощью Google можно искать работу. Просто введите запрос, например вакансии поблизости или младший финансовый аналитик.

Внимание! Эта функция доступна не на всех языках и не во всех странах.

Откуда поступает информация

Информацию о вакансиях мы берем на сайтах работодателей и специализированных онлайн-ресурсах.

Для удобства могут указываться дополнительные сведения, такие как льготы и тип договора, найденные автоматически в описаниях вакансий. Эти данные могут использоваться для работы функций в результатах поиска, например для показа значков.

Как найти вакансии

Как уточнить географию поиска

  • Вакансии поблизости. Если вы ищете работу недалеко от дома, то можете просто ввести запрос без указания места, например вакансии официанта. Также можно уточнить запрос: вакансии официанта поблизости.
  • Вакансии в другом регионе. Укажите, где именно вы хотите найти работу, например вакансии продавца в Санкт-Петербурге.
  • Удаленная работа. Введите запрос работа из дома или укажите, какая именно должность вас интересует, например вакансии менеджера интернет-магазина на дому. Вы также можете использовать фильтр “Работа на дому”.
  • Чтобы сузить результаты поиска, используйте фильтры.

Как найти вакансии по специальности

Внимание! Эта функция доступна только в США.

  1. Перейдите на сайт Google.
  2. Введите запрос.
    • Без указания местоположения: jobs for biology majors (вакансии по специальности биология).
    • С указанием местоположения: jobs for economics majors in new york city (вакансии по специальности экономика в нью-йорке).
  3. Чтобы уточнить критерии поиска, выберите ту или иную профессию над списком вакансий.

Как конкретизировать поиск

  1. Перейдите на сайт Google. Введите запрос.
  2. В синем окне выберите Вакансии.
  3. Используйте подходящие фильтры.

Совет. Если вы вводите запросы на английском языке и у вас включена история приложений и веб-поиска, то вы можете ограничить список результатов, чтобы в него попадали только новые для вас вакансии. Подробнее о том, как управлять историей приложений и веб-поиска…

Как посмотреть вакансии на определенном сайте

  1. Перейдите на сайт Google. Введите запрос.
  2. В разделе под синим окном выберите вакансию.
  3. В разделе “Отправить резюме” нажмите на название сайта.

Как найти вакансии по коду военной специальности

Те, кто служил или служит в вооруженных силах США, могут найти вакансии по гражданским профессиям, в которых пригодятся их военные навыки. Для этого нужно использовать коды военной специальности (MOS, AFSC или NEC).

В настоящее время поиск вакансий по коду MOS доступен только на английском языке и только для объявлений о работе в США. При этом вы можете находиться в других странах, например Аргентине, Бразилии, Великобритании, Индии, Испании, Канаде, Кении, Колумбии, Мексике, Нигерии, Чили и ЮАР.

  1. Перейдите на сайт Google.
  2. Введите запрос.
    • Если вы находитесь в США, уточните его: вакансии для ветеранов.
    • Если вы находитесь в другой стране, укажите в запросе регион США, например вакансии для ветеранов в Техасе.
  3. В синем окне введите код военной специальности (MOS), например 11B.

Как узнать, сколько времени займет дорога

Вы можете посмотреть, сколько времени потребуется на дорогу до работы. Для этого выполните следующие действия:

  1. Укажите домашний адрес. Если вы этого не сделаете, Google будет показывать маршрут до места работы из текущего местоположения.
    • Подробнее о том, как указать домашний адрес…
  2. Перейдите на сайт Google. Введите запрос.
  3. В синем окне выберите Вакансии.
  4. Посмотрите время в пути Время в пути под названием вакансии. Учтите, что оно указывается не всегда.

Как сохранить вакансию

  1. Перейдите на сайт Google. Введите запрос.
  2. В синем окне выберите Вакансии.
  3. Нажмите “Сохранить” Добавить в коллекцию рядом с выбранной вакансией.

Совет. Чтобы открыть список сохраненных объявлений, поищите вакансию в Google Поиске, а затем нажмите Сохранено.

Как добавить объявления о работе в результаты Google Поиска

Если в вашей организации есть открытые вакансии, узнайте, как добавить их в результаты Google Поиска.

Эта информация оказалась полезной?

Как можно улучшить эту статью?



Ученик

(124),
на голосовании



10 лет назад

Голосование за лучший ответ

Osert

Искусственный Интеллект

(156814)


10 лет назад

Как правило, когда от фирмы поступает заявка в кадровое агентство, данной вакансии присваивается код. Это делается для того, чтобы ваше резюме было проще найти и чтобы сортировать кандидатов. Например, у агентства в работе могут быть 30 вакансий “помощник руковоидителя”, или 15 вакансий “менедежер по рекламе”, и у каждой будет свой уникальный код. Если вы как соискатель присылаете ваше резюме с кодом вакансии, то оно попадает к конкретному сотруднику, который ведет данную вакансию, на которую вы откликались.

Хитрости поиска работы на Headhunter.ru

Как искать работу на Headhunter.ru

На сегодняшний день на сайте по поиску работы HH.ru зарегистрировано почти 900 000 компаний, размещена информация более чем о 600 000 вакансий и опубликовано почти 36 млн. резюме. Вы подписались на рассылку, настроили фильтры, пора применять тяжелую артиллерию – поисковые операторы.

Хитрости поиска на HH

Например, вы ищете работу маркетолога в Новосибирске. У вас есть небольшой опыт – вы 1 год работали в маркетинговом отделе сети СТО и занимались поиском исполнителей (копирайтеров, дизайнеров и т.д.), составляли для них технические задания, согласовывали рекламные материалы и промо-продукцию с руководителем отдела, а также вели официальные странички компании в социальных сетях. Сейчас вы хотите заниматься собственными проектами – организовывать промо-акции, разрабатывать креативы совместно с командой исполнителей, а контроль фрилансеров и ведение страниц в соцсетях вам уже не интересны. На прошлом месте работы вы зарабатывали 25 тысяч рублей в месяц – на новом хотите получать не менее 35 тысяч

Поисковые операторы

Кавычки

Чтобы найти определенное словосочетание, заключите его в кавычки. Поисковый алгоритм найдет для вас все вакансии, в которых есть это словосочетание – однако, не покажет те, в которых оно встречается в видоизмененном или «разбавленном виде». Например, если вы будете искать «интернет маркетолог», то в выдаче не будет вакансий «маркетолога по интернет продвижению». Чтобы найти любые вхождения вашего словосочетания, уберите кавычки.

Хитрости поиска работы на Headhunter.ru

Словоформы

По умолчанию поисковый алгоритм HH ищет слова во всех словоформах – если вы указали в поиске «маркетолог» – значит, вам будут показаны результаты, содержащие слово в любом числе и склонении – «маркетологом», «маркетологов» и т.д. Чтобы уточнить словоформу, используйте поисковый оператор «!».

Хитрости поиска работы на Headhunter.ru
Хитрости поиска работы на Headhunter.ru

Поиск по части слова

Чтобы найти однокоренные слова с нужным корнем, используйте поиск по части слова – для этого вам потребуется оператор * – «звездочка». Он заменяет различные символы – поэтому ставьте его в конце слова. В нашем примере мы можем получить поиск по словам «маркетолог», «маркетинг» и др., заменив последние буквы вакансии звездочками.

Хитрости поиска работы на Headhunter.ru

Синонимы

По умолчанию поисковый алгоритм HH учитывает все синонимы, сокращения и транслитерацию. Например, при поиске вакансий по должности «маркетолог» вы найдете и вакансии PR-менеджеров, менеджеров по маркетингу или менеджеров по рекламе.

Однако вы можете исключить поиск синонимов, использовав оператор «and not».

Хитрости поиска работы на Headhunter.ru

Поиск всех слов или одного из слов

Иногда должность может называться по-разному – например, маркетолог или менеджер (специалист) по рекламе. Расширьте область поиска, введя оператор «or» – он расширит область поиска, и алгоритм будет искать любое из двух слов или словосочетаний.

Хитрости поиска работы на Headhunter.ru

Чтобы найти вакансии, содержащие все слова, указанные в запросе, используйте оператор «and».

Хитрости поиска работы на Headhunter.ru

Исключить слово из поиска

Чтобы найти все вакансии, не содержащие определенное слово, используйте исключающий оператор «not» перед словом, которое нужно убрать из поиска.

Хитрости поиска работы на Headhunter.ru

Сложный поиск по нескольким условиям

Чтобы объединить несколько условий, вам необходимо заключить каждое отдельное условие в скобки, а между скобками поставить оператор «and».

Хитрости поиска работы на Headhunter.ru

Поиск по конкретным полям

Если вы не задаете этот параметр, то алгоритм HH ищет слово по всем полям – в названиях компаний, текстах вакансий, названиях должности и т.д. Вы можете конкретизировать, в каких полях искать необходимое слово, при помощи операторов (там, где указан восклицательный знак – его нужно ставить обязательно, он является частью поискового оператора):

· !ID – id вакансии;

· NAME – название должности в вакансии;

· !COMPANY_ID – id компании;

· COMPANY_NAME – название компании-работодателя;

· DESCRIPTION – описание вакансии (любое место в тексте).

Хитрости поиска работы на Headhunter.ru

Использование поисковых операторов поможет Вам не только повысить качество поиска – но и сократить время на обработку его результатов. А значит – останется больше времени на то, чтобы составить хорошее продающее резюме и сопроводительное письмо.

Если статья была Вам полезна – ставьте лайки или забирайте себе в соцсети! Удачи!

Добавить комментарий