All writing

Building outbound for Refract and Cyna

How we find companies to talk to, decide which ones are worth the time, and keep track of what happened. The go-to-market work behind the studio and one of its products.

Most outbound work falls apart in the middle. Companies get found and a few get messaged, and a month later there is no record of what happened to the rest.

Refract is a design studio based in Sydney and New York. I joined to run go-to-market for the studio and for Cyna, one of the two products we build. The two sell in completely different ways, and neither had an outbound workflow running when I started. This post is about how that work was built.

1. Write the system down first

I started by writing down the order of actions.

Every step in it is marked one of three ways:

  • Automated: a script runs it.
  • Gated: the work gets prepared automatically, then it waits for approval.
  • Manual: I do it by hand, because automating it would break the whole point of it.

The rule underneath the split is simple. Anything that spends money at scale, changes our records, or reaches a real person has to be checked by a person first.

That split has held through every rewrite since. When I add a step now, the first question is which of the three it is, and the answer usually decides how it gets built.

2. Source more than you need

The target is about seventy high-quality high-intent leads a week.

A handful of data sources feed it, and each one watches for something different: a company that just raised money, one that just posted a design job, one that changed its senior team. Between them they turn up seven hundred to a thousand candidates a month on average, against a need of about three hundred. Those extra candidates are the reason for ranking.

So I wrote a script that scores them by tiers. The strongest thing it looks for is repetition. A company that two different sources picked up independently, for two different reasons, ranks above one that appeared once with a louder signal. That rule sits at the top of the score.

The script also re-checks each company before it goes anywhere. Data sources lag. A list of companies hiring a designer always holds a few who took the job down last week, and an email about a role that has already closed reads as automated. Nothing gets added to the CRM until it’s double checked.

3. Let one system hold the record

Attio, our CRM, holds every company, every person, and where each one has got to. Instantly sends the email and is not a second source of truth.

The two are not connected. When two systems track the same pipeline, they disagree inside a month, and after that the right data gets lost. For now the list moves between them as a file we export and upload by hand. That step will get automated, and while it is still manual it gives someone a last look at the list before it goes out.

We rebuilt the stages at the end of August. The old set had a stage called lead that four people used to mean four different things. Now two entry stages record how a company was found, and contacted means one thing only: connection request sent.

Naming the stages properly answered most of the questions we used to ask about the pipeline.

4. Keep the parts that need judgement manual

The LinkedIn outreach is done by hand.

Twenty connection requests a day, and a short message once someone accepts. One line about something we actually have in common, one easy question, no link and no pitch.

All of it could be automated. The line about shared context is what makes LinkedIn outreach effective. Connecting a profile to an outside sending tool also puts the account at risk.

I do save one thing. The first message goes into the record as I send it, word for word. After a few hundred of them there will be enough data to say whether that message can be automated at all, and which kinds could be.

5. Use email where the first channel failed

Once a week I look at the people who went quiet on LinkedIn.

If they read the message and passed, that is an answer, and they go into a nurture list. If they never accepted, or accepted and never opened it, then nothing was seen, and they go into the email queue. That is the whole trigger for the email side, and it needs a person.

Finding a work email runs as a waterfall, handled by Claude Code. The cheapest and most reliable source goes first, and an address only moves to the next one when the first one misses.

6. What carried across

Three things held in both projects.

  1. Write the system down before running it, in enough detail that someone else could pick it up.
  2. Give one tool the job of holding the record and keep the others simple.
  3. Decide in advance which steps are allowed to be automated, otherwise the steps that need judgement might end up automated too.

For Refract, this settled how the outbound work runs: sourced in volume, cut by hand, tracked in one place, and sent by a person for as long as that keeps working.

Written on by MinhGTM SpecialistMinh on LinkedIn