List
CSV contact enrichment
Turns a CSV of names and companies into people with title, LinkedIn, location, work email and an angle to lead with.
- For
- SDRs and account executives
- You provide
- A CSV of names and companies
- You get
-
- Enriched table to export
- Evidence per person
- Unmatched rows, with the reason
-
Today I'm building a contact desk for a Vercel seller.
-
One CSV, nineteen names — Trayo turns it into a worklist.
-
I pulled sixteen verified emails straight out of Trayo.
-
Open a row that needs review and the desk says why: the email is verified but flagged as an identity conflict, so the advice is to re-verify before sending.
-
A clean match opens with what to lead with and the evidence behind each claim, down to the Trayo call it came from.
-
An unmatched row is kept, not dropped: the panel shows how matching was attempted and the closest person Trayo does hold.
The prompt
Paste it into any coding agent with the Trayo MCP connected.
- + any MCP client
Use Trayo to build a contact enrichment desk. Let me paste or upload a CSV of names and companies — that is all I have — and for each row find the person, their LinkedIn profile, location, current title and work email. Then go further: for each person, work out what they are likely to care about given their role and their company's recent activity, and what angle my product should lead with. Show a table I can scan and export, with a detail panel per person carrying the evidence behind each claim. Be explicit about rows you could not match rather than quietly dropping them — a half-matched list I know the shape of is more useful than a clean one I cannot trust.
Take the tour
A narrated walkthrough of the app.
The building blocks
What this app asked Trayo for
Every name, number and email on the page came back from one of these. None of it was typed in.
Reads your workspace
What you sell, who you sell to, and the buyer personas already saved in Trayo.
Finds companies
Surfaces accounts that match your ICP, plus lookalikes of the ones already working.
Researches an account
A live snapshot per company — size, stack, why-now signals and why it fits.
Finds the right people
Named stakeholders at an account, matched to the buying roles you care about.
Gets verified emails
Work addresses with a confidence signal, so a bad match is visible rather than sent.
Builds your account list
Imports, updates and organises accounts so the work survives the session.
How it was built
The data behind each screen, and what's faked for the demo.
Built in 18 min · 6 capabilities · 23 live API calls
This is an internal desk for a Vercel seller who has a list of names and companies and nothing else. It takes a 19-row CSV, resolves each row to a real person, and shows a scannable table — person, company, work email, company HQ, the product to lead with, and a match status. Clicking any row opens a detail panel: what that person is likely up against, the angle to open on, the evidence behind each claim with the Trayo call it came from, the step-by-step match trail, their career on file, and their company’s recent activity. Export writes the whole table to CSV, unmatched rows included and labelled.
Everything on screen came from Trayo. Eight accounts were imported (Linear, Vanta, Clay, Retool, Mercury, Harvey, Sierra, Deel); trayo_search_stakeholders_batch ran across 15 company lookups and supplied the rosters each CSV name was matched against; 18 people were created with trayo_add_people; trayo_enrich_emails returned 17 verified addresses out of 18 lookups — one came back not_found and one came back verified but with identityConfidence ‘conflict’, on a domain belonging to a company the employer had acquired. Two batches of trayo_research_person_batch supplied career history, insights and inferred challenges, and eight trayo_research_company calls supplied the why-now events. Of the 19 rows, 13 matched cleanly, 4 matched with a caveat worth reading, and 2 matched nothing.
Three things did not work, and the app says so rather than hiding them. Trayo returned no person-level location on any surface for any of the 18 people, so the Location column is the company’s HQ and is labelled as that — the per-person location the brief asked for is not in this data. Two stored company keys were wrong: linkedin.com/company/retool is not Retool and linkedin.com/company/sierra-ai is not sierra.ai, and both returned zero candidates until the lookup was re-keyed on the website; five rows depended on that repair. No file was uploaded in this unattended session, so the CSV stands in for one: its name/company pairs are real Trayo results, deliberately roughed up the way a real list arrives (a dropped accent, an abbreviated surname, an ambiguous company string, one person paired with the wrong employer). Push to Salesforce, Draft opener, Share digest and Upload CSV are previews — they show what would be sent and send nothing; Export is real. The brand came from the library’s own brandFromWorkspace/applyBrand with the single supplied colour #171717 in dark mode; because that colour is a hueless near-black, the library reports that it fills dark-mode accents with near-white #e8e8e8 rather than lifting the black, and that no background was supplied — both notes are shown on the /about page.
More recipes
Brief
Pre-call dossier
Puts everything worth knowing about one prospect on one screen, with five bullets to read before the call.
You provide: A person's name and company, or an email address
Board
Intent leaderboard
Ranks companies that showed two or more buying signals in the last 90 days, with the events as proof.
You provide: A target number of companies, and your saved ICP
List
Post engager lead list
Paste a LinkedIn post URL and get the ICP-fit people who engaged, each with an opener based on their comment.
You provide: A LinkedIn post URL