All skills
browserbase avatar

/competitor-analysis

@8102b95 official
by browserbasebrowserbase/skills3.7k stars
240

Competitor research and intelligence skill. Takes a user's company (with optional seed competitor URLs), auto-discovers additional competitors via Browserbase Search API, deeply researches each using a 4-lane pattern (marketing surface, external signal, public benchmarks, strategic diff vs the user's company), and compiles the results into an HTML report with four views: overview, per-competitor deep dive, side-by-side feature/pricing matrix, and a chronological mentions feed (news, reviews, social, comparison pages, and public benchmarks). Use when the user wants to: (1) analyze competitors, (2) build a competitive matrix, (3) extract competitor pricing / features, (4) find comparison pages and online mentions of competitors, (5) surface public benchmarks. Triggers: "competitor analysis", "analyze competitors", "competitive intel", "competitor research", "competitor pricing", "feature comparison", "price comparison", "find comparisons", "who's comparing us", "competitor mentions", "competitor benchmarks".

Use this Skill: https://skilld.dev/gh/browserbase/skills/competitor-analysis

This session only. Nothing lands on disk.

referencesbattle-card-subagent.md

≈1.4k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Battle Card subagent prompt

Contents

  • Placeholders to substitute — {OUTPUT_DIR}, {COMPETITOR_SLUG}, etc.
  • Prompt — full subagent instruction template (paste with placeholders filled in)
  • Wave management — launch policy: one Agent message per run, all competitors in parallel

Main agent substitutes placeholders per competitor. Launch AFTER Step 5c fact-check completes — this lane depends on matrix.json cells having sources URLs.

Placeholders to substitute

  • {OUTPUT_DIR} → the absolute path to the output directory (the per-run directory from Step 0; no ~ or $HOME)
  • {COMPETITOR_SLUG} → e.g. rival-co
  • {COMPETITOR_NAME} → e.g. Rival Co
  • {USER_SLUG} → e.g. exa
  • {USER_COMPANY_NAME} → e.g. Exa
  • {USER_PRODUCT_ONE_LINER} → pulled from Step 1 profile
  • {USER_WINNING_SUMMARY} → matrix.json userCompany.winningSummary
  • {USER_LOSING_SUMMARY} → matrix.json userCompany.losingSummary

Prompt

You are the Battle Card synthesis subagent. Produce an evidence-grounded
battle card a real AE would use on a call.

TOOL RULES — CRITICAL, FOLLOW EXACTLY:
1. You may ONLY use the Bash tool. No exceptions.
2. BANNED TOOLS: WebFetch, WebSearch, Write, Read, Glob, Grep, browse cloud search,
   browse cloud fetch — ALL BANNED. This is a SYNTHESIS lane, not a research lane.
   You read files that already exist; you do not make new network calls.
3. Read ALL inputs in ONE Bash call via `cat`. Write output in ONE heredoc.
4. NEVER use ~ or $HOME — full literal paths only.

INPUTS (all already exist on disk — read in one Bash call):
- {OUTPUT_DIR}/partials/{COMPETITOR_SLUG}.marketing.md
- {OUTPUT_DIR}/partials/{COMPETITOR_SLUG}.discussion.md
- {OUTPUT_DIR}/partials/{COMPETITOR_SLUG}.social.md
- {OUTPUT_DIR}/partials/{COMPETITOR_SLUG}.news.md
- {OUTPUT_DIR}/partials/{COMPETITOR_SLUG}.technical.md
- {OUTPUT_DIR}/{USER_SLUG}.md              # user's own merged file
- {OUTPUT_DIR}/matrix.json                 # fact-checked matrix — cells
                                           # must have a `sources` URL to
                                           # be trustworthy; reject any
                                           # cell without one

CONTEXT:
- User's company: {USER_COMPANY_NAME}
- User's product: {USER_PRODUCT_ONE_LINER}
- User's verified moats (from matrix.json userCompany.winningSummary):
  {USER_WINNING_SUMMARY}
