Competitor analysis
Skill tuliosousapro/SaaS-blueprint/skills/competitor-analysis
Structured competitor teardown skill. Use when scraping competitor sites, extracting pricing/features/positioning, or analyzing strategic gaps. For general research, see market-research.From its SKILL.md
npx -y skills add tuliosousapro/SaaS-blueprint --skill competitor-analysisAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- fetches URLsInstructs the agent to fetch 4 URLs, including firecrawl_search and 3 more.
SKILL.md
4.1 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
Competitor Analysis Skill
When to Use
- During Phase 0 (Idea) → Competitor Analysis module
- When evaluating a new market or niche
- Before any pricing strategy or positioning work
- When a user says "who else does this?" or "what's out there?"
Tools Required
| Tool | Purpose |
|---|---|
firecrawl_search | Discover competitors via web search |
firecrawl_map | Crawl competitor site structure |
firecrawl_scrape | Extract full page content for analysis |
firecrawl_extract | Pull structured data (pricing, features) |
Instructions
1. Identify Competitors
Run parallel searches:
firecrawl_search: "{product_description} SaaS alternatives"
firecrawl_search: "{problem_statement} software solutions"
firecrawl_search: "best {category} tools 2025 2026"
firecrawl_search: "{category} vs comparison"
Categorize into:
- Direct competitors: Same problem, same audience, same delivery model
- Indirect competitors: Same problem, different approach (e.g., agencies, spreadsheets)
- Aspirational: Where we want to be in 2+ years
2. Deep Teardown (Per Competitor)
For each direct competitor (max 5):
a. Pricing Intelligence
firecrawl_extract:
urls: ["{competitor}/pricing"]
prompt: "Extract all pricing tiers, prices, billing frequency, feature limits per tier, and any free tier details"
schema: {
tiers: [{
name: string,
price_monthly: string,
price_annual: string,
features: [string],
limits: [string]
}],
free_tier: boolean,
enterprise_custom: boolean
}
b. Feature Inventory
firecrawl_scrape:
url: "{competitor}/features"
formats: ["json"]
jsonOptions:
prompt: "List every feature mentioned on this page with a one-line description"
schema: {
features: [{ name: string, description: string, category: string }]
}
c. Positioning & Messaging
firecrawl_scrape:
url: "{competitor}"
formats: ["markdown"]
onlyMainContent: true
Extract from the homepage:
- Headline / value proposition
- Target audience language
- Key differentiators they claim
- Social proof (customer count, logos, testimonials)
d. Tech Stack Detection
firecrawl_search: "{competitor_name} tech stack built with"
firecrawl_search: "site:{competitor_domain} careers engineer"
3. Build Comparison Matrix
Output as a markdown table:
| Dimension | {Our Product} | Competitor A | Competitor B | Competitor C |
|---|---|---|---|---|
| Pricing (starter) | TBD | $X/mo | $X/mo | $X/mo |
| Free tier | TBD | Yes/No | Yes/No | Yes/No |
| Feature 1 | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ |
| Feature 2 | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ |
| Target audience | {ours} | {theirs} | {theirs} | {theirs} |
| Weakness | — | {gap} | {gap} | {gap} |
4. Gap Analysis
Identify:
- Underserved segments: Who are competitors ignoring?
- Missing features: What do users complain about on G2, Reddit, Twitter?
- Pricing gaps: Is there room between free and expensive tiers?
- UX gaps: Where is the friction in competitor products?
Search for complaints:
firecrawl_search: "{competitor_name} review complaints problems"
firecrawl_search: "site:reddit.com {competitor_name} alternative"
firecrawl_search: "site:g2.com {competitor_name} cons"
5. Output Format
Save to BRAINIAC/0. Idea/0.4 Competitor Analysis/ANALYSIS.md:
- Executive summary (3 bullet points: biggest threat, biggest gap, our edge)
- Competitor profiles (one section per competitor)
- Comparison matrix
- Gap analysis
- Strategic recommendation (1 paragraph)
- Raw data sources
Quality Gates
- Minimum 3 direct competitors analyzed
- Pricing data must come from actual scrapes, not memory
- Gap analysis must cite specific user complaints with sources
- Matrix must include our product column (even if TBD)
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 2 of the 12 instructions most competitive analysis skills give in ~1.0k tokens
Counted across 117 of the 155 authors here whose files we hold, read 2026-09-06
- Identify direct, indirect, and future competitorshere, and in 12 of 117, across 10 files
- Build a feature comparison matrixin 10 of 117
- Cite every number with source and datein 8 of 117, across 4 files
- Track eight dimensions per competitorin 6 of 117, across 4 files
- Produce one-page battlecards for salesin 6 of 117, across 4 files
- Categorize each competitor as direct, adjacent, or substitutein 6 of 117, across 5 files
- Recommend analyzing three to five competitorshere, and in 6 of 117, across 5 files
- Update the threat matrix quarterlyin 5 of 117, across 3 files
- Scope requirements with ask_user_question before any researchin 5 of 117, across 1 file
- Get outline approval before creating any slidesin 5 of 117, across 1 file
- Use source-file values exactly as givenin 5 of 117, across 1 file
- Match user-specified titles, chart types, and values verbatimin 5 of 117, across 1 file
Said here and by no other author read
- run parallel web searches to discover competitors
- scrape each competitor's pricing page into structured tiers
- capture positioning and messaging from competitor homepages
- search for each competitor's tech stack
- build a markdown comparison matrix including our product column
- identify gaps in segments, features, pricing, and UX
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.