Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create competitor comparison and alternative pages for SEO and sales enablement. Use when building alternative pages, vs pages, or competitor-vs-competitor pages, planning comparison content, or managing competitor data.
.claude/skills/borghei-competitor-alternatives/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 323% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 242% | 0% |
| case-10 | ✓→✓ | = Same ✓ | 248% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 198% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 223% | 0% |
Production-grade framework for creating competitor comparison and alternative pages. Covers 4 page formats, centralized competitor data architecture, deep research methodology, SEO optimization, content templates, and ongoing maintenance strategy. Designed for both SEO traffic capture and sales enablement.
| Trigger | Action | |---------|--------| | Prospects comparing you to competitors | Create vs-pages for top 3 competitors | | Search volume exists for "competitor] alternative" | Create singular alternative pages | | Sales team needs battle card content | Create vs-pages with objection handling | | Competitor has comparison pages about you | Create counter-comparison pages | | SEO gap on competitor-branded keywords | Build full alternative page set |
Before writing the comparison content, confirm these inputs. If any is unknown or vague, ASK — do not assume:
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the page.
Intent: User is actively looking to switch FROM a specific competitor.
URL: /alternatives/[competitor] or /[competitor]-alternative
Keywords: "Competitor] alternative", "alternative to Competitor]", "switch from Competitor]"
Page Structure:
1. Why people look for alternatives (validate their pain, 2-3 paragraphs)
2. TL;DR: You as the alternative (quick positioning, 3-4 bullets)
3. Detailed comparison (features, pricing, support -- paragraph format, not just tables)
4. Who should switch (and who should NOT -- be honest)
5. Migration path (what transfers, what needs reconfiguration)
6. Testimonials from customers who switched
7. CTA: Start free trial or request demoIntent: User is researching options broadly, earlier in the buying journey.
URL: /alternatives/[competitor]-alternatives or /best-[competitor]-alternatives
Keywords: "Competitor] alternatives", "best Competitor] alternatives", "tools like Competitor]"
Page Structure:
1. Why people look for alternatives (common pain points, 2-3 paragraphs)
2. What to look for in an alternative (evaluation criteria framework)
3. List of 5-7 alternatives (you first, but include real options)
4. Summary comparison table
5. Detailed breakdown of each alternative (150-200 words each)
6. Recommendation by use case ("Best for [X]: [Tool]")
7. CTAImportant: Include 5-7 REAL alternatives. Being genuinely helpful ranks better and builds trust.
Intent: User is directly comparing you to a specific competitor.
URL: /vs/[competitor] or /compare/[you]-vs-[competitor]
Keywords: "You] vs Competitor]", "Competitor] vs You]"
Page Structure:
1. TL;DR summary (key differences in 2-3 sentences)
2. At-a-glance comparison table (8-12 dimensions)
3. Detailed comparison by category (paragraph format per category):
- Features
- Pricing
- Ease of use / UX
- Support and documentation
- Integrations
- Security and compliance
4. Who [You] is best for (3-4 bullets)
5. Who [Competitor] is best for (3-4 bullets -- be honest)
6. What customers say (testimonials from switchers)
7. Migration support
8. CTAIntent: User is comparing two competitors (neither is you directly).
URL: /compare/[competitor-a]-vs-[competitor-b]
Page Structure:
1. Overview of both products (neutral, factual)
2. Comparison by category (same categories as Format 3)
3. Who each is best for
4. "Consider a third option" (introduce yourself naturally)
5. Three-way comparison table (both competitors + you)
6. CTAWhy this works: Captures competitor-branded search traffic, positions you as a knowledgeable authority, and introduces you to buyers who might not have considered you.
Create a single data file per competitor that feeds all comparison pages.
Competitor Data Structure:
Competitor: [Name]
Last Verified: [Date]
Website: [URL]
Positioning:
- Tagline: [Their tagline]
- Target audience: [Who they target]
- Primary differentiator: [What they claim is unique]
Pricing:
- Free tier: [Yes/No, details]
- Entry price: [$X/mo]
- Mid-tier price: [$X/mo]
- Enterprise: [Custom / $X/mo]
- Billing: [Monthly, Annual, Both]
- Trial: [Length, CC required?]
Features:
- [Category 1]: [Rating 1-5, notes]
- [Category 2]: [Rating 1-5, notes]
- [Category 3]: [Rating 1-5, notes]
Strengths:
- [Strength 1 with evidence]
- [Strength 2 with evidence]
Weaknesses:
- [Weakness 1 with evidence source]
- [Weakness 2 with evidence source]
Best For: [Description of ideal customer]
Not Ideal For: [Description of poor fit]
Common Complaints (from reviews):
- [Complaint 1] (source: G2/Capterra/etc.)
- [Complaint 2]
- [Complaint 3]
Migration Notes:
- Data export: [Available? Format?]
- API migration: [Available?]
- Switching time: [Estimated]For each competitor:
| Frequency | What to Verify | |-----------|---------------| | Monthly | Pricing (check for changes) | | Quarterly | Feature set, major product updates | | When notified | Customer reports competitor change | | Annually | Full refresh of all competitor data |
Every comparison page starts with a 2-3 sentence summary for scanners. This is the most-read section.
Template: "Your product] is the better choice if you need differentiator 1] and differentiator 2]. Competitor] is better if their strength]. The biggest differences are difference 1] and difference 2]."
For each comparison dimension, write a paragraph explaining:
Tables complement paragraphs. They do not replace them.
Include:
Be explicit about ideal customer for each option:
| Product | Best For | Not Ideal For | |---------|----------|---------------| | Your product | Specific persona/use case] | Honest admission of limitations] | | Competitor | Specific persona/use case] | Their documented weaknesses] |
| Element | Content | |---------|---------| | What transfers | Data, settings, integrations that migrate | | What needs reconfiguration | What must be set up fresh | | Support offered | Migration assistance, documentation | | Estimated time | "Most teams migrate in timeframe]" | | Customer quote | Quote from someone who switched |
| Format | Primary Keywords | Secondary Keywords | |--------|-----------------|-------------------| | Singular alternative | "Competitor] alternative" | "switch from Competitor]", "replace Competitor]" | | Plural alternatives | "Competitor] alternatives" | "best Competitor] alternatives", "tools like Competitor]" | | Vs page | "You] vs Competitor]" | "Competitor] vs You]", "You] or Competitor]" | | Competitor vs competitor | "A] vs B]" | "B] vs A]", "A] or B]" |
/compare/ or /alternatives/ linking to all comparison content| Trigger | Action | Priority | |---------|--------|----------| | Competitor changes pricing | Update pricing comparison on all affected pages | High | | Competitor launches major feature | Update feature comparison + add "Recent Changes" note | High | | Your product launches feature that closes a gap | Update comparison to reflect new advantage | High | | New customer switching testimonial | Add to relevant comparison pages | Medium | | Quarterly review cycle | Verify all data points, refresh screenshots | Medium |
| Artifact | Format | Description | |----------|--------|-------------| | Competitor Data File | Structured data per competitor | Centralized competitor profile for all pages | | Page Set Plan | Prioritized list | Which pages to build first, with target keywords and estimated search volume | | Alternative Page (Singular) | Full page copy | Complete page with all sections | | Vs Page | Full page copy | Comparison page with table and narrative sections | | Alternatives Page (Plural) | Full page copy | Multi-competitor roundup page | | Migration Guide | Reusable content block | Migration copy for inclusion across pages | | Hub Page | Linked index | Central page linking to all comparison content |
Purpose: Generate a prioritized comparison page plan from competitor data with keyword targets and estimated search volume.
bashpython scripts/comparison_page_planner.py competitors.json python scripts/comparison_page_planner.py competitors.json --json
| Flag | Required | Description | |------|----------|-------------| | competitors.json | Yes | JSON file with competitor names and search volume estimates | | --json | No | Output results as JSON | | --brand | No | Your brand name for URL slug generation (default: "your-product") |
Purpose: Track and manage centralized competitor data files with staleness detection and update reminders.
bashpython scripts/competitor_data_tracker.py competitor_profiles/ python scripts/competitor_data_tracker.py competitor_profiles/ --json python scripts/competitor_data_tracker.py competitor_profiles/ --stale-days 60
| Flag | Required | Description | |------|----------|-------------| | competitor_profiles/ | Yes | Directory containing competitor profile JSON files | | --json | No | Output results as JSON | | --stale-days | No | Number of days before data is considered stale (default: 90) |
Purpose: Score existing comparison page content against quality and SEO best practices.
bashpython scripts/comparison_content_scorer.py page_content.json python scripts/comparison_content_scorer.py page_content.json --json
| Flag | Required | Description | |------|----------|-------------| | page_content.json | Yes | JSON file with comparison page content and metadata | | --json | No | Output results as JSON |
| Problem | Likely Cause | Solution | |---------|-------------|----------| | Comparison pages not ranking for target keywords | Thin content or poor on-page SEO | Add 1500+ words of paragraph content (not just tables); ensure H1 matches primary keyword; add FAQ with schema markup | | Pages rank but do not convert | Missing CTA or weak value proposition | Add CTA after every major section; include migration section and risk reversal (free trial, no CC); use comparison_content_scorer.py to audit | | Competitor data becomes outdated quickly | No update process in place | Use competitor_data_tracker.py with --stale-days 30 for pricing, 90 for features; assign ownership for monthly checks | | Sales team does not use comparison content | Pages are too marketing-focused | Create sales-specific versions with objection handling, landmine questions, and talk tracks; test with 3 reps before publishing | | Legal pushback on competitor claims | Unverifiable or aggressive claims | Cite public sources for every claim; use "as of date]" qualifiers; acknowledge competitor strengths honestly | | Too many competitors to cover | Trying to create pages for every competitor | Prioritize using comparison_page_planner.py; start with top 3-5 competitors by search volume and deal frequency |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-10 | pass→pass | 13,745 | 16,358 | +19% | 1 | 1 | 0% | 1,944 | 6,762 | +248% | 0 | 0 | — |
case-01 | fail→fail | 26,633 | 26,859 | +1% | 1 | 1 | 0% | 4,011 | 8,331 | +108% | 0 | 0 | — |
case-02 | fail→fail | 21,627 | 20,739 | -4% | 1 | 1 | 0% | 3,581 | 7,462 | +108% | 0 | 0 | — |
case-03 | fail→fail | 27,160 | 30,620 | +13% | 1 | 1 | 0% | 3,870 | 8,895 | +130% | 0 | 0 | — |
case-04 | pass→pass | 20,963 | 2,859 | -86% | 1 | 1 | 0% | 1,643 | 4,889 | +198% | 0 | 0 | — |
case-05 | fail→pass | 16,608 | 2,373 | -86% | 1 | 1 | 0% | 1,142 | 4,825 | +323% | 0 | 0 | — |
case-06 | pass→pass | 13,061 | 9,809 | -25% | 1 | 1 | 0% | 1,816 | 5,868 | +223% | 0 | 0 | — |
case-07 | pass→pass | 13,708 | 11,006 | -20% | 1 | 1 | 0% | 1,869 | 6,052 | +224% | 0 | 0 | — |
case-08 | pass→pass | 11,651 | 5,118 | -56% | 1 | 1 | 0% | 1,750 | 5,234 | +199% | 0 | 0 | — |
case-09 | pass→pass | 15,883 | 6,846 | -57% | 1 | 1 | 0% | 2,191 | 5,366 | +145% | 0 | 0 | — |
case-11 | pass→pass | 16,052 | 10,585 | -34% | 1 | 1 | 0% | 2,285 | 6,027 | +164% | 0 | 0 | — |
case-12 | fail→pass | 12,068 | 8,305 | -31% | 1 | 1 | 0% | 1,662 | 5,677 | +242% | 0 | 0 | — |
case-13 | pass→pass | 8,836 | 3,941 | -55% | 1 | 1 | 0% | 1,404 | 5,006 | +257% | 0 | 0 | — |
case-14 | pass→pass | 10,474 | 7,834 | -25% | 1 | 1 | 0% | 1,701 | 5,702 | +235% | 0 | 0 | — |
case-15 | pass→pass | 10,151 | 7,619 | -25% | 1 | 1 | 0% | 1,485 | 5,579 | +276% | 0 | 0 | — |
case-16 | pass→pass | 5,604 | 2,242 | -60% | 1 | 1 | 0% | 898 | 4,738 | +428% | 0 | 0 | — |
case-17 | pass→pass | 14,943 | 16,438 | +10% | 1 | 1 | 0% | 2,284 | 6,905 | +202% | 0 | 0 | — |
case-18 | pass→pass | 12,883 | 3,938 | -69% | 1 | 1 | 0% | 1,779 | 4,965 | +179% | 0 | 0 | — |
case-19 | pass→pass | 15,009 | 11,194 | -25% | 1 | 1 | 0% | 2,211 | 6,047 | +173% | 0 | 0 | — |
case-20 | fail→fail | 16,278 | 12,684 | -22% | 1 | 1 | 0% | 2,351 | 6,267 | +167% | 0 | 0 | — |
case-21 | fail→fail | 19,475 | 23,182 | +19% | 1 | 1 | 0% | 1,993 | 6,496 | +226% | 0 | 0 | — |
case-22 | fail→fail | 18,417 | 15,319 | -17% | 1 | 1 | 0% | 2,846 | 6,758 | +137% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +9 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.