| 
				
					
						 | 
			||
|---|---|---|
| hh_bot | ||
| .flake8 | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| config.example | ||
| main.py | ||
| requirements.txt | ||
| test_basic.py | ||
		
			
				
				README.md
			
		
		
			
			
				
				
			
		
	
	🤖 HH.ru Bot - Автоматизация поиска работы
Современный бот для автоматического поиска и отклика на вакансии с поддержкой ИИ-анализа
🎯 Что умеет бот
- 🔍 Умный поиск - Находит релевантные вакансии по ключевым словам
 - 🤖 ИИ-анализ - Gemini AI оценивает соответствие резюме требованиям
 - 📝 Автоматические отклики - Отправляет заявки на подходящие вакансии
 - ✉️ ИИ-сопроводительные письма - Автоматически генерирует персональные письма для каждой вакансии
 - ⚙️ Гибкая настройка - Настраиваемые критерии поиска и фильтрации
 - 📊 Детальная статистика - Отчёты о проделанной работе
 - 🛡️ Безопасность - Имитация человеческого поведения, паузы между действиями
 
🚀 Быстрый старт
1. Установка
# Клонируем репозиторий
git clone https://github.com/itqop/hh-bot.git
cd hh-bot
# Устанавливаем зависимости
pip install -r requirements.txt
2. Настройка
Создайте файл .env в корне проекта:
GEMINI_API_KEY=your_gemini_api_key_here
3. Подготовка резюме
Создайте файлы с информацией о себе в папке data/:
experience.txt- Опыт работыabout_me.txt- О себеskills.txt- Навыки и технологии
💡 При первом запуске бот автоматически создаст примеры этих файлов
4. Запуск
# Рекомендуемый способ
python -m hh_bot
# Альтернативный способ
python main.py
📋 Пример использования
- Запустите бота одной из команд выше
 - Настройте поиск - введите ключевые слова (например: "Python junior")
 - Выберите параметры - максимальное количество откликов, использование ИИ
 - Подтвердите запуск - бот начнёт работу автоматически
 - Дождитесь результатов - получите подробный отчёт о проделанной работе
 
🚀 HH.ru АВТОМАТИЗАЦИЯ v2.0
==================================================
🏗️ Архитектурно правильная версия
🤖 С поддержкой Gemini AI
📄 Загрузка резюме из файлов
==================================================
⚙️ ТЕКУЩИЕ НАСТРОЙКИ:
🔍 Ключевые слова: python junior
📊 Максимум заявок: 40
🤖 Gemini AI: ✅ Доступен
🌐 Режим браузера: Видимый
🎯 НАСТРОЙКА ПОИСКА:
Ключевые слова [python junior]: python разработчик
Использовать AI фильтрацию? [y/n]: y
Использовать ИИ-сопроводительные письма? [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 | - | 
Настройки в коде
# В 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
    
    # Сопроводительные письма
    USE_AI_COVER_LETTERS = True
    
    # Таймауты
    DEFAULT_TIMEOUT = 30
    API_PAUSE_SECONDS = 0.5
🤖 ИИ-функциональность
Как работает Gemini AI
- Анализ вакансии - Извлекает требования из описания
 - Сопоставление с резюме - Сравнивает навыки и опыт
 - Оценка соответствия - Выставляет балл от 0.0 до 1.0
 - Принятие решения - Рекомендует откликаться или нет
 
Пример анализа
🤖 ЭТАП 2: AI анализ вакансий
Анализ 1/15: Python разработчик...
✅ Добавлено в список для отклика
🎯 AI фильтрация завершена:
   🤖 Проанализировано: 15
   ✅ Рекомендовано: 8
   📈 % одобрения: 53.3%
✉️ ИИ-сопроводительные письма
Как работает автоматическая генерация писем
- Обнаружение возможности - Ищет кнопку "Добавить сопроводительное письмо"
 - Анализ вакансии - Извлекает требования, обязанности, название и компанию
 - Персонализация - Использует ваши реальные данные из файлов резюме
 - Генерация письма - Gemini AI создает уникальное письмо для каждой вакансии
 - Автозаполнение - Вставляет письмо в поле и отправляет заявку
 
Особенности ИИ-писем
- Персональные - Каждое письмо уникально для конкретной вакансии
 - Честные - Не придумывает несуществующий опыт
 - Человечные - Дружелюбный тон без официоза
 - Контактные - Всегда включает контакт "Telegram — @itqen"
 - Адаптивные - Работает с любыми типами вакансий
 
Пример сгенерированного письма
Добрый день!
Заинтересовался вашей вакансией Python-разработчика. 
У меня есть опыт работы с Python, Django и базами данных, 
что соответствует вашим требованиям.
Готов обсудить возможности сотрудничества и рассказать 
подробнее о своем опыте.
С уважением,
Telegram — @itqen
📊 Статистика работы
После завершения работы бот предоставляет подробную статистику:
📊 ИТОГОВАЯ СТАТИСТИКА:
============================================================
📝 Всего заявок: 25
✅ Успешных: 18
❌ Неудачных: 2
⚠️ Уже откликались ранее: 5
📈 Успешность: 72.0%
============================================================
🎉 Отлично! Отправлено 18 новых заявок!
💡 Рекомендуется запускать автоматизацию 2-3 раза в день
🔧 Разработка
Установка для разработки
# Клонируем и устанавливаем в dev режиме
git clone https://github.com/itqop/hh-bot.git
cd hh-bot
pip install -e .
# Устанавливаем dev зависимости
pip install pytest black flake8
Запуск тестов
# Базовые тесты
python test_basic.py
# Или через pytest
python -m pytest test_basic.py -v
Проверка качества кода
# Форматирование
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 ключа
- Перейдите на Google AI Studio
 - Войдите в свой Google аккаунт
 - Создайте новый API ключ
 - Добавьте его в файл 
.env 
❓ FAQ
Q: Бот не находит вакансии
A: Проверьте ключевые слова поиска и настройки фильтрации
Q: Gemini AI не работает
A: Убедитесь что API ключ указан правильно в .env файле
Q: Браузер не открывается
A: Установите Chrome браузер, драйвер установится автоматически
Q: Много ошибок в логах
A: Проверьте подключение к интернету и доступность HH.ru
📄 Лицензия
CC BY-NC-SA 4.0 - Некоммерческая лицензия с указанием авторства
⚠️ ВАЖНО: Проект запрещено использовать в коммерческих целях!
- ✅ Разрешено: Личное использование, обучение, исследования
 - ❌ Запрещено: Продажа, коммерческие сервисы, монетизация
 
Подробности в файле LICENSE
🤝 Вклад в проект
- Форкните репозиторий
 - Создайте ветку для новой функции
 - Внесите изменения
 - Добавьте тесты
 - Создайте Pull Request
 
📞 Поддержка
- 🐛 Баги: GitHub Issues
 - 💡 Предложения: GitHub Discussions
 
⭐ Поставьте звезду, если проект был полезен!