// execute

Comparison Pages

Use when the user wants to write, audit, or refresh an "X vs Y" page, a "[competitor] alternatives" page, or a comparison table that buyers and AI answers will trust. Also use when the user mentions comparison page, versus page, vs page, alternatives page, competitor comparison, switch from [competitor], comparison table, or "how do we rank for [competitor] alternatives". Produces the page structure, a sourced and dated comparison table, honest "choose them if" copy, a methodology note, an update cadence, and a pre-publish fairness check.

ExecuteengineIntermediate
bash
$npx skills add sarojkjha/aaj-marketing-skills --skill comparison-pages
Or run it in Claude or ChatGPT through the AAJ engines connector

Claude Code

/plugin marketplace add sarojkjha/aaj-marketing-skills
/plugin install aaj-marketing-skills@aaj

OpenAI Codex

codex plugin marketplace add sarojkjha/aaj-marketing-skills
codex plugin add aaj-marketing-skills@aaj

Claude or ChatGPT — no install

Add this as a custom connector:

https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp
Recipes: vendor data in, a verdict out

// when to use it

Use when the user wants to write, audit, or refresh an "X vs Y" page, a "[competitor] alternatives" page, or a comparison table that buyers and AI answers will trust. Also use when the user mentions comparison page, versus page, vs page, alternatives page, competitor comparison, switch from [competitor], comparison table, or "how do we rank for [competitor] alternatives". Produces the page structure, a sourced and dated comparison table, honest "choose them if" copy, a methodology note, an update cadence, and a pre-publish fairness check.

// what you give

Your product and the rival(s), the criteria buyers actually weigh, a fact table (your value, theirs, source, date checked, who wins), and the draft copy

// what you get

A page outline, the comparison table, "choose them if" and methodology copy, a fairness check with every finding, and a re-check date

Engine spec

// decision it supports

Is this vs or alternatives page fair and current enough to publish, and when must its rival facts be re-checked?

// inputs

Your product and the rival(s), the criteria buyers actually weigh, a fact table (your value, theirs, source, date checked, who wins), and the draft copy

// output

A page outline, the comparison table, "choose them if" and methodology copy, a fairness check with every finding, and a re-check date

// acts or analyzes

Analyzes only

Makes no network calls, writes no files and changes nothing in your tools.

// where your information goes

How you run itWhere your inputs go
Skill installed in your agent, or the local MCP serverThe engine runs on your machine and AAJ receives nothing. Your AI agent still sends what you give it to its model provider (Anthropic, OpenAI and so on), under your own account's terms.
Hosted MCP serverYour agent's model provider, as above, plus AAJ's server on Cloudflare, which receives the engine inputs over HTTPS, runs them in memory and keeps no copy. Cloudflare keeps error logs (no inputs) for up to 7 days.

No engine needs customer names, emails or other personal data; leave them out.

// limitations

  • It checks that each rival fact has a source and a date, not that the source says what the row claims. Someone has to open each source.
  • Who wins each row is your own marking and the engine trusts it. A table marked in your favour passes the "each rival wins somewhere" rule with one row.
  • The wording scan is a fixed word list. Disparaging or absolute claims phrased in other words get through.
  • The 90-day staleness window is the engine's rule, not a standard; a rival that changed pricing last week is missed. It gives no legal verdict on comparative claims.

// review before acting

Whoever owns the page re-opens every rival source and checks prices are compared at the same tier and scale. Legal reviews the claims about the named competitor before publish.

// setup

install
$npx skills add sarojkjha/aaj-marketing-skills --skill comparison-pages
hosted mcp
$https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp

Agents listed: Claude Code, Cursor, OpenAI Codex, Windsurf, Cline. Tested and recorded: Claude Code.

Full spec on GitHub

Comparison Pages

Write "X vs Y" and "alternatives to X" pages that a buyer who knows the rival still believes, because every claim about the rival is sourced and dated and the page says plainly when the rival is the better choice.

When to use

The user wants a page for buyers searching "[us] vs [them]" or "[them] alternatives", or wants to fix one that reads like an ad. For the sales-side version of the same facts (battlecards and objection responses), use objection-handling; for generating many comparison pages from a dataset, use aaj-programmatic-seo and apply this skill's check to the template.

Before you start

  1. Read the brand/product context first. Pull positioning, ICP, proof points, and the competitor set from .agents/product-marketing.md. If none exists, run positioning-statement or ask.
  2. Gather the criteria buyers weigh, from win-loss notes, sales calls and reviews, not from the features you are proudest of. win-loss-analysis gives the real list.
  3. Build the fact table before any copy: for each criterion, your value, the rival's value, where the rival's value can be checked, the date you checked it, and who wins.
  4. Confirm the objective: a page for buyers already comparing (bottom of funnel). It should help them decide, including deciding against you.

Method

