Final Outcome Overview
A brand new market went from a PDF of target accounts to a running outbound programme: a reviewed and verified contact pipeline, a five-step sequence sent on Australian time, bounce protection that can't leak, and a routine that refills the campaign with fresh, verified contacts every week.
The Challenge
There was no Australian database, no local sending setup and one person to run it. The list had to be precise enough for a small enterprise market, the emails had to land from a personal inbox without hurting the domain, and the reporting had to show what was really happening.
What I Built
- A tight ICP and persona map: I digitised the target account list, tightened the company size threshold with our market lead, and built a persona title dictionary that drove the Clay search. A review gate meant he approved every contact before anything touched HubSpot.
- Clay sourcing with a sanity layer: Clay found the right people at almost every target account. I caught that regional LinkedIn URLs silently broke the people search, and I routed contacts whose verified email sat on another employer's domain (job changers) to a LinkedIn-only track instead of the sequence.
- A sequence that reads like one conversation: five steps over two weeks built on a renewal-timing question, with follow-ups threaded as replies, a LinkedIn connection task in the middle and a referral ask near the end. I kept the logo out of the cold opener (a spam signal) and put the A/B test on email 1, where it actually moves reply rate.
- Sending on Australian time, proven not assumed: the team believed sends followed the European account time zone. I checked a test send's timestamp and showed the window follows the enroller's own time zone, so no workaround was needed.
- Bounce protection that cannot leak: I replaced static lists with a cohort property and an active list whose five conditions each block one failure, including re-enrolment, which HubSpot does not prevent on its own. Bounced contacts are never deleted, so a re-push of a dead address stays suppressed automatically. Every new contact is verified with ZeroBounce first, after I proved a free checker was letting dead addresses through.
- Honest reporting: I read and classified every reply, so out-of-office messages never count as real conversations. I also separated the deliverability metric (bounces per message) from the list-quality metric (dead addresses per contact).
What It Runs On Now
- A five-step, threaded sequence sent on Australian time
- Only reviewed, verified contacts enter it
- Bounced and suppressed contacts can never be enrolled again
- A weekly refill of 50 to 60 fresh, verified contacts, plus a separate broker channel
What I'd Do Next
Turn the weekly refill into a self-running Clay feed that verifies and pushes contacts on its own, and report reply rate per persona so targeting keeps sharpening.
Tech Stack
Clay