Требовалось автоматизировать подготовку и публикацию информационных материалов на WordPress-сайте.
Ручной процесс включал поиск новых статей по заданным темам, проверку уже обработанных материалов, подготовку новой структуры текста, создание метаданных, подбор изображения и публикацию результата в CMS.
Целью проекта было объединить эти этапы в один сервис, который:
— находит новые материалы в заданных источниках;
— исключает повторную обработку одних и тех же страниц;
— извлекает содержимое статьи;
— формирует переработанный структурированный текст;
— создаёт заголовок, description и человекопонятный URL;
— подготавливает тематическое изображение;
— загружает изображение и статью в WordPress;
— хранит историю обработанных материалов;
— может работать автоматически без постоянного участия редактора.
Проект создавался как внутренний инструмент автоматизации. В портфолио представлены только общая архитектура и мой технический вклад без публикации ключей, настроек доступа и рабочих данных.
Я разработала backend-сервис на Node.js, который объединяет парсинг источников, обработку текста через AI, генерацию изображений и публикацию материалов через WordPress REST API.
Для сбора материалов я реализовала браузерный парсер на Puppeteer. Сервис обходит заданные категории, извлекает ссылки на статьи и фильтрует материалы по заданным условиям.
Чтобы исключить повторную обработку, я добавила локальную очередь со статусами. Система хранит ссылки на найденные материалы, проверяет их перед запуском и пропускает уже обработанные страницы.
После извлечения текста сервис передаёт его в OpenAI API. Модель формирует новую версию материала в заданной HTML-структуре:
— Title;
— meta description;
— H1;
— абзацы и подзаголовки;
— списки и цитаты;
— URL-slug.
Я настроила формат ответа так, чтобы полученный результат можно было передавать в WordPress без ручной вёрстки.
Отдельно реализовала автоматическую подготовку изображений. Сервис:
— загружает исходное изображение;
— определяет его размеры и соотношение сторон;
— анализирует визуальное содержание через OpenAI;
— формирует новый промпт;
— создаёт тематическое изображение;
— приводит его к нужному размеру с помощью Sharp;
— загружает в медиатеку WordPress.
Публикация выполняется через WordPress REST API с авторизацией по application password. Сначала сервис создаёт запись и загружает изображение, затем связывает его с материалом и обновляет содержимое публикации.
Также я реализовала:
— Express-сервер с техническими маршрутами;
— обработку ошибок внешних API;
— резервные сценарии при ошибке генерации изображения;
— загрузку файлов через multipart/form-data;
— хранение конфигурации в переменных окружения;
— контейнеризацию с Node.js и Chromium;
— подготовку проекта к развёртыванию в облачной среде.
Всю описанную техническую часть я выполнила самостоятельно: архитектуру сервиса, парсер, AI-интеграцию, обработку изображений, WordPress API и серверную логику.
Получился сервис, который объединяет весь процесс подготовки материала в один автоматизированный конвейер:
поиск источника → фильтрация → извлечение текста → AI-обработка → подготовка изображения → публикация в WordPress.
Система позволяет сократить количество повторяющихся ручных операций при наполнении сайта и поддерживать единый формат публикаций.
Редактору не нужно отдельно переносить текст, создавать HTML-разметку, подготавливать метаданные, загружать изображение и оформлять запись в WordPress.
Архитектура сервиса позволяет подключать дополнительные источники, изменять правила обработки, добавлять этап ручной модерации и использовать другие сценарии публикации.
Проект также демонстрирует интеграцию нескольких внешних сервисов в рамках одного backend-процесса: браузерную автоматизацию, OpenAI API, генерацию изображений и WordPress REST API.
Рабочие ключи, адрес сайта и внутренние настройки не публикуются. Демонстрация структуры и отдельных обезличенных частей проекта возможна по запросу.