ГлавнаяБлогАвтоотклик на hh

Автоотклик на вакансии hh.ru: бесплатный бот — как настроить за вечер

8 июля 20269 мининструмент

Зачем это нужно

Поиск работы на hh — это игра в числа. Отклик открывают в среднем на треть резюме, приглашают ещё реже, и чтобы дойти до нормального оффера, откликнуться надо на десятки, а то и сотни вакансий. Руками это выматывает: открыл, прочитал, вставил сопроводительное, нажал, повторил. Час в день на механику, которая не требует головы.

Я выкатил в открытый доступ бота на GitHub, который снимает с тебя эту рутину: сам ищет свежие вакансии по твоим критериям, отсекает мусор, шлёт отклик с сопроводительным и присылает ответы рекрутёров прямо в Telegram. Ты занимаешься собеседованиями, а не копипастом. Разберу, что он умеет, как поднять его у себя за вечер и как не подставить аккаунт под ограничения.

Сразу честно: hh запрещает автоматические отклики правилами. Бот ведёт себя аккуратно — через официальный API, с паузами и лимитом, — но риск для аккаунта остаётся. Это инструмент для личного пользования и на свой страх. Про то, как снизить риск, — отдельный раздел ниже.

Руками
⏱ ~1 час в день
📄 20–30 откликов
😮‍💨 копипаст сопроводительного
🔕 ответы ловишь вручную на hh
С ботом
⏱ 10 минут настройки — один раз
📄 до 50 откликов в день
🤖 сопроводительное подставляется само
🔔 ответы рекрутёров в Telegram
Разница не в количестве откликов, а в том, что рутину забирает бот — тебе остаётся то, что требует головы.

Что умеет бот

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

Функция Что делает
Поиск каждые 5 минутгоняет твои поисковые запросы и ловит вакансии, как только их публикуют
Скоринг по правиламоценивает заголовок, зарплату, стек и опыт — откликается только на то, что подходит
Отклик с сопроводительнымшлёт через официальный API с рандомной задержкой и твоим письмом
Ответы на тестыопционально подключает нейросеть, чтобы отвечать на вопросы работодателя
Сообщения рекрутёров в Telegramпересылает ответы и приглашения тебе в бота, чтобы не сидеть на hh
Буст резюме и статусыподнимает резюме в поиске и ведёт историю: кто посмотрел, пригласил, отказал
Вся история откликов хранится локально в SQLite — на одну вакансию бот не откликнется дважды.

Как выглядит решение по конкретной вакансии — каждый критерий даёт свой балл, и только сумма выше порога проходит в отклик:

Python-разработчик
ООО «Ромашка» · 180 000 ₽ · опыт 1–3 года
Заголовок совпал с запросом+3.0
Зарплата выше вилки+2.5
Стек: python, fastapi+2.0
Опыт подходит+1.0
Итог8.5 — откликаемся
Порог проходного балла задаёшь в .env. Ниже порога вакансия отсеивается с причиной — увидишь её в Telegram.

Как он устроен

Под капотом ничего экзотического — обычный питоновский стек, который поднимается на любом ноутбуке или дешёвом VPS.

Python 3.12 + Playwright. Вход в аккаунт — через настоящий браузер, а не подделку заголовков. Ты один раз логинишься руками, сессия сохраняется, дальше бот использует её сам.

Официальный API hh для откликов. Сами отклики идут не кликами по кнопкам, а через API — это стабильнее и чище, чем эмуляция мыши.

SQLite. Локальная база помнит, куда ты уже откликался, какие вакансии отсеяны и в каком они статусе.

Telegram Bot API. Весь интерфейс — в Telegram: уведомления об откликах, сообщения рекрутёров, команды управления. Отдельный интерфейс не нужен.

Опциональная нейросеть. Только если хочешь автоответы на вопросы-тесты работодателя. Без неё бот работает полностью бесплатно.

🔍
Поиск hh
каждые 5 мин
⚖️
Скоринг
фильтр по правилам
📤
Отклик
через API hh
📲
Telegram
уведомления тебе
Полный цикл без твоего участия: от находки вакансии до уведомления об отклике и ответе рекрутёра.

Установка по шагам

Нужен Python 3.12 или новее и терминал. Дальше — пять команд. Если поднимал хоть раз что-то по инструкции, займёт минут десять.

terminal
# 1. клонируем репозиторий
git clone https://github.com/YAMAKAYAMACO/hh-autoresponder
cd hh-autoresponder

# 2. виртуальное окружение и зависимости
python -m venv .venv && source .venv/bin/activate
pip install -e .

# 3. ставим браузер для входа
playwright install chromium
На Windows активация окружения — .venv\Scripts\activate вместо source. Остальное одинаково.

После этого копируешь .env.example в .env и заполняешь его — это следующий шаг. Без заполненного конфига бот не поймёт, кто ты, что ищешь и куда слать уведомления.

Настройка .env

Весь мозг бота — в одном файле. Кода трогать не нужно, только вписать свои значения. Разберу ключевые поля.

