Как устроен поток
- Источник — сайт или API (Habr, HH, Работа России…). При подключении берётся «последняя страница» поиска и фиксируется точка отсчёта. Старые вакансии в архив не пишутся.
- Сбор 2–4 раза в сутки (и кнопка «Проверить новые») — забирает только то, что новее точки отсчёта. Ещё действует фильтр топ-позиций (C-level / директор / крупный руководитель).
- Архив на странице «Вакансии» — единый поток новых топ-вакансий. Для парсера не важно, под клиента это или под Telegram: один поток.
- Позиция (Подбор) — что ищем для клиента. Из полей собирается опрос. Кнопка «Запустить опрос» ставит scrape по каждому включённому источнику с фильтрами позиции. Расписание источников по-прежнему ходит своим query.
- Подборка — матчинг уже спарсенных вакансий по полям позиции (без резюме). Не запускает новый парсинг.
Разделы админки
- Источники
- Список лент, добавление и правка. Для Telegram — каналы через запятую и ключевые слова. «Проверить новые» ставит задачу в очередь.
- Вакансии
- Архив после фильтра топа. Можно сузить по источнику и топ/не топ.
- Подбор
- Позиции клиента, форма с доступными фильтрами, опрос по источникам, shortlist.
- Задачи
- Очередь парсинга: baseline / scrape, сколько найдено и сколько сохранено.
Позиция и опрос — зачем два слоя
Поля позиции (должность, город, ЗП…) описывают намерение.
Опрос — список конкретных источников с уже применёнными фильтрами
(например Habr: role=директор). Источник попадает в опрос,
только если объявил поддержку нужного фильтра. Уровень C-level в опрос
не уходит: он остаётся общим фильтром после загрузки.
На форме «Новая позиция» под каждым полем видно, какие подключённые источники его принимают. «Собрать опрос» → можно поправить значения или снять источник → «Создать позицию». По клику на позицию опрос открывается снова.
Частые вопросы
Почему после «Проверить новые» в архиве 0 или мало вакансий?
В архив попадают только вакансии новее точки отсчёта и прошедшие фильтр топа. Если с последнего сбора ничего нового не вышло — saved=0 это нормально. Смотрите «Задачи»: found — сколько парсер увидел, saved — сколько реально записали.
Что значит статус «Молчит»?
Несколько пустых сборов подряд (нет новых топ-вакансий или лента пустая). Источник не отключён — его стоит проверить вручную или посмотреть ошибку в таблице.
Позиция влияет на то, что парсится?
Да, если нажать «Запустить опрос»: каждый включённый источник опрашивается с фильтрами позиции (например role=Коммерческий директор). Расписание и кнопка «Проверить новые» на странице источников по-прежнему используют query самого источника. HH / Telegram / LinkedIn из опроса пока не запускаем.
Чем «Подборка» отличается от сбора?
«Подборка» только ранжирует уже лежащие в архиве вакансии по полям позиции. Новый парсинг не запускает.
Почему в форме позиция видит «город», а в опросе его нет?
Город остаётся для матчинга. В опрос попадают только ключи, которые текущие подключённые источники умеют (сейчас у Habr / Работа России / RemoteOK в основном должность). Когда подключим HH — появятся город, ЗП и др.
Забирается ли вся история сайта?
Нет. При добавлении источника фиксируется точка отсчёта; дальше только newer. Полный бэкап истории в договор не входит.
Сколько источников можно?
До 20, включая Telegram. В шапке видно текущее число, например 3/20.
Где смотреть, что парсер реально вернул?
«Задачи» — статус и счётчики. «Вакансии» — то, что прошло фильтры. Если нужно сырой ответ адаптера без записи в БД — это уже debug API парсера (для разработки).
Что делать, если источник сломался?
Смена вёрстки/API — не гарантийный дефект продукта (см. ТЗ). В админке будет ошибка у источника и failed-задача. Дальше — починка адаптера или замена источника.
Быстрая проверка
- Откройте Источники — статусы Active, есть точка отсчёта.
- Нажмите «Проверить новые» у одного источника → на Задачи статус «Готово».
- Откройте Вакансии — список (может не вырасти, если новинок нет).
- На Подбор создайте позицию или откройте существующую — посмотрите опрос.
- Нажмите «Подборка» — shortlist по архиву.