Growth Engineering

Your reply rate is a data quality metric

Deliverability, list building and the specific checks that move a cold campaign from 1% replies to 8%, written for engineers who would rather fix a pipeline than write copy.

Two campaigns, same copy

In March I ran the same 180 word email twice. Same sender, same offer, same week. The first list got a 1.2% reply rate. The second got 8.4%. The copy was byte identical.

The difference was entirely upstream. The first list was 2,400 contacts bought from a data vendor with a job title filter. The second was 310 contacts assembled by hand from a specific behavioural signal, verified individually, sent from a domain that had been warming for five weeks. Seven times the reply rate on a list an eighth of the size.

This is the thing most founders get backwards. They treat cold outreach as a copywriting problem and iterate on subject lines while sending from a burned domain to addresses that half bounce. Copy is maybe the fourth most important variable. The first three are all data and infrastructure, and all three are things an engineer is unusually well equipped to fix.

Deliverability is a series of binary gates

Nothing in your funnel matters if the mail lands in spam, and you will not know it has, because spam placement produces the same silence as indifference. Treat this as infrastructure with a checklist, not as a dark art.

Send cold mail from a separate domain. Not a subdomain of your main one, a separate domain: getwithseismic.com alongside withseismic.com. If you burn the reputation of the domain your product runs on, your password resets and invoices start landing in spam, and recovering a domain reputation takes months. A secondary domain costs about £10 a year and is the cheapest insurance you will ever buy.

Then the authentication gates, all three, no exceptions.

  1. SPF, published as a TXT record, listing exactly the sending services you use, ending in -all rather than ~all
  2. DKIM, with the key your sending provider gives you, verified by sending a message to yourself and reading the raw headers for dkim=pass
  3. DMARC, starting at p=none with an rua address so you receive aggregate reports, moving to p=quarantine once the reports come back clean for a fortnight

Google and Yahoo both made SPF, DKIM and DMARC mandatory for bulk senders in February 2024. Without all three you are not fighting for the inbox, you are not in the auction.

After that, volume discipline. A new domain sends nothing for the first two weeks while MX and DNS settle, then ramps: ten a day in week three, doubling weekly to a ceiling of about forty per mailbox per day. Forty. Not four hundred. If you need more volume, add mailboxes, not volume per mailbox. Three mailboxes on the same domain at forty each is fine; one at 120 looks like exactly what it is.

Strip tracking pixels and link redirects out of cold mail entirely. Open tracking pixels are a well known spam signal, and a shortened redirect domain shared with thousands of other senders inherits every one of their reputations. You lose open rate as a metric. Open rate has been noise since Apple Mail Privacy Protection started prefetching images in 2021 anyway. Reply rate is the only number that means anything, and it is the one you actually care about.

If you cannot say which reply rate a change moved, you are not running a campaign. You are sending mail.

The list is the product

Here is the mental model that fixes most of this. Every contact on your list is a row with a truth value: does this person, today, have the problem you solve, and are they in a position to do something about it. A bought list of 2,400 rows filtered on job title has maybe 4% truth. A hand built list from a behavioural signal has 40%. Your reply rate is very close to that truth rate multiplied by a small copy coefficient. Better copy moves the coefficient by maybe 50%. Better data moves the input by 10x.

So build lists from signals, not attributes. An attribute is 'VP Engineering at a Series A company'. A signal is 'posted a job ad for a growth engineer in the last 21 days', 'announced a raise in the last 60 days', 'shipped a pricing page change', 'their careers page lists three open sales roles and no marketing roles'. Signals decay, which is exactly why they work: they mark a window where the problem is live.

The engineering is unglamorous and effective. Pick two or three sources you can query on a schedule, pull them into a table nightly, and let the recency of the signal drive priority. Job boards, funding announcements, changelog and blog RSS, conference speaker lists, GitHub org activity, review site profiles. Respect robots.txt and terms, keep the volume polite, cache aggressively. You are building a small pipeline, not a scraper farm.

Then verify. Every address goes through a verification service before it is ever sent to, and anything returning 'catch-all', 'unknown' or 'risky' gets removed rather than gambled on. Keep hard bounces under 2% and ideally under 1%. Bounce rate is the strongest negative signal a mailbox provider has, because only bad lists bounce. One campaign at 8% bounce can cost you a month of domain reputation.

A rule I hold to: if you cannot write one true, specific sentence about a contact that could not apply to anyone else on the list, they do not belong on the list. That constraint alone will cut a 2,000 row list to 200 and roughly triple the reply rate, because it is a proxy for whether the signal was real.

Instrument it like a service

Most outreach tooling reports opens, clicks and replies as three vanity numbers. Log your own, per contact, into a table you control, with the signal that put them on the list, the date the signal fired, the mailbox that sent, the sequence step, and the outcome bucketed into: bounced, no reply, negative reply, referral, positive reply, meeting booked.

With that table you can answer the questions that matter and that no vendor dashboard will answer for you. Which signal source produces meetings, not replies. Whether a signal older than 30 days is worth sending to at all, which in my data it usually is not. Whether mailbox two is quietly landing in spam while mailbox one is fine, visible as a mailbox with a normal delivery rate and a near zero reply rate. That last one is the most valuable alert in the system and takes ten minutes to build.

Run the numbers weekly, per segment, not per campaign. A campaign average hides the fact that one signal is at 14% and three are at zero. Kill the zeros without sentiment. In every list I have built, roughly one source in four carried the whole result.

The follow up arithmetic

Two follow ups is right. Not seven. Roughly half of positive replies to my campaigns come from the first email, a third from the first follow up, and the remainder from the second. The fourth through seventh messages produce almost nothing but unsubscribes and spam complaints, and a spam complaint rate above 0.3% will get you throttled by Gmail regardless of everything else you have done correctly.

Space them four and eight working days out. Make each follow up carry a new piece of information rather than 'just bumping this to the top of your inbox'. And put a plain one-line opt out at the bottom of every message. It costs you a fraction of a percent of replies and it keeps complaints, the thing that actually kills domains, near zero.

Do this today

Go to your sending domain and check the three records. dig TXT yourdomain.com for SPF, dig TXT default._domainkey.yourdomain.com for DKIM, dig TXT _dmarc.yourdomain.com for DMARC. If any of them are missing, stop sending until they are fixed, because everything else you do is being scored against a failing sender.

Then take your current list, open it, and for each row try to write the one specific true sentence. Delete every row where you cannot. Send to what survives. Compare the reply rate to last month, and note the size of the list you got it from.

If this was useful

One letter a month, in the same register as this.

What I am seeing across the weekends: what is working in growth engineering, what stopped working, and the numbers behind both. No sequence, no upsell ladder, and one click to leave.

Monthly. Unsubscribe in one click. Never sold or shared.

Eight founders spend two days in Prague working through exactly this, on their own product.