hh-bot/README.md

270 lines
10 KiB
Markdown
Raw Normal View History

2025-06-27 09:57:34 +02:00
# 🤖 HH.ru Bot - Автоматизация поиска работы
> Современный бот для автоматического поиска и отклика на вакансии с поддержкой ИИ-анализа
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
## 🎯 Что умеет бот
- **🔍 Умный поиск** - Находит релевантные вакансии по ключевым словам
- **🤖 ИИ-анализ** - Gemini AI оценивает соответствие резюме требованиям
- **📝 Автоматические отклики** - Отправляет заявки на подходящие вакансии
- **⚙️ Гибкая настройка** - Настраиваемые критерии поиска и фильтрации
- **📊 Детальная статистика** - Отчёты о проделанной работе
- **🛡️ Безопасность** - Имитация человеческого поведения, паузы между действиями
## 🚀 Быстрый старт
### 1. Установка
```bash
# Клонируем репозиторий
2025-06-27 10:06:50 +02:00
git clone https://github.com/itqop/hh-bot.git
2025-06-27 09:57:34 +02:00
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 режиме
2025-06-27 10:06:50 +02:00
git clone https://github.com/itqop/hh-bot.git
2025-06-27 09:57:34 +02:00
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
## 📞 Поддержка
2025-06-27 10:06:50 +02:00
- 🐛 **Баги**: [GitHub Issues](https://github.com/itqop/hh-bot/issues)
- 💡 **Предложения**: [GitHub Discussions](https://github.com/itqop/hh-bot/discussions)
2025-06-27 09:57:34 +02:00
---
**Поставьте звезду, если проект был полезен!**