- BrainTools - https://www.braintools.ru -

Поиск работы в Telegram: как автоматизировать рутину с помощью JobStalker

Поиск работы часто превращается в бесконечный скроллинг по Telegram-каналам: десятки уведомлений, тонны сообщений, чтение длинных описаний вакансий, попытки понять, подходит ли это тебе. А ведь Telegram — один из самых популярных источников свежих предложений о работе, особенно в IT, маркетинге и фрилансе. Но вручную фильтровать всё это — сплошная потеря времени. Здесь на помощь приходят современные технологии: машинное обучение [1], которое может анализировать текст лучше, чем человек, и автоматизировать процесс.

Именно из этой идеи родился JobStalker — Telegram-бот, который мониторит публичные каналы с вакансиями, фильтрует их с помощью модели машинного обучения, оценивает релевантность и сохраняет подходящие варианты в удобной базе данных. Всё это с веб-интерфейсом для настройки и просмотра результатов. Проект полностью open-source, и вы можете развернуть его на своём ПК или сервере.

Ссылка на репозиторий [2]


Зачем бот для Telegram-каналов

Telegram-каналы — это золотая жила для поиска работы: там публикуются свежие вакансии в реальном времени, часто с прямыми контактами работодателей. Но проблема в объёме: каналы заспамлены нерелевантными постами, а ручной анализ утомителен. JobStalker решает это, используя:

  1. Конфиденциальность: Бот работает от вашего личного Telegram-аккаунта (с вашими API-ключами), данные не уходят на внешние серверы.

  2. Скорость и автоматизация: Модель машинного обучения быстро оценивает релевантность вакансий, фильтруя только то, что подходит под ваши критерии.

  3. Кастомизация: Вы сами выбираете каналы для мониторинга, настраиваете фильтры и просматриваете результаты через удобный веб-интерфейс.

  4. Поддержка GPU: Для ускорения анализа на мощных машинах.

В итоге вы получаете только релевантные вакансии, сохранённые в базе, без лишнего шума.


Архитектура инструмента

JobStalker построен с акцентом на простоту, гибкость и надёжность. Основные принципы: модульность, поддержка разных сред развертывания (от локального ПК до Docker) и интеграция с Telegram API. Вот ключевые компоненты:

1. Telegram-клиент

Мониторит указанные публичные каналы в реальном времени. Собирает новые сообщения с вакансиями и передаёт их на анализ. Требует авторизации через ваши личные API-ключи (API_ID и API_HASH с my.telegram.org [3]) для безопасной работы.

2. Модель машинного обучения

Сердце системы JobStalker — это встроенная модель машинного обучения, которая автоматически анализирует текст вакансий из Telegram-каналов, оценивает их релевантность и фильтрует только те предложения, которые соответствуют вашим критериям. Это позволяет избежать ручного просеивания сотен сообщений, сосредоточившись на самых подходящих вариантах. Модель работает полностью локально на вашем устройстве, обеспечивая конфиденциальность данных — ничего не отправляется на внешние серверы. Благодаря опциональной поддержке GPU (через установку extras [gpu]), анализ происходит быстро даже на больших объемах текстов, используя аппаратное ускорение для inference.

Как работает модель?

  • Анализ текста: Модель обрабатывает описание вакансии, извлекая ключевые элементы, такие как требуемые навыки (stack технологий), уровень зарплаты, локация, тип занятости (удаленная/офис) и другие параметры. Для этого используется комбинация техник обработки естественного языка (NLP): токенизация, извлечение сущностей (Named Entity Recognition) и векторизация текста.

  • Оценка релевантности: На основе ваших пользовательских предпочтений (которые вы задаете в конфигурации, например, ключевые слова вроде “Python developer” или “remote work”), модель рассчитывает score релевантности. Это может быть простая метрика, такая как косинусное сходство векторов (с использованием библиотек вроде scikit-learn или Sentence Transformers), или более сложная классификация, где вакансия помечается как “подходящая”, “частично подходящая” или “не релевантная”.

  • Фильтрация и сортировка: После анализа вакансии сортируются по убыванию score, и только те, что превышают заданный порог, сохраняются в базе данных. Это минимизирует шум от нерелевантных постов в каналах.

