mcpField
C
company-research

company-research

github.com/exa-labsMarketing & growth641.0k installsUpdated 3d ago
Repository

About company-research

company-research is a skill for company research with Exa. It guides analysts through deep dives, competitor analysis, and company-list building with Exa Agent, while reserving advanced search for quick lookups.

Key features

  1. 01Multi-angle research with Exa Agent
  2. 02Structured research outputs
  3. 03Quick lookups with advanced search
  4. 04Resume in-progress Agent runs

Use cases

  1. 01Research products, funding, leaders, and news
  2. 02Compare competitors and build company lists
  3. 03Find a company homepage or check news

MCP support

Uses Exa MCP tools, including Exa Agent and advanced search. The skill prioritizes Agent runs for company research.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/exa-labs/agent-skills --skill company-research

After installing, type/company-researchin Claude Code to confirm it loaded.

Details

From the project README

Company Research

Tool Selection (Critical)

Two Exa surfaces, two jobs:

  • Exa Agent (agent_run) — the default for company research. Use it for deep dives, competitor analysis, multi-angle research (product + funding + news + people), and building company lists. One Agent run handles query decomposition, multi-step searching, and synthesis internally — do not orchestrate many manual searches for work an Agent run covers.
  • web_search_advanced_exa — quick, low-latency lookups: a fast category: "company" discovery pass, a single news check, or finding a homepage.

Do NOT use other Exa tools.

Deep Dives and Lists: Exa Agent

Agent runs may stream to completion in one call. If a run outlives the MCP call window, continue waiting with its returned run ID.

  1. Call agent_run with a natural-language query and, when you want repeatable structure, an outputSchema (bound arrays with maxItems).
  2. If it returns status: "running" with a runId, call agent_run again with only that runId until outputReady is true.
  3. Read output.text or output.structured, plus output.grounding citations, from the agent_run result.

Useful inputs: systemPrompt (source preferences, dedup rules), input.exclusion (companies to avoid), previousRunId (a new follow-up run based on a completed run), effort ("low" default; "auto" or "high" for more depth).

Example: company deep dive
agent_run {
  "query": "Research Anthropic: product lines, funding history and valuation, key executives, main competitors, and notable news from the last 6 months.",
  "effort": "auto",
  "outputSchema": {
    "type": "object",
    "properties": {
      "overview": { "type": "string" },
      "funding": { "type": "array", "maxItems": 10, "items": { "type": "object", "properties": { "round": { "type": "string" }, "amount": { "type": "string" }, "date": { "type": "string" } }, "required": ["round"] } },
      "competitors": { "type": "array", "maxItems": 10, "items": { "type": "string" } },
      "key_people": { "type": "array", "maxItems": 10, "items": { "type": "object", "properties": { "name": { "type": "string" }, "title": { "type": "string" } }, "required": ["name", "title"] } }
    },
    "required": ["overview", "competitors"]
  }
}
Example: build a company list
agent_run {
  "query": "Find 25 AI infrastructure startups headquartered in San Francisco. For each, include what they build and their latest funding stage.",
  "effort": "auto",
  "outputSchema": {
    "type": "object",
    "properties": {
      "companies": {
        "type": "array",
        "maxItems": 25,
        "items": {
          "type": "object",
          "properties": {
            "name": { "type": "string" },
            "website": { "type": "string", "format": "uri" },
            "description": { "type": "string", "description": "in 12 words or less" },
            "funding_stage": { "type": "string" }
          },
          "required": ["name", "website", "description"]
        }
      }
    },
    "required": ["companies"]
  }
}

Quick Lookups: Advanced Search

Use web_search_advanced_exa when a single fast search answers the question. Tune numResults to intent (a few → 10-20; comprehensive → 50-100; specified → match it).

Categories
  • company → homepages, rich metadata (headcount, location, funding, revenue)
  • news → press coverage, announcements
  • people → public professional profiles
  • No category (type: "auto") → general web results, broader context

Default to type: "auto". Prefer highlights for content extraction; do not stack text + highlights + summary in one call.

Category-Specific Filter Restrictions

Unsupported category/filter combinations return 400 errors:

  • category: "company" does not support published-date or crawl-date filters, excludeDomains, or exact-text filters; express constraints like "founded after 2020" in the query instead
  • category: "people" does not support published-date, crawl-date, domain, or exact-text filters; put all filtering in the natural-language query
  • Without a category (or with news), domain and date filters work fine
Examples

Discovery pass:

web_search_advanced_exa {
  "query": "AI infrastructure startups San Francisco",
  "category": "company",
  "numResults": 20,
  "type": "auto"
}

News check:

web_search_advanced_exa {
  "query": "Anthropic AI safety",
  "category": "news",
  "numResults": 15,
  "startPublishedDate": "2025-01-01"
}

Key people:

web_search_advanced_exa {
  "query": "VP Engineering AI infrastructure",
  "category": "people",
  "numResults": 20
}

Token Isolation

Never dump raw search results into main context. Spawn Task agents for Advanced Search calls; for Agent runs, go straight from output.structured to the final answer.

Browser Fallback

Fall back to Claude in Chrome only when content is auth-gated or requires JavaScript rendering.

Output Format

Return:

  1. Results (structured list; one company per row)
  2. Sources (URLs; 1-line relevance each — use output.grounding from Agent runs)
  3. Notes (uncertainty/conflicts)

References

Comments

Markdown supported