Sai opens each lead's LinkedIn profile to confirm current title and employer, researches the company through public sources for size, industry, HQ, and funding stage, and finds one dated buying signal. New columns are written back into the same Google Sheet. Fields that could not be verified are marked rather than filled with a guess.
The recording is a real session. The sheet on the right is what it produced.
Sai opens each profile, pulls the signal, and writes the row, live, in a real browser.

Eight columns, sorted by score, with a source link behind every claim.
A Google Sheet with lead names and companies, or a pasted list. Edit access to the sheet.
New columns in the same sheet: verified title, company, company size, industry, HQ location, funding stage, LinkedIn URL, company website, public email, and a dated buying signal. Unverifiable fields marked "not found" or "conflicting sources". Plus a count of how many leads were fully verified and which fields failed most often.
About a minute per lead. The recorded run enriched 31 leads in 64 steps and 33 minutes 17 seconds, which included opening all 31 LinkedIn profiles individually. A database lookup returns the same number of rows in seconds; the time here is spent on the per-profile check.
Run it monthly over an existing list to catch title and employer changes, or on each new batch of leads before outreach.
ZoomInfo, Apollo, Cognism, Lusha and HubSpot's Breeze Intelligence hold large contact databases and return matching records through an API or a spreadsheet add-on. Clay layers multiple providers into a waterfall, falling through to the next source when one returns nothing.
For a list of several thousand rows, this is the only workable method. An API returns records in seconds, coverage runs to hundreds of millions of contacts, and the results land directly in CRM fields.
Nothing below argues against using them. This task performs a different operation and is slower by two orders of magnitude.
An enrichment API returns a row with every field populated. The row does not carry the date each field was last confirmed.
B2B contact data decays continuously — people change jobs, companies are acquired, titles are restructured. Industry estimates commonly put annual decay at roughly a quarter of a database. The decay is not visible in the response: a title verified last week and a title captured eighteen months ago come back looking the same.
The practical failure is specific. Enrichment returns a complete row, the row looks correct, and the title in it is the one the person held two roles ago. An opening line written from that title is wrong in a way the recipient notices immediately.
Waterfall enrichment addresses coverage — finding a record when the first source has none. It does not address age. Coverage and freshness are separate properties.
This task reads the source rather than a copy of it.
From the recorded run:
"I opened each of the 31 LinkedIn profiles to verify current title and employer from the profile itself (not the stale sheet headline), then researched each company via public web/directory sources (Crunchbase, PitchBook, ZoomInfo, press) for firmographics and a dated signal."
Two things in that method are deliberate.
The existing sheet data is treated as unverified. The headline already sitting in the row is not carried forward. It is checked against the profile, which the person maintains themselves and which is the closest available source for a current title.
ZoomInfo appears among the sources consulted. The public pages of the database providers are read as part of company research. The task sits on top of these sources rather than in place of them.
Intent data from a platform is typically a score or a category — high intent, hiring surge, technology installed. These indicate a company is worth contacting. They cannot be quoted in a message.
This task records a specific event. From the run:
"Bicycle Capital (Stephania Greco) — $518.5M AUM, Miami; led Plata's $405M Series C"
"Bastion (Chelsea Orcutt) — 300–350 staff; Bastion USA / BUNTIN merger"
A named fund size, a named round, a named merger. Each is a fact that can appear in a first line without a second round of research.
Signals older than six months are labelled with their age, since a funding round from last year reads differently from one from last month.
Run monthly over an existing list to catch title and employer changes, or on each new batch before outreach begins.
On a repeat run over the same sheet, rows whose verified title has changed since the last pass are the ones worth reading — a job change is both a data correction and a timing signal.
For sourcing the list in the first place, finding stealth startup founders covers that step. For extracting structured fields from profiles you already have URLs for, LinkedIn profile data extraction is the narrower task. For the write-back mechanics on their own, automating Google Sheets updates covers that.