Metadata-Version: 2.4
Name: hhcli
Version: 0.2.1
Summary: Неофициальный CLI-клиент для поиска работы и откликов на hh.ru.
License: MIT
License-File: LICENSE
Author: fovendor
Author-email: fovendor@gmail.com
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: flask (>=3.0.0,<4.0.0)
Requires-Dist: html2text (>=2025.4.15,<2026.0.0)
Requires-Dist: platformdirs (>=4.0.0,<5.0.0)
Requires-Dist: requests (>=2.31.0,<3.0.0)
Requires-Dist: sqlalchemy (>=2.0.23,<3.0.0)
Requires-Dist: textual (>=0.43.0,<0.44.0)
Description-Content-Type: text/markdown

# hh-cli

Неофициальный CLI-клиент для поиска работы и откликов на hh.ru.

`hh-cli` — это авторизованное приложение, позволяющее искать вакансии, просматривать их, отмечать понравившиеся и откликаться на них в интерфейсе терминала. 

> **Примечание:** hhcli — это авторизованное (легальное) приложение, одобренное hh.ru, однако, оно разрабатывается независимым разработчиком и не является официальным!

## Ключевые возможности

- **TUI-интерфейс:** Современный и отзывчивый интерфейс на базе [Textual](https://github.com/textualize/textual), работающий в любом современном терминале.
- **Два режима поиска:** Автоматический (на основе рекомендаций hh.ru для вашего резюме) и ручной (гибкий поиск по ключевым словам, городу, формату работы и другим критериям).
- **Отклики:** Возможно выбрать несколько вакансий и откликнуться на все одной командой, используя персональный шаблон сопроводительного письма.
- **Локальная база данных:** Вся информация: профили, история откликов, кэш вакансий и справочников — хранятся в локальной базе данных SQLite. Сервер `hhcli` ничего не хранит и не обрабатывает персональные данны, вся информация хранится у вас локально (позднее будет опубликован код сервера в [этом](https://lalala.com) репозитории).
- **Интеллектуальная фильтрация:** Приложение позволяет скрывать дубликаты (sity spam) и выделять вакансии, на которые ранее уже были отклики (по точному ID или по связке "Название+Компания").
- **Профили:** Приложение позволяет создавать несколько профилей (аккаунтов hh.ru) с поддержкой нескольких резюме внутри профиля.
- **Конфигурация:** Все параметры ручного поиска, шаблоны сопроводительных писем и внешний вид приложения настраиваются через экран настроек внутри самого приложения.

## Установка

Убедитесь, что у вас установлен **Python 3.9+** и **pip**.

Установка производится одной командой. Скрипт исключает конфликты с другими Python-пакетами в системе, установка всех зависимостей происходит в изолированное окружение с помощью `pipx`.

```bash
bash <(curl -sSL https://raw.githubusercontent.com/fovendor/hhcli/master/install.sh)
```

> **Примечание:** Если `pipx` отсутствует в системе, скрипт запросит пароль (`sudo`) для его установки. Выполнение скриптов из интернета несёт потенциальные риски, ознакомьтесь с [кодом скрипта](install.sh) перед запуском.

## Удаление

Для удаления приложения выполните команду:

```bash
pipx uninstall hhcli
```
Команда удаляет приложение, но не ваши данные. Для удаления всех данных (база данных, профили, кэш, отклики), удалите каталог `~/.local/share/hhcli`.

## Первый запуск и настройка

#### 1. Авторизация

После установки запустите процесс аутентификации. Вам нужно будет придумать короткое имя для вашего профиля (go, python, pm, analyst и т.д).

```bash
hhcli --auth analyst
```
В системном браузере загрузится страница hh.ru для аутентификации на сайте. После успешного входа нужно запустить приложение.

#### 2. Запуск

Выполните команду:

```bash
hhcli
```

При первом запуске с несколькими резюме приложение предложит выбрать, какое из них использовать для поиска.

#### 3. Настройка

Вся настройка (ключевые слова для поиска, шаблон сопроводительного письма, внешний вид) производится внутри приложения. Нажмите клавишу `c` на любом из основных экранов, чтобы перейти в меню настроек.

## Использование

Основное взаимодействие с приложением происходит через TUI-интерфейс.

### Основные команды (CLI)

| Команда | Описание |
| :--- | :--- |
| `hhcli` | Запускает основной TUI-интерфейс. |
| `hhcli --auth <имя_профиля>` | Выполняет аутентификацию для нового профиля или обновляет токен авторизации для существующего. |

### Горячие клавиши (внутри приложения)

| Клавиша | Действие |
| :--- | :--- |
| `Пробел` | Выбрать/снять выбор с текущей вакансии. |
| `A` | Откликнуться на все выбранные вакансии. |
| `H` | Открыть экран с историей откликов для текущего резюме. |
| `C` | Открыть экран настроек профиля. |
| `Q` / `Esc` | Вернуться на предыдущий экран или выйти из приложения. |
| `←` / `→` | Переключение между страницами в списке вакансий. |


## TO DO

Дальнейшие планы:

- Переработка первых двух экранов (были унаследованы от старой [bash-версии](https://github.com/fovendor/hhcli/tree/legacy)).
- Интерактивное добавление профилей без ввода команды `hhcli --auth <profile>`.
- Улучшение поддержки и тестирование на других ОС (macOS, Windows).
- Расширение возможностей фильтрации и аналитики по истории откликов.
- Добавление новых тем оформления.
- Добавление экрана с дашбордом на основе истории откликов.
- Добавление переписки с работодателями.
- Добавление кастомизации сопроводительного письма для некоторых из выбранных вакансий.

## История

Изначально hhcli не планировался как большой и долго поддерживаемый проект. Но текущая ситуация на рынке труда: глупые алгоритмы отбора, фейковые вакансии, некомпетентные HR'ы и в целом низкая эффективность ручного поиска и откликов через сайт мотивируют меня развивать этот инструмент дальше.

Прежняя версия hhcli делегировала практически всю работу с API утилите [hh-applicant-tool](https://github.com/s3rgeym/hh-applicant-tool), отчасти поэтому была полностью переписана в текущее исполнение. Подробнее можно ознакомиться в ветке [legacy](https://github.com/fovendor/hhcli/tree/legacy). 

Legacy-версия перестала поддерживаться 26.10.2025, её дальнейшая работоспособность не гарантирована и полностью зависит от `hh-applicant-tool`.

## Лицензия

Проект распространяется под лицензией MIT. Смотрите файл `LICENSE` для подробностей.
