Overview
Creates content optimized for both Google's ranking algorithm and human readers. Conducts keyword research, analyzes top-ranking competition, identifies content gaps, and writes thorough articles that exceed what currently ranks. Searches local folders for brand voice and existing content before writing.
Workflow
<Definition - Keyword Evaluation Criteria>
| Factor | What to Look For |
|---|---|
| Volume | >100/month (local) or >1,000 (national) |
| Competition | Room for SMB? Or dominated by large brands? |
| Intent | Informational, Commercial, or Transactional |
| Content type | What format ranks? (guide, list, comparison) |
| </Definition - Keyword Evaluation Criteria> |
<Definition - Content Gap Framework> When analyzing competitors, identify what the article will add that they lack:
- Deeper subtopic coverage
- Original data, examples, or case studies
- More actionable steps (not just theory)
- Better visual structure (tables, diagrams)
- More current information
- Local/industry-specific relevance </Definition - Content Gap Framework>
<Definition - On-Page SEO Checklist> All items must pass before delivery:
- Primary keyword in: title, meta description, H1, first paragraph, URL slug
- Secondary keywords in H2s/H3s and body
- Title under 60 characters
- Meta description 150-155 characters
- Content length matches/exceeds top competitors
- FAQ targets 3-5 PAA questions
- At least 1 internal link suggestion
- At least 2-3 external links to authoritative sources
- Images have descriptive alt text suggestions
- CTA present for conversion </Definition - On-Page SEO Checklist>
<Definition - Skill-Ready Outputs> Two formatted blocks always included:
- SEO Performance Tracking table (for deal-pipeline-manager): Keyword, Target URL, Publish Date, Check Date
- Social Repurposing Brief (for social-post-creator): Title, Key Points (3-5), Target Audience, CTA </Definition - Skill-Ready Outputs>
<Workflow - Write SEO Content description="Full SEO content workflow: research, outline, write, verify, deliver." tools=[web_search, url_fetch, file_rag_search, file_read, file_write, run_python, open_in_session_tab] triggers=["write a blog post", "SEO content", "help me rank for", "website copy", "landing page", "blog article about", "content that ranks", "article for"]
-
[Agent] Context gathering from local folders. Search indexed folders for: brand voice/style docs ("brand voice", "writing style", "tone of voice"), existing articles on this topic (topic_or_keyword), keyword strategy docs ("keyword list", "content strategy", "SEO keywords"). Extract and save any findings for use in later steps. Validate: Search completed. Findings (or lack thereof) noted. If fails: Skip silently. Proceed without local context.
-
[Decide] Was an existing article on the same topic found?
- Yes: Flag to user. "You already have an article on [topic]. Should I write a follow-up, update it, or target a different angle?"
- No: Proceed to step 3. Validate: User confirms direction if existing content found. If fails: Default to writing a new piece targeting a different angle.
-
[Agent] Keyword research. Search main topic, note autocomplete suggestions, "People Also Ask" questions, and related searches. Evaluate keywords per <Definition - Keyword Evaluation Criteria>. Identify 1 primary keyword + 3-5 secondary keywords. Check SERP for content type that ranks (blog, list, guide, video). Validate: At least 1 primary keyword + 3 secondary keywords identified with volume/difficulty/intent. If fails: Ask user for 3-5 keywords they think customers search for. Use those as starting point.
-
[Ask user] Present keyword recommendations table. Confirm primary keyword and content format. Validate: User confirms keyword selection. If fails: Adjust and re-present.
-
[Agent] Competitive content analysis. Analyze top 5 results for target keyword via web_search and url_fetch. For each: word count, header structure, unique angles, gaps (questions NOT answered), freshness. Apply <Definition - Content Gap Framework> to identify how our content will be better. Validate: At least 3 competing pages analyzed with specific gaps identified. If fails: Proceed with general best practices if pages cannot be fetched.
-
[Agent] Create content outline. Structure: H1 (title with keyword), H2 sections covering all identified gaps, H3 subtopics, FAQ section (3-5 PAA questions), conclusion with CTA. Set target word count based on competition. Apply brand voice notes if found in step 1. Validate: Outline covers all identified gaps. Structure matches what Google rewards for this query type. If fails: Use standard structure (Intro, 5-7 H2 sections, FAQ, Conclusion).
-
[Ask user] Present outline for approval before writing. Validate: User approves outline or requests changes. If fails: Revise and re-present.
-
[Agent] Write complete article following the approved outline. Apply SEO writing rules from . Match brand voice if found. Include internal linking suggestions marked as [INTERNAL LINK: related topic]. Include 2-3 external links to authoritative sources. Validate: Article is complete, reads naturally, exceeds competition in identified gap dimensions. If fails: Write sections progressively. Flag thin sections for user input.
-
[Agent] On-page SEO verification. Run <Definition - On-Page SEO Checklist> against the written article. Report pass/fail for each item. Validate: All critical items pass (keyword in title, meta desc, first para, sufficient length). If fails: Fix failing items automatically. Flag any that require user input.
-
[Agent] Deliver and track. Save article as markdown file. Open in session tab. Include SEO metadata block (title, meta desc, slug, keywords), linking suggestions, image alt text recommendations, and recommended publish/update schedule. Produce skill-ready outputs per <Definition - Skill-Ready Outputs>. Validate: Document is complete, properly formatted, publish-ready. All skill-ready outputs present. If fails: Deliver in chat as formatted text.
-
[Decide] Are distribution tools available (email or Slack)?
- Yes: Offer to share the article via email or Slack channel.
- No: Skip. Do not mention distribution. Validate: If user requests distribution, send successfully. If fails: Provide the file path for manual sharing.
</Workflow - Write SEO Content>
<Template - SEO Metadata Block>
title: "[Under 60 chars, keyword front-loaded]" meta_description: "[150-155 chars with keyword + benefit]" url_slug: "[keyword-based-slug]" primary_keyword: "[keyword]" secondary_keywords: ["kw1", "kw2", "kw3"] target_word_count: [number] content_type: "[blog/guide/list/comparison]" publish_date: "[recommended date]" update_schedule: "[quarterly/biannual]"
</Template - SEO Metadata Block>
<Template - Keyword Recommendations>
| Keyword | Est. Volume | Difficulty | Intent | Recommended Format |
|---|---|---|---|---|
| </Template - Keyword Recommendations> |


