Боты
Remote Jobs Hub
Агрегатор удалённых вакансий из Telegram
- 6
- сервисов
- 5 + 2
- приложений и пакета
Проблема
Вакансии и заказы живут в десятках Telegram-каналов вперемешку с шумом, дублями и перепостами одного и того же оффера в пяти местах. Читать это вручную — час в день ради двух релевантных строк.
Система
Шесть сервисов в одном compose: MTProto-коллектор на Telethon читает только whitelisted-источники, rule-based префильтр отсекает очевидный шум до LLM, экстрактор на Anthropic structured outputs раскладывает пост в нормализованные поля (зарплата, формат, стек), дедупликация работает в два слоя — точная и семантическая через pgvector. Каталог отдаётся пользователю как Telegram Mini App, модерация источников — в отдельной админке. Авторизация Mini App проверяется по HMAC-SHA256 от initData на бэкенде: фронт никогда не передаёт telegram_id напрямую.
Роль
Соло-разработка: архитектура, все шесть сервисов, схема данных, CI.
Результат
Монорепо из 5 приложений и 2 общих пакетов, тесты гоняются на sqlite без поднятого Postgres, Alembic-миграция проверяется вживую в CI. Экстрактор по контракту не выдумывает факты — неизвестные поля остаются null (extra="forbid" в Pydantic-схеме).