exa-labs/agent-skills

company-research

Company research using Exa.

Voir la source
Document Skill original

Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.

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

  • Exa Agent guide: https://docs.exa.ai/reference/agent-api-guide
  • Company Search reference: https://docs.exa.ai/reference/verticals/company-for-coding-agents
  • Exa MCP setup: https://docs.exa.ai/reference/exa-mcp
  • Full docs for LLMs: https://docs.exa.ai/llms.txt
du même dépôt

Autres Skills

Tous les Skills
exa-labs
Communauté

build-with-exa

Build applications and agents with Exa's API: search, contents extraction, answer, Agent API, monitors, websets, OpenAI-compatible endpoints, and exa-py/exa-js SDKs. Use when choosing Exa endpoints, writing Exa API calls, integrating semantic web search or research into products, or debugging Exa request shapes.

installations
1
GitHub Stars
45
Mis à jour
3 sept.
exa-labs
Communauté

exa-contents

Call Exa Contents directly with cURL or raw HTTP. Use when an agent already has URLs and needs POST /contents without an SDK for extracted text, highlights, summaries, links, image links, subpages, freshness-controlled crawling, or per-URL status handling.

installations
1
GitHub Stars
45
Mis à jour
3 sept.
exa-labs
Communauté

exa-search

Call Exa Search directly with cURL or raw HTTP. Use when an agent needs Exa semantic web retrieval from POST /search without an SDK, including ranked results, domain or category filters, freshness-aware result content, highlights or text extraction, structured output, or streaming search responses.

installations
1
GitHub Stars
45
Mis à jour
3 sept.
exa-labs
Communauté

lead-generation

Generate enriched lead lists using Exa Agent. Finds companies matching an ICP, enriches with signals/news/scores, and outputs CSV. Use when generating leads, building prospect lists, finding companies to sell to, doing outbound research, or ICP-based company discovery. Triggers on "leads", "lead gen", "prospect list", "find companies", "ICP", "outbound list".

installations
1
GitHub Stars
45
Mis à jour
3 sept.