вернуться на главную

Обновляем дату резюме правильно

18 октября 2018 г.

Пишем скрипт, который обновит резюме даже чаще, чем платная функция у HH

Однажды я уволился с работы и пролежал на диване почти два месяца. Все это время, глядя в потолок и периодически поглядывая на телефон, я удивлялся, что ни Аркадий Волож, ни Павел Дуров, ни даже Марк Цукерберг мне так и не позвонили. Странно, ведь номер телефона я не менял. Так я пришел к мысли, что пора обновить резюме на HH.RU.

Потратив всю ночь на обновление резюме, сопроводив его ссылками на примеры работ с использованием сокращателя URL с аналитикой на своем домене, я поставил будильник на 10 утра, чтобы поспать хотя бы пять часов и обновить дату. «Стоп! Какой еще будильник? Я же великий программист!» — сказал я себе, вспомнив, что у Headhunter есть отлично документированный API!

Действительно, несколько месяцев назад, запуская карьерный сайт для Simple, я бегло изучил Headhunter API, обратив внимание на широкие возможности. Ну что ж, возьмем в левую прямую руку PHP, а в правую — Cron и примемся за дело (если вы левша, можете поменять инструменты местами). Согласитесь, лучше еще полчаса поработать, чем просыпаться по будильнику и периодически обновлять резюме вручную.

План действий

С самого начала у меня был какой-то план и я его придерживался:

  1. Получить токен
  2. Написать скрипт обновления даты резюме
  3. Добавить выполнение скрипта в планировщик
  4. ???????
  5. PROFIT!

1. Получаем токен

Как и любое другое API здорового человека, для работы с API необходимо получить авторизационный токен. Для получения своего токена идем в личный кабинет и нажимаем соответствующую кнопку. После авторизации под своим обычным аккаунтом соискателя, нам выдается токен, представляющий собой совершенно случайный набор символов.

Следует обратить внимание, что токен действует 14 дней, после чего потребуется запросить новый. Процесс обновления токена можно так же автоматизировать, но делать этого я, конечно, не буду!

2. Пишем скрипт

Я выбрал PHP потому что это самый доступный язык на любом хостинге\VPS. Вы же можете использовать Бейсик, более современный Алгол 68 или использовать язык ассемблера, если ваши вкусы очень специфичны.

<?php
// Тут прописываем токен
$access_token = 'ACCESS_TOKEN';
// А здесь вызываем метод publish для конкретного резюме
$url = 'https://api.hh.ru/resumes/7bc5113bff05c0f0600039ed1f44567a667153/publish';
$headers = array(
	'Authorization: Bearer '.$access_token,
	'HH-User-Agent: MSafi/1.0 (hello@msafi.ru)',
	'User-Agent: MSafi/1.0 (hello@msafi.ru)'
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);
if (curl_errno($ch)) {
	print "Error: ".curl_error($ch);
} else {
	echo date('d.m.Y H:i:s')." (Product Manager) - ".$data."<br>";
	curl_close($ch);
}

3. Резюме (обновляется)

Скрипт написан и даже работает. Добавим его в стандартный планировщик в этом вашем линупсе, а вывод работы скрипта будем писать в html-документ, который можно открыть в браузере и смотреть все ли у нас ок.

crontab -e

15 0,4,8,12,16,20 * * * php /path/to/update-script.php >> /path/to/www-root/update-log.html

Я выбрал такие часы, в которые мое резюме просматривалось чаще всего, добавив немного логики и рекомендаций по самым идеальным часам для email-рассылок. Основное время — утром, когда HR пришел на работу, после обеда, вечерочком. Учитывая, что HH ограничивает обновление резюме не более чем раз в четыре часа, я подобрал следующие временные отметки, балансируя между временем после обеда и утренними часами: 8:15, 12:15, 16:15, 20:15, 0:15 и 4:15, тем самым, обновляя резюме максимально возможное количество раз в сутки.

4. ???????

— Марат, зачем тебе это, ведь у Хедхантера есть услуга по автообновлению резюме!

Да, это так! Но, во-первых, в этом случае ваше резюме будет обновляться только один раз в сутки. Возможно, в один момент времени с сотнями резюме ваших конкурентов за хорошее рабочее место. Во-вторых, мой скрипт обновляет резюме шесть раз в сутки. Если бы я сделал такой сервис и рекламировал его, то обязательно использовал бы этот элемент УТП «До шести раз больше, по сравнению с аналогами!». В третьих, мое решение бесплатно, а услуга HH стоит 186 рублей за неделю. Откуда у безработного такие большие деньги??

5. PROFIT!

Продемонстрирую диаграмму прямо с Хедхантера. Пик, приходящийся на первый день объясняется тем, что это были новые резюме. Дальнейшие показатели просмотров меня вполне устроили.

стонкс!

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

Еще? Еще!