Личные проекты
Frontend Jobs Radar: канал вакансий, где каждую проверяет дешёвая AI-модель
Сервис на TypeScript и Cloudflare Workers собирает frontend-вакансии, проверяет каждую с помощью JEV и публикует короткие посты на английском в открытый Telegram-канал. Новые вакансии выходили в 32 днях из 34 с запуска.
- 32 из 34 дней с новыми вакансиями в открытом канале, 20 сентября – 23 октября 2026
- ≈$0,00008 стоит одна проверка JEV на ~2 000 входных токенов
- 20 Telegram-каналов в сборщике, помимо карьерных страниц, ATS-платформ и джоб-бордов
- Моя роль
- Единственный разработчик — от сбора источников и фильтрации до AI-интеграции, публикации и эксплуатации
- Период
- Сентябрь 2026 – сейчас
- Навыки

На этой странице
Задача
В 2026 году поиск работы на Vue выглядел так: одни и те же вакансии на разных площадках, устаревшие объявления, мошенники и реклама, а ещё вакансии, где Vue упомянут один раз, а работа совсем про другое. Хотелось автоматизировать сам поиск и читать только то, что стоит прочитать.
В тех же источниках много вакансий на React, Angular и другие frontend-стеки, которые не подходят мне, но могут подойти кому-то ещё. Поэтому у проекта два выхода: узкая личная лента для моего поиска и открытый Telegram-канал Frontend Jobs Radar с frontend-вакансиями в целом.
Моя роль
Личный проект, который я начал в сентябре 2026 года, после ухода из inSales. Спроектировал, сделал и поддерживаю его сам: источники, фильтрация, AI-проверки, публикация, база данных и релизы.
Что я сделал
Сбор вакансий и поиск первоисточника
Сервис на TypeScript работает в Cloudflare Workers с базой D1 и по расписанию собирает вакансии с карьерных страниц компаний и ATS-платформ, джоб-бордов и из Telegram. Telegram-сборщик — отдельный воркер: он читает 20 настроенных каналов, хранит сессию в зашифрованном виде, учитывает пагинацию и лимиты и умеет продолжать работу после прерывания.
Сам сбор оказался меньшей частью работы. Одна и та же вакансия встречается на нескольких площадках, часто через агрегаторы, поэтому сервис ищет исходное объявление, убирает дубли и сохраняет ссылку на источник. То, что не успевает обработаться за один запуск, уходит в надёжные очереди и не теряется.
Два фильтра для разных задач
Правил по ключевым словам не хватило. В настоящей frontend-вакансии может не оказаться ожидаемых слов, а нерелевантный пост может где-то упомянуть frontend. Поэтому перед публикацией вакансию проверяет JEV — небольшая и дешёвая модель от TypeSafe AI для таких решений «да или нет». Для открытого канала вопрос такой: это действительно frontend-вакансия и в ней достаточно подробностей? Для моей личной ленты вопрос другой: стоит ли она моего времени? Вакансия, которая не подходит мне, может пригодиться кому-то в канале.
Посты на английском в рамках бюджета
Если вакансия прошла проверку, отдельная языковая модель пишет короткий пост на английском: роль, стек, локация, формат работы, зарплата и ограничения по найму, если они есть в объявлении, и ссылки на вакансию и первоисточник. Перед публикацией текст проходит автоматические проверки: корректная разметка Telegram, английский язык и только те факты, которые есть в источнике.
На AI для открытого канала есть жёсткий бюджет — $3 в календарный месяц. Каждый вызов заранее резервирует максимальную стоимость, а потом резерв закрывается по фактическому расходу, который подтвердил провайдер. Если результат вызова неизвестен, резерв остаётся, и запрос не повторяется вслепую. Когда бюджет заканчивается или пост не проходит проверку, вакансия ждёт в очереди и не уходит в канал необработанным текстом.
Публикация без дублей
Посты выходят по расписанию. Бот умеет редактировать уже опубликованное сообщение, например если вакансию закрыли, и присылает мне ежедневные и еженедельные отчёты. Если Telegram не подтвердил доставку, сервис не отправляет пост повторно: дубль в открытом канале хуже, чем задержка. Изменения базы данных сначала прогоняются на свежей резервной копии, а на время релиза расписания останавливаются и потом восстанавливаются.
Результат
- С момента запуска 20 сентября 2026 года открытый канал публиковал новые вакансии в 32 днях из 34 — посчитано по публичному архиву канала 23 октября 2026 года. Оба пропуска пришлись на воскресенья.
- Одна проверка JEV на ~2 000 входных токенов стоит около $0,00008, то есть примерно восемь центов за тысячу проверок. Поэтому проверять моделью можно каждую вакансию — с обычной LLM это было бы слишком дорого.
- Фильтрация не идеальна: иногда в канал всё ещё попадает не frontend-вакансия, и я продолжаю настраивать источники и вопросы к модели.
Где посмотреть
Канал открытый: t.me/frontendjobsradar. Исходный код закрыт.