Exa

How It Works

One API call to enrich any company — powered by Exa deep search with structured outputs

Why use Exa for enrichments?

1. Superior Search

Faster, more relevant, and more comprehensive than alternatives

2. Find, don't buy

3rd party enrichment services rely on purchasing stale data. Search across the web in real time instead.

3. Configurable

Exa's model parameters can dynamically be adjusted for any use case


Pipeline Summary

1. Initial Backfill

Query records → Call Exa Deep Search for each → Get structured data → Update database

2. Weekly Refresh with Exa Monitors

Exa Monitor fires weekly → Delivers fresh structured data to webhook → Push updates to database

3. New Accounts

Daily cron queries new accounts → Exa Deep Search enriches → Auto-sync on ingest


Exa Deep Search API Format

Exa Deep Search performs a thorough web search and returns structured data via outputSchema in a single API call. Define your JSON Schema and get back exactly the fields you need—no separate LLM step required.

Schema Tips

Use required for must-have fields and enum for fields with fixed options. Add description to guide extraction.

Phase 1: Initial Backfill

One-time enrichment of your existing company records

1

Query your company records

Query your database to get the company names and domains you want to enrich, along with the record IDs for syncing data back. This example uses a generic CRM, but works with any database.

2

Enrich with Exa Deep Search

For each company, call Exa Deep Search with your outputSchema. This single API call performs a thorough web search and extracts exactly the fields you need—no separate LLM step required.

3

Update your database with enriched data

Push the structured data back to your database, mapping fields to your schema.

4

Run the complete backfill pipeline

Orchestrate all the steps with concurrency control and error handling.

Initial Backfill Complete

Your existing accounts are now enriched with fresh data from the web. Next: set up scheduled refresh to keep data current.

Phase 2: Weekly Refresh with Exa Monitors

Automated weekly re-enrichment using Exa Monitors — no cron jobs needed

1

Create a Monitor for each company

Use the Monitors API to set up a recurring search with your enrichment schema. Exa handles scheduling, execution, and deduplication automatically.

Automatic Deduplication

Each monitor run automatically deduplicates against previous results, so your webhook only receives new or updated information.
2

Set up your webhook endpoint

Create an endpoint to receive structured enrichment data when the monitor fires.

3

Create monitors for all accounts

Loop through your accounts and create a monitor for each one. Use metadata to link monitor results back to your database records.

4

Manage your monitors

Pause, update, or trigger monitors on demand as needed.

Ongoing Monitoring Active

Your accounts stay current automatically — Exa handles the scheduling and delivers fresh data to your webhook.

Phase 3: New Record Ingestion

Automatically enrich new records as they're added to your database

1

Set up a daily cron job

Schedule a daily job to detect and enrich new records added in the last 24 hours.

2

Query new records

Fetch accounts created today that haven't been enriched yet.

3

Enrich and sync each new record

Call Exa Deep Search for each new account and push the enriched data back.

4

Alternative: Real-time webhook

For instant enrichment, set up a webhook that triggers when a new account is created.

New Record Ingestion Complete

New accounts are automatically enriched—no manual intervention needed.

That's it!

You now have a complete enrichment pipeline: initial backfill for existing records, weekly refresh with Exa Monitors to keep data current, and automatic enrichment for new accounts. Exa handles all the web search, scheduling, and data extraction for you.