Best for
- Use this skill when the user has a keyword list (saved set, brand/keyword-plan.
MoizIbnYousaf/marketing-cli/skills/openseo-keyword-clustering/SKILL.md
Cluster keywords by search intent and map each cluster to an existing or proposed page, with cannibalization detection from Search Console. Use this skill when the user has a keyword list (saved set, brand/keyword-plan.md, GSC export, or seed topic) and needs page targets, content briefs, or a site map for SEO pages — especially before seo-content or seo-machine page generation. Triggers: "cluster keywords", "keyword mapping", "map keywords to pages", "keyword cannibalization", "which page shoul
Decision brief
Group keywords into page-level clusters and assign each to an existing URL, a new page proposal, or a do-not-target bucket. Output lands in marketing/seo/clusters/.md (per-cluster briefs) and feeds seo-content / seo-machine with measured page targets.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/openseo-keyword-clustering"Inspect the Agent Skill "openseo-keyword-clustering" from https://github.com/MoizIbnYousaf/marketing-cli/blob/f12fbcbe4929584697b309b9096c9427b0cfce8e/skills/openseo-keyword-clustering/SKILL.md at commit f12fbcbe4929584697b309b9096c9427b0cfce8e. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Assemble the candidate set from the source hierarchy above; dedupe and drop off-strategy terms. 2. Cluster by intent and page type: same SERP intent + similar ranking pages belong together; different intent/buyer stage/SERP format splits. Lexical similarity is NOT evidence of…
1. Catalog + binding: mktg catalog info openseo --json --fields configured and .seo/openseo.json for projectId. No binding → openseo-project-setup first. No OpenSEO at all → do lexical clustering with Exa context but label every cluster "SERP-unvalidated." 2. Keyword source: pre…
getsearchconsoleperformance with dimensions: ["query","page"]: the cannibalization truth source — one query splitting impressions across multiple URLs means existing cannibalization, not theoretical risk.
Summary first: cluster count, pages to create, pages to update, cannibalization issues. Then:
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 75/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 27 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Group keywords into page-level clusters and assign each to an existing URL, a new page proposal, or a do-not-target bucket. Output lands in marketing/seo/clusters/*.md (per-cluster briefs) and feeds seo-content / seo-machine with measured page targets.
mktg catalog info openseo --json --fields configured and .seo/openseo.json for projectId. No binding → openseo-project-setup first. No OpenSEO at all → do lexical clustering with Exa context but label every cluster "SERP-unvalidated."brand/keyword-plan.md populated sections, (b) list_saved_keywords with a tag, (c) GSC live data, (d) seed discovery via research_keywords. Under 10 usable terms → simple map, no clustering ceremony.get_search_console_performance with dimensions: ["query","page"]: the cannibalization truth source — one query splitting impressions across multiple URLs means existing cannibalization, not theoretical risk.get_ranked_keywords: domain/page-driven clustering from exact ranking rows + URLs.get_serp_results: SERP-overlap validation for borderline terms (small batches, ≤10).list_saved_keywords / research_keywords: source sets.save_keywords: apply cluster tags ONLY after confirmation.get_serp_results overlap check.marketing/seo/clusters/<cluster-slug>.md: page type, searcher problem, required sections, internal-link targets, priority.save_keywords after confirmation.seo-content for single pages, seo-machine for programmatic batches — both now have measured targets instead of vibes.Summary first: cluster count, pages to create, pages to update, cannibalization issues. Then:
| Cluster | Primary keyword | Secondary keywords | Intent | Target page | Priority | Notes |
|---|
Adapted from every-app/open-seo .agents/skills/keyword-clustering (MIT). Workflow upstream; mktg artifact paths, brand-memory reads, and handoff wiring added here.
Alternatives
JasonColapietro/suede-creator-skills
Umbrella workflow for 67 public skills: Full Send, copy, design, code review, SEO, launch packaging, MCP QA, iOS and Android app shipping, and creator workflows. Loads the full public skill pack.
MoizIbnYousaf/marketing-cli
Plans free tools, calculators, generators, and interactive widgets that attract target audience through search and social sharing. Engineering as marketing — build something useful, capture leads. Use when someone wants to build a free tool for marketing, says 'free tool', 'calculator', 'generator', 'engineering as marketing', 'side project marketing', 'interactive widget', 'lead generation tool', 'SEO tool', 'growth hack', 'build something to attract users', or wants to attract users through ut
MoizIbnYousaf/marketing-cli
A senior marketing operator for any project. Orchestrates 72 marketing skills to build brands, generate content, and distribute across channels. Use this skill whenever the user wants to do marketing - brand voice, copy, SEO, email, social, launches, or anything marketing-related. Also triggers on 'help me market', 'write copy', 'launch strategy', 'brand voice', 'SEO', 'content', 'email sequence', 'social posts', 'landing page', 'grow', 'audience', 'competitors', 'what should I do next for marke
MoizIbnYousaf/marketing-cli
Creates high-converting 'X vs Y' and 'X alternatives' SEO pages that capture comparison search traffic. Researches competitors, writes honest comparison content, and adds schema markup (FAQPage, ItemList). Use when someone needs alternatives pages, comparison content, or says 'alternatives page', 'vs page', 'comparison', 'competitor alternatives', 'X vs Y page', or wants to capture competitor brand search traffic with SEO content. Also trigger when someone wants to rank for competitor brand name