- 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+ автотестами.
Скриншоты и схемы
Реальные снимки интерфейса и графики — исходный код закрыт, бренды клиентов не показаны.
Подробный разбор
Платформа рассматривает парсер как данные, а не код: каждый источник — это декларативная SourceConfig (селекторы, пагинация, режим загрузки, шаги автоматизации), которую можно версионировать, валидировать и проверять на работоспособность. Именно этот подход делает возможным AI-конструктор: задача агента — просто выдать корректную конфигурацию, которую система уже умеет запускать и тестировать.
Агент работает в плотном цикле «восприятие → действие» с реальной браузерной сессией: переходит по страницам, снимает отрисованный DOM, предлагает селекторы для списка и отдельных полей, проверяет их на живых результатах и повторяет, пока конфигурация не пройдёт валидацию. Живой лог показывает каждую итерацию, вызовы инструментов и посещённые страницы, поэтому человек остаётся в контуре и может принять, поправить или отклонить созданный источник.