Overview
Before outreach, know what a prospect’s company has been doing. Shoal enrichment matches company names against 5,000+ tracked organizations and surfaces recent radar and signal events — filtered to where the org is the primary event owner, not just mentioned as a participant.How It Works
- You provide a list of contacts (name + company)
- Each company is matched against Shoal’s tracked organizations
- Matched orgs get recent radar and signal events attached
- Events are filtered to primary ownership (not just mentioned as participant)
Quick Start (CLI)
Input Format
A JSON array where each object needs at minimum acompany field. The name field is optional and passed through to the output.
contacts.json
shoal enrich --example.
Full Example Output
Below is a realistic enriched result for 4 of the contacts above. Each contact getsmatched, shoal_org, and filtered radar/signal arrays appended.
- Uniswap has 2 radar events where it is the
eventOwner - Chainlink has 1 radar + 1 signal event — the signal includes a score and narrative summary
- Aave has 1 radar event — even though Chainlink and Arbitrum are participants, Aave is the owner so it surfaces here
- EigenLayer returned
matched: falsebecause it isn’t in Shoal’s tracked org database yet
Using with AI Agents (MCP)
The same enrichment is available as theenrich MCP tool via shoal-mcp.
“Enrich these 20 contacts and tell me which companies have the most recent activity. Suggest an outreach angle for the top 3.”See CLI & MCP setup for configuration.
API-Only Approach
For custom pipelines, use two API calls per company: resolve the name, then fetch events.cURL
Python
JavaScript
Tips
- The CLI deduplicates by company name automatically — duplicates don’t cost extra credits
- Use
--limitto control event depth vs credit cost (default 5) - Pipe to jq for filtering:
shoal enrich contacts.json | jq '[.[] | select(.matched)]' - Combine with
shoal brief org <id>for deeper dives on high-value prospects - For large lists (100+ contacts), consider the API-only approach with your own rate limiting