CLI tool for automating job seeker actions on hh.ru
Project description
openhunt
CLI-инструмент для автоматизации поиска работы на hh.ru.
Возможности
- Автоматические отклики на вакансии (по поисковому запросу или из рекомендаций)
- Гибкая стратегия сопроводительных писем (шаблон, LLM-генерация, авто)
- Сохранение поисковых запросов для повторного использования
- Сохранение сессии — авторизация один раз, дальше всё работает автоматически
В планах
- Автоматическое заполнение анкет работодателей
- Общение с работодателями в чатах
- TUI-интерфейс
- Система памяти — openhunt учится на ваших ответах и со временем работает автономно
Установка
Требуется Python 3.12+.
uv tool install openhunt-cli
Или через pipx / pip:
pipx install openhunt-cli
# или
pip install openhunt-cli
Браузер Chromium установится автоматически при первом запуске.
Использование
Авторизация
При первом запуске нужно авторизоваться на hh.ru. Откроется браузер — введите номер телефона, решите капчу и введите код из SMS:
openhunt login
Сессия сохраняется между запусками. Повторный логин нужен только когда сессия истечёт.
Настройка резюме
Сохраните ID резюме один раз (ID можно найти в URL вашего резюме на hh.ru):
openhunt resume set <id>
После этого --resume можно не указывать — сохранённое резюме используется автоматически.
Отклики на вакансии
# По поисковому запросу
openhunt apply --query "python developer"
# С использованием языка запросов hh.ru
openhunt apply --query "NAME:(python OR golang) AND NOT стажёр"
# Из рекомендованных вакансий (на основе вашего резюме)
openhunt apply --recommended
# Ограничить количество откликов (по умолчанию 10)
openhunt apply --query "backend python" --limit 20
# По сохранённому запросу
openhunt apply --saved backend
# Пробный запуск — показать вакансии без отправки откликов
openhunt apply --query "backend python" --dry-run
# Переопределить резюме для конкретного запуска
openhunt apply --resume <другой_id> --query "frontend react"
Автоматически пропускаются:
- Вакансии, на которые вы уже откликались
- Вакансии с обязательной анкетой
Подробнее о языке поисковых запросов hh.ru: https://hh.ru/article/25295
Сопроводительное письмо
Стратегия
Управляйте тем, когда и как отправляется сопроводительное письмо:
# Через флаг (на один запуск)
openhunt apply --query "python" --letter auto
# Сохранить стратегию (на все запуски)
openhunt letter strategy auto
Доступные стратегии:
| Стратегия | Необязательное письмо | Обязательное письмо | Токены LLM |
|---|---|---|---|
off |
Пропустить | Шаблон | 0 |
template |
Шаблон | Шаблон | 0 |
llm |
LLM-генерация | LLM-генерация | Много |
auto |
Пропустить | LLM если настроен, иначе шаблон | Мало |
По умолчанию: llm если LLM настроен, template если нет.
auto — оптимальный баланс: экономит токены на необязательных письмах, но генерирует персональное письмо когда работодатель его требует.
Шаблон
# Посмотреть текущий шаблон
openhunt letter show
# Задать свой
openhunt letter set "Здравствуйте! Буду рад обсудить вакансию."
# Вернуть стандартный
openhunt letter reset
LLM-генерация
Для генерации персональных писем через LLM:
openhunt llm setup --provider openrouter --api-key <ключ> --model <модель>
Поддерживаются OpenRouter и кастомные OpenAI-совместимые провайдеры. После настройки LLM автоматически генерирует письма на основе описания вакансии.
Поднятие резюме
Поднимает все резюме в поиске (доступно раз в 4 часа):
openhunt resume raise
Сохранённые запросы
Сложные запросы можно сохранить и использовать по имени:
# Сохранить запрос
openhunt query save backend "NAME:(python OR golang) AND NOT стажёр"
# Список сохранённых запросов
openhunt query list
# Удалить запрос
openhunt query delete backend
Разработка
git clone https://github.com/tarminik/openhunt.git
cd openhunt
uv sync
uv run openhunt --help
Лицензия
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openhunt_cli-0.3.0.tar.gz.
File metadata
- Download URL: openhunt_cli-0.3.0.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8bb202386fafade79d0b57095ea772c4e4099e712d1c6ef2c98ff90a0ff90fb
|
|
| MD5 |
8096d5b82859ce70e33b42586265304e
|
|
| BLAKE2b-256 |
43fbdf442c564afb46e2cc97825672c2961991ebfd435a68669d8d34ca263a35
|
File details
Details for the file openhunt_cli-0.3.0-py3-none-any.whl.
File metadata
- Download URL: openhunt_cli-0.3.0-py3-none-any.whl
- Upload date:
- Size: 26.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81cd1c4da95b1c2c9ce20db4ceb606a6e193d042710c56c0c5ddec7b30d922bf
|
|
| MD5 |
0be47a018d6453854ddee5677f03ef05
|
|
| BLAKE2b-256 |
d15f6a3457bc58ec39a635ce369a7cad259cb5d08f010596089879320eab84c6
|