competitor-intel
Searches the live web via Nimble APIs to monitor competitors and produce a structured intelligence briefing. Runs parallel searches for news, product launches, hiring signals, and funding — then compares against previous findings to highlight only what's new. Use this skill when the user asks about competitors, competitive intelligence, or what rival companies are doing. Common triggers: "what are my competitors doing", "competitor update", "competitor news", "competitive landscape", "market intel", "what's new with [company]", "track [company]", "competitor briefing", "who's making moves", "competitive analysis", "losing deals to [company]", "battlecard". Also use before board meetings or strategy sessions when the user wants competitive context. Requires the Nimble CLI (nimble search, nimble extract) for live web data. Do NOT use for single-company deep dives (use company-deep-dive), meeting prep with attendees (use meeting-prep), or non-business queries.
NPX Install
npx skill4agent add nimbleway/agent-skills competitor-intelTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Competitor Intelligence
references/nimble-playbook.md&waitInstructions
Step 0: Preflight
references/nimble-playbook.md- CLI missing or API key unset → , stop
references/profile-and-onboarding.md - Profile exists → read to identify which competitor files exist and their last-updated dates. If the index doesn't exist (first run or upgrade), fall back to reading all
~/.nimble/memory/competitors/index.mddirectly — the index is an optimization, not a gate. Then load the relevant competitor files for known signals (used for dedup in Steps 3 + 5). Follow cross-references (~/.nimble/memory/competitors/*.mdlinks) to load related context. Determine mode using smart date windowing from[[path/entity]]:references/nimble-playbook.md- Full mode: first run OR last run > 14 days ago
- Quick refresh: last run < 14 days ago
- Same-day repeat: if is today, check if a report already exists at
last_runs.competitor-intel. If so, ask: "Already ran today. Run again for fresh data?" Don't silently re-run.~/.nimble/memory/reports/competitor-intel-[today].md - Skip to Step 2
- No profile → Step 1
Step 1: First-Run Onboarding (2 prompts max)
"What's your company's website domain? (e.g., acme.com)"
nimble search --query "[domain]" --include-domain '["[domain]"]' --max-results 3 --search-depth litenimble search --query "[domain] company" --max-results 5 --search-depth lite
I found that [Company] ([domain]) is [brief description]. Is this right? And how should I find your competitors?
- Yes — find competitors for me
- Yes — I'll list them myself
- Wrong company — let me clarify
nimble search --query "[Company] competitors" --max-results 10 --search-depth litenimble search --query "[Company] vs" --max-results 10 --search-depth litenimble search --query "[Company] alternatives" --max-results 5 --search-depth lite
references/profile-and-onboarding.mdStep 2: WSA Discovery
nimble agent list --search "{domain}" --limit 20entity_typemanaged_by: "nimble"nimble agent get --template-name {name}nimble searchnimble searchStep 3: Research the User's Company
--include-domainnimble search --query "product updates OR changelog OR releases" --include-domain '["[company-domain]"]' --start-date "[start-date]" --max-results 5 --search-depth litenimble search --query "[UserCompany] news" --focus news --start-date "[start-date]" --max-results 5 --search-depth lite
nimble search --query "blog" --include-domain '["[company-domain]"]' --max-results 5 --search-depth liteStep 4: Parallel Research Per Competitor (sub-agents)
references/competitor-agent-prompt.mdreferences/nimble-playbook.mdnimble-researcheragents/nimble-researcher.mdmode: "bypassPermissions"extract-batchreferences/nimble-playbook.mdindustry_keywordsnimble search --query "[industry_keyword] AI agents OR automation" --focus news --start-date "[start-date]" --max-results 5 --search-depth litenimble search --query "[industry_keyword] regulation OR compliance OR pricing" --focus news --start-date "[start-date]" --max-results 5 --search-depth lite
Step 5: Deep Extraction
references/nimble-playbook.md- All P1 signals (funding, M&A, leadership) — need confirmed details AND date verification
- Any signal with — event date needs verification from page content
DATE_CONFIDENCE: LOW - Any signal where — confirm the event date from the actual page content
SOURCE_TYPE: DERIVATIVE
- P2 signals where the snippet lacks a date or key detail
DATE_CONFIDENCE: HIGHnimble extract --url "https://..." --format markdownreferences/nimble-playbook.mdStep 5.5: Signal Validation
references/nimble-playbook.md| Check | Result | Action |
|---|---|---|
| EVENT_DATE within freshness window + not in memory | NEW | Include |
| EVENT_DATE within window + updates a known signal | UPDATED | Include as update |
| EVENT_DATE outside freshness window | STALE | Drop — old event, new article |
| DATE_CONFIDENCE: LOW + couldn't verify in Step 4 | UNCERTAIN | Drop with note |
NEEDS_CORROBORATION: truenimble search --query "[Company] [event summary]" --max-results 5 --search-depth lite- Event date is outside the freshness window → STALE
- Only sourced from derivative/aggregator sites with no corroborating primary or major outlet → UNCERTAIN, drop unless verified via extraction
- Content clearly describes a past event (temporal language like "last year", "back in Q3", "months ago") with event date outside the window → STALE
Step 6: Analysis & Output
- TL;DR — 3-5 P1 signals, most recent first, every one dated with source
- Per competitor — "Recent" and "Older Context" subsections, "Where They Win vs. Where You Win" table, "What This Means" (1-2 sentences)
- Industry Trends — signals from industry searches
- Your Company Update — releases/news from Step 2
- Cross-Competitor Patterns — converging trends
- What This Means for [Company] — strategic implications + suggested actions
- New Signals — dated, with competitor name, priority, and clickable source URL
- Nothing New — list competitors with no new signals
- Action Items — only if something requires attention
- Every signal MUST have a verified event date. Only events that happened within the freshness window qualify as new signals — older events are background context.
- Only include signals classified as NEW or UPDATED in Step 5.5. STALE and UNCERTAIN signals have already been dropped.
- Deduplicate against — only surface NEW findings.
~/.nimble/memory/competitors/*.md - Say "nothing notable this period" rather than padding with fluff.
- P3 signals: mention briefly or omit if report is long.
Step 7: Save & Update Memory
- Report → (save the full briefing, not a summary — this is the local source of truth)
~/.nimble/memory/reports/competitor-intel-[date].md - Per competitor → append validated signals to (use the format documented in
~/.nimble/memory/competitors/[name].md). Addreferences/memory-and-distribution.mdcross-references for relationships discovered during research (e.g., key people →[[path/entity]], related competitors →[[people/name]]).[[competitors/name]] - Profile → update in
last_runs.competitor-intel~/.nimble/business-profile.json - Follow the wiki update pattern from : update
references/memory-and-distribution.mdrows for all affected entity files, append aindex.mdentry for this run.log.md
Step 7.5: Synthesis Page Generation
~/.nimble/memory/synthesis/competitive-landscape.mdnimble-analystagents/nimble-analyst.mdmode: "bypassPermissions"~/.nimble/memory/competitors/*.mdcompetitive-landscape.mdreferences/memory-and-distribution.md[[competitors/name]]~/.nimble/memory/backlog.mdindex.mdStep 8: Share & Distribute
references/memory-and-distribution.mdStep 9: Follow-ups
- Go deeper on a competitor → more focused searches
- Skip a competitor → update
preferences.skip_competitors - Add a competitor → update , create memory stub
competitors - "Looks good" → done
Next steps:
- Run
to analyze how competitors present themselves onlinecompetitor-positioning- Run
for a full 360 profile on any competitor from this reportcompany-deep-dive- Run
if you're meeting with someone at a competitormeeting-prep
Agent Teams Mode (Dual-Mode)
echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS- Lead (you): Assign competitors, synthesize the final briefing
- One teammate per competitor: Uses with discovered WSAs — teammates can message each other when they find overlapping signals
references/competitor-agent-prompt.md - Devil's Advocate (optional): Challenges findings, looks for blind spots
- Lead synthesizes a cross-validated briefing with higher confidence
Error Handling
references/nimble-playbook.md- Search 500: Retry once without flag. If still failing, retry with a simplified query (shorter terms, no date filter). Log the failure but don't skip the competitor.
--focus - Search timeout: Retry once, then skip that call and continue — consistent with the playbook's timeout policy.