Все проекты
Инженерия данных · AI-агенты Избранное2025

Платформа скрейпинга вакансий с AI

Мультиисточниковый парсер вакансий, чей «конструктор источников» с помощью AI-агента создаёт проверенную конфигурацию парсера по любой ссылке.

Приватный репозиторий
200+
Автотестов (живые + офлайн)
минуты
От ссылки до рабочего парсера
3
Режима загрузки (basic / stealth / Playwright)

Технологии

  • Python
  • FastAPI
  • Playwright
  • Alpine.js
  • SQLite
  • Claude / GPT SDKs
  • Directus
  • pytest

Задача

Обычно подключение нового сайта с вакансиями означает, что разработчик вручную пишет CSS/XPath-селекторы и логику пагинации для каждого сайта — это медленно, хрупко и дорого в поддержке, когда сайты меняются. Масштабировать сбор на много источников таким способом невозможно.

Подход

Я построил платформу на FastAPI и Playwright, которая собирает вакансии по конфигурациям YAML / CSS-селекторов с пагинацией и stealth-режимами загрузки для сайтов с тяжёлым JavaScript. Главная особенность — агентный конструктор источников: вы вставляете ссылку на job-board, а LLM (Claude / GPT через SDK) управляет живым браузером, снимает DOM, выводит селекторы списка и пагинации и выдаёт полную проверенную SourceConfig, которая открывается в редакторе для просмотра. Результаты нормализуются и загружаются в headless CMS (Directus) с дедупликацией и отслеживанием актуальности.

Результаты

200+ автотестов в живых и офлайн-наборах поддерживают надёжность платформы при изменениях на сайтах. Подключение нового источника сократилось с часов ручного написания селекторов до минут: агент превращает ссылку в работающий проверенный парсер, который можно сразу просмотреть и запустить.

Инженерные решения

  • Агентный конструктор источников: LLM (Claude / GPT через SDK) управляет живым браузером, снимает DOM, выводит селекторы списка и пагинации и выдаёт полную проверенную SourceConfig для просмотра.
  • Мультиисточниковый скрейпинг по декларативным конфигурациям YAML / CSS-селекторов с пагинацией и шагами автоматизации.
  • Три режима загрузки — basic, stealth и полный Playwright — для статических и JavaScript-тяжёлых сайтов.
  • Нормализованная загрузка в headless CMS (Directus) с дедупликацией и отслеживанием актуальности (first_seen / last_seen).
  • Ограниченные по времени проверки состояния каждого источника и валидация, подкреплённые 200+ автотестами.

Скриншоты и схемы

Реальные снимки интерфейса и графики — исходный код закрыт, бренды клиентов не показаны.

Дашборд источников — состояние, число найденных вакансий и актуальность по каждому источнику.
«Создать источник с AI» — LLM превращает ссылку в проверенную конфигурацию.
Обзорный дашборд — статистика запусков, актуальность и оповещения о дрейфе извлечения.
Нормализованные вакансии и компании, готовые к отправке в CMS.
Пайплайн сбора — конфигурация → скрейпинг → нормализация → CMS.

Подробный разбор

Платформа рассматривает парсер как данные, а не код: каждый источник — это декларативная SourceConfig (селекторы, пагинация, режим загрузки, шаги автоматизации), которую можно версионировать, валидировать и проверять на работоспособность. Именно этот подход делает возможным AI-конструктор: задача агента — просто выдать корректную конфигурацию, которую система уже умеет запускать и тестировать.

Агент работает в плотном цикле «восприятие → действие» с реальной браузерной сессией: переходит по страницам, снимает отрисованный DOM, предлагает селекторы для списка и отдельных полей, проверяет их на живых результатах и повторяет, пока конфигурация не пройдёт валидацию. Живой лог показывает каждую итерацию, вызовы инструментов и посещённые страницы, поэтому человек остаётся в контуре и может принять, поправить или отклонить созданный источник.