$npx -y skills add MoizIbnYousaf/marketing-cli --skill keyword-researchStrategic keyword research powered by web search and brand context. Use this skill whenever the user mentions keywords, keyword research, SEO topics, content topics, 'what should I write about', content strategy, blog ideas, search traffic, or content planning. Also trigger when
| 1 | ## On Activation |
| 2 | |
| 3 | 1. Check if `brand/` directory exists in the project root. |
| 4 | 2. If it does, read available files: `voice-profile.md`, `positioning.md`, `audience.md`, `creative-kit.md`, `stack.md`, `learnings.md`. |
| 5 | 3. Apply any loaded brand context to enhance output quality. |
| 6 | 4. If `brand/` does not exist, proceed without it — this skill works standalone. |
| 7 | |
| 8 | > **Note:** Examples below use fictional brands (Acme, Lumi, Helm). Replace with your own brand context. |
| 9 | |
| 10 | # /keyword-research -- Data-Backed Keyword Strategy |
| 11 | |
| 12 | Most keyword research is backwards. People start with tools, get overwhelmed by |
| 13 | data, and end up with a spreadsheet they never use. |
| 14 | |
| 15 | This skill starts with strategy. What does your business need? Who are you trying |
| 16 | to reach? What would make them find you? Then it validates with live search data |
| 17 | and builds a content plan that actually makes sense. |
| 18 | |
| 19 | No expensive tools required. Systematic thinking plus web search. |
| 20 | |
| 21 | **Reads:** `positioning.md`, `audience.md`, `competitors.md`, `learnings.md` |
| 22 | **Writes:** `brand/keyword-plan.md`, `campaigns/content-plan/*.md` |
| 23 | |
| 24 | --- |
| 25 | |
| 26 | ## Iteration Detection |
| 27 | |
| 28 | Before starting, check whether `./brand/keyword-plan.md` already exists. |
| 29 | |
| 30 | ### If keyword-plan.md EXISTS --> Refresh Mode |
| 31 | |
| 32 | Do not start from scratch. Instead: |
| 33 | |
| 34 | 1. Read the existing plan. |
| 35 | 2. Present a summary of the current keyword strategy: |
| 36 | ``` |
| 37 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ |
| 38 | |
| 39 | EXISTING KEYWORD PLAN |
| 40 | Last updated {date} by /keyword-research |
| 41 | |
| 42 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ |
| 43 | |
| 44 | Pillars: |
| 45 | ├── {Pillar 1} {N} clusters Priority: {level} |
| 46 | ├── {Pillar 2} {N} clusters Priority: {level} |
| 47 | └── {Pillar 3} {N} clusters Priority: {level} |
| 48 | |
| 49 | Top keywords: |
| 50 | ├── {keyword 1} {priority} |
| 51 | ├── {keyword 2} {priority} |
| 52 | └── {keyword 3} {priority} |
| 53 | |
| 54 | Content briefs: {N} created, {N} published |
| 55 | |
| 56 | ────────────────────────────────────────────── |
| 57 | |
| 58 | What would you like to do? |
| 59 | |
| 60 | ① Refresh with new SERP data |
| 61 | ② Add a new topic area |
| 62 | ③ Re-prioritize existing clusters |
| 63 | ④ Full rebuild from scratch |
| 64 | ⑤ Generate briefs for top keywords |
| 65 | ``` |
| 66 | |
| 67 | 3. Process the user's choice: |
| 68 | - Option ① --> Re-run web search for existing keywords, update priorities based on fresh data |
| 69 | - Option ② --> Gather new seed keywords, run full expansion, merge into existing plan |
| 70 | - Option ③ --> Re-score all clusters with updated business context |
| 71 | - Option ④ --> Full process from scratch |
| 72 | - Option ⑤ --> Skip to content brief generation for highest-priority unfilled clusters |
| 73 | |
| 74 | 4. Before overwriting, show a diff of what changed: |
| 75 | ``` |
| 76 | Changes to keyword plan: |
| 77 | |
| 78 | New clusters added: |
| 79 | ├── "AI email marketing" (Pillar: AI Marketing) |
| 80 | └── "automated content creation" (Pillar: AI Marketing) |
| 81 | |
| 82 | Priority changes: |
| 83 | ├── "marketing automation" High → Critical |
| 84 | └── "fractional CMO" Medium → Low |
| 85 | |
| 86 | Removed: |
| 87 | └── "our methodology" (failed validation) |
| 88 | |
| 89 | Save these changes? (y/n) |
| 90 | ``` |
| 91 | |
| 92 | 5. Only overwrite after explicit confirmation. |
| 93 | |
| 94 | ### If keyword-plan.md DOES NOT EXIST --> Full Research Mode |
| 95 | |
| 96 | Proceed to the full process below. |
| 97 | |
| 98 | --- |
| 99 | |
| 100 | ## The Core Job |
| 101 | |
| 102 | Transform a business context into a **prioritized content plan** with: |
| 103 | - Keyword clusters organized by topic |
| 104 | - Priority ranking based on opportunity and live SERP data |
| 105 | - Content type recommendations |
| 106 | - Individual content briefs for top keywords |
| 107 | - A clear "start here" action |
| 108 | |
| 109 | **Output format:** Clustered keywords mapped to content pieces, prioritized by |
| 110 | business value, competitive opportunity, and search demand. Saved to disk as |
| 111 | a keyword plan and individual content briefs. |
| 112 | |
| 113 | --- |
| 114 | |
| 115 | ## The Process |
| 116 | |
| 117 | ``` |
| 118 | SEED --> EXPAND --> SEARCH --> CLUSTER --> VALIDATE --> PRIORITIZE --> MAP --> BRIEF |
| 119 | ``` |
| 120 | |
| 121 | 1. **Seed** -- Generate initial keywords from business context and brand memory |
| 122 | 2. **Expand** -- Use the 6 Circles Method to build the full list |
| 123 | 3. **Search** -- Pull live SERP data: autocomplete, People Also Ask, competitor rankings |
| 124 | 4. **Cluster** -- Group related keywords into content pillars |
| 125 | 5. **Validate** -- Run 4-check pillar validation with live competitive data |
| 126 | 6. **Prioritize** -- Score by opportunity, business value, and search evidence |
| 127 | 7. **Map** -- Assign clusters to specific content pieces |
| 128 | 8. ** |