| Анализ поискового спроса через Yandex Wordstat API. частотность запросов, сезонность или региональный спрос. Топ до 2000 запросов, ассоциации, динамика, экспорт CSV. сегментация фраз, расширение семантики, сравнение OR-запросов.
npx skills add https://github.com/artwist-polyakov/polyakov-claude-skills --skill yandex-wordstat
Analyze search demand and keyword statistics using Yandex Wordstat API.
Скилл поддерживает два бэкенда:
cloud (рекомендуется) — Yandex Cloud Search API v2. Нужен config/config.json + service account key. Авторизация через IAM token (JWT с SA-ключа).legacy (deprecated) — старый Wordstat OAuth API. Нужен YANDEX_WORDSTAT_TOKEN в config/.env. Яндекс больше не подключает новых пользователей, но старые токены работают.Auto-selection (cloud-first): cloud выигрывает на tie. Чтобы остаться на legacy явно — YANDEX_WORDSTAT_BACKEND=legacy в config/.env.
Полная инструкция по настройке и troubleshooting: config/README.md.
Миграция в облако: когда Яндекс окончательно отключит legacy — удалите YANDEX_WORDSTAT_TOKEN, заполните config/config.json и config/service_account_key.json. Команды и аргументы скриптов не меняются.
⚠️ Cloud dynamics operator caveat: при --period weekly|monthly cloud-бэкенд поддерживает только оператор +. Минус-слова, кавычки, группировки и точные формы работают только при --period daily. Скилл делает preflight-проверку и падает с понятной ошибкой до запроса. Подробнее — в README.
Before marking ANY query as "target", verify intent via WebSearch!
Query "каолиновая вата для дымохода" looks relevant for chimney seller, but:
For every promising query, ASK YOURSELF:
Always run WebSearch to check:
WebSearch: "каолиновая вата для дымохода" что ищут покупатели
Look at search results:
| Query | Looks like | Actually | Target? |
|-------|------------|----------|---------|
| каолиновая вата для дымохода | chimney buyer | cotton wool buyer | ❌ NO |
| дымоход купить | chimney buyer | chimney buyer | ✅ YES |
| утепление дымохода | chimney buyer | insulation DIYer | ❌ NO |
| дымоход сэндвич цена | chimney buyer | chimney buyer | ✅ YES |
| потерпевший дтп | lawyer client | news reader | ❌ NO |
| юрист после дтп | lawyer client | lawyer client | ✅ YES |
"Для какого региона анализировать спрос?
- Вся Россия (по умолчанию)
- Москва и область
- Конкретный город (какой?)"
НЕ ПРОДОЛЖАЙ пока пользователь не ответит!
"Что именно вы продаёте/рекламируете?
Это важно для фильтрации нецелевых запросов."
bash scripts/quota.shCheck API connection.
bash scripts/quota.sh
Get top search phrases. Supports up to 2000 results and CSV export.
bash scripts/top_requests.sh \
--phrase "юрист дтп" \
--regions "213" \
--devices "all"
# Extended: 500 results exported to CSV
bash scripts/top_requests.sh \
--phrase "юрист дтп" \
--limit 500 \
--csv report.csv
# Max results with comma separator
bash scripts/top_requests.sh \
--phrase "юрист дтп" \
--limit 2000 \
--csv full_report.csv \
--sep ","
| Param | Required | Default | Values |
|-------|----------|---------|--------|
| --phrase | yes | - | text with operators |
| --regions | no | all | comma-separated IDs |
| --devices | no | all | all, desktop, phone, tablet |
| --limit | no | API default (50) | 1-2000 (maps to API numPhrases) |
| --csv | no | - | path to output CSV file |
| --sep | no | ; | CSV separator (; for RU Excel) |
The output contains two sections (both in stdout and CSV):
topRequests) — queries that contain the words from your phrase, sorted by frequency. These are direct variations of the search query. Example: phrase "юрист дтп" → "юрист по дтп", "консультация юриста по дтп".associations) — queries similar by meaning but not necessarily containing the same words, sorted by similarity. These are semantically related searches. Example: phrase "юрист дтп" → "юридическая ответственность", "адвокат аварии".For analysis: top results are your primary keyword pool. assoc results are useful for semantic expansion but often contain noise — always verify intent before including them.
CSV format: UTF-8 with BOM, columns: n;phrase;impressions;type.
When --csv is set, stdout shows first 20 rows per section; full data goes to file.
When --limit is set to a high value (e.g. 500-2000), use CSV export and read the file in chunks:
# Export 2000 results
bash scripts/top_requests.sh --phrase "query" --limit 2000 --csv data.csv
# Read first 50 rows (header + data)
head -n 51 data.csv
# Read rows 51-100
tail -n +52 data.csv | head -50
# Count total rows
wc -l < data.csv
# Filter only associations
grep ";assoc$" data.csv
This approach lets the agent process large datasets without flooding stdout.
Get search volume trends over time.
bash scripts/dynamics.sh \
--phrase "юрист дтп" \
--period "monthly" \
--from-date "2025-01-01"
| Param | Required | Default | Values |
|-------|----------|---------|--------|
| --phrase | yes | - | text |
| --period | no | monthly | daily, weekly, monthly |
| --from-date | yes | - | YYYY-MM-DD |
| --to-date | no | today | YYYY-MM-DD |
| --regions | no | all | region IDs |
| --devices | no | all | all, desktop, phone, tablet |
Get regional distribution.
bash scripts/regions_stats.sh \
--phrase "юрист дтп" \
--region-type "cities"
| Param | Required | Default | Values |
|-------|----------|---------|--------|
| --phrase | yes | - | text |
| --region-type | no | all | cities, regions, all |
| --devices | no | all | all, desktop, phone, tablet |
Show common region IDs.
bash scripts/regions_tree.sh
Find region ID by name.
bash scripts/search_region.sh --name "Москва"
"query"Shows demand ONLY for this exact phrase (no additional words).
"юрист дтп" → "юрист дтп", "юристы дтп"
but NOT "юрист по дтп"
!wordFixes exact word form.
!юрист → "юрист по дтп", "юрист москва"
but NOT "юристы", "юриста"
"!word !word"Exact phrase + exact forms.
"!юрист !по !дтп" → only "юрист по дтп"
-wordExclude queries with this word.
юрист дтп -бесплатно -консультация
(a|b|c)Multiple variants in one query.
(юрист|адвокат) дтп → combined demand
Always fix prepositions with !:
юрист !по дтп ← correct
юрист по дтп ← "по" ignored!
юрист дтп — see total volume"юрист дтп" — exact phrase only"!юрист !по !дтп" — exact matchюрист дтп -бесплатно -онлайн| Region | ID |
|--------|-----|
| Россия | 225 |
| Москва | 213 |
| Москва и область | 1 |
| Санкт-Петербург | 2 |
| Екатеринбург | 54 |
| Новосибирск | 65 |
| Казань | 43 |
Run bash scripts/regions_tree.sh for full list.
User: Найди запросы для рекламы дымоходов
Claude: Для какого региона анализировать спрос?
И уточните — вы продаёте готовые дымоходы или
материалы для их изготовления/утепления?
User: Москва, продаём готовые сэндвич-дымоходы
Claude: [Запускает анализ для региона 213]
Нашёл запросы. Проверяю интент через веб-поиск...
✅ ЦЕЛЕВЫЕ (покупают дымоходы):
- "дымоход сэндвич купить" — 450 показов
- "дымоход для бани цена" — 380 показов
❌ НЕ ЦЕЛЕВЫЕ (покупают другое):
- "каолиновая вата для дымохода" — ищут утеплитель, не дымоход
- "монтаж дымохода своими руками" — DIY, не покупатели
- "чистка дымохода" — уже владеют, сервисный запрос
Анализ рекламной кампании Яндекс Директ для нахождения фраз, не покрытых текущей семантикой.
Требования: XLSX-выгрузка из Яндекс Директ (лист «Тексты»).
Подробнее: MISSED_DEMAND.md
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \"the xlsx in my downloads\") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.
Picks random winners from lists, spreadsheets, or Google Sheets for giveaways, raffles, and contests. Ensures fair, unbiased selection with transparency.
Query openFDA API for drugs, devices, adverse events, recalls, regulatory submissions (510k, PMA), substance identification (UNII), for FDA regulatory data analysis and safety research.
MATLAB and GNU Octave numerical computing for matrix operations, data analysis, visualization, and scientific computing. Use when writing MATLAB/Octave scripts for linear algebra, signal processing, image processing, differential equations, optimization, statistics, or creating scientific visualizations. Also use when the user needs help with MATLAB syntax, functions, or wants to convert between MATLAB and Python code. Scripts can be executed with MATLAB or the open-source GNU Octave interpreter.
UMAP dimensionality reduction. Fast nonlinear manifold learning for 2D/3D visualization, clustering preprocessing (HDBSCAN), supervised/parametric UMAP, for high-dimensional data.
Creating interactive data visualisations using d3.js. This skill should be used when creating custom charts, graphs, network diagrams, geographic visualisations, or any complex SVG-based data visualisation that requires fine-grained control over visual elements, transitions, or interactions. Use this for bespoke visualisations beyond standard charting libraries, whether in React, Vue, Svelte, vanilla JavaScript, or any other environment.
Access AlphaFold 200M+ AI-predicted protein structures. Retrieve structures by UniProt ID, download PDB/mmCIF files, analyze confidence metrics (pLDDT, PAE), for drug discovery and structural biology.
Take artwist-polyakov/yandex-wordstat from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.