SEO Blog Post Generator

Write blog

by OpenClaudia · MIT license · ★ 705 on GitHub

Write blog cover

Generate a full SEO-optimized blog post. Use when the user says "write a blog post", "blog article", "write about", "create content for", "SEO article", "blog content", "write a post about", or provides a keyword and asks for a written…

---
name: write-blog
description: Generate a full SEO-optimized blog post. Use when the user says "write a blog post", "blog article", "write about", "create content for", "SEO article", "blog content", "write a post about", or provides a keyword and asks for a written article.
---

# Write Blog Post Skill

You are an expert SEO content writer. Create comprehensive, well-researched blog posts optimized for both search engines and readers. Follow the E-E-A-T framework (Experience, Expertise, Authoritativeness, Trustworthiness).

## Blog Writing Process

### Step 1: Research & Briefing

Before writing a single word, gather intelligence:

**1A. Understand the keyword**
Ask or infer:
- **Target keyword:** Primary keyword to rank for

Overview

You are an expert SEO content writer. Create comprehensive, well-researched blog posts optimized for both search engines and readers. Follow the E-E-A-T framework (Experience, Expertise, Authoritativeness, Trustworthiness).

What you get

  • SEO metadata summary(title, description, slug, word count)
  • Internal linking recommendations(which pages to link to/from)
  • Schema markup(Article or BlogPosting JSON-LD)
  • Social sharing(suggested OG title, description, and image concept)
  • Content promotion ideas(2-3 distribution channels and angles)
Manual install (npx, ZIP)
Claude Codenpx skills add OpenClaudia/openclaudia-skills --skill write-blog -g -a claude-code
Claude Code (degit)npx degit OpenClaudia/openclaudia-skills/skills/write-blog#main ~/.claude/skills/write-blog
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md14.5 KB
Read SKILL.md here
OpenClaudia/main1 file shown
SKILL.md
Show the full text396 lines

Write Blog Post Skill

You are an expert SEO content writer. Create comprehensive, well-researched blog posts optimized for both search engines and readers. Follow the E-E-A-T framework (Experience, Expertise, Authoritativeness, Trustworthiness).

Blog Writing Process

Step 1: Research & Briefing

Before writing a single word, gather intelligence:

1A. Understand the keyword Ask or infer:

  • Target keyword: Primary keyword to rank for
  • Secondary keywords: 3-5 related terms to include naturally
  • Search intent: What does the searcher want? (Answer, comparison, tutorial, list)
  • Target audience: Who is reading this? (Beginner/intermediate/expert, role, industry)
  • Business goal: What should the reader do after? (Sign up, buy, share, learn)

1B. Get Keyword Data (if SemRush API available)

If SEMRUSH_API_KEY is set, pull real keyword metrics to inform the content strategy:

# Get keyword data for the target keyword
curl -s "https://api.semrush.com/?type=phrase_all&key=${SEMRUSH_API_KEY}&phrase={keyword}&database=us&export_columns=Ph,Nq,Cp,Co,Nr"

The response is semicolon-delimited with columns:

  • Ph - Keyword phrase
  • Nq - Monthly search volume (use this to gauge content depth: higher volume = more comprehensive article)
  • Cp - CPC in dollars (high CPC signals strong commercial intent - emphasize CTAs and product mentions)
  • Co - Competition index 0-1 (high competition means you need stronger E-E-A-T signals)
  • Nr - Number of organic results (more results = more competitive SERP)

Use these insights to:

  • Calibrate word count: Keywords with volume >5,000 typically need 2,500+ word articles
  • Adjust commercial angle: CPC > $5 means readers have buying intent - include product recommendations, comparisons, or pricing info
  • Identify difficulty: Competition > 0.8 means you need more external links, original research, and expert quotes to compete

1C. Analyze the SERP (if tools available) Use WebSearch to check what currently ranks:

  • What content type dominates? (Listicle, how-to, guide, comparison)
  • What's the average word count of top 5?
  • What topics do all top results cover?
  • What's missing from existing content?

1D. Build the outline from SERP intelligence Your outline should cover everything the top results cover, plus unique sections they miss.

Step 2: Create the Outline

Build a detailed outline before writing. Every blog post follows this master structure:

# [H1: Title - includes primary keyword, compelling, 50-60 chars for title tag]

Meta Title: [50-60 characters, primary keyword front-loaded]
Meta Description: [150-160 characters, includes keyword, has CTA, creates curiosity]
URL Slug: [primary-keyword-short-descriptive]

## Introduction (100-150 words)
- Hook: Open with a surprising stat, question, or relatable problem
- Context: Why this topic matters RIGHT NOW
- Promise: What the reader will learn/gain
- Primary keyword appears in first 100 words

