Research B2B prospects like a research team, not a scraper: define the ideal customer profile, run multi-source prospect research, grade every contact on source quality, enrich through an ordered waterfall, and hand off deduped, compliant data the CRM can trust. Use when building a prospect list, defining an ICP, enriching leads, or cleaning up CRM data.
name: "lead_intelligence" description: "Research B2B prospects like a research team, not a scraper: define the ideal customer profile, run multi-source prospect research, grade every contact on source quality, enrich through an ordered waterfall, and hand off deduped, compliant data the CRM can trust. Use when building a prospect list, defining an ICP, enriching leads, or cleaning up CRM data." metadata: { "includeInPrompt": true }
Lead Intelligence
Purpose
Turn a vague request like "find me some leads" into a disciplined research run: lock the ICP, research accounts and contacts from graded sources, enrich missing fields through an ordered waterfall, clean and dedupe everything, and hand over a list with honest provenance for every row. The skill's whole point is that a prospect list is only as good as the worst row in it. One bad address burns sender reputation; one wrong merge corrupts the CRM; one careless outreach step breaks the law. Details and templates live in references/ and bin/.
Evidence tiers used here: Official (the vendor's or regulator's own docs say it), Reported (practitioners widely observe it, attributed, not proven), Opinion (this skill's own operating judgment). Factual claims about vendors and law are sourced in references/source-grading.md and references/compliance-checklist.md.
Workflow
1. Lock the ICP before researching anything
An ICP is account-level, not a buyer persona. It answers: which companies should we talk to at all? Define it in three bands, per the template in references/icp-canvas.md:
- Firmographic: industry and sub-industry, company size, revenue range, geography, growth stage.
- Technographic: current stack, dependencies, integration compatibility, competitor installs.
- Behavioral: intent signals (pricing-page visits, review-site research, hiring patterns), trigger events (funding, leadership changes, expansions).
- Persona fit (contact level): title, department, decision power (budget authority vs influencer vs user).
Write explicit Ideal / Acceptable / Disqualify bands and an anti-ICP (companies that look close but never convert). Official practice from ICP frameworks: validate the bands against won, lost, and churned accounts so the profile reflects what predicts success, not just who already buys (survivorship bias).
Score each account 1-5 on the weighted scorecard in the canvas. Do not research contacts at accounts that fail the disqualify band.
2. Research accounts, then contacts, from graded sources
Research in tiers and record where every fact came from:
- Primary: company website, filings, press releases, job postings, the prospect's own LinkedIn profile.
- Database vendors: Apollo, ZoomInfo, Clearbit, and equivalents.
- Inference: email pattern guesses, title inference from org charts. Never ship inference as fact.
Grade every contact A / B / C / D using the rubric in references/source-grading.md. Only A and B rows go into outreach. C rows are research leads that need confirmation. D rows are cut.
3. Enrich missing fields with an ordered waterfall
When a contact is missing an email or phone, enrich through an ordered lineup of providers instead of querying one at a time by hand. The pattern, Official from Apollo's waterfall docs:
- Own database first, then each third-party source in a fixed order until a match is found or the lineup is exhausted.
- Credits are charged per source that returns data, so order by accuracy-per-cost, not by habit.
- Run a validator after each source when accuracy matters more than coverage; the run can stop at the first result or continue until a verified result is found.
- Do not re-call the same source for the same contact and data type within 30 days; log which source enriched each row so spend is reviewable.
4. Clean and dedupe before anything touches the CRM
Run every list through bin/leadlint.py (dry-run example below) before import:
- Normalize: strip whitespace, lowercase domains, standardize title casing.
- Exclude: freemail domains (gmail, yahoo, and friends) must not spawn company records.
- Dedupe keys, strongest first: external ID, then exact email match, then normalized name + company domain. Exact matches on a strong key merge automatically; fuzzy matches on weak keys go to a human. A missed merge is annoying; a wrong merge is a data incident, so bias toward caution. This is Opinion, and it matches HubSpot's own guidance that merges are permanent and cannot be undone (Official).
- Import mapping: map every column to a real CRM property before importing; set lifecycle stage on every row; never import donations, deals, or transactions as separate contact records.
5. Pass the compliance and deliverability gate
Outreach only proceeds when the checklist in references/compliance-checklist.md is satisfied:
- US (CAN-SPAM, FTC): no B2B exception exists. Accurate headers, honest subject lines, clear ad identification, a valid physical postal address, a working opt-out, requests honored within 10 business days. Using a vendor does not transfer your liability.
- UK/EU (GDPR/PECR, ICO guidance): emails to business contacts can rest on legitimate interests with a documented assessment, but you must tell people they can object, and an objection stops the processing, full stop. Sole traders and personal addresses get the stricter consent treatment.
- Deliverability: verify every address before it enters a sequence. Keep bounce rate under 2 percent; over 3 percent is a red flag that starts throttling and can take weeks to recover from. Keep spam complaints under 0.3 percent (Google/Yahoo ceiling), targeting under 0.1 percent. SPF, DKIM, and DMARC must all pass.
Output Contract
Every research run delivers three artifacts:
- ICP one-pager — the filled icp-canvas.md, including scorecard weights and the anti-ICP.
- Graded prospect list (CSV) — columns: `full_name, title, department, decision_power, email, email_source_grade, phone, phone_source_grade, company, company_domain, company_size, industry, tech_stack, icp_score, research_notes, compliance_notes`.
- Hygiene + compliance report — dedupe results (merged, flagged, dropped), freemail exclusions, enrichment spend by source, and the completed compliance checklist.
Operating Rules
- No invented facts. Every account attribute, title, and contact detail must trace to a source; inference is labeled inference.
- Never ship a scraped list without provenance. If you cannot say where an email came from, it does not go into outreach.
- Never merge fuzzy matches automatically. Human review, always.
- Never advise or execute outreach that fails the compliance gate. When the law is ambiguous, say so plainly and recommend counsel.
- Grade honestly: a list of 200 B-grade rows beats 2,000 C-grade rows. Say which rows to cut, by name, with reasons.
- Measure enrichment by outcomes (bounce rate, connect rate), not database size or credit spend.
No ratings yet — be the first to rate it.