Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Write "X vs Y" comparison blog posts that help readers choose between two competing products. Triggers on: "write a comparison post", "X vs Y blog post", "compare [product A] and [product B]", "which is better [A] or [B]", "head to head comparison", "[product] vs [product] article", "comparison review", "write a versus article", "side by side comparison blog", "which should I choose [A] or [B]", "compare these two products for my blog".
.claude/skills/affitor-comparison-post-writer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-19 | ✗→✓ | ▲ Improved | 200% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 296% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 76% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 90% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 173% | 0% |
Write high-converting "X vs Y" comparison blog posts that rank on Google and help readers make a confident buying decision. Each post includes a feature comparison table, individual product breakdowns, pros and cons, a clear winner recommendation, and affiliate CTAs placed at maximum-intent moments.
Parse the user's request for product names. You need a minimum of 2 and a maximum of 3 products.
If only 1 product is provided:
web_search to find the top 1-2 competitors"[product name] alternatives" OR "[product name] vs" site:g2.com OR site:capterra.com OR site:trustradius.comIf 3+ products are provided:
Affiliate priority: The user's affiliate product goes first (featured position). If both products have affiliate links, feature the higher-commission one in the "winner" slot unless the product genuinely loses on quality.
For each product, use web_search to gather:
"[product A] vs [product B]" — check if autocomplete shows this is a real querySearch queries to run per product:
"[product name] review [year]""[product name] pricing""[product name] pros cons"Determine the 6-10 comparison dimensions that matter most for this product category. These should be:
Example dimensions by category:
Assign a winner per dimension based on research. Mark ties where genuine.
Choose one of three angles based on what the data shows:
| Angle | When to use | Headline formula | |---|---|---| | Clear winner | One product is genuinely better for most users | "A] vs B]: A] Wins for Most, But B] Is Better If..." | | It depends | Products serve different audiences | "A] vs B]: Which Is Right for You? (Honest Comparison)" | | Upset | Lesser-known product beats the market leader | "A] vs B]: Why Lesser-Known] Is Actually Better in Year]" |
Default to "clear winner" — readers want a recommendation, not a non-answer.
Write the full comparison post following this exact structure:
1. FTC Disclosure (3 lines, above the fold) Read shared/references/ftc-compliance.md and use the medium format. Insert immediately after the title.
2. Introduction (150-250 words)
3. Quick Verdict Box (immediately after intro) A scannable summary for readers who won't read the full article:
**Quick Verdict**
- Best overall: [Product A] — [one-line reason]
- Best for [use case]: [Product B] — [one-line reason]
- Best for budget: [Product X]
- Skip if: [edge case where neither works]4. Product Overviews (200-300 words each) One H2 section per product:
[Try [Product] free →](affiliate_url)5. Feature Comparison Table A full markdown table with all comparison dimensions:
| Feature | [Product A] | [Product B] |
|---|---|---|
| [Dimension 1] | ✅ Yes | ❌ No |
| [Dimension 2] | ⭐ Better | Good |
| Price | $X/mo | $Y/mo |Use ✅ / ❌ / ⚠️ (partial) for binary features. Use descriptive text for nuanced ones. Bold the winner per row.
6. Deep-Dive Sections (one H2 per key dimension, 3-4 total) Pick the 3-4 dimensions that drive 80% of buying decisions. For each:
7. Pricing Breakdown
8. Pros and Cons Two H3 sections (one per product), each with 4-6 bullet points per list.
9. Who Should Choose Each Product Two H3 sections with bullet lists:
Be specific — job titles, use cases, budget ranges, team sizes.
10. The Verdict (200-300 words)
**Get started with [Product A] →**(affiliate_url)11. FAQ Section (5-7 questions) Address the real questions people type into Google:
Produce output in three parts:
Part 1: SEO Metadata
---
SEO METADATA
---
Title: [title]
Slug: [product-a]-vs-[product-b]
Meta Description: [150-160 chars comparing both products with clear angle]
Target Keyword: [product-a] vs [product-b]
Secondary Keywords: [product-a] review, [product-b] alternatives, best [category] tool, [product-a] pricing
Word Count: [actual]
Format: comparison
Winner: [product name]
---Part 2: Full Article Complete markdown ready to paste into any blog platform.
Part 3: Supplementary Data FAQ schema questions, image suggestions (comparison screenshots), products featured with affiliate URLs, next steps.
yamlproduct_a: # REQUIRED — the primary affiliate product name: string description: string reward_value: string # e.g., "30% recurring" url: string # Affiliate link reward_type: string # "recurring" | "one-time" | "tiered" cookie_days: number tags: string[] product_b: # REQUIRED — the product to compare against name: string url: string # Affiliate link if available, otherwise homepage description: string # Optional — will research if missing product_c: # OPTIONAL — third product for 3-way comparison name: string url: string description: string target_keyword: string # OPTIONAL — default: "[product_a] vs [product_b]" tone: string # OPTIONAL — "conversational" | "technical" | "professional" # Default: "conversational" angle: string # OPTIONAL — "clear-winner" | "it-depends" | "upset" # Default: auto-detected from research
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 slug: string # e.g., "heygen-vs-synthesia" meta_description: string target_keyword: string format: "comparison" content: string # Full markdown article word_count: number winner: string # Name of the recommended product comparison: dimensions: string[] # The features compared dimension_winners: # Who won each dimension - dimension: string winner: string # "product_a" | "product_b" | "tie" products_featured: - name: string url: string role: string # "primary" | "compared" reward_value: string seo: secondary_keywords: string[] faq_questions: - question: string answer: string image_suggestions: - description: string alt_text: string
Present as three sections:
Target word count: 2,500-3,500 words. Longer for complex SaaS tools with many features.
Example 1: Two affiliate products User: "Write a comparison post: HeyGen vs Synthesia" Action: product_a=HeyGen (affiliate), product_b=Synthesia (affiliate), research both, detect angle=clear-winner (or it-depends based on data), write 3,000-word comparison targeting "heygen vs synthesia".
Example 2: Chained from S1 User: "Compare it with its top competitor" Context: S1 returned HeyGen as recommended_program Action: product_a=HeyGen from S1 output, web_search for top competitor, write comparison.
Example 3: Three-way comparison User: "HeyGen vs Synthesia vs Colossyan comparison post" Action: Three-way comparison, determine winner + runners-up, write 3,500-4,000 word article with side-by-side table.
Example 4: Underdog angle User: "Compare Ahrefs vs Ubersuggest — I'm promoting Ubersuggest" Action: product_a=Ubersuggest (affiliate), product_b=Ahrefs, angle=upset (lesser-known vs market leader), frame Ubersuggest as the budget-friendly winner for specific use cases.
shared/references/ftc-compliance.md — FTC disclosure text. Read in Step 5.shared/references/affitor-branding.md — Do NOT add Affitor branding to blog body. Only applies to landing pages.shared/references/affiliate-glossary.md — Terminology reference.shared/references/flywheel-connections.md — master flywheel connection maplanding-page-creator (S4) — comparison data feeds comparison landing pagescontent-pillar-atomizer (S2) — comparison article as pillar to atomizeinternal-linking-optimizer (S6) — new comparison needs internal linksaffiliate-program-search (S1) — recommended_program as primary productkeyword-cluster-architect (S3) — commercial intent clusters for comparison topicscompetitor-spy (S1) — competitor product dataseo-audit (S6) tracks comparison article rankings → identify which comparison angles rank bestBefore delivering output, verify:
Any NO → rewrite before delivering.
yamlchain_metadata: skill_slug: "comparison-post-writer" stage: "blog" timestamp: string suggested_next: - "landing-page-creator" - "content-pillar-atomizer" - "internal-linking-optimizer"
Other measured skills in the registry, with their headline benchmark lift.