Install
$ agentstack add skill-matteotitta-genesys-skills-competitor-research ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →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
┌──────────────────────────────────────────────────────────────┐
│ 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-contextskill - User wants product messaging only → Use
product-messagingskill - User wants to research own company → Use
company-contextorproduct-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:
- 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
- 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:
- 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
- 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
- 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
- Step 2.4: Pricing research (Dimension 4)
- Step 1: Fetch
/pricingpage 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
- 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
- Step 2.6: Content research (Dimension 6)
- Fetch blog and resources page
- Extract: Topics, formats, frequency, lead magnets
- Output: Content profile with sources
- 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
- Step 2.8: SEO/AEO research (Dimension 8)
- If Ahrefs MCP available (preferred):
ahrefs.domain_overview({ target: "[competitor.com]" })→ DR, traffic estimateahrefs.organic_keywords({ target: "[competitor.com]", limit: 20 })→ top keywordsahrefs.backlinks({ target: "[competitor.com]", limit: 10 })→ referring domains- Confidence: High
- If Ahrefs NOT available — use Serper.dev (free fallback):
- Requires
SERPER_API_KEYenv var (sign up at serper.dev — 2500 free searches/month) - Run 5-10 SERP checks for key category keywords using
WebFetchormcp__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
- 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)
- 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
- 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
- Step 2.12: LinkedIn / Social research (Dimension 12)
- Fetch linkedin.com/company/[competitor] — capture followers, about, recent posts
- Search:
"[competitor]" site:linkedin.com/postsfor 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
- 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):
mcp__apify__search-actorswith query"Google Ads Transparency"— select highest-rated actor- 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
- Source: matteotitta/genesys-skills
- License: MIT
- Homepage: https://newsletter.genesysgrowth.com/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.