JobHunter — это мощный асинхронный Telegram-бот для парсинга и агрегации вакансий с популярных сайтов по поиску работы. Он позволяет создавать гибкие подписки с фильтрами, получать мгновенные уведомления о новых вакансиях и экспортировать результаты для дальнейшего анализа в формате Markdown или CSV.
Актуальная ссылка на Codeberg.
- Поддержка нескольких платформ:
- Rabota.by (+ hh.ru)
- Habr Career (career.habr.com)
- Dev.by (jobs.devby.io)
- Belmeta.com
- Praca.by
- Гибкие подписки: Создавайте подписки на поиск по ключевым словам с детальной фильтрацией (опыт, зарплата, график, регион и т.д.).
- Объединенный поиск: Возможность создать одну подписку, которая будет искать вакансии сразу на всех поддерживаемых сайтах.
- Мгновенные уведомления: Бот автоматически проверяет сайты с помощью
APSchedulerи присылает уведомления о новых вакансиях прямо в Telegram. - Поиск через Google (not only) Dork: Встроенный инструмент для поиска вакансий на сайтах компаний, которые не публикуются на джоб-порталах.
- Экспорт данных: Выгружайте все найденные по подписке вакансии в форматах
.CSVили.MD(Markdown). - Простое управление: Удобный интерфейс с кнопками для управления подписками, построенный с использованием
FSMв aiogram. - Асинхронная архитектура: Весь код, включая скрейперы (
curl-cffi) и работу с базой данных (SQLAlchemy 2.0 async), полностью асинхронен.
- Python 3.10 или выше
- Аккаунт в Telegram и токен для вашего бота (получить у @BotFather)
-
Клонируйте репозиторий:
git clone https://github.com/lonesomestranger/JobHunter.git cd JobHunter -
Создайте и активируйте виртуальное окружение:
# Для Windows python -m venv venv .\venv\Scripts\activate # Для macOS/Linux python3 -m venv venv source venv/bin/activate
-
Установите зависимости:
pip install -r requirements.txt
-
Настройте переменные окружения:
- Скопируйте файл
.env.exampleв новый файл с названием.env.# Для Windows copy .env.example .env # Для macOS/Linux cp .env.example .env
- Откройте файл
.envв текстовом редакторе и заполните его:TELEGRAM_BOT_TOKEN="ВАШ_ТЕЛЕГРАМ_ТОКЕН" ADMIN_CHAT_ID="ВАШ_ТЕЛЕГРАМ_ID" SCHEDULER_INTERVAL_MINUTES=30
TELEGRAM_BOT_TOKEN: Токен, который вы получили от @BotFather.ADMIN_CHAT_ID: Ваш личный Telegram ID. Бот будет считать вас администратором, предоставляя доступ к командам управления пользователями. Узнать свой ID можно у бота @userinfobot.SCHEDULER_INTERVAL_MINUTES: Интервал в минутах для запуска планировщика. По умолчанию 30 минут.
- Скопируйте файл
-
Запустите бота:
python main.py
После запуска бот готов к работе. Найдите его в Telegram и отправьте команду /start.
/start- Запускает бота и показывает приветственное сообщение.☰ Меню- Открывает главное меню с основными функциями:- Создать подписку: Запускает пошаговый процесс создания новой подписки на поиск вакансий.
- Мои подписки: Показывает список всех ваших активных подписок, позволяет их просматривать, редактировать, экспортировать и удалять.
- Поиск Google Dork: Позволяет найти вакансии на корпоративных сайтах по ключевому слову.
Эти команды доступны только пользователю, чей ID указан в ADMIN_CHAT_ID.
/add_user <telegram_id>- Предоставляет доступ к боту новому пользователю.- Пример:
/add_user 123456789
- Пример:
/del_user <telegram_id>- Отзывает доступ у пользователя и удаляет все его данные.- Пример:
/del_user 123456789
- Пример:
JobHunter/
├── bot/ # Логика Telegram-бота (хендлеры, клавиатуры, FSM)
│ ├── handlers/
│ │ └── subscription_flows/ # Разделенная логика FSM для каждой платформы
├── database/ # Модели SQLAlchemy и настройка подключения к БД
├── scrapers/ # Модули-скрейперы для каждого сайта
├── .env.example # Пример файла с переменными окружения
├── config.py # Загрузка конфигурации с помощью Pydantic
├── filters.json # JSON-конфигурация фильтров для сайтов
├── main.py # Главный файл для запуска бота
├── requirements.txt # Список зависимостей
└── scheduler.py # Логика фоновых задач по проверке вакансий (APScheduler)
Если Вы хотите внести свой вклад в код, заказать доработку или просто обсудить проект и его развитие, Вы можете связаться со мной по актуальным контактам, которые можно найти в моем профиле.
Этот проект распространяется под лицензией MIT. Подробности смотрите в файле LICENSE.
Ключевые слова: rabota.by, hh.ru, career.habr.com, dev.by, belmeta.com, praca.by, jobs.devby.io, dev.by, агрегатор вакансий, парсер вакансий.