.env
# Telegram — интерфейс бота
TG_BOT_TOKEN=токен от @BotFather
TG_ADMIN_CHAT_ID=твой chat id

# доступ к hh
HH_LOGIN=твой логин
HH_PASSWORD=пароль

# что искать и что отсекать
SEARCH_QUERIES_RAW=Python разработчик; backend developer
STACK=python, fastapi, postgres
NEGATIVE_KEYWORDS=стажёр, 1С, продажи
SALARY_MIN=150000

# сопроводительное и темп
COVER_LETTER=Здравствуйте! Меня заинтересовала...
APPLY_DELAY_MIN=40
APPLY_DELAY_MAX=180
DAILY_LIMIT=50
Значения для примера. Поля стоп-слов и стека — твой фильтр качества: чем точнее заполнишь, тем меньше мусорных откликов.

Ключевые для качества поля — NEGATIVE_KEYWORDS и SALARY_MIN. Первое режет вакансии, куда ты идти не хочешь (стажировки, чужой стек, не та роль), второе отсекает низкую вилку. Именно они превращают «спам по всему» в «отклики только на нужное».

Запуск и Telegram

Сначала — разовый вход. Запускаешь manual_login.py, откроется браузер, логинишься в hh руками (включая капчу и SMS, если есть). Сессия сохранится локально, и больше вводить пароль не придётся. После этого стартуешь основной процесс:

# разовый вход в аккаунт python manual_login.py # запуск бота python -m app.main

Дальше бот живёт сам, а ты видишь его работу в Telegram — примерно так:

🤖 hh-autoresponder
Отклик отправлен
Python-разработчик — 180 000 ₽
score 8.5 · ООО «Ромашка»
Пропущено
Стажёр Python — без зарплаты
стоп-слово «стажёр» · score 2.1
💬 Ответ рекрутёра · Ромашка
«Здравствуйте! Готовы созвониться завтра в 15:00?»
сегодня отправлено 12 из 50
Так выглядят уведомления бота: отклик отправлен, вакансия отсеяна с причиной, пришёл ответ рекрутёра. Пример интерфейса.

Управлять и смотреть статистику можно командами прямо в чате — не нужно лезть в консоль:

Команды бота
/stats — статистика
/today — что за сегодня
/pause — пауза откликов
/resume — продолжить
/boost — поднять резюме
Сводка за день
📤 Отправлено — 47
👀 Открыли резюме — 16
💬 Ответили — 5
🎯 Пригласили — 3
Пауза, буст резюме и вся статистика — из Telegram одной командой. Значения для примера.

Чтобы бот работал круглосуточно, а не пока открыт ноутбук, кинь его на дешёвый VPS и заверни в systemd или tmux — процесс переживёт закрытие сессии. Логика та же, что у любого скрипта-демона.

Сопроводительное письмо: как не выглядеть спамом

Тут важный нюанс. Платные сервисы генерят письмо под каждую вакансию нейросетью — этот бот шлёт один шаблон на всех (поле COVER_LETTER в конфиге). Звучит как минус, но на деле одно хорошо написанное письмо работает не хуже пачки шаблонных AI-текстов — если написать его правильно. А hh показывает сопроводительное рекрутёру прямо в списке откликов: часто именно первые две строки решают, откроют резюме или пролистают.

Раз письмо одно на всех — в нём не должно быть ни названий компаний, ни имён. Пиши под семью ролей, а не под конкретную вакансию:

✗ Так пролистают
«Здравствуйте! Хочу у вас работать, рассмотрите моё резюме. Ответственный, коммуникабельный, быстро обучаюсь.»
✓ Так откроют резюме
«Здравствуйте! Backend-разработчик на Python, 3 года на FastAPI и высоконагруженных сервисах. Готов обсудить задачи вашей команды — релевантные проекты в резюме, на связи в любое время.»
Разница не в вежливости, а в конкретике: во втором сразу видно роль, стек и опыт.

Что держать в голове, когда пишешь свой COVER_LETTER:

Первое предложение — кто ты и ключевой стек. Без «ищу работу» и «пишу по вакансии» — рекрутёр и так в откликах.

Второе — польза или сильная сторона конкретикой. «Поднимал сервисы до N RPS» бьёт «ответственный и стрессоустойчивый» в клочья.

Убери воду. «Коммуникабельный, обучаемый, в команде и сам» — это листают. Каждое слово должно нести факт.

2–4 предложения, не полотно. Длинные письма в списке откликов не читают — обрежется на второй строке.

Часть вакансий требует ответить на вопросы работодателя — без ответа отклик не уходит. Если подключить LLM-ключ (OpenAI или другой), бот отвечает на эти вопросы сам. Без ключа такие вакансии просто пропускаются, чтобы не слать пустой отклик — это нормально, их обычно немного.

Риски и как их снизить

Не буду продавать сказку. Автоматические отклики нарушают правила hh, и площадка может ограничить аккаунт. Полностью убрать риск нельзя — можно только вести себя так, чтобы поведение было неотличимо от активного, но живого соискателя.

