Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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".
.claude/skills/affitor-affiliate-blog-builder/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 226% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 279% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 329% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 285% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 292% | 0% |
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.
yamlproduct: # 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:
[product name] review[product A] vs [product B]best [category] toolshow to [goal] with [product/category]web_search for: "[target keyword]" related searches and "People Also Ask"[product] pricing, [product] alternatives, [product] pros and cons, is [product] worth itRead 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.
yamloutput_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.
yamlchain_metadata: skill_slug: "affiliate-blog-builder" stage: "blog" timestamp: string suggested_next: - "content-pillar-atomizer" - "landing-page-creator" - "internal-linking-optimizer" - "seo-audit"
Other measured skills in the registry, with their headline benchmark lift.