Clay's enrichment-tables-plus-waterfalls model is powerful but starts at $800/mo for serious use. By 2026, teams are rebuilding the top 5 Clay workflows in Claude Code + Scavio and saving 70%. This tutorial ports the lead-enrichment, website-change-detection, and intent-signal workflows.
Prerequisites
- Claude Code latest
- A Scavio API key
- Google Sheets or Airtable for the table UI
- Node.js 20+
Walkthrough
Step 1: Set up a Sheet as the table UI
Columns: name, company, role, enriched_bio, last_news.
# Google Sheet schema
name | company | role | enriched_bio | last_news | scoreStep 2: Register Scavio MCP in Claude Code
Enables tool access during the enrichment loop.
{
"mcpServers": {
"scavio": { "command": "scavio-mcp", "env": { "SCAVIO_API_KEY": "sk_live_..." } }
}
}Step 3: Write the enrichment skill
Claude Code reads the sheet, enriches each row via Scavio, and writes back.
// ~/.claude/skills/clay-enrich.md
For each row with empty enriched_bio, use scavio to search the name + company and fill in:
- enriched_bio (role, seniority, tenure)
- last_news (most recent company news)
- score (0-10 based on ICP fit)Step 4: Run the enrichment
Claude Code loops through rows.
claude-code run ./clay-enrich.md --sheet prospects.csvStep 5: Add waterfalls for fallback
If Scavio does not find data, fall back to Google News SERP.
// In the skill prompt:
If primary SERP returns nothing, run scavio with platform=news as fallback.Python Example
import os, requests, csv
API_KEY = os.environ['SCAVIO_API_KEY']
def enrich(row):
q = f'"{row["name"]}" "{row["company"]}"'
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'query': q, 'num_results': 3})
hits = r.json().get('organic_results', [])
row['enriched_bio'] = hits[0].get('snippet', '') if hits else ''
return row
with open('prospects.csv') as f:
rows = [enrich(r) for r in csv.DictReader(f)]
print(rows[0])JavaScript Example
const API_KEY = process.env.SCAVIO_API_KEY;
export async function enrich(row) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ query: `"${row.name}" "${row.company}"`, num_results: 3 })
});
const hits = (await r.json()).organic_results || [];
return { ...row, enriched_bio: hits[0]?.snippet || '' };
}Expected Output
1000-row enrichment in 12-20 minutes. Typical Clay equivalent cost: $400/mo. Claude Code + Scavio: $30-80/mo at same volume.