←Attio plays
Your own data

Find lookalikes of your closed-won accounts

A Kestrel build, tested on test data in our own Attio workspace, not client work. The play reads the won deals, asks for each customer's direct competitors, drops the ones already in Attio, pulls firmographics and keeps only the companies that pass a fixed fit score. Kept companies go on a Lookalikes list with the customer they came from and the reason. The test ran on 4 won test deals on real companies, and nothing was sent.

Works ifYou have won customers in Attio and want more companies like them on a list.

Built for · Kestrel · Attio test workspace
Attiocontext.devDeeplineCrustdataTypeScript

Built asDeepline PlayOn a won dealcapped at $0.30 a run

Get the prompt for your coding agent

The system

~/builds/attio-lookalikes-from-won
01Source

Attio

Won deals

Each deal's company is a seed.

Attio
4 seeds
Direct competitors per seedfree, up to 10 eachcontext.dev
02Candidates

context.dev

Direct competitors

context.dev
30

Fallback

Companies listing the seed as a competitor

When context.dev times out.

Crustdata
10
Already in Attio? Skipfree check before any paid lookupAttio
03Score

Crustdata

One lookup per domain

Headcount, growth, funding, country, industry.

Crustdata

Fit gate

Tier D and unknown out

5 per seed20 total
04Attio write-back

Company

Upsert on domain with the score

Attio

List

Lookalikes · New

Seed company and similarity reason.

18
Accounts that look like the ones that already bought, ready for review.

The signal

A company competes with one of your won customers.

Why it predicts a purchase

It sells a similar product to similar buyers, so it likely has the problem your customer paid you to solve.

How it works

01

Start from the won deals

A deals query takes the won deals and follows each one to its company. Each of those companies is a seed.

02

Ask for direct competitors, for free

context.dev returns up to 10 direct competitors per seed through Deepline at no cost. If it fails twice, Crustdata looks for companies that list the seed as a competitor in the seed's industry, 10 rows at $0.002 each.

03

Gate before and after the paid lookup

Companies already in Attio are dropped first, which costs nothing. The rest get one Crustdata lookup per domain, cached, and the fixed fit score. Tier D and companies Crustdata doesn't know are dropped. The best scores go first, at most 5 per seed and 20 in total, counting what is already on the list.

04

Write to Attio

Each kept company is upserted on its domain with its score, tier and reasons, then added to the Lookalikes list with the seed company, a similarity reason and stage New. Entries already on the list are checked against the current fit model on every run, and one that drops to tier D moves to Rejected with the reason.

Build notes

  • A batched Crustdata search for 30 domains returned 88 rows, alias domains and duplicate pages included, and the row limit cut off real matches. The play now does one lookup per domain.
  • context.dev timed out on one of the 4 seeds on every attempt. Deepline's gateway stops at 60 seconds even when a longer timeout is requested, so that seed's candidates came from the Crustdata fallback.
  • Crustdata's competitor data is noisy. The fallback returned an identity-verification company as a lookalike for a user-research tool, and it still passed, because the fit score checks firmographics and not the product.
  • The Rejected path has not fired yet: all 18 entries were still tier C or better on the current fit model.

Questions

Why start from a won customer's competitors?

A direct competitor of a customer sells a similar product to a similar buyer, so the reasons your customer bought often apply there too. context.dev returns them for free through Deepline. When it failed on a seed, the fallback was a Crustdata search for companies that list the seed as a competitor in the same industry.

Why cap it at 5 per seed?

Without a cap, one customer in a crowded market fills the whole list. The cap counts the entries already on the list, so a re-run never overfills it, and an entry that gets rejected frees its slot.

More builds

All builds →
Your own data

Turn a vertical database into a 3-touch outbound engine

A vertical database already lists your buyers with contacts, and a founder will make the closing calls.

Open→
Your own data

Turn website visitors into qualified leads

You already identify companies visiting your site.

Open→
Your own data

Build lists from data you already own

You have a CRM or database you have never fully worked.

Open→

The next step

Let's get started.