Every lead checked before anyone writes to it.
A cold email to the wrong person costs more than a missed one. That includes a lapsed customer who has already come back, a site that went offline, or a company already using a competitor. Protolyth, a lead pipeline built on Nucleus, enriches each lead, looks at its site in a real browser, and blocks the send while anything is unresolved. Then it follows the lead from the first email to a paid subscription.
From a raw list to a send you can stand behind
Each stage is a set of Protolyth tools in Nucleus. An operator drives them from Claude, scheduled Dispatch workflows run the repetitive parts, and the team reviews the results in the Protolyth app. All three use the same tools and the same rules.
Stage the leads
Leads land in a staging database, not the CRM. Nothing reaches a system of record until it's been checked.
Screen for free, then buy only what's left
A free vendor screen runs first, and a paid lookup only happens where the screen can't answer. A dry run reports the credit count before anything is spent.
Look at the actual site
A real headless browser opens each site. Is it up? Is the product's script still live? Is a competitor's widget running? Vendor data says what a site used to run, and the browser shows what it runs today.
Raise contentions, and block on the serious ones
Every disagreement in the data becomes a contention, either blocking or advisory. Examples: a domain that's already a paying customer, a dead site, a quote for languages the site has switched off. A blocking contention stops the draft from being approved until a person decides it.
Size the offer
Traffic, foreign-language share and enabled languages suggest a plan and a price, and every number shown carries its source.
Draft, validate, approve
Drafts are versioned in the database, and each revision is checked again. A person approves in the review screen, or Claude rewrites while they watch.
Export, then follow the outcome
Approved leads go to the email outreach tool. Replies, sign-ups and payments flow back in as events tied to the same lead.
Credits are spent on new questions only
Enrichment vendors bill for every domain you ask about, including the ones they have no data for. On one run, 289 domains were flagged as needing a refresh. Protolyth now records when a vendor came back empty, and skips sites that will never have data, so it bought this:
What the checks caught before a single send
These were all found in data that looked ready to send. Each one would have been a wrong email to a real person.
with zero blocking contentions open at export
already running another vendor's product, so they need different copy from a lapsed customer
moved to the site the customer actually uses now, while 54 more were rejected
who was one export away from a cold win-back email, caught by matching on domain
From the first email to paid, from real signals
A campaign isn't over when it's sent. Each lead moves through six steps, and every step is set by a system that knows, not by someone remembering to update a field.
An email was sent, or a rep logged a call or meeting
A project or account exists on the new platform
The product's script is verified on the site
Translations are serving to visitors
A paid subscription started
The subscription was cancelled
Half-known data goes to Staging, not into a guess
Anything the matcher can't place with certainty waits for a person.
- New-platform projects that no lead holds yet
- Sign-ups to place on the right lead
- Payments and events that match no lead, or several
- Proposed company groupings across domains
A person's decision is final
The automatic matcher never overrides a human.
- A manual link or unlink is recorded as a review decision
- The matcher skips anything a person has already decided
- A rep's own call is logged as contacted, never as a campaign send
- Outcomes feed a running comparison of which message works
All of this started as tools in Claude. Two weeks later it was an app.
nucleus