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 asDeepline PlayOn a won dealcapped at $0.30 a run
Get the prompt for your coding agentThe system
Attio
Won deals
Each deal's company is a seed.
context.dev
Direct competitors
Fallback
Companies listing the seed as a competitor
When context.dev times out.
Crustdata
One lookup per domain
Headcount, growth, funding, country, industry.
Fit gate
Tier D and unknown out
Company
Upsert on domain with the score
List
Lookalikes · New
Seed company and similarity reason.
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
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.
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.
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.
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 →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.
Turn website visitors into qualified leads
You already identify companies visiting your site.
Build lists from data you already own
You have a CRM or database you have never fully worked.
The next step