Competitive Intel
name: competitive-research
by atefiqbal · published 2026-04-01
$ claw add gh:atefiqbal/atefiqbal-competitive-research---
name: competitive-research
description: "Use when the user asks to research a competitor, map a market, analyze a category, or produce a competitive brief. Trigger phrases: 'research competitors of X', 'who competes with Y', 'market analysis for Z', 'competitive intelligence on [brand/space]', 'analyze this market', 'who are the main players in [category]', 'build a brief before my call', 'I need to understand this space'. Also triggers when preparing a proposal, positioning exercise, content strategy, or client pitch that requires knowing the competitive landscape."
emoji: 🔍
---
# Competitive Intel
Research a competitor, market, or category. Produce a structured brief with sourced claims, evidence tiers, and explicit limitations. Distinguishes observed fact from inference throughout.
Setup
**No API keys required.** This skill uses only `web_search` and `web_fetch`, both of which are available in standard OpenClaw sessions.
**`OPENCLAW_WORKSPACE`** — only needed for Deep Dive mode (save-report.sh). Defaults to `$HOME/.openclaw/workspace`. If the variable is unset and the default path does not exist, the script will fail with a clear error. Fix: set `OPENCLAW_WORKSPACE` or ensure `~/.openclaw/workspace` exists.
**If `web_search` is unavailable:** Ask the user to provide competitor URLs or names directly. Skip Steps 2 and 4 (identification and review mining via search) and proceed from the provided inputs. Declare this in the Limitations section.
**If `web_fetch` is blocked on a specific domain:** Note the block. Do not invent content. Use SERP snippets and metadata if available; downgrade the tier accordingly.
Tools
No other tools required. Do not invoke shell commands, file system writes, or API calls beyond the above.
Modes
**Quick Scan** (default): 5–8 sources. 10–15 min. Short brief presented inline. No workspace save unless asked.
**Deep Dive**: 15+ sources. Full structured report. Saved to `workspace/research/competitive-intel/YYYY-MM-DD-[slug].md`. Use when the user says "thorough," "deep dive," "full report," "save this," or the scope clearly warrants it.
Confirm mode with the user if ambiguous. Do not silently upgrade Quick Scan to Deep Dive.
Protocol
1 — Scope Declaration
Before researching, state:
Clarify "competitors" type if ambiguous:
Default to Direct unless specified.
2 — Competitor Identification
Search: `"[category] competitors"`, `"[product] alternatives"`, `"best [product type]"`, `"[product] vs"`
Check: G2, Capterra, ProductHunt, relevant subreddits, Google SERP top 10, any category-specific review sites.
Weight by frequency: competitors that surface across 3+ independent sources are the real ones. Single-source mentions are supporting cast.
3 — Profile Each Competitor
For each major player:
Cap at 5 competitors for Quick Scan, 8–10 for Deep Dive. Do not pad with weak players.
4 — Customer Language Mining
Pull actual customer words from:
Record exact phrases, not paraphrases. These are raw positioning and copy material.
Organize under: pain language, desire language, objection language, switching triggers.
5 — Market Structure
Answer:
State market size only if sourced. Label confidence tier. Do not invent TAM figures.
6 — Opportunity Map
This section is **inference and recommendation only** — label it as such.
Never present this section as observed fact.
7 — Evidence Log
Every factual claim used in the report must have a row in the evidence log:
`Claim | Source Name | URL | Date Accessed | Confidence Tier`
See `references/evidence-tiers.md` for tier definitions and usage rules.
8 — Output and Save
Use the format in `references/report-template.md`.
Quick Scan: present inline, offer to save.
Deep Dive: present inline AND save to `workspace/research/competitive-intel/YYYY-MM-DD-[slug].md` using `scripts/save-report.sh`.
For the slug, use a short lowercase descriptor: `klaviyo`, `dtc-email-tools`, `mushroom-supplements`.
Gotchas
**Market size claims.** Never state `"the X market is valued at $Y billion"` without a named source, publication date, and confidence tier. If no source is available, say: `"No reliable market size data found; estimate omitted."` Do not pull from memory or make plausible-sounding numbers.
**Pricing timestamp.** Always note: `"As of [date], pricing starts at $X."` Pricing pages change. A stale price claim undermines the whole report.
**Incentivized reviews.** G2 and Capterra reviews are frequently solicited by vendors. Treat them as directional signals. Note this in the Limitations section. Do not treat them as independent validation.
**Missing data is a finding.** If a company has no public pricing, no reviews, no social presence, no press — say so explicitly. Absence of data is itself a competitive signal (early stage, private, niche, or obscure).
**Scope creep.** Quick Scan must stay Quick Scan. If the user's question requires more depth, name the scope boundary and ask before expanding. Do not silently double the work.
**Do not hallucinate features.** Only report product features that are visible on the company's own site, in reviews, or in documented user reports. If a feature is implied but not confirmed, use INFERRED tier.
**"Competitors" is often wrong the first time.** Users frequently ask about adjacent or aspirational competitors while meaning direct ones, or vice versa. Confirm before investing research time in the wrong frame.
**Web fetch limitations.** Some competitor sites block scrapers or require login. Note this. Do not invent content from a blocked page.
Verification
This is a data/analysis skill. A report is **complete** when all of the following are true:
**Edge cases — required handling:**
| Situation | Required response |
|-----------|-------------------|
| Zero web search results for a query | State: "No results found for [query]." Try alternate phrasings. If still empty, declare it in Limitations. |
| Competitor is private with no public data | State: "No public data found for [company]." Document as a finding — not an error. |
| Only 1–2 competitors exist | Complete the report with what exists. Note: "Market appears nascent or niche; fewer than 3 direct competitors identified." |
| Web fetch blocked on competitor site | Note the block per domain. Use SERP snippet metadata if available. Downgrade tier. Do not invent content. |
| User-named competitor does not appear to exist | Ask to confirm the company name before researching. Do not proceed on a mis-named target. |
| All sources are incentivized (G2-only market) | State this in Limitations. Treat all review data as directional. |
**Pass / fail signal:** If the Evidence Log has zero rows on a completed report, the report has failed verification. Minimum: one sourced claim per profiled competitor.
Blast Radius & Hooks
**Blast radius: Low.**
**Hooks: None added. Decision documented.**
References
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...