Diagnose which comparisons buyers actually make, and on which criteria. Design the page around a decision, not a scoreboard: a short answer up top (who should choose which), the table, where the rival is the better choice, where you are, and how you compared. Execute with a fairness check before publishing and a re-check cycle afterwards.

Three fairness rules carry the page. Every fact about the rival has a source and a checked date, and nothing goes out older than the re-check window. Each rival wins at least one criterion, because a table where you win everything reads as advertising to anyone who knows the rival. No disparaging words and no absolutes a buyer can disprove with one counterexample. Google's guidance on reviews points the same way: "Discuss the benefits and drawbacks of something", "Explain what sets something apart from its competitors", and "Cover comparable things to consider, or explain which might be best for certain uses or circumstances" (Google Search Central, Write high quality reviews).

Page structure

Vs page

  1. One-paragraph answer: who should choose each product, and why. This is the passage an AI answer is most likely to lift; make it fair.
  2. A disclosure line: you make one of the products.
  3. The comparison table: criterion, you, them, source and checked date.
  4. When the rival is the better choice (specific buyers and situations).
  5. When you are the better choice, each point with proof.
  6. Price compared at the buyer's real scale, from public pricing, with dates.
  7. Switching: what moves, what does not, how long it takes.
  8. How we compared (method, sources, dates) and the page's last-updated date.

Alternatives page

  1. Who looks for alternatives to this product, and why.
  2. Each alternative with "best for", what it does well, its trade-off, and a dated source. Organise by use case rather than a ranked list.
  3. Your product as one option among them, with the same treatment.
  4. The method note and last-updated date.

Workflow

  1. Pick the comparisons buyers make, from search demand and sales notes.
  2. Fill the fact table from the rival's own public pages; record the URL and date for each fact.
  3. Mark who wins each row honestly, including ties and "depends".
  4. Draft the copy in the structure above.
  5. Run the checker and fix every fix finding; then work the improve list.
  6. Publish with a visible last-updated date, and set the re-check date the engine returns.
  7. Re-check on cadence: every fact older than 90 days, and immediately when the rival changes pricing or packaging. Feed the same facts to the battlecards.

Run the tool

node resources/comparison-check.js --demo
node resources/comparison-check.js '<json-config>'
node resources/comparison-check.js --help

Input the table (rows: criterion, us, them, source, checked date, winner; rival per row for alternatives pages) and the copy. The engine flags unsourced, undated and stale rival facts (older than 90 days, the same rule as AAJ's battlecard engine), tables where a rival wins nothing, disparaging or absolute wording (the battlecard engine's word lists plus a few comparison-page phrases), a missing methodology note, copy that never says when the rival is the better choice, a missing publisher disclosure, and a stale page date. It returns Ready to publish or Fix before publishing, the win tally per rival, and the date the oldest fact must be re-checked.

Reference

  • Google Search Central, Write high quality reviews (last updated 2025-12-10): https://developers.google.com/search/docs/specialty/ecommerce/write-high-quality-reviews
  • FTC, Statement of Policy Regarding Comparative Advertising, 16 CFR 14.15: the Commission encourages truthful, non-deceptive comparative advertising that names competitors, and supports comparisons whose bases are clearly identified. Text read at https://www.law.cornell.edu/cfr/text/16/14.15; official text at ecfr.gov. Orientation only: claims about a named competitor can carry legal risk, so check the page with counsel.
  • The 90-day staleness rule and the wording lists are rules of AAJ's engines, stated so they can be argued with, not industry standards.

Present the result

  • Outline in the structure above, with the answer paragraph drafted.
  • The table, each rival fact with source and date, and who wins.
  • "Choose them if" and method copy, drafted.
  • The check: verdict, every finding, and the re-check date.

Guardrails & common mistakes

  • Source and date every rival fact. The claim about the rival is the one a buyer, and an AI answer, checks first.
  • Let the rival win somewhere. Name the buyers who should pick them.
  • No disparagement, no absolutes. Describe, cite, and let the reader judge.
  • Compare like with like: same plan tier, same scale, same date.
  • Do not mark up the rival's ratings or prices in your structured data; see structured-data-for-ai-search for what belongs in markup.
  • Never give a legal verdict on a comparative claim. Point to 16 CFR 14.15 and to counsel.

objection-handling · positioning-statement · win-loss-analysis · aaj-programmatic-seo · geo-content-optimization · structured-data-for-ai-search

// faq

// install

$npx skills add sarojkjha/aaj-marketing-skills --skill comparison-pages

// worked example

Get the worked example for Comparison Pages

One email. The filled-in config, the output, and how to read it.

No spam. Unsubscribe anytime.

// sprint

Positioning & Message Sprint — $3,500, 10 business days

This skill is one of the engines behind the Positioning & Message Sprint — $3,500, ten business days.

Positioning, copy, and voice governance — every claim defensible.

See what's included.

// human in the loop

Need a human in the loop?

AAJ builds the strategies, tools, and playbooks these skills are made of — with engagements for growth-stage and enterprise teams.