Автоотклик на hh.ru (полуавтоматический, безопасный)
Скрипт ищет вакансии на hh.ru по ключевым словам, генерирует персонализированный текст отклика через ИИ (на основе вашего резюме и описания вакансии), открывает страницу в браузере и подставляет текст. Кнопку «Отправить» всегда нажимаете вы — это не нарушает правила hh.ru и не рискует аккаунтом.
Установка
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/playwright install chromium
Если скачивание браузера падает с 403 (регион), используйте зеркало:
PLAYWRIGHT_DOWNLOAD_HOST=https://cdn.npmmirror.com/binaries/playwright .venv/bin/playwright install chromium
Запуск веб-интерфейса (рекомендуется)
.venv/bin/python webui.py
Откройте http://localhost:5000 — там можно:
- создавать аккаунты (имя, регион, поисковые запросы, стиль)
- загружать резюме файлом (txt, md, docx, pdf)
- сохранять ключ сессии hh.ru (cookies из браузера) — нужен для поиска и списка резюме
- выбирать резюме на hh.ru — оно автоматически подставляется в модалке отклика
- искать вакансии и видеть их списком (название, компания, зарплата, опыт)
- генерировать тексты откликов через ИИ (редактируются перед отправкой)
- открывать вакансию в браузере с уже вставленным текстом и выбранным резюме
- отмечать отправленные — они больше не предлагаются
Ключ сессии hh.ru
Чтобы скрипт мог искать вакансии и видеть ваши резюме, нужны cookies из браузера:
- Войдите на hh.ru в браузере
- Откройте DevTools (F12) → вкладка Application/Хранилище → Cookies →
https://hh.ru - Скопируйте все cookies (главные:
hhtoken,hhuid,hhrole,_xsrf— старыхhh_sess/_hh_больше нет) - Вставьте в поле «Ключ сессии hh.ru» в настройках аккаунта и нажмите «Сохранить ключ»
После этого нажмите «Обновить список» рядом с «Резюме на hh.ru» и выберите резюме,
которое должно подставляться при отклике. Ключ хранится в accounts/<имя>/session.txt
(в git не попадает).
Запуск из терминала (CLI)
.venv/bin/python hh_respond.py --login my_account # войти в аккаунт (один раз)
.venv/bin/python hh_respond.py --account my_account # обработать аккаунт
.venv/bin/python hh_respond.py --limit 5 # максимум 5 откликов
.venv/bin/python hh_respond.py --dry-run # без браузера, только текст
Настройка аккаунта
Каждая папка в accounts/ — отдельный аккаунт со своей сессией:
accounts/
└── my_account/
├── config.json # запросы, регион, стиль, выбранное резюме
├── resume.txt # текст вашего резюме (для ИИ)
├── session.txt # ключ сессии hh.ru (cookies, не коммитить)
├── profile/ # сессия браузера (создаётся автоматически)
└── progress.json # уже отправленные отклики (автоматически)
В веб-интерфейсе всё это создаётся и редактируется без ручной работы с файлами.
Поисковые запросы
Поддерживаются операторы hh.ru:
| Запрос | Что найдёт |
|---|---|
Python разработчик |
Всё, где упоминается запрос |
NAME:Python разработчик |
Только по названию вакансии |
NAME:Python AND NOT NAME:senior |
По названию, исключая сеньоров |
Как это работает
- Скрипт парсит страницу поиска hh.ru по вашим запросам
- Для каждой новой вакансии получает описание
- ИИ генерирует текст отклика (вакансия + ваше резюме + стиль)
- Браузер открывает вакансию, жмёт «Откликнуться», вставляет текст
- Вы проверяете текст и нажимаете «Отправить»
- Отмечаете отправленное — скрипт переходит к следующей
Важно
- Скрипт не нарушает правила hh.ru: финальное действие всегда за человеком
- Не запускайте поиск слишком часто — между страницами есть паузы
- Если hh.ru покажет капчу — скрипт остановится, решите капчу вручную и запустите снова
.envсодержит API-ключ — не коммитьте его в git (уже добавлен в.gitignore)