--- name: competitive-research description: 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. ### Phase 2: Fill JS-Rendered Gaps (web_search) 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.