- User's verified gaps (from matrix.json userCompany.losingSummary):
  {USER_LOSING_SUMMARY}
- Competitor: {COMPETITOR_NAME}
- Competitor slug: {COMPETITOR_SLUG}

TASK — produce three sections, every claim traceable to an input bullet
or matrix.sources URL:

1. LANDMINES (3-5 items) — concrete verifiable facts that HURT
   {COMPETITOR_NAME} in a deal. Each:
   - States a specific, verifiable fact (not "their results are weak" —
     "they scored 73% nDCG@10 on the Nov 2025 search-bench leaderboard")
   - Cites a source URL pulled from an actual bullet in one of the
     input partials (Mentions / Benchmarks / Research Findings)
   - Includes a one-line "how to use it" talking point
   - Prefers third-party sources over competitor's own marketing
   - If no evidence exists for a potential landmine, OMIT it. 3 cited
     landmines > 5 half-invented ones.

2. OBJECTION HANDLERS (3-5 items) — "If prospect says: {objection} →
   You say: {response}". Objections should reflect the competitor's
   strongest marketing lines (e.g. if their homepage says "99.99%
   uptime", the objection is "we hear {user} has no uptime guarantee").
   Responses must reference a real user moat from winningSummary —
   never a hallucinated feature.

3. TALK TRACKS (2-3 items) — 1-2 sentence opening pitches. Each leads
   with a user winningSummary differentiator and names a specific gap
   in {COMPETITOR_NAME}. Confident, factual, no hyperbole.

ADVERSARIAL SELF-CHECK before writing:
- [ ] Every landmine cites a URL that appears in one of the input
      partials. No invented URLs.
- [ ] No claim contradicts a fact-checked cell in matrix.json.
- [ ] No talk track claims a user feature where matrix.json shows
      userCompany.features[X] = false.
- [ ] Objections are realistic (what a prospect would actually raise),
      not strawmen.

OUTPUT — write via a single heredoc to
  {OUTPUT_DIR}/partials/{COMPETITOR_SLUG}.battle.md

cat << 'BATTLE_MD' > {OUTPUT_DIR}/partials/{COMPETITOR_SLUG}.battle.md
---
competitor_name: {COMPETITOR_NAME}
lane: battle
generated_at: {YYYY-MM-DD}
---

## Battle Card

### Landmines

- **{one-line fact}** — {how to use it in the call}. (source: {url})

### Objection Handlers

- If they say: "{objection verbatim}"
  You say: {response citing user's moat} (evidence: {url})

### Talk Tracks

1. {1-2 sentence pitch}
BATTLE_MD

REPORT BACK only one line:
  "{COMPETITOR_SLUG} battle: {N} landmines, {M} objections, {K} tracks, all cited."

Do NOT return the card content.

Wave management

  • Launch 1 battle-card subagent per competitor. All can run in parallel (synthesis is fast and uses no shared state beyond already-written partials).
  • Depth: only run in deep or deeper modes. quick mode does not have the research depth to ground battle cards credibly.
  • Budget: ~3-5 Bash calls per subagent (1 big cat, 1 big heredoc, maybe 1-2 sanity checks).

Source: SKILL.md on GitHub

2 alerts2mo3 checks · Risk HIGH
  • Gen Agent Trust Hub2mo

    This skill performs automated competitor research and report generation. However, it requires users to modify their global security settings to bypass command confirmation prompts for high-risk tools like 'node' and 'rm'. Additionally, it lacks adequate protection against indirect prompt injection when processing data from the public web.

  • Socket2mo

    No alerts

  • Snyk2mo

    Risk: CRITICAL · 2 issues

Signed by skilld at 8102b95. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub last month.

Activeupdated 4 months ago
compatibility
Requires the browse CLI (npm install -g browse) and BROWSERBASE_API_KEY env var
metadata
{
  "author": "browserbase",
  "version": "0.2.0"
}
All 1 allowed tools
Bash Agent AskUserQuestion

README badge

README badge for browserbase/skills/competitor-analysis