Find new senior hires at target accounts
A Kestrel build, tested on test data in our own Attio workspace, not client work. The play reads the target account list, finds people who started a Head, Director, VP or C-level role there in the last 6 months, marks each one as a promotion or an external hire, and writes them into Attio with a list entry. The test ran on 21 real software companies used as test accounts. 8 senior starts turned up at 2 of them, and nothing was sent.
Works ifYou keep a target account list in Attio and a new leader there is a reason to get in touch.
Built asDeepline PlayMonthly schedulecapped at $0.20 a run
Get the prompt for your coding agentThe system
Attio
Target account list
Company and domain per entry.
Rows
Senior starts at 2 accounts
Empty
No senior start
Nothing billed.
External hire
New to the company
Promotion
Earlier role at the same company
Person
Title, start date, hire type, seniority
Matched on LinkedIn, then name and company.
List
New in role · New
The signal
Someone started a senior role at a company on your target list.
Why it predicts a purchase
A new leader often reviews the tools and vendors they inherit in their first months, before their own choices are settled.
How it works
Read the target accounts
A list entries query on the target account list gives each company, and the company record gives its domain.
One search per account
One Crustdata person search per domain: a current role at that domain, started in the last 6 months, with a senior word in the title (head, director, VP, chief, founder, the C-level abbreviations). It bills per returned row and empty results are free, so accounts without a new leader cost nothing.
Gate every row in code
The same current role has to be at the domain and start inside the window, because search filters can match across two current roles. Seniority comes from the title only. Advisors, board seats, interns, founder's office and assistant roles are out. Earlier roles at the same company make it a promotion.
Write to Attio
People are matched on LinkedIn URL, then on name and company, and created only when nothing matches. Each gets job title, company, role_started_at, hire_type and seniority, plus an entry on the New in role list at stage New. An entry that already exists keeps its stage.
Build notes
- Crustdata's own seniority level labelled Talent Partner and Founder's Office roles as C-level in the pilot. Seniority now comes from the words in the title, and that pilot's result was thrown away.
- All 8 hires were at 2 fast-growing companies that were added to the test list so the play had real hiring to find. The other 19 accounts returned nobody, and people data is thin at small companies.
- Forager's free count saw no senior starts at the first 15 accounts, and its role start dates stop around May 2026, so it was dropped as a pre-check.
- People are written without an email. Attio can't make LinkedIn a unique key on People, so the play looks each person up before creating one. A verified email step belongs before any sequence.
Questions
Why split promotions from external hires?
An external hire is new to the company and often reviews the tools they inherit. Someone promoted already knows the setup. The message differs, so the play stores hire_type on the person. It counts as a promotion when the person held an earlier role at the same company.
What if 6 months finds nobody?
Then the play widens to 12 and then 24 months, and role_started_at keeps each real start date so nobody mistakes an old hire for a new one. On the first 15 test accounts, all small companies, 6 months found nobody and 24 months found 4. After 6 growing companies were added, 6 months found 8 and no fallback was needed.
More builds
All builds →Detect 163 B2B tools from a company's website and DNS
Your product replaces, integrates with or sells to users of specific tools.
Reach companies before their public deadline
Your buyers make public promises with a deadline.
Reach companies hiring for what you sell
You sell a service that companies also try to hire for.
The next step