La interfaz está localizada; las descripciones y documentos de las Skills se traducen automáticamente con IA a su idioma. El código, los comandos, rutas y términos técnicos se mantienen en el original, y prevalece el documento del autor.
Explorar Skills
Datos e investigación · SKILL.md

competitor-research

competitor-research

Research 3–5 competitors for any product or feature. Returns positioning, pricing, key differentiators, gaps, and an unclaimed angle. Use when the user asks about competitors, market landscape, or competitive analysis.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentación de la Skill

GitHub

name: competitor-research description: Research 3–5 competitors for any product or feature. Returns positioning, pricing, key differentiators, gaps, and an unclaimed angle. Use when the user asks about competitors, market landscape, or competitive analysis.

Competitor Research

You research competitors yourself for the light, fast tasks (search and homepage fetches), and you delegate the heavy work to specialist subagents:

  • pricing-fetcher — pricing extraction with WebFetch-first, Playwright-fallback
  • review-miner — distilling user sentiment from 10+ review pages

Workshop note: the split between "skill does it" and "subagent does it" follows one rule: delegate work that is heavy, parallelizable, and returns clean structured output. Light fetches stay in the skill. Heavy or potentially-heavy work (Playwright at ~114K tokens, review-mining across dozens of pages) gets its own context window.


Step 1 — Scope

Ask the user once:

"What product or feature are you researching? Who is it for?"

Skip if they already gave both. Cap at 2 clarifying questions max (geography, segment, direct vs. adjacent). Don't run an interview.

Step 2 — Identify competitors

Use WebSearch by default. Look for:

  • "best [category] tools 2025/2026"
  • G2 / Capterra / Gartner category pages
  • Reddit "alternatives to [known leader]" threads

Use mcp__brave-search__brave_web_search instead only when you need strictly the last 12 months of results (e.g., a fast-moving category where 2-year-old listicles would be misleading). Brave's freshness parameter is deterministic; WebSearch's recency is a soft preference. For most categories the soft preference is fine.

Pick direct competitors (same buyer, same job-to-be-done). List them back to the user briefly so they can correct the set before you go deep.

Step 3 — Per competitor (parallel work)

For each competitor, dispatch the following in a single message with multiple tool calls so they run concurrently:

3a. Homepage — you do this yourself (WebFetch)

Fetch the homepage and extract:

  • Hero headline (verbatim)
  • Subhead (verbatim)
  • Top 3 features in homepage order
  • Stated differentiators (translated to plain English, not paraphrased into marketing-speak)

This stays inline because homepage HTML is server-rendered for ~95% of competitor sites — fast, light, and pollutes nothing.

3b. Pricing — delegate to pricing-fetcher subagent

Spawn one pricing-fetcher per competitor. It tries WebFetch first; falls back to Playwright browser automation only if the page is JS-rendered.

Why this is delegated: Playwright sessions cost ~114K tokens each. Even when only 1 in 3 competitors needs it, isolating that work in subagents keeps the orchestrator's context lean and lets fetches run in parallel.

The subagent returns a structured pricing table plus a Method used field (WebFetch / Playwright) — audit this field. If 4 of 5 competitors all used Playwright, something's wrong with WebFetch and you should investigate before trusting the data.

3c. Reviews — delegate to review-miner subagent

Spawn one review-miner per competitor. It searches across G2/Capterra/Reddit/ HN/ProductHunt/Trustpilot, distills patterns (≥3 confirming voices across ≥2 platforms = signal), and returns recurring strengths + weaknesses.

Why this is delegated: review pages are dense user-voice text — 10+ pages per competitor. Doing it inline pollutes the orchestrator's context with raw review snippets.

If a subagent returns "insufficient data," don't retry with the same prompt — either accept the gap (and surface it in the final report) or hand the next attempt a sharper, narrower question.

Step 4 — Synthesize per-competitor cards

Combine your homepage research with the two subagents' findings into exactly 6 bullets per competitor:

### [Competitor Name]
- **Positioning**: one sentence (their words, plain English)
- **Target customer**: who they're built for
- **Pricing**: tiers and price points, or "Not public"
- **Differentiators**: 2–3 things they do well
- **Weaknesses**: 1–2 recurring complaints from reviews/forums
- **Source date**: most recent source pulled (YYYY-MM)

Hard rules:

  • 6 bullets exactly. If a bullet is empty, write "—" but keep the line.
  • Pricing must cite a source URL inline if public.
  • No marketing language in your translation.

Step 5 — Gap Analysis

Add this section verbatim:

### Gap Analysis
- **What no competitor does well**: [specific capability gap]
- **Where pricing is underserved**: [a tier or model nobody offers]
- **Unclaimed positioning angle**: [a frame nobody owns]

Each gap must be falsifiable — grounded in something a reader can verify. "Better UX" is not a gap. "No competitor offers per-seat pricing under $10/mo for teams under 5" is.

Step 6 — Close

End the report with exactly one line:

Based on this, which gap are you trying to own?

No summary. No "let me know if you want more." Just the question.


Tool selection cheat sheet

TaskDefault toolReach for MCP when...
Identify competitorsWebSearchYou need strict 12-month recency → brave_web_search
Fetch a homepageWebFetch(never — homepage is light)
Fetch a pricing pagepricing-fetcher subagent(subagent decides internally whether Playwright is needed)
Mine reviewsreview-miner subagent(subagent decides internally — uses Brave's news/summarizer for specific cases)

Default principle: built-in tools first, MCPs only when they offer something built-ins can't.


Anti-patterns (do not do)

  • ❌ Doing your own deep web searches once you've identified competitors — delegate pricing and review work to the subagents
  • ❌ Calling subagents sequentially per competitor instead of in parallel
  • ❌ Reaching for brave_web_search when WebSearch would have been fine (this wastes Brave's free-tier budget)
  • ❌ Invoking Playwright tools directly from the orchestrator — those calls belong in the pricing-fetcher subagent so the heavy context is isolated
  • ❌ Accepting a pricing-fetcher report where 4 of 5 competitors used Playwright — investigate WebFetch first
  • ❌ Adding a 7th bullet "for completeness"
  • ❌ Inventing pricing because the public site is vague
  • ❌ Listing every G2 complaint — only recurring patterns
  • ❌ Writing a closing paragraph after the sharp question
Skills guardadas