skills/blog/affiliate-blog-builder/SKILL.md
Write SEO-optimized affiliate blog articles, product reviews, comparison posts, listicles, and how-to guides. Triggers on: "write a blog post about", "review of [product]", "best [category] article", "comparison blog", "affiliate blog", "SEO article", "write a review", "product roundup", "blog content for affiliate", "how to use [product] blog post", "listicle about [category]", "[product] vs [product] blog", "content for my affiliate site".
npx skillsauth add affitor/affiliate-skills affiliate-blog-builderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Write full SEO-optimized blog articles that rank on Google and drive passive affiliate revenue. Supports four formats: product review, head-to-head comparison, best-of listicle, and how-to guide. Each article includes keyword strategy, structured headings, comparison tables, CTAs, FAQ schema, and FTC-compliant disclosure.
S3: Blog — The highest-value content type in the affiliate funnel. Blog articles rank on Google, drive organic traffic for months/years, and convert at higher rates than social posts because readers have high purchase intent.
product: # REQUIRED — the affiliate product to feature
name: string # Product name (e.g., "HeyGen")
description: string # What it does
reward_value: string # Commission (e.g., "30% recurring")
url: string # Affiliate link URL
reward_type: string # "recurring" | "one-time" | "tiered"
cookie_days: number # Cookie duration
tags: string[] # e.g., ["ai", "video", "saas"]
format: string # OPTIONAL — "review" | "comparison" | "listicle" | "how-to"
# Default: "listicle" (highest traffic potential)
compare_with: object[] # OPTIONAL — competitors for comparison/listicle formats
- name: string # Competitor name
description: string # Brief description
url: string # URL (non-affiliate OK)
pricing: string # Starting price
target_keyword: string # OPTIONAL — primary SEO keyword to target
# Default: auto-generated from product name + category
blog_platform: string # OPTIONAL — "wordpress" | "ghost" | "hugo" | "astro" | "webflow" | "markdown"
# Default: "markdown" (universal)
tone: string # OPTIONAL — "professional" | "conversational" | "technical"
# Default: "conversational"
word_count_target: number # OPTIONAL — override default word count for the format
Chaining from S1: If affiliate-program-search was run earlier in the conversation, automatically pick up recommended_program from its output as the product input. The field mapping:
recommended_program.name → product.namerecommended_program.description → product.descriptionrecommended_program.reward_value → product.reward_valuerecommended_program.url → product.urlrecommended_program.reward_type → product.reward_typerecommended_program.cookie_days → product.cookie_daysrecommended_program.tags → product.tagsIf the user says "now write a blog about it" after running S1 — use the recommended program. No need to ask again.
Choose the article format based on user request or defaults:
| Signal | Format |
|---|---|
| User says "review", "my experience with" | review |
| User mentions two+ products, "vs", "compare" | comparison |
| User says "best", "top", "roundup", numbers | listicle |
| User says "how to", "tutorial", "guide", "step by step" | how-to |
| No clear signal | listicle (default — highest traffic potential) |
If format = comparison and compare_with is empty or has only 1 product:
web_search to find 2-3 top competitors in the same category"best alternatives to [product.name]" OR "[product.name] vs" site:g2.com OR site:capterra.comIf format = listicle and compare_with is empty:
web_search to find 4-6 products in the same category"best [product category] tools [year]"Read references/seo-checklist.md for the complete SEO guidelines. Then:
Generate target keyword (if not provided):
[product name] review[product A] vs [product B]best [category] toolshow to [goal] with [product/category]Generate secondary keywords (3-5):
web_search for: "[target keyword]" related searches and "People Also Ask"[product] pricing, [product] alternatives, [product] pros and cons, is [product] worth itBuild title using the formula from seo-checklist.md matching the format
Write meta description (150-160 chars) following the checklist format
Plan heading structure:
Generate slug from target keyword (lowercase, hyphens, no stop words)
Read references/blog-templates.md and use the template matching the chosen format. Then write the full article following these rules:
Content Rules:
tone (default: conversational)Required Sections (all formats):
shared/references/ftc-compliance.md and use the medium formatAffiliate CTA Placement (2-4 per article):
CTA Formats:
[Try [Product] free →]([affiliate_url])**Ready to get started?** [Sign up for [Product] →]([affiliate_url])**Our recommendation**: [Get [Product] here]([affiliate_url]) — [brief value prop].Things to AVOID:
Produce the final output in this exact structure:
Part 1: SEO Metadata Block
---
SEO METADATA
---
Title: [SEO title]
Slug: [url-slug]
Meta Description: [150-160 chars]
Target Keyword: [primary keyword]
Secondary Keywords: [comma-separated list]
Word Count: [actual count]
Format: [review/comparison/listicle/how-to]
---
Part 2: Full Article The complete markdown article ready to paste into any blogging platform.
Part 3: Supplementary Data
---
SUPPLEMENTARY
---
FAQ Questions (for schema markup):
1. [Question] → [Answer]
2. [Question] → [Answer]
...
Image Suggestions:
1. [Description] — alt: "[alt text]"
2. [Description] — alt: "[alt text]"
...
Products Featured:
- [Product 1]: [affiliate URL] (featured/mentioned)
- [Product 2]: [affiliate URL] (compared/mentioned)
...
Next Steps:
- Personalize: Add your own experience, screenshots, and results
- Images: Take product screenshots and add them at suggested locations
- Links: Replace affiliate URLs with your own tracking links
- Publish: See references/wordpress-deploy.md for WordPress setup guide
- Promote: Run viral-post-writer to create social posts promoting this article
---
Before presenting output, verify:
If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes.
output_schema_version: "1.0.0" # Semver — bump major on breaking changes
article:
title: string # SEO-optimized title
slug: string # URL-friendly slug
meta_description: string # 150-160 character meta description
target_keyword: string # Primary keyword targeted
format: string # review | comparison | listicle | how-to
content: string # Full markdown article
word_count: number # Actual word count
headings: # Article structure
- level: number # 2 for H2, 3 for H3
text: string # Heading text
seo:
secondary_keywords: string[] # 3-5 secondary keywords used
faq_questions: # For FAQ schema markup
- question: string
answer: string
image_suggestions: # Recommended images
- description: string # What to screenshot/create
alt_text: string # SEO alt text
placement: string # After which section
products_featured: # All products mentioned
- name: string
url: string # Affiliate URL
role: string # "primary" | "compared" | "mentioned"
reward_value: string # Commission info
pricing: string | null # Starting price (e.g., "$49/mo") — for S4 landing page chaining
Present the output as a single markdown document with three clearly separated sections:
The article should be immediately publishable — not a draft or outline. The user should be able to copy-paste it into their blog editor, add their own screenshots and personal touches, and publish.
/affiliate-program-search first to find one, or tell me the product name and I'll research it."web_search. Search: "best alternatives to [product]" on G2/Capterra.web_search to research the product. If still insufficient: "I couldn't find enough information about [product] to write a credible article. Can you provide more details about features, pricing, and your experience?"User: "Now write a detailed review of HeyGen for my blog" Context: S1 previously returned HeyGen as recommended_program Action: Auto-detect format=review, pick up HeyGen product data from S1 output, generate full review article targeting "heygen review" keyword.
User: "Write a comparison blog post: HeyGen vs Synthesia vs Colossyan for AI video creation" Action: Format=comparison, primary product=HeyGen (if from S1, else first mentioned), compare_with=[Synthesia, Colossyan], target keyword="heygen vs synthesia vs colossyan".
User: "Write a blog post about the best AI video tools" Action: Format=listicle (matches "best"), web_search for top AI video tools, target keyword="best ai video tools", write 3-5K word roundup with 5-7 products.
User: "Write a tutorial blog post on how to create AI-generated videos for YouTube with HeyGen" Action: Format=how-to (matches "tutorial", "how to"), target keyword="how to create ai videos for youtube", write step-by-step guide featuring HeyGen with affiliate CTAs.
User: "Blog post about Semrush" Action: No format specified → default to listicle? No — single product implies review. Use format=review, web_search Semrush for features/pricing/reviews, target keyword="semrush review", generate full article.
Format detection logic for ambiguous cases: If only one product is mentioned with no format keyword, default to review. If a category is mentioned with no specific product, default to listicle.
references/seo-checklist.md — Title formulas, meta description rules, heading hierarchy, keyword density, content depth guidelines. Read in Step 2.references/blog-templates.md — Four article format templates (review, comparison, listicle, how-to) with exact structure. Read in Step 3.references/wordpress-deploy.md — WordPress publishing guide, Yoast SEO setup, Pretty Links, FAQ schema implementation. Reference in Step 4 next steps.shared/references/ftc-compliance.md — FTC disclosure requirements and format templates. Read in Step 3 for disclosure text.shared/references/affitor-branding.md — Affitor brand guidelines. Note: NO Affitor branding in article body (user's blog). Only in tool output metadata.shared/references/affiliate-glossary.md — Affiliate marketing terminology reference.shared/references/flywheel-connections.md — master flywheel connection maplanding-page-creator (S4) — products_featured for comparison landing pagescontent-pillar-atomizer (S2) — blog article as pillar content to atomize into socialbonus-stack-builder (S4) — products featured inform bonus designinternal-linking-optimizer (S6) — new article needs internal links within 48 hoursaffiliate-program-search (S1) — recommended_program product datakeyword-cluster-architect (S3) — target keywords and cluster topicsproprietary-data-generator (S7) — unique data for differentiated articlesinternal-linking-optimizer (S6) — link suggestions for existing articlescontent-decay-detector (S3) — refresh instructions for decaying articlesseo-audit (S6) and performance-report (S6) track article rankings and traffic → identify which article formats and topics perform best → optimize content strategyBefore delivering output, verify:
Any NO → rewrite before delivering.
chain_metadata:
skill_slug: "affiliate-blog-builder"
stage: "blog"
timestamp: string
suggested_next:
- "content-pillar-atomizer"
- "landing-page-creator"
- "internal-linking-optimizer"
- "seo-audit"
development
Scan social platforms for top-performing content by engagement before you create anything. Use this skill when the user wants to see what content is winning in a niche, find viral content patterns, research what's working on YouTube/TikTok/X/Reddit, benchmark engagement, discover content gaps, or says "what content is working for [topic]", "show me top performing content about [keyword]", "what's trending in [niche]", "find viral content about [product]", "content research for [keyword]", "what gets views in [niche]", "engagement analysis for [topic]", "scout the competition", "what videos are getting the most views about [keyword]", "social listening for [topic]", "trending content in [niche]", "top content analysis", "what hooks work for [keyword]", "content intelligence", "find winning formats".
development
Analyze website traffic, global rank, engagement metrics, and traffic sources for any domain. Use this skill to evaluate affiliate program websites, compare competitor traffic, assess advertiser strength, or understand where an audience comes from. Triggers on: "analyze traffic for [domain]", "how much traffic does [site] get", "compare traffic between [site A] and [site B]", "is [program] worth promoting based on traffic", "traffic analysis", "website analytics for [domain]", "where does [site] get traffic", "check if [advertiser] is legit", "evaluate [program] website health", "SimilarWeb analysis", "traffic sources for [domain]", "how popular is [site]", "website rank", "domain authority check", "compare affiliate program websites".
development
Rank content angles by engagement data, competition level, and platform fit. Data-driven angle selection instead of guesswork. Use this skill when the user has a keyword or product and needs to decide WHAT to create, which angle to take, which format to use, or which platform to target. Triggers on: "what angle should I use", "rank content ideas for [keyword]", "best angle for [product]", "which content idea will perform best", "help me pick an angle", "what should I write about", "content angle for [topic]", "rank my content ideas", "which approach will get the most views", "data-driven content planning", "angle ranker", "content scoring", "which hook should I use", "compare these content ideas", "prioritize my content angles", "what video should I make".
tools
Generate branded infographic specifications from any content or data. Outputs structured layout, copy, data visualization, and color scheme — ready to render as HTML/CSS, Satori, Canva, or any design tool. Use this skill when the user wants an infographic, data visual, social media image, comparison chart, stat card, or says "create an infographic for [content]", "make a visual for my LinkedIn post", "design an image for [topic]", "stat graphic for [data]", "comparison infographic", "branded image", "social media graphic", "infographic for [blog post]", "data visualization", "visual content", "image for my post", "LinkedIn carousel image", "feature comparison chart", "pricing table image".