exa-search

v2026.09.24

Exa.ai search API integration for neural and keyword web search with content retrieval. Use when implementing web search features, integrating Exa SDK (exa_py, exa-js), or retrieving web content. Triggers on: Exa, exa_py, exa-js, neural search, web search API, search_and_contents, searchAndContents, find_similar, findSimilar, domain filtering, date filtering, text extraction, page summaries, highlights, search auto mode, fast search, search categories, livecrawl, excluding domains, include text, exclude text, EXA_API_KEY.

GitHub
Install command
npx skhub add ejirocodes/exa-search
Markdown
SKILL.md

Exa Search Integration

Quick Reference

TopicWhen to UseReference
Search ModesChoosing between auto, neural, and keyword searchsearch-modes.md
FiltersDomain, date, text, and category filteringfilters.md
ContentsText extraction, highlights, summaries, livecrawlcontents.md
SDK PatternsPython (exa_py) and TypeScript (exa-js) usagesdk-patterns.md

Essential Patterns

Basic Search (Python)

from exa_py import Exa

exa = Exa(api_key="your-api-key")  # or set EXA_API_KEY env var

results = exa.search_and_contents(
    "latest developments in quantum computing",
    type="auto",
    num_results=10,
    text=True,
    highlights=True
)

for result in results.results:
    print(f"{result.title}: {result.url}")
    print(result.text[:500])

Basic Search (TypeScript)

import Exa from "exa-js";

const exa = new Exa(process.env.EXA_API_KEY);

const results = await exa.searchAndContents(
  "latest developments in quantum computing",
  {
    type: "auto",
    numResults: 10,
    text: true,
    highlights: true,
  }
);

results.results.forEach((result) => {
  console.log(`${result.title}: ${result.url}`);
});

Search with Filters

results = exa.search_and_contents(
    "AI startup funding rounds",
    type="neural",
    num_results=10,
    include_domains=["techcrunch.com", "venturebeat.com"],
    start_published_date="2024-01-01",
    text={"max_characters": 2000},
    summary=True
)

Find Similar Links

similar = exa.find_similar_and_contents(
    "https://example.com/interesting-article",
    num_results=10,
    exclude_source_domain=True,
    text=True
)

Search Mode Selection

ModeWhen to UseNotes
autoDefault for most queriesExa optimizes between neural/keyword automatically
neuralNatural language, conceptual queriesBest for "what is...", "how to...", topic exploration
keywordExact matches, technical terms, namesBest for specific product names, error codes, proper nouns

Common Mistakes

  1. Using keyword for conceptual queries - Neural search understands intent better; use auto or neural for natural language questions
  2. Not setting text=True - Search returns URLs only by default; explicitly request content with text=True
  3. Ignoring highlights - Use highlights=True for relevant snippets without downloading full page text
  4. Missing API key - Set EXA_API_KEY environment variable or pass explicitly to constructor
  5. Over-filtering initially - Start with broad searches, then add domain/date filters to refine
  6. Not using summary - For RAG applications, summary=True provides concise context without full page text
  7. Expecting scores in auto mode - Relevance scores are only returned with type="neural"; auto mode doesn't include them
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

exa/skills/exa-search

Default branch

main

Latest commit

6e805e4

Tree SHA

bb1a24f