Бот для откликов на hh.ru за два месяца просмотрел 1518 вакансий, отправил 339 заявок и довёл до приглашения на собеседование 26 из них. Это 7,7% откликов — примерно один разговор с работодателем на 13 автоматических заявок; для русскоязычных разработчиков история полезна не обещанием «найти работу на автопилоте», а цифрами о том, где автоматизация действительно помогает, а где только разгоняет шум.
Эксперимент провёл Python-разработчик с примерно двумя годами опыта, и сообщает Habr / Карьера. Летом он искал удалённую работу в AI-направлениях: LLM, RAG, автоматизация и Python-бэкенд. Вместо ручного просмотра десятков карточек автор собрал систему, которая находила вакансии, оценивала их через языковую модель, генерировала сопроводительное письмо и отправляла отклик.
Бот работал с 17 июня по 17 августа. После закрытия API hh.ru для соискателей в декабре 2025 года автор использовал браузерную автоматизацию на Playwright и собственный залогиненный профиль. Дважды в день планировщик Windows запускал поиск по 14 запросам, среди которых AI Engineer, LLM Engineer, RAG, Python FastAPI и чат-боты на Python. Поиск ограничивали удалённым форматом и вакансиями с требуемым опытом до шести лет.
Система отсекала объявления со стоп-словами вроде senior, lead, тимлид, архитектор, 1С и стажёр. Затем LLM выставляла оценку от 0 до 100: высокий балл получали вакансии, напрямую связанные с машинным обучением и LLM, более умеренный — Python-бэкенд, где AI занимает лишь часть задач. Отклик уходил только после преодоления заданного порога. Для каждой подходящей роли бот составлял короткое письмо на четыре—семь предложений, сверял отправку и присылал карточку в Telegram. Состояние — уже проверенные вакансии, отклики и чаты — хранилось в SQLite.
Воронка: отказ приходит быстрее приглашения
Из 339 автоматических откликов 133 закончились отказом, 110 были просмотрены без изменения статуса, а 70 работодатели вообще не открыли. Заявки ушли в 258 разных компаний. Половина отказов пришла менее чем за сутки: медианное время составило 19 часов. Четверть отказов поступила менее чем за полтора часа, три четверти — за 4,5 дня. Приглашения по времени автор корректно не считал: на hh.ru последующая переписка с работодателем меняет отметку последнего обновления статуса.
Самая заметная разница появилась не после усложнения модели, а после банальной чистки входящих вакансий. В первой версии бот не фильтровал уровень позиции: за две недели он откликнулся 152 раза и получил семь приглашений, или 4,6%. С 1 июля автор начал отсеивать senior- и lead-роли, поднял порог оценки с 60 до 75 и ограничил формулировки, по которым письмо могло слишком явно выглядеть сгенерированным. За следующие 11 дней — 26 откликов и шесть приглашений, то есть 23%.
Автор справедливо не выдаёт этот скачок за статистическое доказательство: шесть приглашений — маленькая выборка, на которой легко поймать удачную неделю. Но практический вывод выглядит убедительно: для кандидата с ограниченным опытом точность отбора важнее количества отправленных резюме. Автоматизировать отклики на вакансии, где кандидат объективно не совпадает с уровнем, — это не масштабирование поиска, а масштабирование отказов.
Следующая правка тоже была приземлённой. Модель начала приписывать кандидату зарплатные ожидания, поэтому автор запретил ей писать о деньгах и формате работы иначе, чем дословно указано в профиле. Одновременно шкалу оценки сделали строже: 85 и выше — только для ролей, прямо связанных с AI, а порог отклика подняли до 78. В период с 12 по 17 июля бот отправил 58 заявок и получил шесть приглашений — 10,3%.
Письмо о кандидате оказалось полезнее письма о компании
С 18 июля изменили первую строку сопроводительного. Вместо дежурного захода о том, чем занимается компания, письмо стало начинаться с релевантного опыта кандидата: главное требование вакансии связывали с конкретным проектом из резюме. За этот период было 35 откликов и пять приглашений, или 14,3%. Рекрутеру не нужно объяснять, что делает его собственная компания; ему нужно быстро понять, решал ли соискатель похожую задачу.
Попытка нарастить объём дала обратный эффект. С 3 августа бот расширил набор запросов, снизил порог с 78 до 74 и увеличил лимит до 12 откликов за один прогон. За две недели система отправила 68 заявок, но получила лишь два приглашения — 2,9%. Медианная оценка вакансий почти не изменилась: 86 против 88 раньше. Значит, модель по-прежнему считала новые объявления близкими по тематике, но эта тематическая близость хуже совпадала с тем, кого работодатели были готовы позвать.
Это важное ограничение для любого бота для откликов. LLM сравнительно легко определяет, встречаются ли в вакансии слова про AI, Python или RAG. Гораздо сложнее предсказать, сочтёт ли конкретный рекрутер опыт конкретного кандидата достаточным. После 1 июля вакансии с оценкой 60—79 дали четыре приглашения из 50 откликов, диапазон 80—89 — 10 из 93, а 90—99 — пять из 42. Связь есть, но разрыв между категориями невелик: высокий балл модели не заменяет человеческую оценку уровня, доменного опыта и конкуренции за позицию.
Отдельный любопытный сигнал связан с сопроводительными. До середины июля там, где hh.ru не предлагал поле для письма, бот откликался без него: восемь приглашений на 20 заявок. С письмом за тот же период вышло восемь приглашений на 191 отклик. Делать из этого вывод, что письма вредят, нельзя: вероятнее всего, работодатели, не требующие сопроводительного, используют другой, более простой процесс отбора. После того как бот начал отправлять текст в чат уже после отклика, разница почти исчезла: три приглашения из 31 против семи из 97.
Эксперимент не доказывает, что автоматические отклики улучшают поиск работы для всех: это один кандидат, одно резюме и короткий летний период. Зато он показывает более полезную вещь: бот для откликов стоит строить не как безостановочный генератор заявок, а как фильтр и помощник для точного позиционирования опыта. Следующий вопрос для таких систем — смогут ли они оценивать не только совпадение ключевых слов, но и реальную вероятность разговора с работодателем, не превращая поиск работы в поток нерелевантных писем.


