Перейти к содержанию
суббота, 26 сентября 2026 г.

ИИ Вестник

Главные новости о развитии искусственного интеллекта в России

Разработчик создал бота для автоматизации откликов на hh.ru в обход платной подписки

Источник: Все публикации в потоке Разработка
Developer coding job application bot on laptop, office desk, focused.
Generated by Sourceful Riverflow (RouterAI)

Российский разработчик представил бота, который автоматически ищет вакансии, пишет сопроводительные письма и откликается на hh.ru, заменяя платную подписку hh PRO. В своём рассказе он раскрыл технические детали работы, включая ошибки, из-за которых бот долгое время имитировал успешные действия.

Разработчик, столкнувшийся с проблемой поиска работы, создал программного бота для автоматизации откликов на крупнейшей российской платформе по трудоустройству hh.ru. По его словам, основная сложность для соискателей сегодня заключается не в прохождении собеседования, а в том, чтобы вообще до него дойти: после отправки резюме часто приходит автоотказ или ответа не следует вовсе. В то же время hh.ru предлагает платную подписку hh PRO, которая включает ИИ-сопроводительные письма, автоподнятие резюме и подсветку. Стоимость подписки составляет 279 рублей в неделю или 799 рублей в месяц с автоматическим продлением. Разработчик посчитал платить за то, что можно автоматизировать бесплатно, нецелесообразным и написал собственного бота.

Бот способен выполнять ключевые функции hh PRO без подписки: он самостоятельно ищет вакансии, генерирует сопроводительные письма с помощью ИИ, отвечает на анкеты работодателей, анализирует отказы и поднимает резюме в поиске. Кроме того, он может отправлять до 200 откликов в день, что значительно превышает возможности ручного поиска. По замерам разработчика, один отклик через браузер занимает около 17 секунд, а суточный лимит в 200 откликов обусловлен ограничениями самого hh.ru, а не техническими возможностями бота. В процессе эксплуатации выяснилось, что бот часто сообщал об успешных действиях, которые на самом деле не выполнялись: например, кнопка «Напомнить об отклике» оставалась не нажатой, хотя в логе появлялась запись об успехе. Аналогично бот «добавлял» навыки в резюме, которых там не оказывалось, а причина отказа могла быть придумана искусственно.

Технически бот использует гибридный подход: поиск вакансий осуществляется через официальный API hh.ru там, где это возможно, и через обычную выдачу на сайте, поскольку API отдаёт не все вакансии. Например, при первом сборе по выдаче «вакансии для вашего резюме» было найдено 833 вакансии, отсутствовавшие в кеше API. Для откликов применяется Selenium с профилем Chrome, что требует однократного ручного входа в аккаунт. Состояние страницы поиска hh.ru хранит в элементе <template id="HH-Lux-InitialState">, где есть флаг userTestPresent, указывающий на наличие анкеты у вакансии. Все отправленные данные сохраняются в SQLite. Бот может работать с несколькими аккаунтами, запускаться по расписанию в Docker, а вход в hh.ru на сервере осуществляется через браузер в noVNC. По желанию бот дублирует письма на электронную почту работодателя, но не более 30 писем в сутки.

Одной из главных проблем стала имитация успешных действий. Разработчик обнаружил, что JavaScript-клик на элементах hh.ru часто не срабатывает, тогда как ActionChains даёт результат. Например, при выборе навыка из списка JS-клик сработал 0 раз из 3, а ActionChains — 3 из 3; для уровней владения навыками — 11 из 30 и 30 из 30 соответственно. Кнопка мессенджера в шапке вообще не открывается от JS-клика. После клика код просто записывал в лог «[+] Нажата кнопка...» и возвращал True, не проверяя изменения на странице. Это приводило к тому, что бот считал действие выполненным, хотя оно не происходило. После доработки код стал перечитывать страницу и искать подтверждение: например, для кнопки «Напомнить об отклике» проверяется, исчезла ли она, а для поднятия резюме — появилось ли время следующего поднятия. Теперь при неудаче выводится предупреждение WARNING, а не OK.

Ещё одна ошибка была связана с лимитом навыков в резюме. hh.ru позволяет указать не более 30 навыков, и при превышении форма молча откатывается к последнему сохранённому состоянию. Бот же пытался добавить 26 навыков, из которых 6 уже были в резюме, но написаны иначе (аббревиатура вместо полного названия, «A/B» вместо «A / B», по-русски вместо английского). В результате все добавленные навыки пропадали. Сейчас бот сравнивает навыки после нормализации и учитывает свободные места по живой форме перед каждым раундом, не трогая чужие навыки. Также разработчик отметил, что использование официального API для откликов закрыто: POST /negotiations возвращает 403 Forbidden, а получение своих резюме недоступно. Некоторые утилиты обходят это, извлекая ключи из Android-приложения hh.ru, но разработчик не стал так делать, чтобы не рисковать блокировкой аккаунта.

Для российского рынка труда появление такого бота может иметь двоякие последствия. С одной стороны, он предоставляет соискателям бесплатную альтернативу платной подписке hh PRO, экономя деньги и время. С другой стороны, массовая автоматизация откликов может увеличить нагрузку на платформу и привести к ужесточению мер против ботов. Уже сейчас hh.ru ограничивает количество откликов в день, а использование сторонних инструментов может нарушать пользовательское соглашение. Разработчик подчёркивает, что его бот не использует чужие ключи и работает в рамках лимитов, но остаётся открытым вопрос, как отреагирует администрация hh.ru на подобные решения. В перспективе возможны либо блокировки таких ботов, либо улучшение официальных платных сервисов, чтобы они оставались конкурентоспособными.

В сравнении с hh PRO бот не предоставляет некоторых функций, таких как подсветка резюме, статистика по конкурентам и опция «Хочу здесь работать». Однако все остальное, включая ИИ-сопроводительные и поднятие резюме, доступно бесплатно. Это делает бота привлекательным для активных соискателей, готовых мириться с техническими сложностями. Вопрос о дальнейшем развитии остаётся открытым: будет ли разработчик делиться ботом с другими, как отреагирует hh.ru и не последуют ли аналогичные решения от других программистов. Пока же история демонстрирует, что автоматизация может быть эффективной, но требует тщательного тестирования и внимания к деталям, чтобы избежать самообмана в логах.

Читайте также