mcpbeat

Competitor Analysis

firecrawl/competitor-analysis

| Compare two or more companies, products, or platforms across pricing, features, positioning, and docs. Use this skill whenever the user says "compare X vs Y", "how does X stack up against Y", "alternatives to X", "competitive landscape of …", "X vs Y vs Z", or asks for a competitor matrix. Uses search to discover competitors when the user only names a category, then scrape for each competitor's homepage, pricing page, and features/docs. Returns a normalized comparison matrix as JSON.

1k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
1167
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/firecrawl/web-agent --skill competitor-analysis

The instruction itself

7 sections, as written by the author

Competitor Analysis

Structured side-by-side comparison of competing products. Designed for search + scrape; no interact needed for typical marketing/pricing pages.

When to use

  • User names 2+ companies or products: "compare Vercel, Netlify, Cloudflare Pages"
  • User names a category only: "best CDNs for edge functions" — search to discover the top 3–5 players, then analyze
  • User asks for alternatives: "what are the alternatives to X?"
  • User wants a feature matrix or positioning summary

Do NOT use for single-vendor deep-dives — use deep-research or structured-extraction instead.

Strategy

  • Identify competitors.
  • If the user listed them, use that list.
  • Otherwise search once: "top <category> providers 2026" or "<product> alternatives". Pick the 3–5 most-cited.
  • For each competitor, gather three pages:
  • Homepage — one-line positioning, target audience
  • Pricing page (usually /pricing or /plans) — tiers, units, free tier, enterprise gate
  • Features or product page — top 5–10 capabilities, any standout differentiators
  • Fan out when scale warrants.
  • 2–3 competitors: stay in the orchestrator, scrape serially or with parallel tool calls.
  • 4+ competitors: use spawnAgents, one worker per competitor. Each worker gets the 3 URLs above and returns a normalized sub-object.
  • Normalize before formatting.
  • Align pricing tiers by role (Free / Pro / Team / Enterprise) even when vendors name them differently.
  • Call out where a competitor has a capability the others don't.
  • Flag anything missing (e.g. "Enterprise pricing is contact-sales only").
  • Call formatOutput once at the end with the full matrix.

Quick start

await agent.run({
  prompt: 'Compare Vercel, Netlify, and Cloudflare Pages on pricing, edge functions, and free tier generosity',
  skills: ['competitor-analysis'],
  format: 'json',
})
// User gave only a category — discover competitors first
await agent.run({
  prompt: 'Compare the top 4 vector databases for production RAG workloads',
  skills: ['competitor-analysis'],
  format: 'json',
})

Output schema

Every run should produce an object with this shape (add fields as the user's prompt demands):

{
  "category": "Edge hosting platforms",
  "competitors": [
    {
      "name": "Vercel",
      "url": "https://vercel.com",
      "positioning": "Frontend cloud for Next.js and React",
      "pricing": [
        { "tier": "Hobby", "price": 0, "unit": "month", "limits": {} },
        { "tier": "Pro", "price": 20, "unit": "seat/month", "limits": {} }
      ],
      "strengths": [],
      "weaknesses": [],
      "freeTier": true,
      "enterpriseContactOnly": false,
      "sources": []
    }
  ],
  "summary": "One-paragraph takeaway comparing the field.",
  "bestFit": {
    "budgetConscious": "",
    "enterprise": "",
    "developer": ""
  }
}

Tips

  • Pricing pages lie by omission. Always look for overages, egress costs, and seat minimums that show up only in a footnote.
  • Marketing copy is noise. Prefer the pricing page and docs over the homepage for factual claims.
  • If a scrape returns 404 on /pricing, search "<vendor> pricing" before guessing another URL — vendors often move these pages.
  • Populate strengths and weaknesses from evidence, not opinion. "Has a built-in KV store (competitor docs do not mention one)" is fair game; "better DX" is not.
  • Always include sources: [...] on every competitor object with the URLs you actually scraped.

See also

  • deep-research — multi-source validation for a single topic
  • pricing-tracker — detail on pricing extraction when that's the only dimension
  • structured-extraction — lower-level helper for arbitrary JSON schemas

How to use it

Copy the folder

Take firecrawl/competitor-analysis from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

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.