Технологии за кулисами:

  • Основной фреймворк: PyTorch или TensorFlow для запуска модели (с поддержкой GPU через CUDA). Проект использует легковесные предобученные модели, чтобы не требовать мощного оборудования — даже на CPU анализ занимает секунды.

  • Библиотеки NLP: Hugging Face Transformers для загрузки и использования моделей вроде BERT или DistilBERT, адаптированных для русского языка (поскольку многие вакансии в Telegram на русском). Это позволяет точно понимать контекст, синонимы и нюансы описаний.

  • Кастомизация: Вы можете заменить дефолтную модель на свою, дообучить её на личных данных (например, на архиве вакансий) или настроить параметры через конфиг-файл. Нет “черной магии” — вся логика [4] прозрачна и расширяема в коде.

Преимущества локальной модели:

  1. Безопасность: Ваши предпочтения и данные о вакансиях остаются на устройстве, без риска утечек.

  2. Скорость: На GPU обработка батча вакансий занимает доли секунды; на CPU — чуть дольше, но все равно эффективно.

  3. Гибкость: Поддержка обновлений модели без зависимости от облачных сервисов. В будущем планируется добавить кэширование результатов для еще большей оптимизации.

(Примечание: В текущей альфа-версии фокус сделан на базовой ML для фильтрации, но проект открыт для интеграции с крупными языковыми моделями (LLM), такими как Ollama или Llama, для более глубокого анализа. Например, LLM смогут генерировать краткие summary вакансий, извлекать ключевые навыки с помощью кастомных промптов и даже предлагать персонализированные рекомендации. Если вы разработчик, welcome внести вклад в эту фичу через pull requests!)

3. Веб-интерфейс

Простой и интуитивный сервер на http://localhost:8000 [5] (или другом порту). Здесь вы:

  • Авторизуете Telegram-аккаунт.

  • Настраиваете каналы для мониторинга.

  • Просматриваете отфильтрованные вакансии.

  • Управляете базой данных с результатами.

4. База данных

Хранит отфильтрованные вакансии для удобного доступа. Легковесная (вероятно, SQLite), чтобы не нагружать систему.

5. Конфигурация и прокси

Поддержка .env-файла для настройки (API-ключи, прокси для обхода ограничений). Всё асинхронно и эффективно.


Технологии

Проект использует современный стек для Python-разработки: • Python 3.11+ • Зависимости через pyproject.toml (pip для установки) • Docker и Docker Compose для контейнеризации (рекомендуемый способ развертывания) • Telegram API для интеграции с чатами • Опциональные extras: [gpu] для ускорения на видеокартах • PyInstaller для создания standalone-экзешников (Windows/Linux/macOS) • Виртуальные окружения (venv) для разработки из исходников

Нет лишних зависимостей — всё минималистично и легко расширяемо.


Что уже работает

  • Мониторинг публичных Telegram-каналов в реальном времени

  • Фильтрация вакансий с помощью модели машинного обучения

  • Оценка релевантности и сохранение в базу данных

  • Веб-интерфейс для конфигурации, авторизации и просмотра результатов

  • Поддержка CPU и GPU режимов

  • Несколько способов установки: pip, Docker, из исходников или standalone-экзешник

  • Конфигурация через .env (API-ключи, прокси)

Проект в альфа-версии, но уже полностью функционален для базового использования. Важно: используйте только свои API-ключи, чтобы избежать бана аккаунта Telegram.


Что в разработке

• Интеграция с локальными LLM-моделями (например, Ollama) для более детального анализа (summary, ключевые навыки) • Экспорт результатов в Markdown/JSON/CSV • Графический интерфейс с уведомлениями в Telegram • Кэширование и оптимизация для больших объёмов данных • Система пользовательских предпочтений (фильтры по зарплате, стеку технологий) • Поддержка приватных каналов и чатов (если позволит Telegram API)


Нужен фидбек

JobStalker — это мой личный проект для упрощения поиска работы, и он открыт для улучшений. Если вы пробуете его, поделитесь мыслями: от идей по архитектуре и UX до предложений по новым функциям. Может, добавить поддержку других источников вакансий (HH.ru [6], LinkedIn)? Или улучшить ML-модель?

Обсуждаем в issues или pull requests на GitHub [2]

Давайте сделаем поиск работы проще вместе! Если у вас есть вопросы по установке или использованию — пишите, помогу.

Автор: 10sorry

Источник [7]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/22998

URLs in this post:

[1] обучение: http://www.braintools.ru/article/5125

[2] Ссылка на репозиторий: https://github.com/10sorry/JobStalker

[3] my.telegram.org: http://my.telegram.org

[4] логика: http://www.braintools.ru/article/7640

[5] http://localhost:8000: http://localhost:8000

[6] HH.ru: http://HH.ru

[7] Источник: https://habr.com/ru/articles/975272/?utm_source=habrahabr&utm_medium=rss&utm_campaign=975272

www.BrainTools.ru

Rambler's Top100