Files
hermes-skills/skills/research/competitive-research/SKILL.md
T

4.3 KiB

name, description
name description
competitive-research Scrape target + competitors for features, pricing, and market positioning. Produce structured comparison reports with pricing tables, feature matrices, and strategic recommendations.

Competitive Research & Analysis

Systematic scraping and comparison of a target company against its competitors — features, pricing, positioning — producing a structured markdown report.

Triggers

  • "Scrape X and competitors for features/pricing/market positioning"
  • "Build a competitive comparison report for Y"
  • "Analyze competitors in the Z space"
  • "Produce a market landscape / competitive analysis"
  • Any request to research a company + N named competitors and output a report

Workflow

Phase 1: Parallel Scrape (web_extract)

  1. Build the URL list: target homepage + ~8 competitor homepages.
  2. Scrape all homepages in a single web_extract call (up to 5 URLs per call).
  3. In parallel, scrape pricing/product pages for target + competitors.
  4. Look for: /pricing/, /features/, /plans/, /business/, /plansandpricing.html.

Key pitfall: Many enterprise VoIP/SaaS sites render pricing tables via JavaScript. web_extract will return page chrome but not the actual dollar figures. When you see truncated pricing pages with no numbers, move to Phase 2.

For each competitor where pricing didn't come through:

  1. web_search for "[Company] pricing plans per user 2025 2026"
  2. Use third-party aggregator pages (Nextiva blog pricing comparisons, Forbes Advisor, G2, Quo, Cloudtalk, etc.) — they extract and publish competitors' prices.
  3. Cross-reference 2-3 sources per competitor for accuracy.

Phase 3: Check Target Site Quality

Before investing in a full report, verify the target site is real:

  • Browse the target with web_extract on multiple subpages (/features/, /pricing/, /about/).
  • If pages return 404s or placeholder/Lorem Ipsum content, flag this prominently in the report. Don't fabricate data — report the actual state.

Phase 4: Compile the Report

Write the report to a markdown file. Use this structure:

  1. Target Current State Assessment — honest assessment of what the target actually has (or doesn't have)
  2. Side-by-Side Pricing Table — all providers, entry/mid/top/enterprise plans, target audience
  3. Pricing Visualization — ASCII chart showing where each competitor sits on price spectrum
  4. Feature Comparison Matrix — 15-20 features across all providers, with indicators for included/tiered/add-on/missing
  5. Market Positioning Map — ASCII chart + positioning summary table (Primary Positioning + Differentiator)
  6. Competitor Deep Dives — per competitor: tagline, pricing tiers, key features, notable clients, target market, compliance, strengths, weaknesses
  7. Key Findings & Strategic Recommendations — where the target could position, recommended pricing, MVP feature set, competitive threats, urgent actions

Phase 5: Flag Report as Subagent Output

The report is a synthesis of scraped + searched data. Label it clearly:

*Report generated by Hermes Agent subagent. All data current as of [DATE].*

No fabricated pricing, no invented testimonials. When data is unavailable, say so.

Pitfalls

  • JS-rendered pricing: RingCentral, Dialpad, 8x8, and similar use React/Next.js with pricing behind JS. Don't waste time with the browser tool for these — go straight to web_search for third-party pricing writeups.
  • Stub/placeholder sites: If the target has 404s, Lorem Ipsum, or stock WordPress themes, report it honestly. Don't pretend it's a real service.
  • Browser tool failures: Chrome may fail to start in headless environments (missing dbus, missing display). Fall back to web_extract + web_search. Don't retry the browser.
  • Parallel scraping limits: web_extract takes max 5 URLs per call. Batch independent URLs together. When pricing pages depend on homepage context, scrape homepages first, then pricing pages.
  • Source attribution: When using third-party pricing data (e.g., Nextiva's blog about RingCentral pricing), cite it as "per third-party analysis" rather than presenting it as primary source data.

Template

See templates/competitor-report.md for the full report skeleton.