Run buyer matching automatically on a schedule with the same settings as a manual run. If another run is already in progress at fire time, that day's scheduled run is skipped (never queued). Scheduled runs land in Run History like any other run.
Paste an Attio lead or company URL. We pull the seller from the Attio record (the canonical source). If the record is thin on financials/notes, we automatically scrape the company's website to fill in context before matching. Free-form names and bare domains aren't accepted — every match target should already have an Attio record.
https://app.attio.com/<workspace>/leads/record/<id> ·
https://app.attio.com/<workspace>/companies/record/<id>
For sellers that aren't in Attio yet. Paste deal bullets, CIM excerpts, broker notes — anything describing the company. Haiku extracts the same fields the Attio path uses (industry, EBITDA, revenue, region, products, owner intent, customer notes, notes, description), then matches each seller against every buyer. Output is a single combined CSV in the same format as bulk runs.
| ID | Status | Source | Sellers | Strong | Moderate | Dropped | CSV | Started |
|---|
Every deal email sent to a buyer, across all campaigns. A buyer can only ever receive a given run's email once — the send-once guard excludes anyone already on this log (status "sent") from later sends of the same run.
| When | Buyer | Firm | Network | Run | From | Deals | Status |
|---|
Scrapes each buyer's partner_website and uses Haiku to extract a structured investment profile. Results are cached in Postgres and feed the matcher's web_profile column. Manual refresh — already-enriched buyers are skipped unless you click Refresh All.
| Firm | URL | Error | Retries | When |
|---|
Search by project name or company name to find the mapping.
Every buyer and all of their matches, in one directory. Search by buyer — or by a seller company or project name to find which buyers matched it — then click a buyer to see their full match list with company details.
Searches the web and acquisition news (plus SEC Form D filings) for acquirer firms you don't already have, dedupes them against Attio, tries to find a contact email on their site, and files each candidate for your review. Firms without an email land in the "Needs contact info" queue. Nothing is written to Attio until you approve it.
Buyers in your Attio database with no email address — they can't be matched or emailed until someone's contact info is added. Fill one in here (it writes straight to Attio) and it drops off this list after the next buyer sync.
Validates every buyer email through Enrichley. Hard-invalid addresses are removed from the Attio record (and from matching immediately), landing the buyer in Missing Contacts and the Invalid report below so you can find a replacement. Catch-all and unknown results are kept — they may still deliver. Already-checked emails are skipped unless you re-check all or the email has changed.
Type a firm name (and its website if you have one) to run the full pipeline live and watch every stage: website resolution → team/about page discovery → on-site contact extraction → a real BetterContact lookup with the webhook attached. Use this to confirm each piece is working and to see exactly where a firm falls through. The BetterContact step uses 1 credit.
These are the buyer fields the matching engine scores against. Toggle a field off to exclude it entirely, or set its weight (0–100) to tell the model how heavily it should influence the match. Higher weight = more influence. Changes apply to the next run.
Control how buyer web profiles are gathered and which buyers get enriched. Enrichment turns sparse Attio buyer rows into richer signal for matching.
The matcher reads buyers from a local cache for speed. Attio stays the system of record — this sync pulls buyers (including team-added notes and status) from Attio into the cache. You can also sync on demand from the Run Matching tab.
Controls the "Find Buyers" tab: which industries to search buyers for, which buyer types to include, and which sources to use.
Deal emails can be sent through Resend (addresses on a domain verified in your Resend account) and/or Microsoft 365 mailboxes (via the connection below). The send workflow only offers the addresses listed here.
Lets Microsoft-hosted inboxes send campaign emails via Microsoft Graph — no per-mailbox passwords, and it survives Microsoft's shutdown of basic SMTP auth. One-time setup in Azure Portal: register an app (Entra ID → App registrations), add the application permission Mail.Send (Microsoft Graph), grant admin consent, create a client secret — then paste the three values here. Any licensed mailbox in your tenant can then be added as a sender below.
Warm-up throttling for Microsoft senders. Their emails don't go out immediately — they land in a persistent outbox and drip out per inbox within these caps (surviving restarts). Add more Microsoft inboxes to raise total daily volume. Resend senders are unaffected.
"Replies go to" sets the Reply-To header on everything sent from that address — when a buyer hits reply, that's the inbox it lands in. Leave it blank to receive replies at the sender address itself. Either way, the receiving address must be a real monitored mailbox in your email provider (Resend only sends — it doesn't host inboxes).
Create an account with a temporary password and share it with the user. They'll be required to set their own password on first login. Users can't self-register. New users start with access to Dashboard and Run Matching — grant more tabs (Find Buyers, Enrichment, etc.) per user in the table below.
| Name | Firm | Network | Deals |
|---|
{Hi|Hey|Hello} picks one option at random (nesting works).
Personalization tokens: {{first_name}} {{last_name}} {{company}}.
The deal blocks (blinded project names + bullet points) are inserted automatically between intro and closing.