skills/business-research/company-deep-dive/SKILL.md
Use this skill ANY TIME the user asks about a specific company. Triggers: "tell me about [company]", "research [company]", "what does [company] do", "who is [company]", "look up [company]", "company deep dive", "due diligence on [company]", "background on [company]", "dig into [company]", "analyze [company]", or evaluating a company for investment, partnership, or sales. MUST be used instead of answering from memory — fetches real-time web data (funding, leadership changes, product launches, news) your training data lacks. Use even for well-known companies. Produces a sourced 360° report covering funding, leadership, product/tech, market position, news, and strategic outlook with dates and URLs. Do NOT use for multi-company competitor monitoring (use competitor-intel) or meeting prep with attendees (use meeting-prep).
npx skillsauth add nimbleway/agent-skills company-deep-diveInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
360° company research powered by Nimble's web data APIs.
User request: $ARGUMENTS
Before running any commands, read references/nimble-playbook.md for Claude Code
constraints (no shell state, no &/wait, sub-agent permissions, communication style).
Follow the transport selection + standard preflight from references/nimble-playbook.md — pick CLI or MCP at session start, then run the standard preflight calls (date calc, today, profile, memory index) in parallel.
From the results:
references/profile-and-onboarding.md, stopnimble CLI calls: nimble --client-source skill-company-deep-dive <subcommand>. MCP path: not yet supported — see references/nimble-playbook.md for status.~/.nimble/memory/companies/index.md to check if the target company already has
prior research. Follow [[path/entity]] cross-references to load related context.
Parse the target company from $ARGUMENTS or the user's message.
If clear (e.g., "research Stripe", "tell me about Datadog"):
nimble search --query "[Company] official site" --max-results 3 --search-depth litenimble search --query "[Company] company overview" --max-results 5 --search-depth liteIf ambiguous (e.g., "research Mercury" — could be bank, auto, or other):
If missing — ask: "Which company would you like me to research?"
Scope selection — if the user hasn't specified depth, default to full deep dive. If they say "quick overview", "brief", or "summary", run a quick mode that skips the Deep Extraction step and produces a shorter report.
Discover available WSAs for the target company's domain. Run both searches simultaneously:
nimble agent list --search "{company-domain}" --limit 20
nimble agent list --search "{company-name}" --limit 20
From the results, filter for WSAs with entity_type matching SERP or PDP, and
prefer managed_by: "nimble". Validate each with
nimble agent get --template-name {name}, then cache discovered WSA names + params
for the run. Pass them to dimension agents in Step 3 for enrichment alongside
nimble search. If no WSAs found, continue with nimble search alone.
Read references/dimension-agent-prompt.md for the full agent prompt template.
Follow the sub-agent spawning rules from references/nimble-playbook.md
(bypassPermissions, batch max 4, explicit Bash instruction, fallback on failure).
Spawn nimble-researcher agents (agents/nimble-researcher.md) with
mode: "bypassPermissions". Each agent researches one dimension of the company.
Pass discovered WSA names from Step 2 to each agent so they can use them for
enrichment alongside nimble search.
Important: The Nimble API has a 10 req/sec rate limit per API key. With each agent running 4-5 searches in parallel, limit concurrent agents to 2 per batch to stay under the limit. Run overview searches in their own phase, not alongside agent batches.
Call estimation & Scaled Execution: Before launching agents, estimate total API
calls: 2 overview searches + ~5 searches per agent × 5 agents = ~27 calls. Each agent
should use extract-batch or agent run-batch for 11+ calls instead of individual
calls. See the Scaled Execution pattern in references/nimble-playbook.md for tier
selection.
Phase A — Overview searches (run directly, before agents):
nimble search --query "about" --include-domain '["[domain]"]' --max-results 3 --search-depth litenimble search --query "[Company] Wikipedia OR Crunchbase OR Pitchbook" --max-results 5 --search-depth liteThese give foundational context (founding date, HQ, employee count, mission) that frames all dimensional findings.
Phase B — Batch 1 (2 agents simultaneously):
| Agent | Dimension | Focus | |-------|-----------|-------| | 1 | Funding & Financials | Funding rounds, valuation, revenue signals, investors, financial health | | 2 | Product & Technology | Products, tech stack, recent launches, engineering blog, open-source |
Phase C — Batch 2 (2 agents simultaneously):
| Agent | Dimension | Focus | |-------|-----------|-------| | 3 | Leadership & Team | Founders, C-suite, key hires, departures, team size, culture signals | | 4 | Recent News & Events | Press coverage, announcements, partnerships, awards, conferences |
Phase D — Batch 3 (1 agent):
| Agent | Dimension | Focus | |-------|-----------|-------| | 5 | Market Position | Competitors, market share, positioning, analyst coverage, customer reviews |
Refresh mode adjustment: If prior research exists, pass the known facts to each
agent as context so they focus on what's new. Agents should use --start-date to
filter for recent data only.
Fallback: If any agent fails or returns empty, run those dimension searches directly from the main context. Don't leave gaps in the report.
From all agents' results, identify the top 5-8 most informative URLs across dimensions. Prioritize:
Make one Bash call per URL, all simultaneously:
nimble extract --url "https://..." --format markdown
For extraction failures, follow the fallback in references/nimble-playbook.md.
Quick mode: Skip this step entirely. Report from search snippets only.
WSA enrichment: If WSAs were discovered in Step 2, use them here for richer
extraction on key URLs before falling back to nimble extract.
Structure the output as a 360° Company Report:
# [Company Name] — Deep Dive
*As of [today's date]*
## Quick Assessment
[2-3 sentence verdict: what this company is, where they stand, and the one thing
that matters most right now. This is the "if you read nothing else" paragraph.]
## Company Overview
- Founded: [year] | HQ: [location] | Employees: [estimate]
- Domain: [domain] | Industry: [industry]
- Mission/focus: [one line]
## Funding & Financials
[Latest round, total raised, key investors, valuation signals, revenue indicators.
Every claim dated and sourced.]
## Leadership & Team
[Founders, C-suite, notable recent hires or departures. Executive perspectives
on company direction — direct quotes when available from interviews or talks.]
## Product & Technology
[Core products, recent launches, tech stack signals, engineering culture,
open-source contributions. What they're building and how.]
## Market Position
[Key competitors, differentiation, market share signals, analyst perspectives,
customer sentiment from reviews (G2/Capterra/Reddit).]
## Recent News & Events
[Chronological, most recent first. Each entry dated with source.]
## Strategic Outlook
[Synthesis across all dimensions: where the company is heading, key risks,
growth signals, and strategic bets. This is insight, not summary.]
## Sources
[Numbered list of all URLs cited in the report]
Core rules:
Make all Write calls simultaneously:
~/.nimble/memory/reports/company-deep-dive-[date].md~/.nimble/memory/companies/[company-name-slug].md
(use the format in references/memory-and-distribution.md). Add [[path/entity]]
cross-references for key people discovered (e.g., [[people/jane-smith]]),
competitors in the same space (e.g., [[competitors/widgetco]]), and any other
related entities.last_runs.company-deep-dive in
~/.nimble/business-profile.jsonreferences/memory-and-distribution.md: update
index.md rows for all affected entity files, append a log.md entry for this run.The company profile in companies/ should contain structured key facts (overview,
financials, leadership, products) that can be loaded by future runs of any skill
that needs context on this company.
Always offer distribution — do not skip this step. Follow
references/memory-and-distribution.md for connector detection, sharing flow, and
source links enforcement.
Sibling skill suggestions:
Next steps:
- Run
competitor-intelto track this company as a competitor over time- Run
meeting-prepif you're meeting with someone at this company- Run
competitor-positioningto analyze their messaging vs yours
Check at startup: echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS
Team mode (flag set): Spawn 3 teammates instead of sub-agents. Each teammate covers related dimensions and can message the others to cross-check findings.
| Teammate | Dimensions | Cross-checks with | |----------|-----------|-------------------| | Financials & News | Funding, revenue, recent news, events | Market (valuation vs positioning) | | Product & Leadership | Products, tech stack, founders, key hires | Financials (pivots vs funding) | | Market | Competitors, positioning, reviews, analysts | Product (differentiation claims) |
Lead (you): Create shared tasks, wait for all teammates to complete, then synthesize the final report. When a teammate finds a claim that another should verify (e.g., a funding amount that implies a valuation), it posts a task for the relevant teammate.
Solo mode (flag not set): Standard sub-agent flow from Step 3.
competitor-intel. This skill goes deep on ONE company.meeting-prep.
This skill researches companies, not individuals.competitor-intel with the company added.See references/nimble-playbook.md for the standard error table (missing API key, 429,
401, empty results, extraction garbage). Skill-specific errors:
--focus flag. If still failing, retry with a
simplified query (shorter terms, no date filter). Log the failure but don't skip
the dimension.development
Finds qualified candidates for a role by searching LinkedIn, Indeed, GitHub, and other professional platforms using Nimble Web Search Agents. Accepts a job description, role title, or freeform request and returns a ranked candidate list with profiles, skills, and contact signals. Use this skill when the user wants to find, source, or recruit candidates for a role. Common triggers: "find candidates for", "source engineers in", "who can I hire for", "find me a [role]", "recruiting for", "talent search", "find a [role] in [city]", "build a candidate list", "sourcing for [role]", "who's available for", "find potential hires". Also triggers on a pasted job description followed by a sourcing request. Do NOT use for job market research or salary benchmarking — use market-finder instead. Do NOT use for researching a single known person — use company-deep-dive or meeting-prep instead.
development
Get web data now — fast, incremental, immediately responsive to what the user needs. The only way Claude can access live websites. USE FOR: - Fetching any URL or reading any webpage - Scraping prices, listings, reviews, jobs, stats, docs from any site - Discovering URLs on a site before bulk extraction - Calling public REST/XHR API endpoints - Web search and research (8 focus modes) - Bulk crawling website sections Must be pre-installed and authenticated. Run `nimble --version` to verify. For building reusable extraction workflows to run at scale over time, use nimble-agent-builder instead.
development
A building experience: create, test, validate, refine, and publish extraction workflows based on existing or new Nimble agents. For users who want to invest in a durable, reusable workflow for a specific domain — not get data immediately. Trigger phrases: "set up extraction for X site", "I need to extract from this site regularly", "build an agent for", "create a reusable scraper", "generate a Nimble agent", "refine my agent", "add a field to my agent", or when the user wants to run extraction at scale. For getting data immediately, use nimble-web-expert instead.
tools
SEO intelligence toolkit covering the full lifecycle via live web data: keyword research, rank tracking, site audits, content gap analysis, competitor keyword reverse-engineering, AI visibility across five platforms (ChatGPT, Perplexity, Google AI, Gemini, Grok), and GitHub repo SEO. Crawls real sites and SERPs via Nimble CLI — no fabricated metrics. Triggers: "SEO", "keywords", "rank tracker", "site audit", "content gap", "competitor keywords", "AI visibility", "GitHub SEO", "SERP analysis", "keyword research", "technical SEO", "keyword difficulty", "topic clusters", "ranking delta", "on-page SEO", "AI citation audit". Do NOT use for competitor business signals — use `competitor-intel` instead. Do NOT use for competitor messaging — use `competitor-positioning` instead. Do NOT use for general web scraping — use `nimble-web-expert` instead.