Files
hh_auto/README.md
T

5.9 KiB

Автоотклик на 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 из браузера:

  1. Войдите на hh.ru в браузере
  2. Откройте DevTools (F12) → вкладка Application/Хранилище → Cookies → https://hh.ru
  3. Скопируйте все cookies (главные: hhtoken, hhuid, hhrole, _xsrf — старых hh_sess/_hh_ больше нет)
  4. Вставьте в поле «Ключ сессии 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 По названию, исключая сеньоров

Как это работает

  1. Скрипт парсит страницу поиска hh.ru по вашим запросам
  2. Для каждой новой вакансии получает описание
  3. ИИ генерирует текст отклика (вакансия + ваше резюме + стиль)
  4. Браузер открывает вакансию, жмёт «Откликнуться», вставляет текст
  5. Вы проверяете текст и нажимаете «Отправить»
  6. Отмечаете отправленное — скрипт переходит к следующей

Важно

  • Скрипт не нарушает правила hh.ru: финальное действие всегда за человеком
  • Не запускайте поиск слишком часто — между страницами есть паузы
  • Если hh.ru покажет капчу — скрипт остановится, решите капчу вручную и запустите снова
  • .env содержит API-ключ — не коммитьте его в git (уже добавлен в .gitignore)