Search, extract, and compare high-quality public sources with Exa through SandBase. Use when asked for deep web research, source discovery, current evidence, topic investigation, company research, or citation-ready findings.
npx skills add https://github.com/sandbaseai/sandbase-skills --skill exa-deep-search
Turn Exa search into a focused, source-backed research brief. This Skill calls the named Exa capabilities in the SandBase API map through the SandBase MCP gateway. In a SandBase Agent, run the capabilities directly. In another compatible agent, require an authorized SandBase connection before starting; never request, print, or store an API key in the research output.
Read example workflows when the user needs a starting prompt or wants to understand the output.
Collect or infer: the topic or entity, time window, geography, trusted or excluded domains, audience for the deliverable, and how findings will be used. Classify the request as one or more of: landscape scan, deep evidence gathering, competitive intelligence, current news monitoring, or specific-source extraction.
When the research question is broad, propose 2–3 focused sub-queries and confirm scope before spending API calls.
Read the SandBase API map before selecting tools. Use the listed tool_name through the SandBase gateway:
sandbase_describe_tool for the selected tool_name and read its current input schema.sandbase_call_tool with that exact tool_name and only schema-defined arguments.Use exa_search with parameters matched to the research need:
| Research need | Recommended parameters |
|---|---|
| Current landscape | topic: "news", bounded start_published_date/end_published_date, include_highlights: true |
| Deep evidence | search_depth: "advanced", include_summary: true, request full text only for selected sources |
| Trusted sources only | include_domains for first-party, academic, or approved publishers |
| Competitive research | exclude_domains for the target's own site; separate queries per competitor |
| Validation or quick check | search_depth: "basic", num_results: 3–5 |
Tips:
category when available (e.g., "research paper", "company", "news") to narrow result types.include_highlights: true to get relevant snippets without extracting full text for every result.When deeper analysis of specific pages is needed, send selected URLs to exa_contents:
include_text: true for full page content when analyzing structure or extracting data.include_highlights: true with a highlights_query to focus extraction on specific aspects.include_summary: true for concise overviews when reviewing many pages.subpages only for explicit documentation, pricing, or API crawl tasks.max_age_hours: 0 only when freshness requires a live crawl; avoid for routine research.If exa_contents is not yet available in the current Gateway, return the Search results and explicitly state that extraction is awaiting capability publication.
Good Exa queries describe the content of the ideal result page:
| Poor query | Better query |
|---|---|
| AI agents | How enterprises evaluate AI agent platforms for production deployment |
| observability tools | Comparison of AI agent observability and tracing solutions 2025 |
| competitor pricing | Pricing page for enterprise AI agent orchestration platform |
exclude_domains to avoid results you already know about.Return a structured research brief:
| # | Title | URL | Published | Relevance |
|---|---|---|---|---|
| 1 | ... | ... | ... | ... |
Numbered findings, each citing source(s) by number.
What sources disagree on, and what questions remain unanswered.
Follow-up Exa queries or alternative research paths.
exa_search returns few or no results, try: broader query, different search_depth, removed domain filters, or a wider date range. Report if the topic genuinely lacks public coverage.exa_contents is unavailable, deliver search results with highlights and explicitly note the extraction gap.Before delivering, verify that:
Take sandbaseai/exa-deep-search from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.