Радар вакансий (Job Radar) — личный сервис, который сам собирает вакансии с hh.ru и ещё ~120 сайтов, склеивает дубли, отсеивает лишнее и помогает вести отклики и контакты с HR в одной таблице.
Поиск работы — это ежедневный обход агрегаторов и карьерных страниц компаний, одни и те же вакансии на разных сайтах и ручной учёт откликов. Сначала я собрал в n8n агрегатор вакансий, который публиковал подборку отдельной HTML-страницей. Одной страницы оказалось мало: нужны были статусы, заметки, история и контакты работодателей. Так агрегатор вырос в отдельное веб-приложение с мини-CRM, а n8n остался роботом, который собирает данные.
Моя роль: спроектировал и самостоятельно реализовал весь сервис — от пайплайна сбора до интерфейса.
Дашборд: вакансии за день и месяц, вилка зарплат, востребованные навыки (демо-режим)
Одна таблица вместо десятка вкладок: фильтры, вкладки «Активные», «В архиве», «Скрытые»
Таблицу вакансий каждый настраивает под свой поиск: колонки можно скрыть, переставить перетаскиванием и закрепить слева, чтобы при горизонтальной прокрутке название вакансии и компания оставались на месте.
Кроме автосбора по расписанию, поиск можно запустить кнопкой «Искать сейчас». Прогресс идёт по реальным этапам пайплайна, в конце — сколько найдено и сколько из них новых.
Отдельно ведётся список целевых компаний с порталом вакансий, контактами HR и ИТ-аккредитацией — чтобы писать напрямую, а не только откликаться через сайты.
Настройки таблицы: видимость, порядок и закрепление колонок
«Искать сейчас»: прогресс сбора по этапам
Целевые работодатели
Сбор вакансий — это workflow в n8n на моём сервере. Его запускают три триггера: расписание (проверка каждые 30 минут), вебхук от кнопки «Искать сейчас» в приложении и ручной запуск для отладки.
Дальше пайплайн забирает настройки поиска из приложения, собирает список источников, открывает сайты в headless Chromium через Browserless, объединяет результаты и фильтрует их по роли, ключевым и стоп-словам. По отобранным вакансиям он открывает карточки, дополняет детали и отправляет всё в веб-приложение.
После каждого шага узел «Прогресс» сообщает приложению, на каком этапе сбор, — отсюда прогресс-бар в интерфейсе. Отдельная ветка пачками проверяет, не сняты ли старые вакансии с публикации, и переносит такие в архив.
Workflow «Job Radar Multisource» в n8n: 31 узел — триггеры, сбор, фильтр, детали, отправка и проверка архива
Прошёл путь от личной задачи до работающего сервиса: n8n и Browserless для сбора, Node.js, Express и SQLite для приложения, интерфейс на React-компонентах общей дизайн-системы DS Storm.
AI в пайплайне сознательно не используется: отбор идёт по правилам, без зависимости от LLM. Для знакомства есть демо-режим на выдуманных вакансиях и компаниях — все скриншоты интерфейса сняты в нём.