Enrich records with AI-powered lookups and transforms
Look up company data, score leads, normalize fields, and validate emails in a single workflow. Batch support for bulk enrichment with webhook triggers.
import { Stack0 } from '@stack0/sdk'const stack0 = new Stack0({ apiKey: process.env.STACK0_API_KEY })// Enrich a lead with company data, scoring, and validationconst result = await stack0.workflows.run({steps: [{id: 'lookup',type: 'tool',tool: 'data.companyLookup',input: {domain: '{{input.company.domain}}',fields: ['industry', 'size', 'revenue', 'location', 'techStack'],},},{id: 'normalize',type: 'llm',model: 'gpt-4o-mini',prompt: `Normalize this contact data. Fix formatting, standardize job titles, and fill missing fields where possible.Contact: {{input.contact}}Company: {{steps.lookup.output}}`,outputSchema: {name: 'string',title: 'string',seniority: '"executive" | "director" | "manager" | "individual"',department: 'string',email: 'string',phone: 'string | null',},dependsOn: ['lookup'],},{id: 'score',type: 'llm',model: 'gpt-4o-mini',prompt: `Score this lead 1-100 based on fit with our ICP (B2B SaaS, 50-500 employees, North America).Contact: {{steps.normalize.output}}Company: {{steps.lookup.output}}`,outputSchema: {score: 'number',reasons: 'string[]',recommendation: '"hot" | "warm" | "cold"',},dependsOn: ['lookup', 'normalize'],},{id: 'validate',type: 'tool',tool: 'data.validateEmail',input: { email: '{{steps.normalize.output.email}}' },dependsOn: ['normalize'],},],input: {contact: {name: 'Jane Smith',email: 'jane@acmecorp.com',title: 'VP eng',},company: {domain: 'acmecorp.com',},},})console.log(result.steps.score.output) // { score: 87, reasons: [...], recommendation: 'hot' }console.log(result.steps.validate.output) // { valid: true, deliverable: true }
What's included
Company Data Lookup
Resolve domains to industry, size, revenue, tech stack, and funding data from public sources.
Lead Scoring
Score leads against your ICP with AI reasoning. Numeric scores with explanations and recommendations.
Data Normalization
Standardize job titles, departments, and contact fields. AI handles abbreviations and formatting inconsistencies.
Deduplication
Detect and merge duplicate records using fuzzy matching on names, emails, and company data.
Batch Enrichment
Submit up to 1,000 records per request. Parallel processing with results via webhook or polling.
Webhook Triggers
Automatically enrich new records when they arrive in your CRM or database via webhook.
Built for production
Company data lookup
Resolve a domain to industry, employee count, revenue, tech stack, and more. One API call replaces multiple data vendors.
AI-powered lead scoring
Score leads against your ICP using LLM reasoning. Get a numeric score, explanation, and hot/warm/cold recommendation.
Data normalization
Standardize job titles, fix formatting, and fill missing fields. AI handles messy real-world data gracefully.
Batch processing
Enrich thousands of records at once. Parallel execution with webhook delivery when results are ready.
TypeScript SDK
Typed inputs and outputs for every enrichment step. Schema validation catches issues before they reach your database.
Simple pricing
$0.001 per step execution. Enrich a full lead record with lookup, scoring, and validation for under a cent.
Common implementations
CRM Data Quality
Clean and enrich existing CRM records with missing company data, standardized titles, and lead scores.
Inbound Lead Qualification
Automatically score and enrich form submissions to prioritize high-value leads for the sales team.
List Cleaning
Validate emails, remove duplicates, and normalize data in marketing lists before campaign sends.
Account-Based Marketing
Enrich target account lists with firmographic data to personalize outreach and prioritize engagement.
FAQ
Frequently asked questions
Company lookups return industry, employee count, revenue range, headquarters location, tech stack, social profiles, funding history, and recent news. Not all fields are available for every company. Confidence scores indicate data freshness.
Yes. Submit up to 1,000 records per batch request. Records are processed in parallel and results are delivered via webhook or polling. Batch enrichment is ideal for CRM imports and list cleaning.
Company data is refreshed weekly from public sources. Tech stack detection runs monthly. Each field includes a lastUpdated timestamp so you can decide whether to use cached data or request a fresh lookup.
Lead scoring uses an LLM step that evaluates contacts against your ideal customer profile (ICP). You define the ICP criteria in the prompt. The model returns a score, reasons, and a recommendation. Scores are deterministic for the same input when using temperature 0.
Yes. Set up webhook triggers to run enrichment workflows when new records are created in your CRM or database. Webhooks accept standard JSON payloads and pass data directly to your workflow input.