| name | YD-find-segments |
| description | Находит семантические сегменты для рекламных кампаний и лендинга. Строит психологические слои аудитории, seed-фразы для Wordstat, анализирует статистику (CSV/XLSX), ищет неожиданные кластеры, выдаёт таблицу групп с ключами и минус-словами. Вызывай когда пользователь говорит «найди сегменты», «подбери семантику», «разбей на группы для директа», «какие ключи запускать», «сегменты для лендинга».
|
| allowedTools | ["Read","Bash","Write","Glob","Grep"] |
YD-find-segments — Поиск семантических сегментов
Определяет, кто приходит на продукт и с каким намерением — и превращает это в группы для рекламы и персонализации лендинга.
Выход скилла сразу ложится в:
/директ → группы объявлений + ключи + минус-слова
YD-LP-hyper-segmentation → ?seg= параметры на лендинге
Алгоритм
Шаг 1 — Понять продукт
Прочитай контекст продукта. Если есть — читай:
CLAUDE.md / PRODUCT.md проекта
~/.claude/skills/YD-LP-hyper-segmentation/SKILL.md (уже есть сегменты?)
- Описание лендинга
Затем сформулируй одним предложением:
«Продукт помогает [КТО] сделать [ЧТО], чтобы [ЗАЧЕМ]»
Пример: «LookBook помогает девушкам виртуально примерить стрижку, чтобы убедиться до похода к мастеру»
Шаг 2 — Психологические слои
Не «кто аудитория», а «что у человека в голове в момент поиска».
Пройдись по каждому типовому состоянию и оцени — применимо ли к продукту:
| Состояние | Как звучит мысль | Температура |
|---|
| Хочет, не знает что | «Хочу что-то поменять, не знаю с чего начать» | ❄️ холодный |
| Знает что хочет, выбирает | «Ищу варианты, сравниваю» | 🌤 тёплый |
| Хочет, но боится / сомневается | «Хочу, но вдруг не получится — хочу проверить» | 🔥 горячий |
| Готовится к действию | «Уже решил, ищу как сделать правильно» | 🔥 горячий |
| Ситуативный триггер | «Свадьба / новая работа / расставание» | 🔥 горячий |
| AI / tech-интерес | «Слышал про нейросети, хочу попробовать» | 🌤 тёплый |
| Широкий интерес к теме | «Просто интересуется темой, не ищет решение» | ❄️ холодный |
Для каждого подходящего слоя — запиши 3-5 конкретных поисковых запросов.
Пиши от первого лица → переводи в строку поиска:
Состояние: «Хочет, но боится»
Мысль: «Хочу постричься коротко, но вдруг не пойдёт»
Запросы:
→ примерить стрижку онлайн
→ как буду выглядеть с короткими волосами
→ виртуальная примерка прически
Шаг 3 — Seed-фразы для Wordstat
Из всех слоёв выбери 3-6 зонтичных seed-фраз:
- 1 seed = 1 психологический кластер
- Оптимальная длина: 2-3 слова (1 слово → мусор, 4+ слова → мало хвостов)
- Должна давать 50-500 вложенных запросов в Wordstat
Выдай пользователю список seeds и скажи:
📋 Введи каждую seed-фразу в https://wordstat.yandex.ru
Режим: «Вложенные фразы», регион: Россия
Экспортируй результат в CSV/XLSX и передай мне
Шаг 3.5 — Автоматический сбор частотностей через Wordstat API
ВАЖНО: Этот шаг выполняется ВСЕГДА, не дожидаясь ручного экспорта.
Используй Яндекс.Директ API v4 для автоматического сбора частотностей seed-фраз и их хвостов:
export $(cat ~/.claude/.env.direct | grep -v '^#' | grep '=' | xargs)
Напиши и выполни Node.js скрипт:
const API_URL = "https://api.direct.yandex.ru/v4/json/";
const TOKEN = process.env.YANDEX_DIRECT_TOKEN;
async function callAPI(method, param) {
const res = await fetch(API_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ method, param, token: TOKEN }),
});
const data = await res.json();
if (data.error_code) throw new Error(`API ${data.error_code}: ${data.error_str}`);
return data.data;
}
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
async function getWordstat(phrases) {
const reportId = (, {
: phrases, : []
});
( i = ; i < ; i++) {
();
reports = (, {});
(reports.( r. === reportId)?. === ) {
data = (, reportId);
(, reportId).( {});
data;
}
}
();
}
Лимиты API:
- Макс 10 фраз на отчёт → разбивай на батчи
- 1000 фраз/день
- Макс 5 одновременных отчётов
- Polling каждые 3 сек
Что собирать для каждого маркера:
- SearchedWith (хвосты) — топ-20 вложенных запросов с частотностью
- SearchedAlso (правая колонка) — топ-15 «также искали» запросов
Что анализировать:
- Нулёвки — фразы с Shows=0 → убрать из ядра
- Ловушки — высокий объём, но хвосты нерелевантные (пример: «нейросети для работы» 22k → 60% курсовые)
- Неожиданные кластеры — правая колонка вскрывает смежные запросы, которых не было в гипотезах
- Формирующийся спрос — хвосты типа «X что это» = люди узнают о теме, это контент-возможность
Формат вывода:
## Wordstat: Сводная таблица
| Фраза | Shows/мес | Ловушка? | Действие |
|---|---|---|---|
| маркер 1 | 12,803 | Нет | 🟢 Использовать |
| маркер 2 | 22,722 | Да (60% студенты) | ⚠️ Жёсткая минусовка |
| маркер 3 | 0 | — | 🔴 Убрать |
## Wordstat: Неожиданные находки (SearchedAlso)
| Фраза | Shows | Из маркера | Действие |
|---|---|---|---|
| новый кластер | 30,256 | маркер X | 🟢 Добавить в ядро |
Сохрани JSON с полными данными рядом с продуктом для повторного анализа.
Шаг 4 — Анализ статистики Wordstat (дополнительный, из файла)
Основные частотности уже собраны в шаге 3.5 через API.
Этот шаг — если пользователь загрузил дополнительный экспорт из Wordstat Assistant или Key Collector.
Если пользователь загрузил файл — анализируй через Python:
import sys
sys.path.insert(0, "/tmp/xlsx-venv/lib/python3.14/site-packages")
from openpyxl import load_workbook
wb = load_workbook("PATH_TO_FILE.xlsx")
ws = wb.active
rows = [(ws.cell(row=r, column=1).value, ws.cell(row=r, column=2).value)
for r in range(2, ws.max_row+1)
if ws.cell(row=r, column=1).value]
import csv
with open("PATH_TO_FILE.csv", encoding="utf-8") as f:
rows = [(r[0], int(r[1])) for r in csv.reader(f) if len(r) >= 2 and r[1].isdigit()]
rows.sort(key=lambda x: x[1], reverse=True)
from collections import defaultdict
clusters = defaultdict(list)
for phrase, freq in rows:
key = phrase.split()[0] if phrase else "other"
clusters[key].append((phrase, freq))
for key, items (clusters.items(), key= x: -(f _,f x[]))[:]:
total = (f _,f items)
()
p, f (items, key= x: -x[])[:]:
()
Ищи аномальные кластеры:
- Объём сильно превышает остальные группы
- Связан с темой косвенно, но наша аудитория точно там
- Мало конкурентов с готовым оффером
Пример аномалии: «лунный календарь стрижек» — 1.2M/мес при том, что
«примерить прическу» всего ~100k. Никто не предлагает им примерку.
Шаг 5 — Финальные сегменты
Собери таблицу из 4-8 сегментов:
| # | Название группы | Психологический слой | Объём/мес | Ключевые запросы (топ-3) | Минус-слова | ?seg | Гипотеза оффера |
|---|---|---|---|---|---|---|---|
| 1 | Примерить причёску | Хочет, но боится | ~100k | примерить прическу, прическа по фото, подобрать прическу | -купить -видео | photo | «Посмотри как будешь выглядеть до стрижки» |
| 2 | AI-запросы | Tech-интерес | ~15k | нейросеть прически, ии прическа | -курсы -обучение | ai | «Нейросеть подберёт стрижку по фото» |
| ... | | | | | | | |
Для каждого сегмента:
- Название группы (для директа)
- Топ 8-15 ключевых слов
- Минус-слова группы (на уровне группы, не кампании)
?seg= параметр (латиница, коротко)
- Гипотеза оффера → H1 на лендинге
Шаг 6 — Приоритизация
Ранжируй сегменты по матрице:
| Высокая ценность для продукта | Низкая ценность |
|---|
| Высокий объём | 🟢 Запускать первым (РСЯ + SEO-страница) | 🟡 Охватный (РСЯ малый бюджет) |
| Низкий объём | 🔵 Горячий поиск (платный, CPC) | 🔴 Пропустить |
Дай финальную рекомендацию: какие 3-5 сегментов запускать в первую волну.
Шаг 7 — Выход
Сохрани результат в файл продукта:
/Users/rudometkin/my_space/Obsidian-1/Obsidian-1/!ПРОЕКТЫ/PMF/products/<продукт>/segments.md
Структура файла:
# Семантические сегменты — <Название продукта>
> Дата: YYYY-MM-DD | Wordstat: <какие seeds>
## Сводная таблица
[таблица из шага 5]
## Группа 1 — <Название>
**Слой:** ... **Объём:** ... **?seg:** ...
**Ключи:**
- ключ 1
- ключ 2
...
**Минус-слова:** -слово1 -слово2
**Гипотеза оффера:** ...
[повторить для каждой группы]
## Приоритеты запуска
1. ...
2. ...
Скажи пользователю:
✅ Сегменты готовы → передай в /директ для создания XLSX
✅ Сегменты готовы → передай в YD-LP-hyper-segmentation для настройки лендинга
Реальный кейс для референса
Продукт: LookBook (Hairstyle AI) — примерка стрижки по фото
| Сегмент | Объём | ?seg | Ключ-пример |
|---|
| Примерить причёску | ~100k | photo | «примерить прическу онлайн» |
| AI/нейросеть | ~15k | ai | «нейросеть прически» |
| Радикальные стрижки (пикси/шегги) | ~50k | pixie | «стрижка пикси» |
| Стрижки после 50 | ~30k | after50 | «омолаживающие стрижки» |
| Лунный календарь | ~1.2M | lunar | «лунный календарь стрижек 2026» |
Главный инсайт: лунный календарь нашли только через Wordstat — в гипотезах его не было.
Объём в 10x больше «очевидных» запросов. Конкурентов с оффером примерки — ноль.
Связанные скиллы
После этого скилла → /директ (создание XLSX) → YD-LP-hyper-segmentation (настройка лендинга)