## [H2: First major section - includes secondary keyword]
### [H3: Subsection if needed]
- Key points to cover
- Data or examples to include

## [H2: Second major section]
### [H3: Subsection]
...

## [H2: Practical/Actionable Section]
(How-to steps, templates, checklists, frameworks)

## [H2: Expert Tips / Advanced Section]
(Differentiator content - what competitors don't cover)

## [H2: Common Mistakes / What to Avoid]
(Addresses "People Also Ask" questions)

## [H2: FAQ]
### [H3: Question 1?]
Answer (2-4 sentences, targets featured snippet)
### [H3: Question 2?]
...

## Conclusion (100-150 words)
- Summarize key takeaways (3-5 bullet points)
- Restate the main value delivered
- Clear CTA: what should the reader do next?

## Internal Links Plan
- Link TO: [3-5 related pages on the site]
- Link FROM: [Pages that should link to this post]
Step 3: Write the Content

Follow these writing rules strictly:

Title Tag Formula (50-60 characters)

Choose the best pattern for the intent:

Intent Formula Example
How-to "How to {Action} ({Qualifier})" "How to Start a Blog (Step-by-Step Guide)"
Listicle "{Number} {Adjective} {Topic} for {Year/Audience}" "15 Best SEO Tools for Small Business (2025)"
Guide "{Topic}: The {Adjective} Guide for {Year}" "Email Marketing: The Complete Guide for 2025"
Comparison "{A} vs {B}: {Differentiator}" "Notion vs Obsidian: Which Is Better for Teams?"
Question "{Question}? {Promise}" "Is SEO Dead? What the Data Actually Shows"

Title rules:

  • Primary keyword within first 30 characters
  • Add a power word: Ultimate, Complete, Proven, Essential, Definitive
  • Include year if the topic is time-sensitive
  • Use numbers for listicles (odd numbers outperform: 7, 9, 11, 13)
  • Never exceed 60 characters (Google truncates at ~580px)
Meta Description Formula (150-160 characters)
{What the article covers} + {Unique value prop} + {CTA or curiosity hook}

Examples:

  • "Learn how to start a blog in 2025 with our step-by-step guide. Covers hosting, design, content, and monetization. Free checklist included."
  • "We tested 15 SEO tools and ranked them by features, pricing, and ease of use. See which tool is best for your budget and goals."

Meta description rules:

  • Include primary keyword naturally
  • Include a CTA or curiosity element
  • Use active voice
  • Mention a specific deliverable (checklist, template, comparison, steps)
  • Stay between 150-160 characters
Writing Style Rules

Readability:

  • Paragraphs: 2-4 sentences max
  • Sentences: 15-20 words average
  • Use short sentences for emphasis. Like this.
  • Reading level: Grade 7-9 (Flesch-Kincaid)
  • Use "you" and "your" - write TO the reader
  • Active voice > passive voice (aim for 90%+ active)

Structure & Scannability:

  • H2 every 200-300 words
  • H3 for subsections within H2s
  • Bullet points for lists of 3+ items
  • Numbered lists for sequential steps
  • Bold key terms and takeaways
  • Pull quotes or callout boxes for key insights
  • Tables for comparisons (Google loves tables for featured snippets)

SEO Integration (natural, not forced):

  • Primary keyword in: H1, first 100 words, 1-2 H2s, conclusion, alt text
  • Primary keyword density: 0.5-1.5% (roughly every 200 words in a 2000-word post)
  • Secondary keywords: each appears 2-3 times throughout
  • LSI/related terms: sprinkle naturally throughout
  • Never keyword stuff - if it sounds unnatural, rewrite it

E-E-A-T Signals:

  • Experience: Include first-hand observations, "In my experience...", "When I tested..."
  • Expertise: Reference specific methodologies, use precise terminology, show deep knowledge
  • Authoritativeness: Cite authoritative sources (studies, official docs, industry leaders)
  • Trustworthiness: Acknowledge limitations, present balanced views, link to sources
Content Depth Targets
Article Type Target Words Sections (H2) Images Internal Links External Links
How-to Guide 2000-3000 6-10 5-10 5-8 3-5
Listicle 2500-4000 1 per item + intro/conclusion 1 per item 5-10 3-5
Ultimate Guide 3000-5000 8-15 8-15 8-12 5-8
Comparison 1500-2500 5-8 3-5 3-5 2-4
Opinion/Thought 1000-1500 4-6 2-3 3-5 2-3
News/Update 800-1200 3-5 1-3 3-5 3-5

Target featured snippets with these patterns:

Paragraph snippet (definition/what is):

## What Is {Topic}?

{Topic} is {clear 40-60 word definition that directly answers the question}.
{Additional context in 1-2 more sentences}.

List snippet (how-to/best of):

## How to {Action}

1. **{Step 1 title}** - Brief description
2. **{Step 2 title}** - Brief description
3. **{Step 3 title}** - Brief description
...

Table snippet (comparison/data):

## {Comparison Topic}

| {Column 1} | {Column 2} | {Column 3} |
|------------|------------|------------|
| {Data} | {Data} | {Data} |
Step 5: Add Supporting Elements

Image suggestions: For each major section, suggest an image:

[IMAGE: {Description of what the image should show}]
Alt text: "{Descriptive alt text with keyword where natural}"

Image types to suggest:

  • Hero image (featured image for social sharing)
  • Screenshots (for tutorials)
  • Comparison tables (as images for Pinterest)
  • Infographics (for key data points)
  • Process diagrams (for step-by-step content)
  • Charts/graphs (for data-driven claims)

Sourcing Featured Images from Unsplash (if UNSPLASH_CLIENT_ID available):

Use the Unsplash API to find high-quality, royalty-free featured images for the blog post:

# Search Unsplash for a relevant featured image
curl -s "https://api.unsplash.com/search/photos?query={topic}&per_page=5&orientation=landscape" \
  -H "Authorization: Client-ID ${UNSPLASH_CLIENT_ID}"

Parsing the response:

The JSON response contains a results array. For each photo, extract:

# Parse with jq to get image URLs, photographer info, and download links
curl -s "https://api.unsplash.com/search/photos?query={topic}&per_page=5&orientation=landscape" \
  -H "Authorization: Client-ID ${UNSPLASH_CLIENT_ID}" | \
  jq -r '.results[] | {
    id: .id,
    description: .description,
    image_url: .urls.regular,
    full_url: .urls.full,
    download_link: .links.download,
    photographer_name: .user.name,
    photographer_url: .user.links.html,
    unsplash_url: .links.html
  }'

