playbook/antigravity-awesome-skills/skills/competitor-analysis/references/research-patterns.md

10 KiB

Competitor Analysis — Research Patterns

Contents

Overview

Two research contexts:

  1. Self-Research (Step 1) — Deep research on the user's company so we know what "competitor" means for this run.
  2. Competitor Research (Step 4) — For each discovered/seeded competitor, run the 4-lane enrichment below.

Both use the Plan → Research → Synthesize pattern. Self-research is identical in shape to the one in company-research, so profiles can be reused across skills.

Self-Research (User's Company)

Sub-Questions

  • "What does {company} sell and what specific problem does it solve?"
  • "Who are {company}'s existing customers? What industries, company sizes, use cases?"
  • "Who are {company}'s known competitors? What category do they compete in?"
  • "What pricing model does {company} use?"
  • "What features, integrations, and differentiators does {company}'s marketing emphasize?"

Page Discovery

Dynamic via sitemap — do NOT hardcode /about or /pricing:

  1. browse cloud fetch --allow-redirects "{company website}/sitemap.xml" — primary source
  2. Scan for URLs with keywords: pricing, customer, compare, vs, about, features, integrations
  3. Optionally fetch /llms.txt for page descriptions
  4. Pick 3-5 most relevant URLs

External Research

  • browse cloud search "{company} alternatives competitors vs"
  • browse cloud search "{company} review comparison"
  • Fetch 1-2 most informative third-party pages

Synthesis Output

Produce a profile with:

  • Company, Product, Existing Customers, Competitors (seed list), Use Cases
  • precise_category — one clear sentence that describes what category this product competes in. Avoid fuzzy words like "tools" or "platform". Good: "AI web search API for agents with neural + keyword retrieval". Bad: "search tools". This becomes the anchor for discovery queries and the gate.
  • category_include_keywords — 8-15 phrases that a direct competitor's marketing would very likely contain (title or hero). Include semantic variants. e.g. for Exa: web search api, search api, neural search, semantic search, retrieval api, search for ai agents, search for llms, serp api, embeddings search, live crawling, answer api, research api.
  • exclusion_list — phrases that indicate a different category, used by the gate to reject false positives. e.g. vector database, enterprise search appliance, site search widget, observability, analytics platform, data warehouse, scraping platform (full ETL/scraping suites, not retrieval APIs), internal knowledge base.

The same profiles/{company-slug}.json shape used by company-research, extended with the three new fields. The competitors array becomes the seed list and the first inputs to the comparison-graph expansion in Step 3.


Competitor Research — 4 Research Lanes

For each competitor, run these four lanes (depth-gated):

Lane 1 — Marketing Surface (ALL depth modes)

Goal: extract what the competitor says about themselves from their own site.

Sub-questions:

  • "What does {competitor} sell, who is it for, and how is it positioned?"
  • "What are {competitor}'s pricing tiers and pricing model?"
  • "What key features, integrations, and platforms does {competitor} list?"

Pages to fetch (via sitemap discovery — do NOT hardcode):

  1. Homepage
  2. /pricing (or equivalent from sitemap)
  3. /features, /product, /platform, /solutions
  4. /integrations, /customers, /case-studies

Extract into frontmatter fields: tagline, positioning, product_description, target_customer, pricing_model, pricing_tiers, key_features, integrations.

Lane 2 — External Signal (deep + deeper)

Goal: what the rest of the internet says about them.

Sub-questions:

  • "What third-party comparison pages mention {competitor}?"
  • "What do users say on Reddit, HN, G2, Capterra?"
  • "What recent news, launches, or announcements?"
  • "Who is talking about them on LinkedIn or YouTube?"

Search queries:

"{competitor} vs"
"{competitor} alternatives"
"{competitor} review"
"{competitor} G2" / "{competitor} Capterra"
"site:reddit.com {competitor}"
"site:news.ycombinator.com {competitor}"
"site:linkedin.com/posts {competitor}"
"site:youtube.com {competitor}"
"{competitor} launch 2025 OR 2026"
"{competitor} funding announcement"

Extraction rule: From search results, harvest each hit as a Mentions entry. Classify source type from the URL:

  • reddit.comReddit
  • news.ycombinator.comHN
  • linkedin.comLinkedIn
  • youtube.com / youtu.beYouTube
  • g2.com / capterra.com / trustradius.comReview
  • *vs* in path or title → Comparison
  • news domains (techcrunch, theverge, venturebeat, forbes, businesswire, globenewswire) → News
  • twitter.com / x.comX
  • spotify.com/episode / transistor/simplecast → Podcast

For LinkedIn and YouTube, the snippet + URL from browse cloud search is enough. Do NOT try to deep-fetch individual LinkedIn posts (auth walls) — list them with title/snippet.

Lane 3 — Public Benchmarks (deeper only)

Goal: find third-party benchmarks that measured this competitor's product.

Sub-questions:

  • "Has {competitor} been included in any public benchmark?"
  • "Are there GitHub repos, PRs, or blog posts comparing {competitor} head-to-head on a measured axis (speed, accuracy, cost, pass rate)?"

Search queries:

"{competitor} benchmark"
"{competitor} performance test"
"site:github.com {competitor} benchmark"
"site:github.com {competitor} vs"
"{competitor} vs {seed_competitor} benchmark"   # pairwise, use another known competitor as the seed
"{category} benchmark {competitor}"             # e.g. "web search api benchmark {competitor}"

Extraction: Add each hit to Benchmarks section with: title, source, URL, key finding (one line). Also mirror into Mentions with type Benchmark.

Known benchmark repos to check directly (if domain is on-topic):

  • Public retrieval-quality leaderboards (e.g. BEIR / MTEB-style repos) when a vendor publishes scores
  • Category-specific benchmark repos discovered via the first search wave

Lane 4 — Strategic Diff vs User's Company (deeper only)

Goal: explicitly compare this competitor to the user's company.

Inputs: {user_company_profile} (from Step 1) — specifically product, use_cases, key_features if available.

Sub-questions:

  • "What features does {competitor} have that {user_company} does not?"
  • "What features does {user_company} have that {competitor} does not?"
  • "Who does {competitor} serve that {user_company} does not (and vice versa)?"
  • "Where does each one win on the marketing surface (price, feature depth, DX, ecosystem)?"

No new fetches required for this lane — it's a synthesis step over Lane 1 + 2 + 3 findings plus the user's profile. Write as:

## Comparison vs {user_company}
- **Overlaps**: ...
- **Gaps**: ...
- **Where they win**: ...
- **Where you win**: ...

Also populate the strategic_diff frontmatter field with a one-line summary for the overview table.


Depth Mode Behavior

Quick Mode (~lots of competitors, cheap)

  • Lanes: 1 only
  • Budget: 2-3 tool calls per competitor (homepage + pricing page)
  • Fields populated: tagline, product_description, pricing_tiers, key_features
  • Mentions / Benchmarks / Comparison: skipped

Deep Mode (balanced, default)

  • Lanes: 1 + 2
  • Budget: 5-8 tool calls per competitor
  • Everything in quick + 5-10 mentions across source types

Deeper Mode (full intel)

  • Lanes: 1 + 2 + 3 + 4
  • Budget: 10-15 tool calls per competitor
  • Everything in deep + benchmarks section + strategic diff section

Finding Format (per lane)

Every finding is a factual statement tied to a source:

{
  "lane": "marketing | external | benchmark | strategic",
  "fact": "Rival Co charges $99/mo for 10K search requests",
  "sourceUrl": "https://rivalco.com/pricing",
  "confidence": "high"
}

Confidence:

  • high: Directly stated on the competitor's own website or official press
  • medium: Inferred from third-party articles, reviews, or job posts
  • low: Speculative / outdated sources

Research Loop Rules

  1. Lane 1 first — always start with the competitor's own site
  2. Use sitemap, not hardcoded paths/pricing might be /plans or /pricing-plans
  3. Rephrase, don't retry — if a search returns generic junk, switch keywords
  4. Fetch selectively — pick the 1-2 most promising URLs per query
  5. For LinkedIn/YouTube: search only, don't fetch — snippet is enough, avoid auth walls
  6. Respect step budget per depth mode
  7. Deduplicate mentions — same URL should only appear once in ## Mentions

Synthesis Instructions

After the research loop completes for a competitor:

  1. Fill frontmatter fields from Lane 1 findings
  2. Write body sections: Product, Pricing, Features, Positioning (all from Lane 1)
  3. Append ## Mentions from Lane 2 classified hits
  4. Append ## Benchmarks from Lane 3 (deeper only)
  5. Append ## Comparison vs {user_company} from Lane 4 synthesis (deeper only)
  6. Append ## Research Findings as a raw-findings appendix with confidence tags

No ICP score. No threat score. Pure intel.

If a field has no supporting findings, leave it empty rather than guessing.