---
name: bijection-exa
description: "Evaluate and integrate the Exa component with Bijection."
---

# Exa

Web search and content retrieval

- Package: @bijectionhq/exa
- Category: Web & Search
- Status: Preview
- License: Apache-2.0
- Bijection source (repository access required): https://github.com/bijectionhq/exa/tree/7a8fe51042379faa6aed864b6fc0fe13ba2b3130
- Upstream: https://github.com/exa-labs/exa-convex/tree/e91a5f8ce5a8ff710dbc2ab5ca90cd62d3851291
- Documentation: https://docs.bijection.com/components/using
- Directory: https://bijection.com/components/exa

## Get the source

Bijection repository access is required. Request access at https://bijection.com/contact.

```sh
git clone https://github.com/bijectionhq/exa.git
cd exa
git checkout 7a8fe51042379faa6aed864b6fc0fe13ba2b3130
```

## Before using this component

Read the package README at the recorded revision for setup, dependencies, and API examples. Upstream documentation describes the original package and may differ from the Bijection adaptation. This is a source candidate for evaluation. Catalog inclusion does not establish npm availability or runtime qualification. Check compatibility with your SDK and deployment before adoption. External providers run their own compute.

## Integration workflow

1. Read the source README and package manifest at the recorded revision.
2. Confirm the required SDK, dependency availability, and runtime compatibility.
3. Follow the component's documented setup and configuration. Never invent an npm install command from a catalog package name.
4. Keep credentials in the project's existing secret store.
5. Follow the project's execution rules for verification and report what was actually checked.

## Original upstream skill

The following guidance describes @exalabs/convex-exa. Its installation commands and APIs refer to the upstream package. Evaluate compatibility with the Bijection source separately.


> Agents: read this skill fully before writing code that uses Exa. Follow the installation and configuration steps exactly.

# Exa

## Instructions

The Exa component brings real-time web intelligence to Convex applications through the Exa API. It provides three core functions: web search with optional highlights, structured deep search, and direct URL content fetching. Developers can power AI agents, research workflows, content monitoring, and knowledge-base updates with fresh web context in just a few backend calls.

### Installation

```bash
npm install @exalabs/convex-exa
```

Current npm version: `@exalabs/convex-exa@0.1.1`

## Use cases

- **AI agents and assistants**: Give LLM-powered features fresh web context for companies, products, markets, news, and user-specific research
- **Structured research workflows**: Turn broad web searches into typed, schema-validated outputs for funding rounds, product launches, industry reports, and competitive analysis
- **Content monitoring**: Watch domains, topics, or recent activity windows with `maxAgeHours` filtering for alerts, dashboards, and internal workflows
- **Knowledge base enrichment**: Pull content from trusted URLs to keep docs, datasets, and internal context up to date with external sources
- **News and market intelligence**: Search recent coverage, extract highlights, and summarize relevant articles for feeds, briefings, and reports

## How it works

The component runs Exa from your Convex backend through the `ExaClient` class. Add it to your Convex app, set `EXA_API_KEY`, and create an `ExaClient` instance pointed at your component configuration.

Use `search()` for web search with optional highlights, summaries, or extracted text; `deepSearch()` for structured research with typed outputs; and `contents()` to fetch content from specific URLs. Each method runs as a Convex action, so your Exa API key stays server-side.

For schema-based research, `deepSearch()` converts your Zod schema into JSON Schema for Exa’s deep search API, then returns typed results that fit naturally into the rest of your Convex functions.

## When NOT to use

- When a simpler built-in solution exists for your specific use case
- If you are not using Convex as your backend
- When the functionality provided by Exa is not needed

## Resources

- [npm package](https://www.npmjs.com/package/%40exalabs%2Fconvex-exa)
- [GitHub repository](https://github.com/exa-labs/exa-convex)
- [Live demo](https://github.com/exa-labs/exa-convex/tree/master/example)
- [Convex Components Directory](https://www.convex.dev/components/exalabs/convex-exa)
- [Convex documentation](https://docs.convex.dev)