BlogBuild notes7 min read

Plain text, one at a time, from your own Gmail

ColdDeck sends outbound the slowest, least scalable way available. Every part of that was a decision, and deliverability was only half the reason.

ColdDeck sends outbound email in the least scalable way available: plain text, no HTML, no tracking pixel, one message at a time, from your own Gmail account, after a person has read and approved it.

Every one of those is a constraint we chose. Deliverability explains about half of them. The other half is a bet about what the recipient does in the two seconds after the message opens.

An email that is obviously bulk gets treated as bulk, regardless of how good its content is. The format is read before the words are.

The deliverability half

Plain text. Multipart HTML with a text fallback is standard for marketing and it is a signal. A message that is one text part, no images, no link tracking domain, looks structurally like a message a person typed. Filters are not the only audience for that; the recipient is too.

Your own mailbox, your own domain. Sending through your existing Gmail account uses a domain with real sending history — actual conversations, actual replies. A fresh domain sending its first hundred messages has no reputation and behaves accordingly, which is why cold email tooling spends so much effort on warm-up schedules.

One at a time, at human pace. Not because a provider would reject the burst — because a hundred near-identical messages leaving one mailbox in ninety seconds is a pattern, and it is the pattern.

No tracking pixel. This one costs us the open rate, which is the metric everybody wants. It goes anyway: a 1×1 remote image is a third-party request, it is the single most reliable machine-detectable marker of bulk mail, and it means the message renders with an image-blocking warning at the top for a large share of recipients. Also — and this is the actual reason — we are telling people we looked at their website, and simultaneously tracking whether they opened an email is a slightly different relationship to the one the message claims.

The part that is not deliverability

Personalised bulk email has a recognisable shape. Merge fields in the first sentence, a paragraph of value proposition, a calendar link, a P.S. Recipients have seen thousands and classify the format before reading the content.

ColdDeck's messages are short, reference one specific thing found on that company's website, and ask a question. Not "I noticed you're in HVAC" — that is a merge field. Something like your booking page 404s from the mobile menu, which is a sentence that could only have been written by something that looked.

That specificity is only possible because the scoring is a rule pack: the email cites the signal that produced the score, and the signal has evidence attached. The email's credibility is downstream of the scoring architecture, which was not the reason we built it that way but turned out to be the main benefit.

And it is only safe because a person approves each one. The system drafts; a human reads it before it sends. A confidently wrong observation about someone's own website is worse than no email, so the approval step is not ceremony — it is the thing that makes the specificity affordable.

Volume, honestly

This does not scale, and that is the trade.

A person approving individual emails handles maybe fifty to a hundred a day before it becomes the job rather than a part of it. Against a tool sending five thousand a day, that is not a competitive volume.

The reply rate is high enough that it works anyway, and the reason is arithmetic rather than optimism: a hundred messages that reference something real convert at a rate that a bulk send does not approach. The bottleneck moves from send volume to whether the underlying detection finds something genuinely worth mentioning — which is a better problem, because it is a problem you can fix with engineering rather than with more mailboxes.

It also means the domain does not get burned. A sending reputation is an asset that takes months to build and one campaign to destroy, and the systems that send five thousand a day are structurally in the business of consuming domains.

What we would change

Two things, honestly.

No open tracking means less feedback. We know about replies and nothing else. A message that landed and was read but not answered is indistinguishable from one that went to spam, which makes it harder to tell whether a change to the drafting helped. We accept this and it is a real cost, not a free win.

Approval is the bottleneck and the interface is basic. The same argument as the review queue applies: the difference between a twenty-second approval and a five-second one is the difference between fifty a day and two hundred. That is the highest-value improvement available and it is entirely an interface problem, not a model problem.

The general shape

The pattern is one we keep arriving at: the honest version of the system is slower, and it is slower in a way that is also the product.

A crawler that reads a few pages at human pace finds less. A scorer that only counts confirmed signals scores fewer prospects. A sender that waits for approval sends fewer emails. Each constraint costs throughput and buys the thing that makes the output worth receiving.

That trade is only worth making if the output is genuinely better, which is a claim you have to keep checking rather than assume.


ColdDeck is ours, and it is our own outbound engine. More in why our crawler is deliberately slow, a rule pack, not a model, and the case studies.

Something here

the audit is the cheapest way to find out for certain.