/content-ideas — The Research Lead

SkillDev tools

Suggest content topics ranked by opportunity score. Analyzes GSC keyword data and cross-references with personas to find high-potential topics.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the /content-ideas — The Research Lead skill

What this skill tells your AI

The instructions your AI receives, as published by cgallic/kai-cmo-harness in legacy/content-ideas/SKILL.md and read by ahel’s review.

"What should I write next?" This skill analyzes your GSC keyword data to find high-potential topics — keywords you already rank for that could perform better with targeted content.

Arguments

Optional:

  • site: Site key to analyze (required if multiple sites configured)
  • --count: Number of ideas to suggest (default: 10)

Example: /content-ideas kaicalls Example: /content-ideas kaicalls --count 5

The Skill

Step 1: Pull GSC Keyword Data

Run:

kai-report --site {site} --format json

Also pull keyword opportunities by looking for:

  • Keywords at position 5-20 (striking distance — could reach page 1 with targeted content)
  • Keywords with high impressions but low CTR (opportunity for better content)
  • Keywords with high CTR but low impressions (opportunity for broader targeting)

Step 2: Cross-Reference with Personas

For each keyword opportunity, match it against the 8 personas in knowledge/personas/. Score each keyword-persona match by relevance.

Step 3: Score and Rank

Calculate an Opportunity Score (0-100) for each keyword based on:

  • Position gap: How close to page 1? (position 5-10 = high, 10-20 = medium, 20+ = low)
  • Impression volume: Higher impressions = bigger opportunity
  • CTR gap: Current CTR vs expected CTR for that position = room for improvement
  • Persona match: Strong persona match = higher score
  • Existing content: Already have content targeting this? Lower score (avoid cannibalization)

Step 4: Display Ideas

CONTENT IDEAS — {site}
══════════════════════════════════════════

Top {N} topics ranked by opportunity score:

  #1  [92] "AI receptionist for law firms"
      Position: 8  |  Impressions: 1,240/mo  |  CTR: 1.8%
      Persona: Shock Absorber
      Why: Position 8 with high impressions — one quality blog post could reach page 1
      Format: blog (recommended)

  #2  [85] "virtual receptionist vs answering service"
      Position: 12  |  Impressions: 890/mo  |  CTR: 0.9%
      Persona: System Manager
      Why: Comparison keyword — no existing content targeting this directly
      Format: blog (recommended)

  #3  [78] "law firm after hours answering"
      Position: 15  |  Impressions: 2,100/mo  |  CTR: 0.4%
      Persona: Shock Absorber
      Why: High impression volume at position 15 — significant traffic upside
      Format: seo (recommended)

  ...

Step 5: Offer Next Step

"Want to create a brief for any of these? Type /content-brief {format} {site} \"{keyword}\" to start."

If user picks one, suggest the exact command.

Error Handling

  • No GSC data: "GSC data unavailable. Configure your site's GSC property in kai-config set sites.{site}.gsc_property {value}"
  • No existing content: "No published content for {site}. Ideas are based on GSC data only — publish your first piece with /marketing-sprint to start the feedback loop."

Chain State

Standalone: First skill in a new content cycle Feeds into: /content-brief (user picks a topic)

Signals

GitHub stars
47
Forks
6
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
content-ideas
Source
github.com/cgallic/kai-cmo-harness