Design rigorous A/B tests with hypotheses, variants, metrics, and sample size calculations.
日本語の概要は準備中です。原文の説明を表示しています。
Cluster a list of keywords into topical groups with search intent labels, validated search volume, KD, and CPC data. Use this skill whenever a user provides a list of keywords (pasted, uploaded as CSV/Excel, or via Google Sheet URL) and asks to cluster, group, map, organize, or categorize them. Also trigger when a user says "keyword cluster", "cluster my keywords", "group these keywords", "keyword map", "keyword strategy from this list", "organize keywords by topic", or pastes or uploads a list of keywords and wants structure from it. Always use this skill — do not attempt keyword clustering manually without following this workflow.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Turn a raw keyword list into a structured, validated cluster map delivered as a downloadable Excel file.
Detect which input format the user provided and extract the keyword list.
If the user pasted keywords directly in chat (one per line, comma-separated, or numbered), extract each keyword into a clean array. Strip numbers, bullets, extra whitespace.
The file will be at /mnt/user-data/uploads/. Read it with pandas:
import pandas as pd
# CSV
df = pd.read_csv('/mnt/user-data/uploads/filename.csv')
# Excel
df = pd.read_excel('/mnt/user-data/uploads/filename.xlsx')
# Identify keyword column: look for columns named 'keyword', 'keywords', 'query', 'term', 'search term'
# If ambiguous, pick the first text column or ask the user
keyword_candidates = ['keyword', 'keywords', 'query', 'term', 'search term']
keyword_col = next((col for col in df.columns if col.lower() in keyword_candidates), df.columns[0])
keywords = df[keyword_col].dropna().tolist()
Use web_fetch to fetch the sheet as CSV (append /export?format=csv to the base URL). Parse with pandas.
Cap at 500 keywords per run. If input exceeds 500, tell the user and process the first 500, or ask which subset to use.
Use the dataforseo_labs_google_keyword_overview tool to validate all keywords and fetch metrics. Batch in groups of 100 to stay within API limits.
Required fields to extract per keyword:
search_volume — monthly searches (Google)keyword_difficulty — KD score (0–100)Filter rule: Drop any keyword where search_volume is 0, null, or missing. These are dead keywords.
Tell the user upfront: "Validating [N] keywords via DataForSEO. This may take a moment..."
After validation, report:
If DataForSEO is unavailable or returns an error: Tell the user "DataForSEO validation failed — I'll cluster the full list but cannot validate search volume or provide KD/CPC data." Then proceed with the full unvalidated list and skip the volume/KD/CPC columns in the output.
Cluster the validated keywords only using a two-axis approach:
Group keywords by shared topic/theme. Use the root concept to name the cluster.
Rules:
Cluster ID (1, 2, 3…)For each keyword, assign one of the four standard intent labels:
| Label | Meaning | Signal words |
|---|---|---|
Informational | User wants to learn | what is, how to, guide, tutorial, definition, examples |
Navigational | User wants a specific site/brand | brand name + login/sign in/pricing |
Commercial | User is comparing options | best, top, vs, review, alternative, comparison |
Transactional | User wants to act/buy | buy, download, get, free trial, sign up, hire |
When intent is ambiguous, pick the most likely based on the full keyword phrase. Do not leave intent blank.
Use your understanding of keyword semantics. Group keywords that:
Do NOT group purely by shared word (e.g., don't put "best email marketing software" and "email marketing statistics" in the same cluster just because they share "email marketing" — one is Commercial, one is Informational, and they serve different pages).
Read the xlsx SKILL first if available. Use openpyxl for formatting.
Columns in order:
| Column | Description |
|---|---|
| Cluster ID | Numeric cluster number |
| Cluster Name | Descriptive topic name |
| Keyword | The validated keyword |
| Search Volume | Monthly search volume from DataForSEO |
| KD | Keyword difficulty (0–100) |
| Intent | Informational / Navigational / Commercial / Transactional |
Sorting: Sort by Cluster ID ascending, then by Search Volume descending within each cluster.
Formatting:
#,##0One row per cluster:
| Column | Description |
|---|---|
| Cluster ID | Number |
| Cluster Name | Name |
| # Keywords | Count of keywords in cluster |
| Avg Search Volume | Average volume across cluster |
| Avg KD | Average KD |
| Dominant Intent | Most common intent label in cluster |
| Top Keyword | Highest-volume keyword in cluster |
Sort by Avg Search Volume descending — highest-opportunity clusters first.
List all keywords removed at the validation step:
| Column | Description |
|---|---|
| Keyword | The dropped keyword |
| Reason | "Zero search volume" or "No data returned" |
If no keywords were dropped, add a single row: "No keywords were dropped."
# Save the workbook
output_path = '/mnt/user-data/outputs/keyword_clusters.xlsx'
wb.save(output_path)
Then run recalc if formulas are used:
python scripts/recalc.py /mnt/user-data/outputs/keyword_clusters.xlsx
Use present_files to deliver the file to the user.
After presenting the file, give a short summary in chat:
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Design rigorous A/B tests with hypotheses, variants, metrics, and sample size calculations.
日本語の概要は準備中です。原文の説明を表示しています。
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program," or "experiment playbook." Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics. For page-level conversion optimization, see cro.
日本語の概要は準備中です。原文の説明を表示しています。
Format CVs for academic positions with publications, grants, and teaching
日本語の概要は準備中です。原文の説明を表示しています。
Conduct a comprehensive accessibility audit against WCAG guidelines with severity ratings and remediation steps.
日本語の概要は準備中です。原文の説明を表示しています。
Create accessibility testing plans covering assistive technologies and WCAG criteria.
日本語の概要は準備中です。原文の説明を表示しています。
When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform. Also use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' 'ad performance optimization,' 'write me some ads,' 'Facebook ad copy,' 'Google ad headlines,' 'LinkedIn ad text,' or 'I need more ad variations.' Use this whenever someone needs to produce ad copy at scale or iterate on existing ads. For campaign strategy and targeting, see ads. For landing page copy, see copywriting.
日本語の概要は準備中です。原文の説明を表示しています。