Lead Enrichment Confidence Scorer
Pricing
Pay per event
Lead Enrichment Confidence Scorer
Score enriched leads on data confidence (0-100) with signal explanations, missing field detection, and recommended next actions. Works with any enriched lead dataset.
Pricing
Pay per event
Rating
0.0
(0)
Developer

Stas Persiianenko
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Score enriched leads on data confidence (0-100) with signal-by-signal explanations, missing field detection, and recommended next actions. Works with any enriched lead dataset.
What does Lead Enrichment Confidence Scorer do?
Lead Enrichment Confidence Scorer takes enriched lead data and produces a confidence score (0-100) for each lead based on 10 weighted signals. It tells you not just how confident you should be in each lead's data, but why — which signals are strong, which data is missing, and what specific actions to take to improve each lead.
It works with output from Multi-Source Lead Enrichment or any enriched lead dataset that includes company, contact, and source metadata fields.
Use cases
- Sales teams — Prioritize outreach by data quality, not just lead score
- Marketing ops — Identify leads that need additional enrichment before campaigns
- Data quality audits — Score your entire CRM export to find data gaps
- Pipeline hygiene — Filter out low-confidence leads before they enter your pipeline
- Enrichment ROI — Measure how well your enrichment sources are performing
Why use Lead Enrichment Confidence Scorer?
- Transparent scoring — Every score comes with a full signal breakdown
- Actionable recommendations — Specific next steps to improve each lead's confidence
- Weighted signals — 10 signals with weights based on sales impact (verified email = 20pts, company ID = 15pts, etc.)
- Confidence levels — Critical, low, medium, high, very-high for quick triage
- Debug mode — Full per-signal weight breakdown for tuning and analysis
- Works with any data — Accepts loose JSON objects, not tied to a specific enrichment tool
Scoring signals
| Signal | Weight | What it measures |
|---|---|---|
| Verified email | 20 | Email present and verification status |
| Company identified | 15 | Company name and domain known |
| Contact name | 12 | Full contact name available |
| Job title | 10 | Role/title or seniority level known |
| Multi-source | 10 | Data confirmed by 2+ independent sources |
| Industry known | 8 | Industry classification available |
| Phone available | 7 | Direct phone number present |
| LinkedIn profile | 7 | LinkedIn URL linked |
| Location data | 6 | Geography/location known |
| Company size | 5 | Headcount or company type known |
Total: 100 points possible. Partial scores are awarded (e.g., unverified email = 8/20, one source = 0/10, two sources = 7/10).
Confidence levels
| Level | Score range | Meaning |
|---|---|---|
| very-high | 85-100 | Comprehensive, cross-verified data — ready for outreach |
| high | 65-84 | Good quality, minor gaps — actionable |
| medium | 45-64 | Moderate confidence — enrich further before outreach |
| low | 25-44 | Significant gaps — needs additional enrichment |
| critical | 0-24 | Very little verified data — requires substantial work |
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
leads | object[] | Yes | — | Array of enriched lead objects with company, contact, and enrichment fields |
minConfidence | integer | No | 0 | Only output leads at or above this confidence threshold |
includeDebugWeights | boolean | No | true | Include per-signal weight breakdown in output |
Output example
{"leadId": "jane@stripe.com","companyName": "Stripe","contactName": "Jane Smith","confidenceScore": 97,"confidenceLevel": "very-high","topSignals": ["Email is verified","Company name and domain known","Contact name available"],"topSignalsSummary": "Email is verified; Company name and domain known; Contact name available","missingSignals": [],"missingSignalsSummary": "None","explanation": "Confidence score: 97/100 (very-high). Positive signals (9): Email is verified, Company name and domain known, Contact name available. This lead has comprehensive, cross-verified data and is ready for outreach.","recommendedActions": [],"recommendedActionsSummary": "No actions needed","debugWeights": [{ "name": "verified-email", "weight": 20, "score": 1, "maxWeight": 20, "description": "Email is verified" },{ "name": "company-identified", "weight": 15, "score": 1, "maxWeight": 15, "description": "Company name and domain known" }],"scoredAt": "2026-03-01T20:00:00.000Z"}
How much does it cost?
This actor uses pay-per-event pricing:
| Event | Price | Description |
|---|---|---|
| Actor start | $0.035 | Charged once per run |
| Lead scored | $0.001 | Charged per lead scored |
Example costs:
- 10 leads: $0.035 + (10 x $0.001) = $0.045
- 100 leads: $0.035 + (100 x $0.001) = $0.135
- 1,000 leads: $0.035 + (1,000 x $0.001) = $1.035
Using the Apify API
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('YOUR_ACTOR_ID').call({leads: [{companyName: 'Stripe',domain: 'stripe.com',contactName: 'Jane Smith',email: 'jane@stripe.com',emailStatus: 'verified',sources: ['linkedin', 'crunchbase'],sourceCount: 2,},],minConfidence: 0,includeDebugWeights: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => {console.log(`${item.leadId}: ${item.confidenceScore}/100 (${item.confidenceLevel})`);console.log(` Actions: ${item.recommendedActions.join(', ')}`);});
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("YOUR_ACTOR_ID").call(run_input={"leads": [{"companyName": "Stripe","domain": "stripe.com","contactName": "Jane Smith","email": "jane@stripe.com","emailStatus": "verified","sources": ["linkedin", "crunchbase"],"sourceCount": 2,},],"minConfidence": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['leadId']}: {item['confidenceScore']}/100 ({item['confidenceLevel']})")
Integrations
- Multi-Source Lead Enrichment — Chain: enrich leads first, then score confidence
- Google Sheets — Export scored leads to spreadsheets for team review
- Webhooks — Trigger alerts when high-confidence leads are found
- Zapier / Make — Route leads to different CRM pipelines based on confidence level
Tips and best practices
- Use
minConfidence: 50to filter out leads that need too much work before outreach - The
debugWeightsarray shows exactly how each signal contributed to the score - Chain with Multi-Source Lead Enrichment: run enrichment first, then pipe the output here
- Use the
recommendedActionsto build enrichment task lists for your data team - Leads scoring 85+ are ready for direct outreach without further enrichment
Compliance
This actor performs pure data processing on user-provided input. No external APIs are called. No web scraping is performed. All data stays within the Apify platform.