Backfill Profiles From an Email List
Outcome: a list of email addresses turned into named, titled, company-attached records — with dead addresses filtered out before you pay to enrich them.
- Surface
- MCP server
- Level
- Beginner
- Uses
- verify_email · find_linkedin_from_work_email · linkedin_profile_enrich · enrich_person
- Credits
- ~3.3–4.3 per contact
- Prerequisite
- A list of email addresses
Verify first
The order matters and it is counter-intuitive. Verification is the cheapest step, so it runs first: a dead address is not worth resolving, enriching or profiling.
verify → resolve profile → enrich profile → enrich person
cheap moderate moderate moderateOn a list two years old, verification alone may remove a third of the rows. Running it first is the difference between paying three credits for every row and paying three credits for the rows worth having.
The chain
verify_email
Drop invalid and disposable. Keep valid; decide on catch-alls per your policy.
find_linkedin_from_work_email
Resolve the address to a profile URL. This is the step that either works or does not.
linkedin_profile_enrich
Current title, company, location, history.
enrich_person
Any remaining person-level detail you need.
Reference: find_linkedin_from_work_email, linkedin_profile_enrich.
The prompt
Using the SyncGTM MCP server, backfill profiles for these email addresses:
[paste 20 addresses]
Steps, in this order:
1. verify_email on all of them. Drop anything invalid or disposable.
2. For the survivors, find_linkedin_from_work_email.
3. For those that resolved, linkedin_profile_enrich.
Skip any address at a free-mail domain (gmail, outlook, yahoo, etc.) —
list those separately, do not process them.
Cap at 20. Return a table: email, status, name, title, company, profile URL.
For rows that did not resolve, leave the profile fields blank and continue.The free-mail exclusion matters: those need a different tool and a lower expected match rate, so separating them keeps both the cost and the reporting honest.
What to expect
| Input | Resolution rate |
|---|---|
| Work email at a corporate domain | 60–75% |
| Work email at a small business | 35–55% |
| Personal or free-mail address | 25–45% |
Role address (info@, sales@) | Near zero |
Filter role addresses out before running. There is no individual behind info@acme.com, so every one is a guaranteed non-resolution — and while a miss is not billed, it drags your reported match rate down for no reason.
When the company does not match
Watch for a specific and valuable case: the resolved profile shows a different company from the email domain.
That means the person has moved since you captured the address. Two consequences:
- The email is dead, whatever verification said about the domain.
- The person is a job-change lead — warm, in-window, and worth more than the record you were trying to repair.
Flag these separately. See Job Changes & Champions.
Handling the misses
| Miss | Fallback |
|---|---|
| Did not resolve to a profile | Enrich the company from the domain — you at least know the account |
| Free-mail address | Try find_linkedin_from_personal_email |
| Verified but no profile anywhere | Keep as an email-only contact; not everyone has a profile |
| Nothing works | Leave it. Coverage improves; re-run in a quarter. |
Do this now
Separate role addresses and free-mail
Before running anything.
Run verification on the whole list
Note how many survive. That number is a finding about your list’s age.
Resolve profiles for survivors
Flag company mismatches
They are job-change leads.
Enrich the resolved profiles
Compute the match rate
Resolved ÷ verified.
Fall back on the misses
Company enrichment at minimum.
Check your work
- Verification ran before any resolution
- Role addresses and free-mail were separated out
- Company mismatches are flagged as job changes
- You have a match rate figure
- Misses have a fallback rather than being dropped
Where this breaks
Enriching before verifying is the expensive ordering, and on an old list it can double the cost for no benefit. A list from two years ago may be a third dead — and every one of those rows costs a resolution and an enrichment attempt before anything tells you the person is unreachable. Verification is the cheapest step in the chain; it goes first.
Further automation
This chain is worth running over every email-only list you own: newsletter subscribers, event registrations, old form fills, support contacts. Most companies have thousands of bare addresses nobody has ever qualified, and it is often the cheapest lead source available to them.
Next lesson
05 — A warm list from post engagement, sourcing people rather than backfilling them.
Reference for this lesson: verify_email, find_linkedin_from_work_email, enrich_person, Waterfall Enrichment.