BlogGuides

What Is Waterfall Enrichment?

Rahul Lakhaney
By Rahul LakhaneyPublished on: Mar 28, 2026 · Updated: Mar 30, 2026 · 10 min read · Last reviewed: Mar 2026
Enrich Cascading ICP Search
Enrich offers built-in waterfall enrichment via the Cascading ICP Search API at 1 credit per record.
Clay waterfall enrichment platform
Clay uses 150+ data providers in a spreadsheet-style waterfall enrichment workflow.

TL;DR

Waterfall enrichment runs multiple data sources in sequence to maximize match rates and data coverage. Learn how cascading lookups work, how ICP scoring prioritizes results, and how to implement it with the Enrich API.

1-10
Cascade levels
Enrich waterfall
0-100
ICP score range
Per record
1 credit
Cost per record
Enrich pricing
15-30%
Match rate lift
vs single-source

What is waterfall enrichment?

Waterfall enrichment (also called cascading enrichment) is a data lookup strategy where multiple data sources are queried in sequence until a match is found or all sources are exhausted. Instead of relying on a single provider, the system "cascades" through providers one by one, each filling gaps the previous ones missed.

Think of it like a waterfall flowing down steps. Your input record (an email, name, or LinkedIn URL) flows into the first data source. If that source returns a complete match, the process stops. If data is missing or the match is partial, the record cascades to the next source. This continues until the record is fully enriched or all sources have been tried.

Why it matters: No single data provider has 100% coverage. Even the best enrichment APIs have match rates between 85% and 95%. By combining multiple sources, waterfall enrichment can push effective match rates above 98% and fill data fields that any single provider would leave blank.

Waterfall enrichment is particularly valuable for teams that need high coverage on specific fields like direct phone numbers, personal email addresses, or detailed company firmographics. Each additional cascade level adds coverage, but with diminishing returns after the first 3 to 5 levels.

How Enrich's Cascading ICP Search works

Enrich offers a built-in waterfall enrichment system called Cascading ICP Search. Instead of building your own multi-provider pipeline, you configure the cascade through a single API call.

Cascade levels (1 to 10): You set how many data sources the system should query. Level 1 uses a single source. Level 5 queries five sources in sequence. Level 10 queries all available sources for maximum coverage.

ICP scoring (0 to 100): Each enriched record receives an Ideal Customer Profile score based on weighted criteria:

  • Title match: 30 points for how closely the person's job title matches your target titles
  • Job level: 20 points for whether their seniority matches your target
  • Skills: 15 points for how much their listed skills overlap with your target skill set
  • Location: 15 points for whether they are in your target geography
  • Additional signals: 20 points for department, company size, industry, and other factors

Records with higher ICP scores are prioritized in results.

Pricing: 1 credit per record, regardless of how many cascade levels are used.

TSTypeScript
import Enrich from '@enrich.so/sdk';
const enrich = new Enrich('YOUR_API_KEY');
const results = await enrich.waterfall.search({
  query: {
    title: ['VP of Sales', 'Head of Sales', 'Director of Sales'],
    jobLevel: ['VP', 'Director'],
    location: ['United States'],
    companySize: ['51-200', '201-500'],
    industry: ['SaaS', 'Software'],
  },
  cascadeLevels: 5,
  limit: 100,
});
for (const record of results.data) {
  console.log(record.name, record.icpScore); // Sarah Chen 87
}

Waterfall enrichment vs single-source enrichment

Here is how waterfall enrichment compares to querying a single data provider:

  • Match rate: 85 to 95% depending on provider
  • Data completeness: Some fields may be missing (phone, title, company size)
  • Cost: Varies by provider (typically 1 to 10 credits per lookup)
  • Speed: Fast (single API call, 100 to 300ms)
  • Complexity: Simple to implement
  • Match rate: 95 to 99% across 3+ sources
  • Data completeness: Higher (gaps filled by subsequent sources)
  • Cost: Enrich charges 1 credit per record regardless of cascade depth; building your own costs 3 to 10x more
  • Speed: Slightly slower (sequential calls, 500ms to 2s depending on depth)
  • Complexity: Complex to build yourself; simple with Enrich's built-in cascade

The key insight is that waterfall enrichment provides diminishing returns after each level. The first cascade level might match 90% of records. The second fills another 5%. The third adds 2%. By level 5, you are matching 98%+ but each additional level adds less than 1%. For most teams, 3 to 5 cascade levels hit the sweet spot of coverage vs. speed.

Comparing waterfall enrichment platforms

Several platforms offer waterfall enrichment, each with a different approach:

Enrich Cascading ICP Search: 1 to 10 cascade levels with ICP scoring (0 to 100) at 1 credit per record. Built-in, no external integrations needed.

Clay waterfall enrichment: Clay is a spreadsheet-like platform that lets you build multi-step enrichment workflows by chaining together 75+ data providers (including Enrich, Apollo, ZoomInfo). You configure the cascade order and fallback logic manually. Pricing is based on Clay credits plus underlying provider costs.

FullEnrich: FullEnrich focuses specifically on waterfall enrichment for email and phone finding. It queries 15+ data providers in sequence. Pricing starts around $29/mo for 500 contacts.

DIY waterfall: You can build your own waterfall by calling multiple providers in sequence and merging results. This gives maximum control but requires significant engineering effort.

Key differences: Enrich's advantage is simplicity (one API call, one credit per record) and ICP scoring. Clay's advantage is flexibility (you choose the provider order). FullEnrich's advantage is specialization (optimized for email/phone waterfall).

Implementing waterfall enrichment with the Enrich API

Here is a complete example of using Enrich's Cascading ICP Search in a production workflow:

Step 1: Define your ICP criteria

TSTypeScript
const icpCriteria = {
  title: ['VP of Marketing', 'CMO', 'Head of Marketing', 'Director of Marketing'],
  jobLevel: ['VP', 'C-Suite', 'Director'],
  skills: ['demand generation', 'ABM', 'marketing automation'],
  location: ['United States', 'Canada'],
  companySize: ['51-200', '201-500', '501-1000'],
  industry: ['SaaS', 'Software', 'Technology'],
};

Step 2: Run the waterfall search

TSTypeScript
const results = await enrich.waterfall.search({
  query: icpCriteria,
  cascadeLevels: 5,
  limit: 200,
});
console.log(`Found ${results.total} matches`);
console.log(`Average ICP score: ${results.averageScore}`);

Step 3: Filter and export results

TSTypeScript
const highFit = results.data.filter(r => r.icpScore >= 70);
for (const prospect of highFit) {
  await pushToCRM({
    email: prospect.email,
    name: prospect.name,
    title: prospect.title,
    company: prospect.company,
    phone: prospect.phone,
    icpScore: prospect.icpScore,
  });
}

Webhook support: For large waterfall searches, use webhooks to receive results asynchronously:

TSTypeScript
const batch = await enrich.waterfall.searchAsync({
  query: icpCriteria,
  cascadeLevels: 7,
  limit: 10000,
  webhookUrl: 'https://your-app.com/webhooks/waterfall',
});

Frequently Asked Questions

Try Enrich for free

100 free API credits. No credit card required. Start enriching data in minutes.