home / skills / ahonn / dotfiles / exa-research

exa-research skill

/.claude/skills/exa-research

This skill performs targeted web research using Exa AI to find articles, papers, and news, delivering concise results and sources.

npx playbooks add skill ahonn/dotfiles --skill exa-research

Review the files below or copy the command above to add this skill to your agents.

Files (4)
SKILL.md
4.4 KB
---
name: exa-research
description: "Web research using Exa AI search engine. Use when: user needs web search, finding articles, research papers, news, company info, or similar content. Triggers on: 'search for', 'find articles about', 'research', 'what's the latest on', 'find companies like', 'similar to [url]'."
allowed-tools:
  - Bash
  - Read
---

# Exa Research

AI-powered web search and content retrieval using Exa API.

## Scripts Location

```
./scripts/
├── exa-search    # Search the web
├── exa-contents  # Get page contents
└── exa-similar   # Find similar links
```

## Core Workflows

### 1. Basic Search

```bash
./scripts/exa-search "your query"
```

**Search Types:**
- `auto` (default) - Intelligently combines methods
- `fast` - Quick results, lowest latency
- `deep` - Comprehensive with query expansion
- `neural` - AI semantic search

**Examples:**
```bash
# Quick search
exa-search "React 19 new features"

# Deep research
exa-search "state of LLM agents 2025" --type deep --text

# News only
exa-search "OpenAI GPT-5" --category news --num 5

# Domain filtered
exa-search "machine learning tutorials" --include-domains arxiv.org,paperswithcode.com
```

### 2. Get Page Contents

```bash
./scripts/exa-contents "https://example.com" [options]
```

**Examples:**
```bash
# Get text content
exa-contents "https://blog.example.com/post" --text

# Get summary
exa-contents "https://paper.example.com" --summary

# Multiple URLs with LLM context
exa-contents "https://url1.com" "https://url2.com" --context

# Crawl subpages (for docs)
exa-contents "https://docs.example.com" --subpages 5
```

### 3. Find Similar Links

```bash
./scripts/exa-similar "https://example.com" [options]
```

**Examples:**
```bash
# Find competitors
exa-similar "https://stripe.com" --num 10

# Similar articles with content
exa-similar "https://blog.example.com/ai-post" --text

# Filter by domain
exa-similar "https://openai.com" --include-domains techcrunch.com,wired.com
```

## Common Options Reference

| Option | Scripts | Description |
|--------|---------|-------------|
| `-t, --type` | search | auto, fast, deep, neural |
| `-n, --num` | search, similar | Number of results (max 100) |
| `-c, --category` | search | company, news, pdf, github, etc. |
| `--include-domains` | search, similar | Whitelist domains |
| `--exclude-domains` | search, similar | Blacklist domains |
| `--start-date` | search | Filter by publish date |
| `--text` | all | Include full page text |
| `--context` | all | Return LLM-optimized context |
| `--summary` | contents | AI-generated summary |
| `--highlights` | contents | Extract key passages |
| `--livecrawl` | contents | never, fallback, preferred, always |

## Research Workflow Patterns

### Pattern 1: Topic Research
```bash
# 1. Broad search with deep mode
exa-search "quantum computing applications 2025" --type deep --text | jq '.results[:5]'

# 2. Get detailed content for top results
exa-contents "https://result-url.com" --summary --context
```

### Pattern 2: Competitive Analysis
```bash
# 1. Find similar companies
exa-similar "https://target-company.com" --num 10

# 2. Deep dive on specific competitor
exa-search "CompetitorName product features" --category company --text
```

### Pattern 3: News Monitoring
```bash
# Recent news only
exa-search "AI regulation" --category news --start-date "2025-01-01" --num 20
```

### Pattern 4: Technical Documentation
```bash
# Search for docs
exa-search "Next.js App Router caching" --include-domains nextjs.org,vercel.com --text

# Or crawl docs site
exa-contents "https://nextjs.org/docs/app/caching" --subpages 3 --context
```

## Response Processing Tips

```bash
# Extract URLs only
exa-search "query" | jq -r '.results[].url'

# Get titles and URLs
exa-search "query" | jq '.results[] | {title, url}'

# Extract context string for LLM
exa-search "query" --context | jq -r '.context'

# Check cost
exa-search "query" | jq '.costDollars'
```

## Error Handling

| Error | Solution |
|-------|----------|
| "EXA_API_KEY not set" | Run `fetch-secrets` |
| "Unauthorized" | Check API key validity |
| Empty results | Try broader query or different type |
| Rate limited | Wait and retry |

## Categories Reference

- `company` - Business websites
- `research paper` - Academic papers
- `news` - News articles
- `pdf` - PDF documents
- `github` - GitHub repositories
- `tweet` - Twitter/X posts
- `personal site` - Personal blogs/sites
- `financial report` - SEC filings, reports
- `people` - People profiles

Overview

This skill provides AI-powered web research using the Exa search API, designed for fast, deep, and semantically aware retrieval of articles, papers, news, and company information. It exposes command-line scripts to run searches, fetch page contents, and find similar links, with options to include full text, summaries, and LLM-optimized context. Use it to accelerate literature reviews, competitive analysis, news monitoring, and technical documentation discovery.

How this skill works

The skill runs three main scripts: a search tool that supports modes (auto, fast, deep, neural), a contents tool that fetches and summarizes page text, and a similarity tool that finds related URLs. Each script accepts options for result count, domain filters, categories, and whether to include raw text, summaries, or LLM-ready context. Results stream URLs, metadata, and cost metrics which can be post-processed with tools like jq.

When to use it

  • When you need quick web results or an expanded deep-research sweep on a topic.
  • When you want full page text, AI-generated summaries, or highlights for several URLs.
  • When doing competitive analysis to find companies or products similar to a target.
  • When monitoring news or filtering results by date, category, or domain.
  • When assembling LLM-ready context from multiple pages for downstream tasks.

Best practices

  • Start with fast or auto mode for exploration, then switch to deep or neural for comprehensive research.
  • Use include-domains and exclude-domains to focus or filter noise from results.
  • Fetch summaries or context for top hits before pulling full text to save time and quota.
  • Pipe JSON output into jq to extract URLs, titles, cost, or context strings for automation.
  • Respect rate limits and ensure your EXA_API_KEY is valid; implement retries on rate-limit errors.

Example use cases

  • Literature review: run a deep search for recent papers, then fetch summaries for the top results.
  • Competitive analysis: use similar to discover competitors and then search each competitor for feature comparisons.
  • News monitoring: query the news category with a start-date to compile recent coverage on a policy or product.
  • Technical documentation discovery: whitelist vendor docs domains and crawl subpages to build context for an LLM.
  • Content aggregation: extract titles and URLs for a curated reading list and fetch summaries for newsletter snippets.

FAQ

What search mode should I pick?

Use fast for low-latency exploration, deep for comprehensive coverage, and neural for semantic relevance when exact phrasing varies.

How do I get full page text and summaries?

Run the contents script with --text to retrieve raw content and --summary or --highlights to get AI-generated summaries and key passages.