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
Query records → Call Exa Deep Search for each → Get structured data → Update database
Exa Monitor fires weekly → Delivers fresh structured data to webhook → Push updates to database
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
Userequired 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
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.
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.
Update your database with enriched data
Push the structured data back to your database, mapping fields to your schema.
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
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.Set up your webhook endpoint
Create an endpoint to receive structured enrichment data when the monitor fires.
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.
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
Set up a daily cron job
Schedule a daily job to detect and enrich new records added in the last 24 hours.
Query new records
Fetch accounts created today that haven't been enriched yet.
Enrich and sync each new record
Call Exa Deep Search for each new account and push the enriched data back.
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.