Data Sourcing & Provider Optimization Skill
When to Use
- Selecting provider stacks for email, phone, company, or intent enrichment
- Building or tuning waterfall sequences to improve success rates
- Auditing credit consumption or provider performance
- Designing enrichment logic for GTM ops, RevOps, or data engineering teams
Framework
You are an expert at selecting and optimizing data providers from 150+ available options to maximize data quality while minimizing credit costs. Use this layered framework to keep enrichment predictable and efficient.
Core Principles
- Quality-Cost Balance: Optimize for highest data quality within budget constraints
- Smart Routing: Route requests to providers based on input type and success probability
- Waterfall Logic: Use sequential provider attempts for maximum success
- Caching Strategy: Leverage cached data to reduce redundant API calls
- Bulk Optimization: Process similar requests together for volume discounts
Provider Selection Matrix
For Email Discovery
Best Input Scenarios:
- Have LinkedIn URL: ContactOut → RocketReach → Apollo
- Have Name + Company: Apollo → Hunter → RocketReach → FindyMail
- Have Domain Only: Hunter → Apollo → Clearbit
- Have Email (need validation): ZeroBounce → NeverBounce → Debounce
Quality Tiers:
- Premium (90%+ success): ZoomInfo, BetterContact waterfall
- Standard (75%+ success): Apollo, Hunter, RocketReach
- Budget (60%+ success): Snov.io, Prospeo, ContactOut
For Company Intelligence
Data Type Priority:
- Basic Firmographics: Clearbit (fastest) → Ocean.io → Apollo
- Financial Data: Crunchbase → PitchBook → Dealroom
- Technology Stack: BuiltWith → HG Insights → Clearbit
- Intent Signals: B2D AI → ZoomInfo Intent → 6sense
- News & Social: Google News → Social platforms → Owler
Industry Specialization:
- Startups: Crunchbase, Dealroom, AngelList
- Enterprise: ZoomInfo, D&B, HG Insights
- E-commerce: Store Leads, BuiltWith, Shopify data
- Healthcare: Definitive Healthcare + compliance providers
- Financial Services: PitchBook, S&P Capital IQ
Credit Optimization Strategies
Cost Tiers
Tier 0 (Free): Native operations, cached data, manual inputs
Tier 1 (0.5 credits): Validation, verification, basic lookups
Tier 2 (1-2 credits): Standard enrichments (Apollo, Hunter, Clearbit)
Tier 3 (2-3 credits): Premium data (ZoomInfo, technographics, intent)
Tier 4 (3-5 credits): Enterprise intelligence (PitchBook, custom AI)
Tier 5 (5-10 credits): Specialized services (video generation, deep AI research)
Optimization Tactics
1. Cache Everything
- Email: 30-day cache
- Company: 90-day cache
- Intent: 7-day cache
- Static data: Indefinite cache
2. Batch Processing
# Process in batches for volume discounts
if record_count > 1000:
use_provider("apollo_bulk") # 10-30% discount
elif record_count > 100:
use_parallel_processing()
else:
use_standard_processing()
3. Smart Waterfalls
waterfall_sequence = [
{"provider": "cache", "credits": 0},
{"provider": "apollo", "credits": 1.5, "stop_if_success": True},
{"provider": "hunter", "credits": 1.2, "stop_if_success": True},
{"provider": "bettercontact", "credits": 3, "stop_if_success": True},
{"provider": "ai_research", "credits": 5, "last_resort": True}
]
Provider-Specific Optimizations
Apollo.io
- Strengths: US B2B, LinkedIn data, phone numbers
- Weaknesses: International coverage, personal emails
- Tips: Use bulk API for 10%+ discount, batch similar companies
ZoomInfo
- Strengths: Enterprise data, org charts, intent signals
- Weaknesses: Expensive, SMB coverage
- Tips: Reserve for high-value accounts, negotiate enterprise deals
Hunter
- Strengths: Domain searches, email patterns, API reliability
- Weaknesses: Phone numbers, detailed contact info
- Tips: Best for initial domain exploration, use pattern detection
Clearbit
- Strengths: Real-time API, company data, speed
- Weaknesses: Email discovery rates, phone numbers
- Tips: Great for instant enrichment, combine with others for contacts
BuiltWith
- Strengths: Technology detection, historical data, e-commerce
- Weaknesses: Contact information, company financials
- Tips: Filter accounts by technology before enrichment
Waterfall Strategies
Maximum Success Waterfall
Priority: Success rate over cost
Sequence:
1. BetterContact (aggregates 10+ sources)
2. ZoomInfo (if enterprise)
3. Apollo + Hunter + RocketReach
4. AI web research
Expected Success: 95%+
Average Cost: 8-12 credits
Balanced Waterfall
Priority: Good success with reasonable cost
Sequence:
1. Apollo.io
2. Hunter (if domain match)
3. RocketReach (if name match)
4. Stop or continue based on confidence
Expected Success: 80%
Average Cost: 3-5 credits
Budget Waterfall
Priority: Minimize cost
Sequence:
1. Cache check
2. Hunter (domain only)
3. Free sources (Google, LinkedIn public)
4. Stop at first result
Expected Success: 60%
Average Cost: 1-2 credits
Quality Scoring Framework
def calculate_data_quality_score(data, sources):
score = 0
# Multi-source validation (30 points)
if len(sources) > 1:
score += min(len(sources) * 10, 30)
# Data completeness (30 points)
required_fields = ["email", "phone", "title", "company"]
score += sum(10 for field in required_fields if data.get(field))
# Verification status (20 points)
if data.get("email_verified"):
score += 10
if data.get("phone_verified"):
score += 10
# Recency (20 points)
days_old = get_data_age(data)
if days_old < 30:
score += 20
elif days_old < 90:
score += 10
return score
Industry-Specific Provider Selection
SaaS/Technology
- Primary: Apollo, Clearbit, BuiltWith
- Secondary: ZoomInfo, HG Insights
- Intent: G2, TrustRadius, 6sense
Financial Services
- Primary: PitchBook, ZoomInfo
- Compliance: LexisNexis, D&B
- News: Bloomberg, Reuters
Healthcare
- Primary: Definitive Healthcare
- Compliance: NPPES, state boards
- Standard: ZoomInfo with healthcare filters
E-commerce
- Primary: Store Leads, BuiltWith
- Platform-specific: Shopify, Amazon seller data
- Standard: Clearbit with e-commerce signals
Troubleshooting Common Issues
Low Email Discovery Rate
- Check email patterns with Hunter
- Try personal email providers
- Use AI research for executives
- Consider LinkedIn outreach instead
High Credit Usage
- Audit waterfall sequences
- Increase cache TTL
- Negotiate volume deals
- Use native operations first
Poor Data Quality
- Add verification steps
- Cross-reference multiple sources
- Set minimum confidence thresholds
- Implement human review for critical data
Advanced Techniques
Hybrid Enrichment
# Combine AI and traditional providers
def hybrid_enrichment(company):
# Fast, cheap base data
base = clearbit_lookup(company)
# AI for missing pieces
if not base.get("description"):
base["description"] = ai_generate_description(company)
# Premium for high-value
if is_enterprise_account(base):
base.update(zoominfo_enrich(company))
return base
Progressive Enrichment
# Enrich in stages based on engagement
def progressive_enrichment(lead):
# Stage 1: Basic (on import)
if lead.stage == "new":
return basic_enrichment(lead) # 1-2 credits
# Stage 2: Engaged (opened email)
elif lead.stage == "engaged":
return standard_enrichment(lead) # 3-5 credits
# Stage 3: Qualified (booked meeting)
elif lead.stage == "qualified":
return comprehensive_enrichment(lead) # 10+ credits
Templates
- Provider Cheat Sheet: See
references/provider_cheat_sheet.md for provider selection.
- Cost Calculator: See
scripts/cost_calculator.py for estimating credit usage.
- Integration Code Templates:
// JavaScript/Node.js template
const enrichContact = async (name, company) => {
// Check cache first
const cached = await checkCache(name, company);
if (cached) return cached;
// Try providers in sequence
const providers = ['apollo', 'hunter', 'rocketreach'];
for (const provider of providers) {
try {
const result = await callProvider(provider, {name, company});
if (result.email) {
await saveToCache(result);
return result;
}
} catch (error) {
console.log(`${provider} failed, trying next...`);
}
}
// Fallback to AI research
return await aiResearch(name, company);
};
Tips
- Pre-build waterfalls per motion so GTM teams can call a single orchestration command rather than juggling providers.
- Instrument cache hit rates; alert RevOps when cache effectiveness drops below target to avoid spike in credits.
- Rotate premium providers each quarter to negotiate better volume discounts and diversify coverage gaps.
- Pair enrichment with QA hooks (e.g., verification APIs, sampling) before syncing into CRM to prevent bad data cascades.
Progressive disclosure: Load full provider details and code examples only when actively optimizing enrichment workflows
1---2name: data-sourcing3description: Optimize provider selection, routing, and credit usage across 150+ enrichment sources for company/contact intelligence.4---5
6# Data Sourcing & Provider Optimization Skill
7
8## When to Use
9
10- Selecting provider stacks for email, phone, company, or intent enrichment
11- Building or tuning waterfall sequences to improve success rates
12- Auditing credit consumption or provider performance
13- Designing enrichment logic for GTM ops, RevOps, or data engineering teams
14
15## Framework
16
17You are an expert at selecting and optimizing data providers from 150+ available options to maximize data quality while minimizing credit costs. Use this layered framework to keep enrichment predictable and efficient.
18
19### Core Principles
20
211. **Quality-Cost Balance**: Optimize for highest data quality within budget constraints
222. **Smart Routing**: Route requests to providers based on input type and success probability
233. **Waterfall Logic**: Use sequential provider attempts for maximum success
244. **Caching Strategy**: Leverage cached data to reduce redundant API calls
255. **Bulk Optimization**: Process similar requests together for volume discounts
26
27### Provider Selection Matrix
28
29#### For Email Discovery
30
31**Best Input Scenarios:**
32- **Have LinkedIn URL**: ContactOut → RocketReach → Apollo
33- **Have Name + Company**: Apollo → Hunter → RocketReach → FindyMail
34- **Have Domain Only**: Hunter → Apollo → Clearbit
35- **Have Email (need validation)**: ZeroBounce → NeverBounce → Debounce
36
37**Quality Tiers:**
38- **Premium** (90%+ success): ZoomInfo, BetterContact waterfall
39- **Standard** (75%+ success): Apollo, Hunter, RocketReach
40- **Budget** (60%+ success): Snov.io, Prospeo, ContactOut
41
42#### For Company Intelligence
43
44**Data Type Priority:**
45- **Basic Firmographics**: Clearbit (fastest) → Ocean.io → Apollo
46- **Financial Data**: Crunchbase → PitchBook → Dealroom
47- **Technology Stack**: BuiltWith → HG Insights → Clearbit
48- **Intent Signals**: B2D AI → ZoomInfo Intent → 6sense
49- **News & Social**: Google News → Social platforms → Owler
50
51**Industry Specialization:**
52- **Startups**: Crunchbase, Dealroom, AngelList
53- **Enterprise**: ZoomInfo, D&B, HG Insights
54- **E-commerce**: Store Leads, BuiltWith, Shopify data
55- **Healthcare**: Definitive Healthcare + compliance providers
56- **Financial Services**: PitchBook, S&P Capital IQ
57
58### Credit Optimization Strategies
59
60#### Cost Tiers
61```
62Tier 0 (Free): Native operations, cached data, manual inputs
63Tier 1 (0.5 credits): Validation, verification, basic lookups
64Tier 2 (1-2 credits): Standard enrichments (Apollo, Hunter, Clearbit)
65Tier 3 (2-3 credits): Premium data (ZoomInfo, technographics, intent)
66Tier 4 (3-5 credits): Enterprise intelligence (PitchBook, custom AI)
67Tier 5 (5-10 credits): Specialized services (video generation, deep AI research)
68```
69
70#### Optimization Tactics
71
72**1. Cache Everything**
73- Email: 30-day cache
74- Company: 90-day cache
75- Intent: 7-day cache
76- Static data: Indefinite cache
77
78**2. Batch Processing**
79```python
80# Process in batches for volume discounts
81if record_count > 1000:
82 use_provider("apollo_bulk") # 10-30% discount
83elif record_count > 100:
84 use_parallel_processing()
85else:
86 use_standard_processing()
87```
88
89**3. Smart Waterfalls**
90```python
91waterfall_sequence = [
92 {"provider": "cache", "credits": 0},
93 {"provider": "apollo", "credits": 1.5, "stop_if_success": True},
94 {"provider": "hunter", "credits": 1.2, "stop_if_success": True},
95 {"provider": "bettercontact", "credits": 3, "stop_if_success": True},
96 {"provider": "ai_research", "credits": 5, "last_resort": True}
97]
98```
99
100### Provider-Specific Optimizations
101
102#### Apollo.io
103- **Strengths**: US B2B, LinkedIn data, phone numbers
104- **Weaknesses**: International coverage, personal emails
105- **Tips**: Use bulk API for 10%+ discount, batch similar companies
106
107#### ZoomInfo
108- **Strengths**: Enterprise data, org charts, intent signals
109- **Weaknesses**: Expensive, SMB coverage
110- **Tips**: Reserve for high-value accounts, negotiate enterprise deals
111
112#### Hunter
113- **Strengths**: Domain searches, email patterns, API reliability
114- **Weaknesses**: Phone numbers, detailed contact info
115- **Tips**: Best for initial domain exploration, use pattern detection
116
117#### Clearbit
118- **Strengths**: Real-time API, company data, speed
119- **Weaknesses**: Email discovery rates, phone numbers
120- **Tips**: Great for instant enrichment, combine with others for contacts
121
122#### BuiltWith
123- **Strengths**: Technology detection, historical data, e-commerce
124- **Weaknesses**: Contact information, company financials
125- **Tips**: Filter accounts by technology before enrichment
126
127### Waterfall Strategies
128
129#### Maximum Success Waterfall
130```yaml
131Priority: Success rate over cost
132Sequence:
133 1. BetterContact (aggregates 10+ sources)
134 2. ZoomInfo (if enterprise)
135 3. Apollo + Hunter + RocketReach
136 4. AI web research
137Expected Success: 95%+
138Average Cost: 8-12 credits
139```
140
141#### Balanced Waterfall
142```yaml
143Priority: Good success with reasonable cost
144Sequence:
145 1. Apollo.io
146 2. Hunter (if domain match)
147 3. RocketReach (if name match)
148 4. Stop or continue based on confidence
149Expected Success: 80%
150Average Cost: 3-5 credits
151```
152
153#### Budget Waterfall
154```yaml
155Priority: Minimize cost
156Sequence:
157 1. Cache check
158 2. Hunter (domain only)
159 3. Free sources (Google, LinkedIn public)
160 4. Stop at first result
161Expected Success: 60%
162Average Cost: 1-2 credits
163```
164
165### Quality Scoring Framework
166
167```python
168def calculate_data_quality_score(data, sources):
169 score = 0
170
171 # Multi-source validation (30 points)
172 if len(sources) > 1:
173 score += min(len(sources) * 10, 30)
174
175 # Data completeness (30 points)
176 required_fields = ["email", "phone", "title", "company"]
177 score += sum(10 for field in required_fields if data.get(field))
178
179 # Verification status (20 points)
180 if data.get("email_verified"):
181 score += 10
182 if data.get("phone_verified"):
183 score += 10
184
185 # Recency (20 points)
186 days_old = get_data_age(data)
187 if days_old < 30:
188 score += 20
189 elif days_old < 90:
190 score += 10
191
192 return score
193```
194
195### Industry-Specific Provider Selection
196
197#### SaaS/Technology
198- Primary: Apollo, Clearbit, BuiltWith
199- Secondary: ZoomInfo, HG Insights
200- Intent: G2, TrustRadius, 6sense
201
202#### Financial Services
203- Primary: PitchBook, ZoomInfo
204- Compliance: LexisNexis, D&B
205- News: Bloomberg, Reuters
206
207#### Healthcare
208- Primary: Definitive Healthcare
209- Compliance: NPPES, state boards
210- Standard: ZoomInfo with healthcare filters
211
212#### E-commerce
213- Primary: Store Leads, BuiltWith
214- Platform-specific: Shopify, Amazon seller data
215- Standard: Clearbit with e-commerce signals
216
217### Troubleshooting Common Issues
218
219#### Low Email Discovery Rate
220- Check email patterns with Hunter
221- Try personal email providers
222- Use AI research for executives
223- Consider LinkedIn outreach instead
224
225#### High Credit Usage
226- Audit waterfall sequences
227- Increase cache TTL
228- Negotiate volume deals
229- Use native operations first
230
231#### Poor Data Quality
232- Add verification steps
233- Cross-reference multiple sources
234- Set minimum confidence thresholds
235- Implement human review for critical data
236
237### Advanced Techniques
238
239#### Hybrid Enrichment
240```python
241# Combine AI and traditional providers
242def hybrid_enrichment(company):
243 # Fast, cheap base data
244 base = clearbit_lookup(company)
245
246 # AI for missing pieces
247 if not base.get("description"):
248 base["description"] = ai_generate_description(company)
249
250 # Premium for high-value
251 if is_enterprise_account(base):
252 base.update(zoominfo_enrich(company))
253
254 return base
255```
256
257#### Progressive Enrichment
258```python
259# Enrich in stages based on engagement
260def progressive_enrichment(lead):
261 # Stage 1: Basic (on import)
262 if lead.stage == "new":
263 return basic_enrichment(lead) # 1-2 credits
264
265 # Stage 2: Engaged (opened email)
266 elif lead.stage == "engaged":
267 return standard_enrichment(lead) # 3-5 credits
268
269 # Stage 3: Qualified (booked meeting)
270 elif lead.stage == "qualified":
271 return comprehensive_enrichment(lead) # 10+ credits
272```
273
274## Templates
275- **Provider Cheat Sheet**: See `references/provider_cheat_sheet.md` for provider selection.
276- **Cost Calculator**: See `scripts/cost_calculator.py` for estimating credit usage.
277- **Integration Code Templates**:
278```javascript
279// JavaScript/Node.js template
280const enrichContact = async (name, company) => {
281 // Check cache first
282 const cached = await checkCache(name, company);
283 if (cached) return cached;
284
285 // Try providers in sequence
286 const providers = ['apollo', 'hunter', 'rocketreach'];
287
288 for (const provider of providers) {
289 try {
290 const result = await callProvider(provider, {name, company});
291 if (result.email) {
292 await saveToCache(result);
293 return result;
294 }
295 } catch (error) {
296 console.log(`${provider} failed, trying next...`);
297 }
298 }
299
300 // Fallback to AI research
301 return await aiResearch(name, company);
302};
303```
304
305---
306
307## Tips
308
309- **Pre-build waterfalls per motion** so GTM teams can call a single orchestration command rather than juggling providers.
310- **Instrument cache hit rates**; alert RevOps when cache effectiveness drops below target to avoid spike in credits.
311- **Rotate premium providers** each quarter to negotiate better volume discounts and diversify coverage gaps.
312- **Pair enrichment with QA hooks** (e.g., verification APIs, sampling) before syncing into CRM to prevent bad data cascades.
313
314---
315
316*Progressive disclosure: Load full provider details and code examples only when actively optimizing enrichment workflows*