# 🤖 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 # Клонируем репозиторий 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) --- ⭐ **Поставьте звезду, если проект был полезен!**