/seo-content -- Publication-Ready SEO Content
SEO content has a reputation problem. Most of it is low-value -- keyword-stuffed, AI-sounding, says nothing new. It ranks for a month, then dies.
This skill creates content that ranks AND builds trust. Content that sounds like an expert sharing what they know, not a content mill churning out filler.
The goal: Would someone bookmark this? Would they share it? Would they come back?
If yes, Google will reward it. If no, no amount of optimization saves it.
On Activation
- Read
brand/directory: loadvoice-profile.md,keyword-plan.md,audience.md,positioning.md,competitors.md,learnings.mdif present. - Show what loaded:
Brand context loaded: ├── Voice Profile ✓ "{tone summary}" ├── Keyword Plan ✓ {N} pillars, {N} briefs ├── Audience ✓ "{audience summary}" ├── Positioning ✓ "{primary angle}" ├── Competitors ✓ {N} competitors profiled └── Learnings ✓ {N} entries - If files missing, note suggestions at the end (e.g., run /brand-voice).
- Check for existing content file at
./campaigns/content/{keyword-slug}.md.- If exists --> Content Refresh Mode (see below).
- If not --> Full Creation Mode.
- Determine mode: Single article or Scale mode (programmatic SEO).
- Read
brand/landscape.mdif it exists — check the Claims Blacklist before making ecosystem or competitive claims. If stale (>14 days) or missing, warn that market claims may be outdated.
Prioritization (defer to seo-machine's publishing order)
When the user asks "what should I write next?" — the answer follows seo-machine's conversion-intent-first publishing order, not "whatever has highest volume":
| Order | Pattern | Why |
|---|---|---|
| 1 | /alternatives/[competitor] | Highest conversion intent — reader is already in market |
| 2 | /compare/[a]-vs-[b] | Be the third option in any two-vendor comparison |
| 3 | /for/[use-case] and /for/[audience] | JTBD without competitor name — high TP/volume ratio |
| 4 | Long-form playbooks (this skill's wheelhouse) | Authority + AI-citation + inbound link draw |
| 5 | Generic blog posts | Lowest conversion — defer until ~10 indexed pages exist |
If docs/seo-machine.md exists at the project root, route the user to that skill's Resume mode instead of writing standalone articles — the roadmap there already encodes the priority order. seo-content is the right tool for single articles and playbook-pattern long-form; alternatives/compare/use-case pages belong in seo-machine's programmatic sprint.
Brand Memory
Reads (if they exist)
| File | What it provides | How it shapes output |
|---|---|---|
| voice-profile.md | Tone, personality, vocabulary, rhythm | Directly shapes writing style |
| keyword-plan.md | Prioritized keywords, content briefs, SERP data | Target keyword, cluster, intent, content type |
| audience.md | Buyer profiles, sophistication level, pain points | How technical to write, what examples to use |
| positioning.md | Market angles, differentiators | Unique angle for the piece |
| competitors.md | Named competitors, their positioning | What angle competitors take |
| learnings.md | Past performance data | What content approaches worked before |
Writes
| File | What it contains |
|---|---|
| ./campaigns/content/{keyword-slug}.md | Publication-ready article with frontmatter |
| ./brand/assets.md | Appends entry for the created content piece |
| ./brand/learnings.md | Appends findings after feedback collection |
Required Inputs
- Target keyword -- Primary keyword to rank for
- Keyword cluster -- Related keywords to include naturally
- Search intent -- Informational / Commercial / Transactional
- Content type -- Pillar guide / How-to / Comparison / Listicle / etc.
- Brand voice profile -- (from voice-profile.md, if available)
- Unique angle -- What perspective makes this different?
Pre-fill from brand memory when available. Ask the user only for what's missing.
The Workflow (Single Article)
RESEARCH --> BRIEF --> OUTLINE --> DRAFT --> HUMANIZE --> OPTIMIZE --> SCHEMA --> REVIEW --> SAVE
Phase 1: Research (SERP Analysis)
Use Exa MCP or firecrawl for live SERP research. Analyze top 5 results.
For each result capture: Title/URL, content type, word count, structure, unique angles, gaps, recency, domain type.
Extract SERP features: People Also Ask (ALL of them), Featured Snippet format, AI Overview presence.
Gap analysis: What's missing? What's outdated? What's generic? What's your edge?
Present findings in structured format. See references/serp-analysis-format.md.
If web search unavailable: flag to user, prefix SERP claims with ~, skip to
Phase 2 using brand context instead.
Phase 2: Content Brief
Create or enhance an existing brief from /keyword-research. Include: target keyword, secondary keywords, search intent, content type, target word count, audience, unique angle, key points, PAA questions, competitor gaps, internal links, CTA.
Phase 3: Outline
Structure based on content type. See references/content-structures.md for
templates (Pillar Guide, How-To, Comparison, Listicle).
Map PAA questions: depth-worthy ones become H2s, brief ones go to FAQ section.
Phase 4: Draft
Voice calibration: Match voice-profile.md if loaded. Default: direct, conversational, specific, opinionated.
Rules:
- Answer the search query in the first 2-3 sentences
- Apply the "So What?" chain -- write from the bottom, not the top
- Specificity over generality (numbers, examples, always)
- Show your work (how you know, not just what you claim)
- Use positioning angle from positioning.md to shape perspective
Phase 5: Humanize (Critical)
This is the soul of the skill. See references/anti-ai-detection.md for the
full detection pattern guide.
Summary checklist:
- Kill AI words (delve, comprehensive, crucial, leverage, landscape, etc.)
- Kill AI phrases ("In today's...", "It's important to note...", "Let's dive in")
- Break the triple pattern -- humans are messier
- Inject: personal experience, opinions with reasoning, admitted limitations, specific examples, honest uncertainty, tangents and asides
- Vary rhythm: short punches, long explanations, fragments, questions
The Read-Aloud Test: If you stumble reading it aloud, rewrite it.
Phase 6: Optimize (On-Page SEO)
[ ] Primary keyword in title (front-loaded), H1, first 100 words, 1+ H2, meta, URL slug
[ ] Secondary keywords in H2s naturally
[ ] Meta description: 150-160 chars, compelling, includes keyword
[ ] Internal links: 4-8 per piece
[ ] External links: 2-4 authoritative sources
[ ] Featured snippet optimization (definition/list/table format)
[ ] Image alt text with relevant keywords
Title format: [Primary Keyword]: [Benefit or Hook] ([Year] if relevant) Under 60 characters, front-load keyword.
Phase 7: Schema Markup (JSON-LD)
Generate for EVERY article:
- Article schema -- headline, description, author, dates, publisher, keywords
- FAQ schema -- from PAA questions answered in the article
- HowTo schema -- if content type is how-to tutorial
Include schema in article frontmatter. See references/schema-templates.md.
Phase 8: Quality Review
Run all checklists before saving:
- Content quality: Answers title in first 300 words, 3+ specific examples, unique angle present, all PAA answered, SERP gaps addressed
- Voice quality: No AI-isms, personality present, matches voice-profile.md
- SEO quality: Keywords placed, meta compelling, links included, schema valid
- E-E-A-T: Experience shown, expertise demonstrated, sources cited
See references/eeat-examples.md for 20 top-performing human content examples.
Content Refresh Mode
Triggered when content file already exists