# Competitor Research

> >

- **Type:** Skill
- **Install:** `agentstack add skill-matteotitta-genesys-skills-competitor-research`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [matteotitta](https://agentstack.voostack.com/s/matteotitta)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [matteotitta](https://github.com/matteotitta)
- **Source:** https://github.com/matteotitta/genesys-skills/tree/main/skills/competitor-research
- **Website:** https://newsletter.genesysgrowth.com/

## Install

```sh
agentstack add skill-matteotitta-genesys-skills-competitor-research
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Competitor research

Run deep competitor analysis across 13 research dimensions for B2B SaaS companies. Produces structured insights with explicit confidence levels, source citations, and actionable data gaps.

**Knowledge type:** `competitor-intel` (see `.claude/rules/ontology.md`)
**Maturity on first run:** emergent → validated after client review

## Attribution standard

**Inline attribution (simplified):**

Use concise inline source references for key data points. Do NOT use the verbose `[VERIFIED: url, date]` block syntax inline — it clutters the output.

- `(Source: Crunchbase)` — direct named source
- `(Source: Vendr)` — Vendr contract data (pricing fallback)
- `(Source: competitor website)` — direct competitor page
- `(Source: Reddit, r/[subreddit])` — community signal, treat as Low confidence unless corroborated
- `(Source: G2)` — review platform data
- `(Source: Apify, [actor name])` — scraped data via Apify MCP
- Omit attribution only for facts that are self-evidently sourced (e.g., a feature listed on the competitor's features page)

**End-of-document audit trail:**

Every output ends with a **Sources & data quality** section (see output template). This table consolidates:
- All URLs with access dates
- Confidence level per dimension
- Data gaps with unverified claims and follow-up actions

**Quality threshold:** minimum 50% verified claims, maximum 20% estimated.

---

## Process Flowchart

```text
┌──────────────────────────────────────────────────────────────┐
│                 COMPETITOR RESEARCH PROCESS                   │
└──────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌──────────────────────────────────────────────────────────────┐
│ PHASE 1: INPUT VALIDATION                                     │
│ □ Required: Competitor name, Website URL                      │
│ □ Optional: Market category, client context, specific Qs      │
│ → If ambiguous name: Confirm competitor identity with user    │
└──────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌──────────────────────────────────────────────────────────────┐
│ PHASE 2: DIMENSION RESEARCH (13 dimensions)                   │
│ Step 2.1: Company → funding, team, revenue                    │
│ Step 2.2: Product → features, differentiators                 │
│ Step 2.3: ICP → segments, personas, customers                 │
│ Step 2.4: Pricing → plans, model, value metric                │
│ Step 2.5: Reviews → G2, Capterra, sentiment                   │
│ Step 2.6: Content → blog, formats, lead magnets, events       │
│ Step 2.7: Launches → recent announcements                     │
│ Step 2.8: SEO/AEO → SERP positions (use Ahrefs MCP if avail)  │
│ Step 2.9: Technographics → integrations (limited)             │
│ Step 2.10: Openings → hiring signals                          │
│ Step 2.11: GTM → sales motion, outbound signals, messaging    │
│ Step 2.12: LinkedIn/Social → organic strategy, founder        │
│ Step 2.13: Paid advertising → LinkedIn/Meta/Google ads        │
│ ✓ Checkpoint: All dimensions researched, sources documented   │
└──────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌──────────────────────────────────────────────────────────────┐
│ PHASE 3: SYNTHESIS & GAPS                                     │
│ Step 3.1: Assign confidence levels (High/Med/Low)             │
│ Step 3.2: Write executive summary                             │
│ Step 3.3: Document data gaps with follow-up actions           │
│ Step 3.4: Run quality verification                            │
│ ✓ Checkpoint: No unsourced claims, gaps documented            │
└──────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌──────────────────────────────────────────────────────────────┐
│ PHASE 4: AGGREGATE ANALYSIS (Multi-Competitor)                │
│ Trigger: 2+ competitors researched for same client            │
│ Step 4.1: Identify cross-competitor patterns                  │
│ Step 4.2: Build threat matrix                                 │
│ Step 4.3: Analyze market positioning dynamics                 │
│ Step 4.4: Feature parity analysis                             │
│ Step 4.5: Credibility signal audit                            │
│ Step 4.6: Extract strategic recommendations                   │
│ ✓ Checkpoint: Aggregate insights documented                   │
└──────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌──────────────────────────────────────────────────────────────┐
│ SELF-EVALUATION                                               │
│ □ Completeness: All 13 dimensions addressed?                  │
│ □ Evidence: Every data point has source or "Not available"?   │
│ □ Guardrails: No invented data? No unsourced claims?          │
│ → If issues found: Flag low-confidence areas                  │
└──────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌──────────────────────────────────────────────────────────────┐
│ REVIEW GATE: Level 1 (Quick Review)                           │
│ Present: Executive summary, confidence breakdown              │
│ Actions: [Approve] [Dig deeper on X] [Research more]          │
└──────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌──────────────────────────────────────────────────────────────┐
│ CHAIN SUGGESTIONS                                             │
│ → "Want me to research additional competitors?"               │
│ → "Ready to run positioning with this competitive context?"   │
│ → "Should I generate battlecard content from this?"           │
│ → "Ready for aggregate analysis across all competitors?"      │
│ → Save as reference example if positive feedback              │
└──────────────────────────────────────────────────────────────┘
```

---

## The Iron Law

**NO DATA POINT WITHOUT SOURCE.**

Every claim has a URL + access date. Every metric cites its origin. "Not available" is always better than invented data.

**No exceptions:**

- "This is widely known" → Still needs a source. Cite it.
- "I read this somewhere" → Find the URL or mark "Not available".
- "I can estimate this" → Estimates need explicit confidence levels and reasoning.
- "The user needs this fast" → Fast + wrong = useless. Take the time.

---

## Red Flags (Stop and Verify)

🚩 About to write revenue/funding without source → STOP. Cite Crunchbase, PitchBook, or mark "[Data needed]".

🚩 About to state competitor feature without verifying → STOP. Check their website/docs first.

🚩 About to invent customer logos → STOP. Only include logos you found on their site.

🚩 About to guess pricing → STOP. Research their pricing page or mark "Pricing not public".

🚩 About to claim market position without evidence → STOP. Cite G2, analyst report, or mark confidence level.

---

## Claude Code Triggers

**Invoke this skill when user says:**
- "Research this competitor: [name/URL]"
- "Competitor analysis for [company]"
- "Competitive intelligence on [company]"
- "Analyze [company] as a competitor"
- "Battlecard research for [competitor]"
- "Competitive landscape for [market]"
- "Compare [competitor 1] vs [competitor 2]"
- "What's [competitor] doing?"

**Do NOT invoke when:**
- User wants company qualification/traction → Use `company-context` skill
- User wants product messaging only → Use `product-messaging` skill
- User wants to research own company → Use `company-context` or `product-messaging`
- Quick question about one feature → Answer directly without full 11-dimension framework

---

## Input Requirements

### Required Inputs

| Input | Description | Source |
|-------|-------------|--------|
| **Competitor name** | Exact company/product name | User provides |
| **Website URL** | Competitor's website | User provides or confirm |

### Optional Inputs (improve quality)

| Input | How It Helps |
|-------|--------------|
| Market category | Helps with disambiguation and keyword selection |
| Client context | Current positioning helps sharpen analysis |
| Specific questions | Focus research on areas of interest |
| Research depth | Deep (default) or comparison matrix |

### Input Validation Checklist

Before proceeding, verify:
- [ ] Competitor name is unambiguous (if not, confirm with user)
- [ ] Website URL is correct and accessible
- [ ] Research mode confirmed (single deep dive or comparison matrix)

**If inputs are missing:** Ask for website URL. If name is ambiguous (e.g., "Bolt" could be multiple companies), confirm which competitor.

---

## Process (Step-by-Step)

### Phase 1: Confirmation & Setup

**Purpose:** Verify competitor identity and establish research scope.

**Steps:**

1. **Step 1.1: Confirm competitor identity**
   - Verify exact company/product name
   - Confirm website URL is correct
   - Check for name disambiguation issues
   - **Output:** Confirmed competitor details

2. **Step 1.2: Determine research mode**
   - Default: Single competitor deep dive (11 dimensions)
   - Alternative: Comparison matrix (3-6 competitors, core dimensions)
   - **Output:** Research mode confirmed

**Phase 1 Checkpoint:**
- [ ] Competitor name unambiguous
- [ ] Website URL verified
- [ ] Research mode selected

### Phase 2: Dimension Research

**Purpose:** Systematically research all 11 dimensions.

**Steps:**

1. **Step 2.1: Company research (Dimension 1)**
   - Search funding: `"[competitor]" crunchbase funding`
   - Search valuation: `"[competitor]" series raised valuation`
   - Fetch about page
   - Extract: Founded, HQ, team size, funding, revenue
   - **Output:** Company profile with sources

2. **Step 2.2: Product research (Dimension 2)**
   - Fetch homepage and features page
   - Fetch documentation if available
   - Extract: Core description, key features, differentiators, platform
   - **Output:** Product profile with sources

3. **Step 2.3: ICP research (Dimension 3)**
   - Fetch customers/case studies page
   - Fetch solutions/industries page
   - Search: `site:reddit.com "[competitor]" use case who uses` — validate segments and uncover niche use cases not on their website
   - Extract: Company size, industries, personas, geos, named customers
   - **Output:** ICP profile with sources

4. **Step 2.4: Pricing research (Dimension 4)**
   - **Step 1:** Fetch `/pricing` page directly
   - **Step 2 (if hidden/gated):** Search `site:g2.com "[competitor]" pricing` — extract plan names, price ranges from review snippets
   - **Step 3 (if still missing):** Search `site:vendr.com "[competitor]"` — Vendr publishes negotiated SaaS contract data; mark findings as `(Source: Vendr)`
   - **Step 4 (if still missing):** Search `site:reddit.com "[competitor]" pricing cost per seat` — extract user-reported pricing, negotiation outcomes, plan details; mark as `(Source: Reddit)`, Low confidence
   - **Step 5 (if all fail):** Mark "Pricing not public — pricing page, G2, Vendr, and Reddit checked"
   - Extract: Model, plans, free tier, enterprise availability, value metric
   - **Output:** Pricing profile with sources

5. **Step 2.5: Reviews research (Dimension 5)**
   - Search: `site:g2.com "[competitor]" reviews`
   - Search: `site:capterra.com "[competitor]" reviews`
   - Search: `site:reddit.com "[competitor]" review` — unfiltered sentiment, bugs, feature complaints
   - Search: `site:reddit.com "[competitor]" problems issues` — surfaces pain points not visible on review platforms
   - Extract: Ratings, review count, sentiment themes, pros/cons, Reddit community signals
   - Note: Reddit findings = Low confidence unless corroborated by G2/Capterra patterns
   - **Output:** Reviews profile with sources

6. **Step 2.6: Content research (Dimension 6)**
   - Fetch blog and resources page
   - Extract: Topics, formats, frequency, lead magnets
   - **Output:** Content profile with sources

7. **Step 2.7: Launches research (Dimension 7)**
   - Search: `"[competitor]" launch announcement [current year]`
   - Search: `site:producthunt.com "[competitor]"`
   - Extract: Product launches, feature announcements (last 3 months)
   - **Output:** Launches profile with sources

8. **Step 2.8: SEO/AEO research (Dimension 8)**
   - **If Ahrefs MCP available (preferred):**
     - `ahrefs.domain_overview({ target: "[competitor.com]" })` → DR, traffic estimate
     - `ahrefs.organic_keywords({ target: "[competitor.com]", limit: 20 })` → top keywords
     - `ahrefs.backlinks({ target: "[competitor.com]", limit: 10 })` → referring domains
     - Confidence: High
   - **If Ahrefs NOT available — use Serper.dev (free fallback):**
     - Requires `SERPER_API_KEY` env var (sign up at serper.dev — 2500 free searches/month)
     - Run 5-10 SERP checks for key category keywords using `WebFetch` or `mcp__exa__web_search_exa`
     - Query patterns: `"[category keyword]"`, `"[competitor name] vs [category]"`, `"best [category] tool"`
     - Extract: competitor ranking position, featured snippet ownership, title/meta copy
     - Use `site:[competitor.com]` search to estimate indexed page count
     - Confidence: Medium (SERP positions accurate; traffic estimates and DR not available without Ahrefs)
   - **If no tools available:** Manual SERP checks for 3-5 key category keywords only
     - Confidence: Low
   - Extract: Domain rating (if Ahrefs), organic traffic estimate, top keywords, SERP positions, indexed pages
   - **Output:** SEO profile with confidence level based on data source

9. **Step 2.9: Technographics research (Dimension 9)**
   - Fetch integrations page
   - Check job postings for tech stack hints
   - Note: Full data requires BuiltWith access
   - Extract: Integrations, visible tech signals
   - **Output:** Technographics profile (limited without premium tools)

10. **Step 2.10: Openings research (Dimension 10)**
    - Fetch careers page
    - Search: `site:linkedin.com/jobs "[competitor]"`
    - Extract: Open roles, hiring departments, seniority, locations
    - **Output:** Openings profile with sources

11. **Step 2.11: GTM research (Dimension 11)**
    - Analyze website messaging and CTAs
    - Check founder LinkedIn activity
    - Search job postings for SDR/BDR/outbound roles — mention of sequencing tools (Outreach, Salesloft, Apollo) signals active outbound
    - Search: `site:reddit.com "[competitor]" sales demo cold email` — surfaces buyer-reported sales experience, outbound aggressiveness, SDR quality
    - Extract: Sales motion (PLG/sales-led/hybrid), primary CTA, channel mix (inbound vs. outbound vs. paid vs. organic), outbound signals, messaging themes
    - **Output:** GTM profile with sources

12. **Step 2.12: LinkedIn / Social research (Dimension 12)**
    - Fetch linkedin.com/company/[competitor] — capture followers, about, recent posts
    - Search: `"[competitor]" site:linkedin.com/posts` for recent post titles and topics
    - Check founder/CMO LinkedIn profiles for post cadence and themes
    - Extract: Follower count + YoY growth, post frequency, content types (product/thought leadership/customer/events), founder activity
    - Note: Impression and reach data require LinkedIn Analytics access — mark [UNAVAILABLE]
    - **Output:** LinkedIn/Social profile with sources

13. **Step 2.13: Paid advertising research (Dimension 13)**

    **IMPORTANT:** All three ad libraries are JS-rendered — raw HTML fetches will fail or return empty. Use Apify actors (preferred) or Firecrawl browser mode.

    **Google Ads Transparency Center (highest priority for B2B SaaS):**
    - **Option A — Apify (preferred):**
      1. `mcp__apify__search-actors` with query `"Google Ads Transparency"` — select highest-rated actor
      2. Fetch actor input sc

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [matteotitta](https://github.com/matteotitta)
- **Source:** [matteotitta/genesys-skills](https://github.com/matteotitta/genesys-skills)
- **License:** MIT
- **Homepage:** https://newsletter.genesysgrowth.com/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-matteotitta-genesys-skills-competitor-research
- Seller: https://agentstack.voostack.com/s/matteotitta
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
