agentsclimarketplace

Exa search

Skill tdimino/claude-code-minoan/skills/research/exa-search

Search the web with Exa AI — neural search, content extraction, similar page discovery, quick research with citations, and async pro research with structured output. Covers all Exa endpoints (/search, /contents, /findSimilar, /answer, /research/v0/tasks). Triggers on web search, find pages, similar pages, research with citations, Exa, neural search.From its SKILL.md

Install
npx -y skills add tdimino/claude-code-minoan --skill exa-search

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

9.8 KB, ~2.5k tokens by cl100k_base, as published. Nobody here has run it

Exa Search Skill

5 specialized scripts for Exa AI search API—neural search, content extraction, similar pages, research with citations, and async pro research.

Prerequisite: EXA_API_KEY environment variable. Get key at https://dashboard.exa.ai

Token-Efficient Search

Inspired by Anthropic's dynamic filtering—always filter before reasoning. ~24% fewer tokens, ~11% better accuracy.

The Principle: Search Cheaply → Filter → Extract Selectively → Reason

DO:

# Step 1: Search with --no-text (titles/URLs only — cheapest)
python3 ~/.claude/skills/exa-search/scripts/exa_search.py "query" -n 20 --no-text

# Step 2: Evaluate titles, pick best 3-5 URLs

# Step 3: Extract only those URLs with bounded content
python3 ~/.claude/skills/exa-search/scripts/exa_contents.py URL1 URL2 --highlights --max-chars 3000

DON'T: Search with full text for 50 results, then reason over all of it.

Use API-Level Filters First (Free Filtering)

These reduce results at the API level before you ever see them:

  • --must-include "term" — results must contain this string
  • --must-exclude "term" — removes irrelevant results
  • --domains site1.com site2.com — restrict to authoritative sources
  • --category "research paper" — eliminate irrelevant content types
  • --after 2025-01-01 / --before — temporal filtering

Use Summaries Over Full Text

When you need the gist, not raw content:

# AI-distilled summaries — much smaller than full text
python3 ~/.claude/skills/exa-search/scripts/exa_search.py "query" --summary "Key findings" -n 5

Use Bounded Context for RAG

# Capped context string — prevents unbounded token usage
python3 ~/.claude/skills/exa-search/scripts/exa_search.py "query" --context --context-chars 5000

Post-Process with filter_web_results.py

Pipe Exa JSON output through the Firecrawl filter script for additional reduction:

python3 ~/.claude/skills/exa-search/scripts/exa_search.py "query" --json | \
  python3 ~/.claude/skills/firecrawl/scripts/filter_web_results.py \
  --fields "title,url,text" --max-chars 3000

Cost Tiers — Match to Task

TypeLatencyCost/1kWhen
--instant<150msCheapestReal-time lookups, autocomplete
--fast~500msLowQuick checks, confirmations
auto (default)--MediumGeneral search
--deep4-12s$12Comprehensive research
--deep-reasoning12-50s$15Maximum depth + synthesis

Structured Deep Search (Exa Deep)

Deep and deep-reasoning searches support structured JSON output via outputSchema. The API returns parsed content in output.content with per-field grounding citations and confidence scores.

Quick ExamplePurpose
... --deep --text-output "Short answer"Simple text answer
... --deep-reasoning --schema-preset companyStructured company research
... --deep --output-schema '{"type":"object","properties":{"answer":{"type":"string"}}}'Custom schema
... --deep --schema-file ~/schemas/analysis.jsonSchema from file

Presets: company, paper-survey, competitor-analysis, person, news-digest

Output includes field-level grounding: per-field citations with [H]igh/[M]edium/[L]ow confidence.


Available Scripts

1. exa_search.py — Neural Web Search

python3 ~/.claude/skills/exa-search/scripts/exa_search.py "query" [options]
Quick ExamplePurpose
... exa_search.py "AI frameworks"Basic search
... exa_search.py "transformers" --category "research paper" -n 20Academic papers
... exa_search.py "query" --deep --additional-queries "alt query"Deep search
... exa_search.py "query" --domains docs.python.orgDomain-filtered
... exa_search.py "query" --after 2025-01-01 --category newsRecent news
... exa_search.py "query" --context --context-chars 10000RAG context
... exa_search.py "query" --instant -n 5Sub-150ms lookup
... exa_search.py "Top AI startups" --deep-reasoning --schema-preset companyStructured company research
... exa_search.py "Who is CEO of Stripe?" --deep --text-output "Short answer"Quick factual answer

Categories: company, research paper, news, pdf, github, personal site, people, financial report

