270 lines
10 KiB
Markdown
270 lines
10 KiB
Markdown
# 🤖 HH.ru Bot - Автоматизация поиска работы
|
||
|
||
> Современный бот для автоматического поиска и отклика на вакансии с поддержкой ИИ-анализа
|
||
|
||
[](https://www.python.org/downloads/)
|
||
[](https://creativecommons.org/licenses/by-nc-sa/4.0/)
|
||
[](https://github.com/psf/black)
|
||
|
||
## 🎯 Что умеет бот
|
||
|
||
- **🔍 Умный поиск** - Находит релевантные вакансии по ключевым словам
|
||
- **🤖 ИИ-анализ** - Gemini AI оценивает соответствие резюме требованиям
|
||
- **📝 Автоматические отклики** - Отправляет заявки на подходящие вакансии
|
||
- **⚙️ Гибкая настройка** - Настраиваемые критерии поиска и фильтрации
|
||
- **📊 Детальная статистика** - Отчёты о проделанной работе
|
||
- **🛡️ Безопасность** - Имитация человеческого поведения, паузы между действиями
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
### 1. Установка
|
||
|
||
```bash
|
||
# Клонируем репозиторий
|
||
git clone https://github.com/itqop/hh-bot.git
|
||
cd hh-bot
|
||
|
||
# Устанавливаем зависимости
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 2. Настройка
|
||
|
||
Создайте файл `.env` в корне проекта:
|
||
|
||
```env
|
||
GEMINI_API_KEY=your_gemini_api_key_here
|
||
```
|
||
|
||
### 3. Подготовка резюме
|
||
|
||
Создайте файлы с информацией о себе в папке `data/`:
|
||
|
||
- `experience.txt` - Опыт работы
|
||
- `about_me.txt` - О себе
|
||
- `skills.txt` - Навыки и технологии
|
||
|
||
> 💡 При первом запуске бот автоматически создаст примеры этих файлов
|
||
|
||
### 4. Запуск
|
||
|
||
```bash
|
||
# Рекомендуемый способ
|
||
python -m hh_bot
|
||
|
||
# Альтернативный способ
|
||
python main.py
|
||
```
|
||
|
||
## 📋 Пример использования
|
||
|
||
1. **Запустите бота** одной из команд выше
|
||
2. **Настройте поиск** - введите ключевые слова (например: "Python junior")
|
||
3. **Выберите параметры** - максимальное количество откликов, использование ИИ
|
||
4. **Подтвердите запуск** - бот начнёт работу автоматически
|
||
5. **Дождитесь результатов** - получите подробный отчёт о проделанной работе
|
||
|
||
```
|
||
🚀 HH.ru АВТОМАТИЗАЦИЯ v2.0
|
||
==================================================
|
||
🏗️ Архитектурно правильная версия
|
||
🤖 С поддержкой Gemini AI
|
||
📄 Загрузка резюме из файлов
|
||
==================================================
|
||
|
||
⚙️ ТЕКУЩИЕ НАСТРОЙКИ:
|
||
🔍 Ключевые слова: python junior
|
||
📊 Максимум заявок: 40
|
||
🤖 Gemini AI: ✅ Доступен
|
||
🌐 Режим браузера: Видимый
|
||
|
||
🎯 НАСТРОЙКА ПОИСКА:
|
||
Ключевые слова [python junior]: python разработчик
|
||
Использовать AI фильтрацию? [y/n]: y
|
||
Максимум заявок [40]: 25
|
||
|
||
Начать автоматизацию? [y/n]: y
|
||
```
|
||
|
||
## 🏗️ Архитектура проекта
|
||
|
||
```
|
||
hh-bot/
|
||
├── 📁 hh_bot/ # Основной пакет
|
||
│ ├── 📁 cli/ # Интерфейс командной строки
|
||
│ │ └── interface.py # CLI логика
|
||
│ ├── 📁 config/ # Конфигурация
|
||
│ │ ├── settings.py # Настройки и константы
|
||
│ │ └── logging_config.py # Логирование
|
||
│ ├── 📁 core/ # Бизнес-логика
|
||
│ │ └── job_application_manager.py # Главный менеджер
|
||
│ ├── 📁 models/ # Модели данных
|
||
│ │ └── vacancy.py # Структуры вакансий
|
||
│ └── 📁 services/ # Сервисы
|
||
│ ├── hh_api_service.py # API HH.ru
|
||
│ ├── gemini_service.py # Gemini AI
|
||
│ └── browser_service.py # Автоматизация браузера
|
||
├── 📁 data/ # Файлы резюме
|
||
├── 📁 logs/ # Логи работы
|
||
├── main.py # Точка входа
|
||
├── requirements.txt # Зависимости
|
||
└── README.md # Документация
|
||
```
|
||
|
||
## ⚙️ Конфигурация
|
||
|
||
### Переменные окружения
|
||
|
||
| Переменная | Описание | Значение по умолчанию |
|
||
|------------|----------|-----------------------|
|
||
| `GEMINI_API_KEY` | API ключ для Gemini AI | - |
|
||
|
||
### Настройки в коде
|
||
|
||
```python
|
||
# В hh_bot/config/settings.py
|
||
class AppConstants:
|
||
# Параметры поиска
|
||
MAX_VACANCIES_PER_PAGE = 50
|
||
MAX_SEARCH_PAGES = 5
|
||
DEFAULT_MAX_APPLICATIONS = 40
|
||
|
||
# ИИ анализ
|
||
DEFAULT_AI_THRESHOLD = 0.7
|
||
|
||
# Таймауты
|
||
DEFAULT_TIMEOUT = 30
|
||
API_PAUSE_SECONDS = 0.5
|
||
```
|
||
|
||
## 🤖 ИИ-функциональность
|
||
|
||
### Как работает Gemini AI
|
||
|
||
1. **Анализ вакансии** - Извлекает требования из описания
|
||
2. **Сопоставление с резюме** - Сравнивает навыки и опыт
|
||
3. **Оценка соответствия** - Выставляет балл от 0.0 до 1.0
|
||
4. **Принятие решения** - Рекомендует откликаться или нет
|
||
|
||
### Пример анализа
|
||
|
||
```
|
||
🤖 ЭТАП 2: AI анализ вакансий
|
||
Анализ 1/15: Python разработчик...
|
||
✅ Добавлено в список для отклика
|
||
|
||
🎯 AI фильтрация завершена:
|
||
🤖 Проанализировано: 15
|
||
✅ Рекомендовано: 8
|
||
📈 % одобрения: 53.3%
|
||
```
|
||
|
||
## 📊 Статистика работы
|
||
|
||
После завершения работы бот предоставляет подробную статистику:
|
||
|
||
```
|
||
📊 ИТОГОВАЯ СТАТИСТИКА:
|
||
============================================================
|
||
📝 Всего заявок: 25
|
||
✅ Успешных: 18
|
||
❌ Неудачных: 2
|
||
⚠️ Уже откликались ранее: 5
|
||
📈 Успешность: 72.0%
|
||
============================================================
|
||
|
||
🎉 Отлично! Отправлено 18 новых заявок!
|
||
💡 Рекомендуется запускать автоматизацию 2-3 раза в день
|
||
```
|
||
|
||
## 🔧 Разработка
|
||
|
||
### Установка для разработки
|
||
|
||
```bash
|
||
# Клонируем и устанавливаем в dev режиме
|
||
git clone https://github.com/itqop/hh-bot.git
|
||
cd hh-bot
|
||
pip install -e .
|
||
|
||
# Устанавливаем dev зависимости
|
||
pip install pytest black flake8
|
||
```
|
||
|
||
### Запуск тестов
|
||
|
||
```bash
|
||
# Базовые тесты
|
||
python test_basic.py
|
||
|
||
# Или через pytest
|
||
python -m pytest test_basic.py -v
|
||
```
|
||
|
||
### Проверка качества кода
|
||
|
||
```bash
|
||
# Форматирование
|
||
python -m black hh_bot/ main.py
|
||
|
||
# Линтер
|
||
python -m flake8 hh_bot/ main.py --max-line-length=100
|
||
```
|
||
|
||
## 🛡️ Безопасность
|
||
|
||
- **Случайные паузы** между действиями (3-6 секунд)
|
||
- **Имитация человеческого поведения** в браузере
|
||
- **Respect robots.txt** и ограничения API
|
||
- **Graceful degradation** при ошибках
|
||
- **Подробное логирование** для мониторинга
|
||
|
||
## 📝 Получение Gemini API ключа
|
||
|
||
1. Перейдите на [Google AI Studio](https://makersuite.google.com/)
|
||
2. Войдите в свой Google аккаунт
|
||
3. Создайте новый API ключ
|
||
4. Добавьте его в файл `.env`
|
||
|
||
## ❓ FAQ
|
||
|
||
**Q: Бот не находит вакансии**
|
||
A: Проверьте ключевые слова поиска и настройки фильтрации
|
||
|
||
**Q: Gemini AI не работает**
|
||
A: Убедитесь что API ключ указан правильно в `.env` файле
|
||
|
||
**Q: Браузер не открывается**
|
||
A: Установите Chrome браузер, драйвер установится автоматически
|
||
|
||
**Q: Много ошибок в логах**
|
||
A: Проверьте подключение к интернету и доступность HH.ru
|
||
|
||
## 📄 Лицензия
|
||
|
||
**CC BY-NC-SA 4.0** - Некоммерческая лицензия с указанием авторства
|
||
|
||
⚠️ **ВАЖНО**: Проект запрещено использовать в коммерческих целях!
|
||
|
||
- ✅ Разрешено: Личное использование, обучение, исследования
|
||
- ❌ Запрещено: Продажа, коммерческие сервисы, монетизация
|
||
|
||
Подробности в файле [LICENSE](LICENSE)
|
||
|
||
## 🤝 Вклад в проект
|
||
|
||
1. Форкните репозиторий
|
||
2. Создайте ветку для новой функции
|
||
3. Внесите изменения
|
||
4. Добавьте тесты
|
||
5. Создайте Pull Request
|
||
|
||
## 📞 Поддержка
|
||
|
||
- 🐛 **Баги**: [GitHub Issues](https://github.com/itqop/hh-bot/issues)
|
||
- 💡 **Предложения**: [GitHub Discussions](https://github.com/itqop/hh-bot/discussions)
|
||
|
||
---
|
||
|
||
⭐ **Поставьте звезду, если проект был полезен!**
|