Identity-anchored AI link discovery with Exa
Agentic professional network startup · Startup
The business said
- “Build a full profile-enrichment platform”
- “Write bespoke scrapers for every social network”
- “Train a custom entity-resolution model”
- “Hire a research team to vet each profile by hand”
- “Crawl the whole open web with a general spider”
- “From one LinkedIn URL, find a person's real links and reject same-name impostors”
You do not need to crawl the whole web. You need an AI pipeline that finds one person's real links with Exa and rejects same-name impostors.
An identity-anchored link discovery pipeline, powered by Exa
The startup was building an agentic professional network where every profile assembles itself from a person's scattered online footprint: GitHub repositories, research papers, conference talks, podcasts, personal sites, and press. Storage was never the hard part. Discovery was. Given a single LinkedIn URL, how do you find the rest of a person's real web presence, and how do you keep the dozens of strangers who share their name out of the result?
We built an identity-anchored link discovery pipeline on top of Exa, the neural web search API. Exa reads the LinkedIn page into an identity anchor. Claude turns that anchor into a structured identity: full name, current title, employer, past companies, schools, and declared personal sites. From that identity we generate a set of high-precision, phrase-anchored Exa search queries and run them in parallel against Exa semantic search, up to 100 results per query.
Every candidate URL is validated and classified by Claude in batches of fifty, with the identity context pinned as a prompt-cache boundary so classification stays fast and cheap batch after batch. Accepted links feed two Exa expansion passes: find_similar surfaces neighbouring pages by the same author, and subpage crawling drills into project and portfolio sites. A final recursive HTML crawl follows the anchors those pages point to, within a fixed page budget, classifying each link with the same model and the same identity rules.
The result is a self-building profile. One LinkedIn URL in, a deduplicated and identity-verified set of links out, with same-name impostors rejected by the classifier instead of by a human reviewer. The whole run is asynchronous, dispatched as a Cloud Run job, logged row by row in Postgres, and finishes in under a minute per person.
- 7% — deviation
- 92% — recall
- 96.4% — precision
