Разработать Python-сервис с CLI-клиентом, который автоматически:
- получает SEO-сигналы целевого сайта;
- формирует гипотезы ниши;
- собирает и/или принимает конкурентов из SERP;
- анализирует контентные и keyword gaps;
- возвращает структурированное SEO-ядро и рекомендации.
Полностью автоматически и безошибочно определить нишу нельзя, если у агента нет входных ограничений. Поэтому корректная модель такая:
- агент предлагает 2–3 гипотезы ниши;
- гипотезы строятся по SEO-сигналам целевого сайта;
- пользователь или следующий слой системы может подтвердить гипотезу.
Это соответствует ранее согласованному варианту Option B.
Топ сайтов нельзя считать универсальным без параметров:
- GEO
- язык
- search engine
- device
- query set
Поэтому корректная логика:
- по каждой SERP-запросной группе агент собирает результаты;
- хранит массив до 10 результатов;
- в итоговый shortlist выделяет 5 основных конкурентов;
- расширяет shortlist до 10, если результаты сильно различаются по интенту или сегменту.
LLM не должен быть первым источником истины. Корректный пайплайн:
- собрать crawl / on-page / competitor / SERP данные;
- нормализовать сигналы;
- затем использовать LLM для оценки, резюмирования и приоритизации.
- Python CLI-приложение
- анализ одной целевой страницы или локального HTML
- извлечение
title,meta description,meta keywords,headings,links - heuristic niche discovery
- сравнение с переданными конкурентами
- построение keyword opportunities / SEO core
- вывод в text / json
- подключение SERP API или search provider
- сбор top-5 / top-10 конкурентов
- page-type classification
- начальная site-wide агрегация
- LLM-based scoring
- entity normalization
- search intent enrichment
- content brief generation
- page recommendations
- API + job queue
- persistence layer
- dashboard
- scheduled re-runs
- exports and integrations
- full-site distributed crawling
- production SERP scraping at scale
- bypass anti-bot protections
- rank tracking history
- external billing
- multi-tenant auth
Обязательные:
target_domainилиtarget_urlили локальный HTML-файл
Опциональные:
competitor_sources[]serp_filegeolanguagesearch_enginemax_competitorsmax_core_terms
Сервис должен возвращать объект с блоками:
niche_hypothesestargetcompetitorsseo_coreinsightswarnings
Каждый элемент seo_core должен включать:
termclusterintentprioritysourcecompetitor_counttarget_scorecompetitor_scoresupporting_termsrationale
Система должна уметь анализировать локальный HTML, URL и домен.
Система должна извлекать базовые SEO-сигналы страницы.
Система должна возвращать до 3 гипотез ниши на базе найденных терминов.
Система должна сравнивать целевую страницу с конкурентами и выделять overlap / gaps.
Система должна формировать итоговое SEO-ядро с приоритетом и обоснованием.
Система должна принимать конкурентов как повторяемые CLI-аргументы и как JSON-массив.
- простота локального запуска;
- отсутствие обязательных внешних зависимостей в MVP;
- расширяемость до API-first архитектуры;
- детерминированный offline-friendly режим тестирования;
- совместимость с Windows shell и локальным запуском Python.
main.py— совместимый entrypoint- пакет
seo_agent_cli - unit tests на фикстурах
README.mdSOW.mdARCHITECTURE.mdTODO.md
MVP считается принятым, если:
- запускается через CLI;
- принимает целевой сайт и конкурентов;
- извлекает SEO-сигналы из HTML;
- возвращает гипотезы ниши;
- строит keyword opportunities;
- проходит локальные unit tests;
- поддерживает JSON output.
- SERP без API нестабилен и зависит от anti-bot ограничений;
- нишевая классификация по heuristics ограничена;
- keyword scoring без search volume является относительным, а не абсолютным;
- без LLM и внешних SEO-данных приоритизация пока упрощённая.
Для production-версии рекомендован стек:
- Python как core backend;
- CLI + позже FastAPI;
- optional Redis/PostgreSQL;
- external SERP / SEO APIs;
- LLM layer после стабилизации data pipeline.