2. exa_contents.py — URL Content Extraction

python3 ~/.claude/skills/exa-search/scripts/exa_contents.py URL [URL2...] [options]
Quick ExamplePurpose
... exa_contents.py "https://arxiv.org/abs/2307.06435"Extract paper
... exa_contents.py URL --summary "Key methods" --highlightsSummarized extraction
... exa_contents.py URL --livecrawl alwaysFresh content
... exa_contents.py URL --max-chars 5000Bounded extraction

3. exa_similar.py — Find Similar Pages

python3 ~/.claude/skills/exa-search/scripts/exa_similar.py URL [options]
Quick ExamplePurpose
... exa_similar.py "https://stripe.com" --category company --exclude-sourceFind competitors
... exa_similar.py "https://arxiv.org/abs/..." -n 15Related papers
... exa_similar.py URL --summary "How different?"Comparison summaries

4. exa_research.py — AI-Powered Research

python3 ~/.claude/skills/exa-search/scripts/exa_research.py "question" [options]
Quick ExamplePurpose
... exa_research.py "React vs Vue differences?" --sourcesResearch with citations
... exa_research.py "query" --streamReal-time streaming
... exa_research.py "query" --domains docs.python.orgAuthoritative sources
... exa_research.py "query" --markdownMarkdown with citations
... exa_research.py "query" --answer-onlyPipe-friendly output

5. exa_research_async.py — Async Pro Research

python3 ~/.claude/skills/exa-search/scripts/exa_research_async.py "question" [options]
Quick ExamplePurpose
... exa_research_async.py "Compare AI frameworks" --pro --waitPro model
... exa_research_async.py "Quick overview" --fastFast model
... exa_research_async.py "query" --schema '{...}'Structured output
... exa_research_async.py status r_abc123Check job
... exa_research_async.py listList jobs

Script Selection Guide

TaskBest Script
Web search with filtersexa_search.py
Research papersexa_search.py --category "research paper"
Company/startup infoexa_search.py --category company
GitHub repos/codeexa_search.py --category github
Extract known URL contentexa_contents.py
Find competitorsexa_similar.py --exclude-source
Quick answers with citationsexa_research.py --sources
Complex structured researchexa_research_async.py --pro
Real-time searchexa_search.py --instant
RAG context buildingexa_search.py --context
Structured research with groundingexa_search.py --deep-reasoning --schema-preset company
Quick factual answerexa_search.py --deep --text-output "Short answer"

Exa vs Firecrawl vs Native Claude Tools

NeedBest ToolWhy
Semantic/neural searchExa exa_search.pyAI-powered relevance
Find research papersExa --category "research paper"Academic index
Quick research answerExa exa_research.pyCitations + synthesis
Find similar pagesExa exa_similar.pySemantic similarity
Single page → markdownFirecrawl scrape --only-main-contentCleanest output
Crawl entire siteFirecrawl crawl --wait --progressLink following
Autonomous data findingFirecrawl agentNo URLs needed
Search + scrape combinedFirecrawl search --scrapeOne operation
Claude API agent buildingNative web_search_20260209Built-in dynamic filtering
Twitter/X contentjina URLOnly tool that works

Common Workflows

Research a Topic

python3 ~/.claude/skills/exa-search/scripts/exa_research.py "How does RAG work?" --sources --markdown

Literature Review

# Find papers, then find similar to best hit
python3 ~/.claude/skills/exa-search/scripts/exa_search.py "transformer optimization" --category "research paper" -n 20 --summary "Key contributions"
python3 ~/.claude/skills/exa-search/scripts/exa_similar.py "https://arxiv.org/abs/1706.03762" --category "research paper" -n 15

Documentation Research

python3 ~/.claude/skills/exa-search/scripts/exa_search.py "React useEffect cleanup" --domains react.dev developer.mozilla.org --context

Build RAG Context

python3 ~/.claude/skills/exa-search/scripts/exa_search.py "Python async patterns" --context --context-chars 15000 --domains docs.python.org

Reference Documentation

FileContents
references/exa-scripts-reference.mdFull parameter reference for all 5 scripts, cost table, MCP comparison, test suite

Test Suite

python3 ~/.claude/skills/exa-search/scripts/test_exa.py --quick       # Quick validation
python3 ~/.claude/skills/exa-search/scripts/test_exa.py               # Full suite
python3 ~/.claude/skills/exa-search/scripts/test_exa.py --endpoint search  # Specific endpoint

What ships with it: 9 files

134.3 KB alongside SKILL.md, 6 of them executable

references/

scripts/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.