NiravProof of work
← All projects

AI / Automation

Case 03 / 10

What 2,000 emails taught me about data quality

Shipped an AI-powered outbound system, instrumented it properly, and found the bottleneck was list quality — not messaging.

Crave Robotics · 2026 · Sole designer and builder

  • Shipped a full LLM outbound pipeline. 2,000+ emails sent.
  • It did not work: 1.5% real conversations, zero meetings.
  • Root cause was fabricated domains in the lead data, not the messaging.
  • Including it because the diagnosis is the transferable part.
1.5% true conversation rate, 0 meetings booked

The numbers

  • 2,000+
    Outbound emails sent
  • 1.5%
    True conversation rate
  • 0
    Meetings booked
  • Apollo.io
  • LLM APIs
  • Resend
  • Gmail API
  • Railway

Run a list through the pipeline

Interactive — synthetic data

Toggle the checks below and watch which rows survive to a send.

CompanyDomainContactOutcome
Harbourline Foodsharbourline.exampleFacilities LeadDeliverable
Verity Campus Groupveritycampus.exampleOps DirectorDead DNS record
Northgate Unionnorthgate-union.exampleAuxiliary ServicesDeliverable
Piedmont Healthpiedmonthealth.exampleVP MarketingWrong role at company
Ashford Labsashfordlabs-inc.exampleWorkplace ManagerFabricated domain
Cobalt Workscobaltworks.exampleOffice ManagerDeliverable
Ridgeway Instituteridgeway-edu.exampleDining ServicesDead DNS record
Lantern Manufacturinglanternmfg.examplePlant OpsDeliverable
Emails sent
8
Reached intended recipient
4
Wasted sends
4

Validation does not fix the wrong-role sends. Those need a defined ICP and qualification criteria, which is the upstream half of the same problem.

Synthetic lead list. Company names and domains are fictional. The failure modes shown are the ones the real diagnostic surfaced.

How it fits together

  1. 1Lead sourcing
  2. 2Enrichment
  3. 3Validation (missing)
  4. 4LLM personalization
  5. 5Send
  6. 6Engagement capture
  7. 7Reply classification
Read the full case study Hide the case study

The problem

Field sales needed outbound pipeline for new machine placements and had no systematic prospecting motion — manual list-building and one-off emails.

Why it mattered

Machine placement drives revenue directly. A repeatable outbound motion was worth building, and it was a natural place to apply LLMs to a real commercial workflow rather than a demo.

What I built

An end-to-end pipeline: lead sourcing and enrichment, LLM-generated personalized outreach and follow-up sequencing, automated sending, and engagement instrumentation, deployed as a service with scheduled execution.

Then I measured it, and it had not worked. Over 2,000 emails produced a true conversation rate of about 1.5% and zero booked meetings. The conversations that did happen stayed in email and died before reaching a meeting.

What actually went wrong

The instrumentation is the reason this page exists. The nominal reply rate looked survivable; the conversation rate did not, and the gap between them was the finding. Tracing it back, the enriched lists contained fabricated domains and dead DNS records, so a meaningful share of sends were reaching unintended recipients or nobody at all. Others reached real people in the wrong role at the right company.

The constraint was never message generation. LLM personalization worked fine — the copy was good. The failure sat one step upstream, in list quality and ICP definition, and no amount of generation quality compensates for sending to the wrong person.

I am including this project rather than quietly dropping it because the diagnosis is the transferable part. The demo below lets you add the validation gate that was missing and watch what it catches — and, more usefully, what it does not.

What I learned

Instrumenting for the real success metric mattered more than anything else I built. A reply-rate dashboard would have shown a working system; measuring genuine conversations revealed it was not. I also learned that AI-generated volume amplifies bad inputs rather than compensating for them — 2,000 well-written emails to poorly-qualified contacts is worse than 200 to good ones, because it spends domain reputation to do it.

What I would do next

Domain and deliverability validation as a hard gate before send. A tightly-defined ICP with qualification criteria instead of broad sourcing. Sequences designed to reach a booked meeting rather than a reply. Volume traded down for list quality.

Described without confidential information. The demo and any figures inside it use synthetic data.