Задача — заполнить карточки 200 жилых комплексов на сайте о недвижимости: название, адрес, сроки сдачи, цены, класс жилья, инфраструктура, фото. Старый сценарий — выгрузка топов Google, парсинг картинок и четыре фрилансера, руками заполняющих карточки. Новый — один Python-скрипт, который отдаёт весь текст страницы GPT-5 с чётким промптом и получает готовую структуру. Результат: 200 карточек за сутки вместо месяца работы команды, и около 10 ₽ API-расходов на каждые 100 карточек.
Стандартный сценарий для такой задачи: выгрузить топы Google по каждому ЖК, спарсить картинки и заголовки, нанять 3–4 фрилансеров и дать им руками заполнять карточки по шаблону. Работает, но медленно и линейно — 200 карточек означают 200 карточек ручного труда, сколько бы фрилансеров ни наняли.
Показательный момент — уже потянулись писать техническое задание ассистенту по старой схеме и поймали себя на вопросе: «Ты же сам продвигаешь AI-first подход — а тут втихаря делаешь ручками?» Закрыли чат с фрилансерами, открыли Claude.
Обычный парсер работает через CSS-селекторы вида soup.select('.price-block .value') — и ломается на первом же сайте с другой вёрсткой. А у 200 ЖК — 200 разных вёрсток: Tilda, WordPress, самописные движки. Писать и поддерживать селекторы под каждый — неделя работы, которая развалится при первом редизайне донора.
Решение оказалось на удивление простым: вытащить со страницы ЖК весь видимый текст одной строкой (document.body.innerText) и отдать его GPT с мастер-промптом — модель сама находит сроки сдачи, цены, класс жилья, инфраструктуру и раскладывает всё по заданному шаблону. GPT не нужна разметка — ему нужен смысл: «от 15 млн» он найдёт и в <div class="price">, и в обычном абзаце жирным текстом.
На отладку промпта, температуры и выбор модели ушло полдня работы с Claude — перебрали несколько моделей, лучший результат по точности и цене дал GPT-5.
Шесть шагов от списка ЖК до готового результата: (1) на входе — список жилых комплексов; (2) парсинг выдачи Google с белым и чёрным списком доменов; (3) таблица из 5–7 источников-доноров на каждый объект; (4) ручная проверка — человек подтверждает, что URL и заголовки собраны верно (единственный ручной шаг во всём процессе); (5) весь собранный текст уходит в мастер-промпт GPT-5; (6) на выходе — Markdown-версия для риелторов и JSON для CMS.
Где в пайплайне AI, а где обычный код — разделение чёткое. Обычный код делает всё, что можно описать алгоритмом: выгрузку выдачи Google (HTTP + XML), обход JS-страниц (Playwright с семикратной прокруткой), сбор картинок (обход DOM по 6 источникам), группировку URL (pandas), скачивание фото (requests в потоках). AI делает одну-единственную вещь во всём пайплайне: превращает сырой текст в структуру по схеме. Остальные примерно 900 строк кода — обычная инженерия данных, без единого вызова модели.
Так выглядит карточка одного жилого комплекса после автоматического парсинга — с адресом, ценами, площадями, классом жилья и связным описанием, которое сгенерировала модель на основе разрозненных текстов доноров.
Готовая карточка ЖК после парсинга — пример 1
Готовая карточка ЖК после парсинга — пример 2
Готовая карточка ЖК после парсинга — пример 3
Ключевой урок для качества результата — не «извлеки данные», а строгая JSON-схема на 60 полей: название, адрес, координаты, сроки сдачи, площади, цены, класс, этажность, парковка, отделка, описание на 10–12 предложений, инфраструктура по категориям, FAQ. Три жёстких правила внутри промпта держат модель в рамках: не придумывать — если инфы нет, ставить null или пустой массив, а не «типовой бассейн», которого нет в тексте; при противоречиях источников брать более детальную цифру; отвечать только JSON, без markdown и лишних слов. Чем жёстче техническое задание — тем меньше у модели простора для фантазий.
Опасение, что дорогая модель съест весь бюджет, не подтвердилось: 100 объектов встали примерно в 12 центов. Отдельный, не менее важный урок — про привычку. Поймать себя на мысли «давай по-старому» и остановиться — это тоже часть AI-first подхода, причём более важная, чем сама скорость. Один универсальный подход через innerText и GPT побил сотню хрупких CSS-селекторов, а ручной шаг — проверка URL и заголовков перед парсингом — остался за человеком осознанно: не всё стоит автоматизировать, фактчекинг источников — как раз тот случай.
Задача, которая раньше упиралась в найм и ручной труд — 200 карточек, 200 разных источников — решилась одним скриптом на 900+ строк, где искусственному интеллекту досталась только одна функция: понять смысл текста и уложить его в структуру. Всё остальное — обычная инженерия. Именно это сочетание — жёсткая JSON-схема, разделение труда между кодом и моделью и один осознанный ручной шаг проверки — и дало кратный, а не постепенный рост скорости.