kostja94/comparison-table-generator
When the user wants to create, optimize, or audit a comparison table section—an in-page block (HTML table or responsive equivalent) comparing products, methods, or approaches, with optional supporting copy. Also use when the user mentions "comparison table," "compare table," "feature matrix," "vs table," "side-by-side comparison," "competitor comparison," "traditional vs modern," "manual vs automated," "before and after," "old way vs new way," "alternatives comparison block," or "comparison section on landing page or blog." This skill is for a section inside a page, not a full alternatives URL or blog post wireframe—use alternatives-page-generator for page-level layout, keywords, and PPC destination strategy. For full-page structured data rules, use schema-markup. For FAQ blocks paired with the table, use faq-page-generator.
npx skills add https://github.com/kostja94/marketing-skills --skill comparison-table-generator
Guides comparison tables as an in-page section: a scannable matrix (rows × columns) embedded inside landing pages, blog posts, pricing pages, homepages, or docs. Not a standalone page type—parent page structure, URLs, and "alternatives vs blog" decisions come from alternatives-page-generator, landing-page-generator, article-page-generator, pricing-page-generator, etc. Distinct from FAQ (Q&A → FAQPage) and from HowTo (procedure → HowTo). schema-markup remains the source for exhaustive Schema.org rules; this skill owns section-level criteria, copy, HTML/accessibility, fairness, and ad alignment.
When invoking: On first use, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On subsequent use or when the user asks to skip, go directly to the main output.
| Dimension | Comparison table section (this skill) | Alternatives / compare page |
|-----------|-------------------------------------------|----------------------------------|
| Scope | One block: headings, table, footnotes, optional CTA line | Full page or article: headline, intro, verdict, listicles, FAQ, metadata |
| URL / intent | Chosen by parent; section supports commercial or informational parent | Owns "X alternatives", "X vs Y", PPC landing strategy |
| PPC | Align copy and criteria with ad and parent LP | Owns where paid traffic lands (dedicated LP vs blog) |
| Skill | comparison-table-generator (this) | alternatives-page-generator |
Use both when building an alternatives LP: alternatives-page-generator for page structure; comparison-table-generator for the table itself (criteria, rows, cells, fairness).
| Type | Rows / columns | Typical use |
|------|------------------|-------------|
| Product vs product | You vs 1–N competitors or tools | Alternatives LP, category pages, blog "best X" |
| Traditional vs modern | Old workflow vs your approach | Category creation, thought leadership, LP objection handling |
| Manual vs automated | Spreadsheets, agencies, DIY vs product | Mid-funnel LP, demo request pages |
| Before / after | State A vs State B (metrics allowed if true) | Outcome-focused LP, case studies |
| Feature / capability matrix | Features as rows; plans or products as columns | Pricing-adjacent, features-page-generator context |
Column count: Prefer 4–7 columns including names; more columns hurt mobile—use priority columns above the fold and expand or link to full spec.
| Location | When |
|----------|------|
| After hero + short value prop | LP: remove doubt early; before long prose |
| After "problem" / "why switch" | Alternatives or comparison article: user is ready for criteria |
| Before FAQ | Table answers "which is better for X?"; FAQ handles objections |
| Mid-article | Blog: after context; supports featured-snippet table patterns |
Narrative: Table should answer the promise of the H1/H2—do not bury the matrix below unrelated storytelling.
<table> with <thead>, <th> scope, <caption> (summary for screen readers).<table> with <caption>, header cells, semantic structureTake kostja94/comparison-table-generator from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.