Держи человеческий темп
У самого hh потолок — 200 откликов в день. Держись заметно ниже: рандомные задержки 40–180 секунд и 40–60 откликов в день. Сотни откликов в час — самый быстрый способ словить ограничение.
Не откликайся на всё
Точные стоп-слова и вилка. Отклики только на релевантное выглядят естественно и повышают конверсию в приглашения.
Аккаунт — который не жалко
Не гоняй автоответчик на единственном рабочем аккаунте с идеальной историей, если он тебе критичен.
Не оставляй без присмотра
Раз в день загляни: что отправилось, нет ли странных откликов. Telegram-уведомления для этого и сделаны.

Живое сопроводительное под нишу и аккуратный темп решают больше, чем кажется: бот экономит время на механике, но не заменяет нормальное резюме. Если резюме слабое, никакая автоматизация конверсию не вытянет — тут работает та же логика, что и во всём поиске работы.

Бесплатный бот против платных сервисов

Сервисов автооткликов на hh — десяток: hhgo, jobturbo, hh-sniper и другие. Стоят они 300–1000 ₽ в месяц, ставить ничего не надо — зашёл, нажал, погнали. Так зачем возиться со своим ботом? Разложу по-честному, где что выигрывает.

Этот бот (open-source) Платный сервис
ЦенаБесплатно, MIT300–1000 ₽/мес
Лимит откликовсвой, в разумных рамкахчасто 25/день на бесплатном тарифе
Где крутитсятвой комп или VPSчужое облако
hh-логин и парольостаётся у тебя на машинеотдаёшь стороннему сервису
Сопроводительноеодин шаблон на всехAI под каждую вакансию
Кодоткрыт, читаешь самзакрыт
Настройкатерминал и .env, ~вечерготово из коробки
Зелёным — где вариант объективно сильнее. У каждого свой набор.

Вывод простой. Не хочешь возиться с терминалом и нужны письма под каждую вакансию — плати, готовый сервис проще. Важнее цена, контроль и то, что логин от hh не улетает на чужой сервер, — бери этот бот. И главное честно: оба варианта в серой зоне правил hh, так что «безопаснее» тут не про сервис, а про темп и лимиты — а их у своего бота ты держишь сам.

Частые вопросы

Забанят ли аккаунт на hh за автоотклики?
hh прямо запрещает автоматические отклики, и аккаунт теоретически могут ограничить. Бот шлёт отклики через официальный API с рандомными задержками и дневным лимитом, чтобы поведение было похоже на ручное, но полностью риск это не убирает. Гоняй на аккаунте, который не жалко, и не ставь лимит в сотни откликов в день.
Автоотклик на hh бесплатный?
Да, код открытый и лежит на GitHub — берёшь и запускаешь у себя. Платными будут только опциональные вещи: если подключишь нейросеть для ответов на тесты работодателя, заплатишь за токены модели. Сам бот денег не просит и подписок не требует.
Нужно ли уметь программировать?
Кода писать не нужно — вся настройка через один файл .env. Но базовые навыки терминала пригодятся: склонировать репозиторий, поставить Python и зависимости, один раз залогиниться. Если разворачивал что-то по инструкции хоть раз, справишься за вечер.
Как бот понимает, на какие вакансии откликаться?
Ты задаёшь поисковые запросы, стоп-слова, нужный стек и вилку по зарплате в .env. Бот ищет вакансии каждые 5 минут, прогоняет каждую через правила-скоринг (заголовок, зарплата, стек, опыт) и откликается только на подходящие. Мусор отсекается до отправки отклика.
Что с сопроводительным письмом?
В .env лежит твой шаблон сопроводительного, и бот прикладывает его к каждому отклику. Если работодатель задаёт вопросы-тесты, можно подключить нейросеть — она ответит за тебя. Без неё вакансии с обязательными вопросами просто пропускаются.
Куда приходят ответы рекрутёров?
Бот мониторит сообщения от работодателей и пересылает их тебе в Telegram — не нужно сидеть в отклике на hh. Там же видно статусы: кто посмотрел резюме, кто пригласил, кто отказал.
На чём работает бот технически?
Python 3.12, Playwright для входа в аккаунт, SQLite для хранения истории откликов, Telegram Bot API как интерфейс. Вход разовый: логинишься руками через manual_login.py, сессия сохраняется локально, дальше бот работает сам.

Главное

Если коротко

Бот берёт на себя механику откликов на hh: ищет вакансии по твоим критериям, отсекает мусор скорингом, шлёт отклик с сопроводительным и присылает ответы рекрутёров в Telegram. Ставится за вечер: пять команд, один файл .env, разовый вход. Помни про правила hh — держи человеческий темп, точные стоп-слова и аккаунт, который не жалко. Автоматизация экономит время, но нормальное резюме за тебя не напишет.

Код открытый — забирай, форкай, дорабатывай под себя: github.com/YAMAKAYAMACO/hh-autoresponder. Звезда репозиторию приветствуется.

Больше автоматизаций и разборов в Telegram — «Digital-трафик»

Читать дальше

Все статьи
Ссылка скопирована