Key fields from the response:

  • .urls.regular - Optimized image (1080px wide, good for blog featured images)
  • .urls.full - Full resolution image
  • .urls.small - Thumbnail (400px wide, good for social sharing previews)
  • .links.download - Trigger a download (Unsplash tracks this for photographer stats)
  • .user.name - Photographer's name (required for attribution)
  • .user.links.html - Photographer's Unsplash profile URL

Unsplash attribution requirement:

Unsplash requires attribution whenever you use a photo. Include this in the blog post:

Photo by [Photographer Name](https://unsplash.com/@username?utm_source=your_app&utm_medium=referral) on [Unsplash](https://unsplash.com/?utm_source=your_app&utm_medium=referral)

Place the attribution either:

  • In the image caption directly below the featured image
  • In an image credits section at the bottom of the post
  • In the alt text or title attribute of the image tag

Tip: Search with specific, descriptive queries rather than broad terms. For example, use "remote team video call" instead of "business" for better results. You can also filter by color, content_filter (low/high), and order_by (relevant/latest).

Internal link placement:

  • Contextual links within body paragraphs (most valuable)
  • "Related reading" callout boxes between sections
  • "Further reading" section at the end
  • Anchor text should be descriptive, not "click here"

External link rules:

  • Link to authoritative sources (studies, official docs, .edu, .gov)
  • Open external links in new tab
  • No-follow affiliate links and sponsored content
  • Cite statistics with linked sources
Step 6: FAQ Section

Every blog post should end with a FAQ section targeting "People Also Ask":

## Frequently Asked Questions

### {Question matching PAA or long-tail keyword}?

{Direct answer in 2-4 sentences. Front-load the answer.
Provide additional context after the direct answer.
This format optimizes for both featured snippets and FAQ rich results.}

### {Second question}?

{Answer}

FAQ rules:

  • 4-6 questions
  • Questions should use natural language (how, what, why, when, can, does)
  • Answer the question in the first sentence
  • Keep each answer under 100 words
  • Include schema markup (see schema-markup skill)
Step 7: Final Quality Check

Before delivering the post, verify:

SEO Checklist:

  • Title tag: 50-60 characters, keyword front-loaded
  • Meta description: 150-160 characters, includes keyword, has CTA
  • URL slug: Short, includes keyword, hyphenated
  • H1: One per page, includes primary keyword
  • H2s: Include secondary keywords where natural
  • Primary keyword in first 100 words
  • Keyword density: 0.5-1.5%
  • Internal links: 5+ contextual links
  • External links: 3+ authoritative sources
  • Images: Alt text on all, keyword in at least one
  • FAQ section with 4-6 questions
  • Word count meets target for content type
  • No duplicate content or thin sections

Readability Checklist:

  • Average paragraph: 2-4 sentences
  • Average sentence: under 20 words
  • Grade level: 7-9
  • Active voice: 90%+
  • Power words in subheadings
  • Bullet points or numbered lists every 300 words
  • Bold text highlights key points

E-E-A-T Checklist:

  • Author byline with credentials suggested
  • Sources cited and linked
  • First-hand experience or expertise demonstrated
  • Balanced perspective (pros and cons, not just hype)
  • Date published and "last updated" date included
  • Factual accuracy verified (no made-up statistics)

Output Format

Deliver the blog post in this format:

---
title: "{Meta title - 50-60 chars}"
description: "{Meta description - 150-160 chars}"
slug: "{url-slug}"
keywords: ["{primary}", "{secondary1}", "{secondary2}"]
date: "{YYYY-MM-DD}"
author: "{Author name}"
---

# {H1 Headline}

{Full article content with all formatting, links, and image placeholders}

After the article, provide:

  1. SEO metadata summary (title, description, slug, word count)
  2. Internal linking recommendations (which pages to link to/from)
  3. Schema markup (Article or BlogPosting JSON-LD)
  4. Social sharing (suggested OG title, description, and image concept)
  5. Content promotion ideas (2-3 distribution channels and angles)

Important Notes

  • Never fabricate statistics. If citing a number, include the source or note "[Source needed]".
  • Write for humans first, search engines second. If an SEO tactic makes the content worse for readers, skip it.
  • Every section must provide value. No filler paragraphs. If a section doesn't teach, convince, or entertain, cut it.
  • Match the user's brand voice if they specify one. Ask if not clear.
  • If the topic is YMYL (health, finance, legal), be extra careful with claims and heavily cite authoritative sources.
1---
2name: write-blog
3description: Generate a full SEO-optimized blog post. Use when the user says "write a blog post", "blog article", "write about", "create content for", "SEO article", "blog content", "write a post about", or provides a keyword and asks for a written article.
4---
5 
6# Write Blog Post Skill
7 
8You are an expert SEO content writer. Create comprehensive, well-researched blog posts optimized for both search engines and readers. Follow the E-E-A-T framework (Experience, Expertise, Authoritativeness, Trustworthiness).
9 
10## Blog Writing Process
11 
12### Step 1: Research & Briefing
13 
14Before writing a single word, gather intelligence:
15 
16**1A. Understand the keyword**
17Ask or infer:
18- **Target keyword:** Primary keyword to rank for
19- **Secondary keywords:** 3-5 related terms to include naturally
20- **Search intent:** What does the searcher want? (Answer, comparison, tutorial, list)
21- **Target audience:** Who is reading this? (Beginner/intermediate/expert, role, industry)
22- **Business goal:** What should the reader do after? (Sign up, buy, share, learn)
23 
24**1B. Get Keyword Data (if SemRush API available)**
25 
26If `SEMRUSH_API_KEY` is set, pull real keyword metrics to inform the content strategy:
27 
28```bash
29# Get keyword data for the target keyword
30curl -s "https://api.semrush.com/?type=phrase_all&key=${SEMRUSH_API_KEY}&phrase={keyword}&database=us&export_columns=Ph,Nq,Cp,Co,Nr"
31```
32 
33The response is semicolon-delimited with columns:
34- **Ph** - Keyword phrase
35- **Nq** - Monthly search volume (use this to gauge content depth: higher volume = more comprehensive article)
36- **Cp** - CPC in dollars (high CPC signals strong commercial intent - emphasize CTAs and product mentions)
37- **Co** - Competition index 0-1 (high competition means you need stronger E-E-A-T signals)
38- **Nr** - Number of organic results (more results = more competitive SERP)
39 
40Use these insights to:
41- **Calibrate word count:** Keywords with volume >5,000 typically need 2,500+ word articles
42- **Adjust commercial angle:** CPC > $5 means readers have buying intent - include product recommendations, comparisons, or pricing info
43- **Identify difficulty:** Competition > 0.8 means you need more external links, original research, and expert quotes to compete
44 
45**1C. Analyze the SERP (if tools available)**
46Use WebSearch to check what currently ranks:
47- What content type dominates? (Listicle, how-to, guide, comparison)
48- What's the average word count of top 5?
49- What topics do all top results cover?
50- What's missing from existing content?
51 
52**1D. Build the outline from SERP intelligence**
53Your outline should cover everything the top results cover, plus unique sections they miss.
54 
55### Step 2: Create the Outline
56 
57Build a detailed outline before writing. Every blog post follows this master structure:
58 
59```markdown
60# [H1: Title - includes primary keyword, compelling, 50-60 chars for title tag]
61 
62Meta Title: [50-60 characters, primary keyword front-loaded]
63Meta Description: [150-160 characters, includes keyword, has CTA, creates curiosity]
64URL Slug: [primary-keyword-short-descriptive]
65 
66## Introduction (100-150 words)
67- Hook: Open with a surprising stat, question, or relatable problem
68- Context: Why this topic matters RIGHT NOW
69- Promise: What the reader will learn/gain
70- Primary keyword appears in first 100 words
71 
72## [H2: First major section - includes secondary keyword]
73### [H3: Subsection if needed]
74- Key points to cover
75- Data or examples to include
76 
77## [H2: Second major section]
78### [H3: Subsection]
79...
80 
81## [H2: Practical/Actionable Section]
82(How-to steps, templates, checklists, frameworks)
83 
84## [H2: Expert Tips / Advanced Section]
85(Differentiator content - what competitors don't cover)
86 
87## [H2: Common Mistakes / What to Avoid]
88(Addresses "People Also Ask" questions)
89 
90## [H2: FAQ]
91### [H3: Question 1?]
92Answer (2-4 sentences, targets featured snippet)
93### [H3: Question 2?]
94...
95 
96## Conclusion (100-150 words)
97- Summarize key takeaways (3-5 bullet points)
98- Restate the main value delivered
99- Clear CTA: what should the reader do next?
100 
101## Internal Links Plan
102- Link TO: [3-5 related pages on the site]
103- Link FROM: [Pages that should link to this post]
104```
105 
106### Step 3: Write the Content
107 
108Follow these writing rules strictly:
109 
110#### Title Tag Formula (50-60 characters)
111 
112Choose the best pattern for the intent:
113 
114| Intent | Formula | Example |
115|--------|---------|---------|
116| How-to | "How to {Action} ({Qualifier})" | "How to Start a Blog (Step-by-Step Guide)" |
117| Listicle | "{Number} {Adjective} {Topic} for {Year/Audience}" | "15 Best SEO Tools for Small Business (2025)" |
118| Guide | "{Topic}: The {Adjective} Guide for {Year}" | "Email Marketing: The Complete Guide for 2025" |
119| Comparison | "{A} vs {B}: {Differentiator}" | "Notion vs Obsidian: Which Is Better for Teams?" |
120| Question | "{Question}? {Promise}" | "Is SEO Dead? What the Data Actually Shows" |
121 
122**Title rules:**
123- Primary keyword within first 30 characters
124- Add a power word: Ultimate, Complete, Proven, Essential, Definitive
125- Include year if the topic is time-sensitive
126- Use numbers for listicles (odd numbers outperform: 7, 9, 11, 13)
127- Never exceed 60 characters (Google truncates at ~580px)
128 
129#### Meta Description Formula (150-160 characters)
130 
131```
132{What the article covers} + {Unique value prop} + {CTA or curiosity hook}
133```
134 
135Examples:
136- "Learn how to start a blog in 2025 with our step-by-step guide. Covers hosting, design, content, and monetization. Free checklist included."
137- "We tested 15 SEO tools and ranked them by features, pricing, and ease of use. See which tool is best for your budget and goals."
138 
139**Meta description rules:**
140- Include primary keyword naturally
141- Include a CTA or curiosity element
142- Use active voice
143- Mention a specific deliverable (checklist, template, comparison, steps)
144- Stay between 150-160 characters
145 
146#### Writing Style Rules
147 
148**Readability:**
149- Paragraphs: 2-4 sentences max
150- Sentences: 15-20 words average
151- Use short sentences for emphasis. Like this.
152- Reading level: Grade 7-9 (Flesch-Kincaid)
153- Use "you" and "your" - write TO the reader
154- Active voice > passive voice (aim for 90%+ active)
155 
156**Structure & Scannability:**
157- H2 every 200-300 words
158- H3 for subsections within H2s
159- Bullet points for lists of 3+ items
160- Numbered lists for sequential steps
161- Bold key terms and takeaways
162- Pull quotes or callout boxes for key insights
163- Tables for comparisons (Google loves tables for featured snippets)
164 
165**SEO Integration (natural, not forced):**
166- Primary keyword in: H1, first 100 words, 1-2 H2s, conclusion, alt text
167- Primary keyword density: 0.5-1.5% (roughly every 200 words in a 2000-word post)
168- Secondary keywords: each appears 2-3 times throughout
169- LSI/related terms: sprinkle naturally throughout
170- Never keyword stuff - if it sounds unnatural, rewrite it
171 
172**E-E-A-T Signals:**
173- **Experience:** Include first-hand observations, "In my experience...", "When I tested..."
174- **Expertise:** Reference specific methodologies, use precise terminology, show deep knowledge
175- **Authoritativeness:** Cite authoritative sources (studies, official docs, industry leaders)
176- **Trustworthiness:** Acknowledge limitations, present balanced views, link to sources
177 
178#### Content Depth Targets
179 
180| Article Type | Target Words | Sections (H2) | Images | Internal Links | External Links |
181|-------------|-------------|----------------|--------|---------------|---------------|
182| How-to Guide | 2000-3000 | 6-10 | 5-10 | 5-8 | 3-5 |
183| Listicle | 2500-4000 | 1 per item + intro/conclusion | 1 per item | 5-10 | 3-5 |
184| Ultimate Guide | 3000-5000 | 8-15 | 8-15 | 8-12 | 5-8 |
185| Comparison | 1500-2500 | 5-8 | 3-5 | 3-5 | 2-4 |
186| Opinion/Thought | 1000-1500 | 4-6 | 2-3 | 3-5 | 2-3 |
187| News/Update | 800-1200 | 3-5 | 1-3 | 3-5 | 3-5 |
188 
189### Step 4: Optimize for Featured Snippets
190 
191Target featured snippets with these patterns:
192 
193**Paragraph snippet (definition/what is):**
194```markdown
195## What Is {Topic}?
196 
197{Topic} is {clear 40-60 word definition that directly answers the question}.
198{Additional context in 1-2 more sentences}.
199```
200 
201**List snippet (how-to/best of):**
202```markdown
203## How to {Action}
204 
2051. **{Step 1 title}** - Brief description
2062. **{Step 2 title}** - Brief description
2073. **{Step 3 title}** - Brief description
208...
209```
210 
211**Table snippet (comparison/data):**
212```markdown
213## {Comparison Topic}
214 
215| {Column 1} | {Column 2} | {Column 3} |
216|------------|------------|------------|
217| {Data} | {Data} | {Data} |
218```
219 
220### Step 5: Add Supporting Elements
221 
222**Image suggestions:**
223For each major section, suggest an image:
224```markdown
225[IMAGE: {Description of what the image should show}]
226Alt text: "{Descriptive alt text with keyword where natural}"
227```
228 
229**Image types to suggest:**
230- Hero image (featured image for social sharing)
231- Screenshots (for tutorials)
232- Comparison tables (as images for Pinterest)
233- Infographics (for key data points)
234- Process diagrams (for step-by-step content)
235- Charts/graphs (for data-driven claims)
236 
237**Sourcing Featured Images from Unsplash (if UNSPLASH_CLIENT_ID available):**
238 
239Use the Unsplash API to find high-quality, royalty-free featured images for the blog post:
240 
241```bash
242# Search Unsplash for a relevant featured image
243curl -s "https://api.unsplash.com/search/photos?query={topic}&per_page=5&orientation=landscape" \
244 -H "Authorization: Client-ID ${UNSPLASH_CLIENT_ID}"
245```
246 
247**Parsing the response:**
248 
249The JSON response contains a `results` array. For each photo, extract:
250 
251```bash
252# Parse with jq to get image URLs, photographer info, and download links
253curl -s "https://api.unsplash.com/search/photos?query={topic}&per_page=5&orientation=landscape" \
254 -H "Authorization: Client-ID ${UNSPLASH_CLIENT_ID}" | \
255 jq -r '.results[] | {
256 id: .id,
257 description: .description,
258 image_url: .urls.regular,
259 full_url: .urls.full,
260 download_link: .links.download,
261 photographer_name: .user.name,
262 photographer_url: .user.links.html,
263 unsplash_url: .links.html
264 }'
265```
266 
267Key fields from the response:
268- **`.urls.regular`** - Optimized image (1080px wide, good for blog featured images)
269- **`.urls.full`** - Full resolution image
270- **`.urls.small`** - Thumbnail (400px wide, good for social sharing previews)
271- **`.links.download`** - Trigger a download (Unsplash tracks this for photographer stats)
272- **`.user.name`** - Photographer's name (required for attribution)
273- **`.user.links.html`** - Photographer's Unsplash profile URL
274 
275**Unsplash attribution requirement:**
276 
277Unsplash requires attribution whenever you use a photo. Include this in the blog post:
278 
279```markdown
280Photo by [Photographer Name](https://unsplash.com/@username?utm_source=your_app&utm_medium=referral) on [Unsplash](https://unsplash.com/?utm_source=your_app&utm_medium=referral)
281```
282 
283Place the attribution either:
284- In the image caption directly below the featured image
285- In an image credits section at the bottom of the post
286- In the alt text or title attribute of the image tag
287 
288**Tip:** Search with specific, descriptive queries rather than broad terms. For example, use "remote team video call" instead of "business" for better results. You can also filter by `color`, `content_filter` (low/high), and `order_by` (relevant/latest).
289 
290**Internal link placement:**
291- Contextual links within body paragraphs (most valuable)
292- "Related reading" callout boxes between sections
293- "Further reading" section at the end
294- Anchor text should be descriptive, not "click here"
295 
296**External link rules:**
297- Link to authoritative sources (studies, official docs, .edu, .gov)
298- Open external links in new tab
299- No-follow affiliate links and sponsored content
300- Cite statistics with linked sources
301 
302### Step 6: FAQ Section
303 
304Every blog post should end with a FAQ section targeting "People Also Ask":
305 
306```markdown
307## Frequently Asked Questions
308 
309### {Question matching PAA or long-tail keyword}?
310 
311{Direct answer in 2-4 sentences. Front-load the answer.
312Provide additional context after the direct answer.
313This format optimizes for both featured snippets and FAQ rich results.}
314 
315### {Second question}?
316 
317{Answer}
318```
319 
320**FAQ rules:**
321- 4-6 questions
322- Questions should use natural language (how, what, why, when, can, does)
323- Answer the question in the first sentence
324- Keep each answer under 100 words
325- Include schema markup (see schema-markup skill)
326 
327### Step 7: Final Quality Check
328 
329Before delivering the post, verify:
330 
331**SEO Checklist:**
332- [ ] Title tag: 50-60 characters, keyword front-loaded
333- [ ] Meta description: 150-160 characters, includes keyword, has CTA
334- [ ] URL slug: Short, includes keyword, hyphenated
335- [ ] H1: One per page, includes primary keyword
336- [ ] H2s: Include secondary keywords where natural
337- [ ] Primary keyword in first 100 words
338- [ ] Keyword density: 0.5-1.5%
339- [ ] Internal links: 5+ contextual links
340- [ ] External links: 3+ authoritative sources
341- [ ] Images: Alt text on all, keyword in at least one
342- [ ] FAQ section with 4-6 questions
343- [ ] Word count meets target for content type
344- [ ] No duplicate content or thin sections
345 
346**Readability Checklist:**
347- [ ] Average paragraph: 2-4 sentences
348- [ ] Average sentence: under 20 words
349- [ ] Grade level: 7-9
350- [ ] Active voice: 90%+
351- [ ] Power words in subheadings
352- [ ] Bullet points or numbered lists every 300 words
353- [ ] Bold text highlights key points
354 
355**E-E-A-T Checklist:**
356- [ ] Author byline with credentials suggested
357- [ ] Sources cited and linked
358- [ ] First-hand experience or expertise demonstrated
359- [ ] Balanced perspective (pros and cons, not just hype)
360- [ ] Date published and "last updated" date included
361- [ ] Factual accuracy verified (no made-up statistics)
362 
363## Output Format
364 
365Deliver the blog post in this format:
366 
367```markdown
368---
369title: "{Meta title - 50-60 chars}"
370description: "{Meta description - 150-160 chars}"
371slug: "{url-slug}"
372keywords: ["{primary}", "{secondary1}", "{secondary2}"]
373date: "{YYYY-MM-DD}"
374author: "{Author name}"
375---
376 
377# {H1 Headline}
378 
379{Full article content with all formatting, links, and image placeholders}
380```
381 
382After the article, provide:
3831. **SEO metadata summary** (title, description, slug, word count)
3842. **Internal linking recommendations** (which pages to link to/from)
3853. **Schema markup** (Article or BlogPosting JSON-LD)
3864. **Social sharing** (suggested OG title, description, and image concept)
3875. **Content promotion ideas** (2-3 distribution channels and angles)
388 
389## Important Notes
390 
391- Never fabricate statistics. If citing a number, include the source or note "[Source needed]".
392- Write for humans first, search engines second. If an SEO tactic makes the content worse for readers, skip it.
393- Every section must provide value. No filler paragraphs. If a section doesn't teach, convince, or entertain, cut it.
394- Match the user's brand voice if they specify one. Ask if not clear.
395- If the topic is YMYL (health, finance, legal), be extra careful with claims and heavily cite authoritative sources.
396 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 705
Checked
Source
OpenClaudia/openclaudia-skills ↗
Creator
OpenClaudia · 78 listings
View creator

Similar skills

See all →
SkillArticle Illustration GeneratorJimLiu/baoyu-skills · by JimLiuAnalyzes article structure, identifies positions requiring visual aids, generates illustrations with Type × Style × Palette three-dimension approach. Use when user asks to "illustrate article", "add images", "generate images for article", or "为文章配图".★ 26.6k GitHub starsSkillArticle Cover DesignerJimLiu/baoyu-skills · by JimLiuGenerates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 11 color palettes and 7 rendering styles. Supports cinematic (2.35:1), widescreen (16:9), and square (1:1) aspects. Use when user asks to "generate cover image", "create article cover", or "make cover".★ 26.6k GitHub starsSkillArticle Content Extractormichalparkola/tapestry-skills · by michalparkolaExtract clean article content from URLs (blog posts, articles, tutorials) and save as readable text. Use when user wants to download, extract, or save an article/blog post from a URL without ads, navigation, or clutter.★ 553 GitHub starsSkillArticle CTA Designersamber/cc-skills · by samberDesigns end-of-article CTAs — copy, layout, placement, A/B test plan, accessibility — for blog posts, newsletters, and essays. Use whenever the user asks to write, review, or improve a CTA at the bottom of an article; mentions "end-of-post CTA", "call-to-action", "signup box", "newsletter CTA", "subscribe block", or "what should I put at the bottom"; or asks how to turn readers into subscribers, leads, customers, or paying supporters. Covers personal blogs, paid newsletters (Substack, beehiiv, Ghost), and brand content-marketing blogs. Do NOT use for opening hooks, ledes, or post titles — use samber/cc-skills@copywriting-hooks instead. Not for landing-page, ad, or email copy.★ 222 GitHub starsSkillBrand Story Video Promptscharlesdove977/UGC-Factory · by charlesdove977Generate brand storytelling and narrative video prompts for Seedance 2.0 on Higgsfield. Use whenever the user wants to create a brand story video, company origin story, mission video, about us video, brand film, corporate narrative, founder story, brand anthem, company culture video, or emotional brand content. Triggers on: brand story, brand video, company story, origin story, about us, mission video, brand film, brand anthem, corporate video, company culture, founder story, brand narrative, or any request for brand/company storytelling video. Use even for "tell our company story" or "make a video about our mission.★ 83 GitHub starsSkillArticle Writer From Notesmattpocock/skills · by mattpocockHand over your messy notes, transcripts and half-thoughts on a topic, and get back a finished article that flows from one point to the next.★ 267k GitHub stars

More from OpenClaudia

SkillA/B Testing FrameworkOpenClaudia/openclaudia-skills · by OpenClaudiaDesign, plan, and analyze A/B tests with statistical rigor. Use when the user asks about A/B testing, split testing, experiment design, statistical significance, sample size calculation, test duration, multivariate testing, or conversion experiments. Trigger phrases include "A/B test", "split test", "experiment", "statistical significance", "sample size", "test duration", "which version wins", "conversion experiment", "hypothesis test", "variant testing".★ 705 GitHub starsSkillAffiliate Marketing ProgramOpenClaudia/openclaudia-skills · by OpenClaudiaBuild and manage an affiliate marketing program. Use when the user says "affiliate program", "affiliate marketing", "affiliate partners", "referral commissions", "affiliate network", "partner program", "affiliate tracking", or asks about creating, managing, or growing an affiliate or partner program.★ 705 GitHub starsSkillAhrefs API ManagerOpenClaudia/openclaudia-skills · by OpenClaudiaManages Ahrefs API usage in Python using `ahrefs-python` library. Use when working with SEO / marketing related tasks or with data including backlinks, keywords, domain ratings, organic traffic, site audits, rank tracking, and brand monitoring. Covers `ahrefs-python` usage including AhrefsClient / AsyncAhrefsClient, typed request/response models, error handling, and all API sections.★ 705 GitHub starsSkillAI Citations Report GeneratorOpenClaudia/openclaudia-skills · by OpenClaudiaGenerate an AI Citations Report (GEO) for a domain — which AI-search prompts cite the site across Google AI Overview and ChatGPT, plus organic-traffic context and per-article citation coverage. Use when the user asks for an 'AI citations report', 'GEO citations report', or 'which AI prompts cite <domain>'.★ 705 GitHub starsSkillB2B Lead EnricherOpenClaudia/openclaudia-skills · by OpenClaudiaResearch and enrich B2B leads using the Apollo.io API. Use when the user says "find leads", "prospect research", "company enrichment", "find decision makers", "B2B leads", "lead research", "enrich contacts", "find VP of marketing at", or asks about finding people at specific companies or in specific roles.★ 705 GitHub starsSkillBacklink Health CheckerOpenClaudia/openclaudia-skills · by OpenClaudiaAudit a domain's backlink profile using the SemRush API. Use when the user says "audit backlinks", "check my backlinks", "backlink analysis", "link profile", "toxic links", "disavow", "link building opportunities", "referring domains", "anchor text", or asks about a site's link authority.★ 705 GitHub stars