---
name: ravn-email-to-linkedin-profile
description: Use when someone has a list of email addresses and wants the person behind each one, with LinkedIn profile URL, name, title and company.
title: Email Address to LinkedIn Profile Lookup — Ravn
---
# Email addresses to LinkedIn profiles

Look up the person behind each email address: their LinkedIn profile URL, and optionally their full business profile (title, seniority, company). Use the lighter tool when only the URL is needed and the fuller one when the user wants context.

## When to use

- The user has a list of customers or sign-ups and wants their LinkedIn profiles to connect or research.
- "Who are these people?" for a batch of emails.
- Use `email_to_linkedin` when only the URL is needed. Use `reverse_email_lookup` when the user also wants title, company and location.

## Before you start

1. Check the connection: call `get_account` with `{}` or run `npx ravn whoami`.
2. `email_to_linkedin` and `reverse_email_lookup` need your own provider key connected — run `ravn keys add pdl` first; these tools run on your own provider account. If a tool returns 403 `provider_key_required`, stop and tell the human to add their key. Every call is one lookup; misses are free.
3. Ask which output the user needs. Both tools are one lookup per call, so if there is any chance they want title or company, `reverse_email_lookup` gives more for the same cost.

## Steps

1. Clean the list locally: trim, lowercase, remove duplicates and obvious junk.
2. Optional but useful for big lists: run `validate_emails` first (ours, 1 lookup each) and skip addresses that are `invalid` or `disposable`. Those rarely match a real profile.

```json
{ "emails": ["jane@acme.com", "sam@brightpath.io"] }
```

3. URL only, one address:

```json
{ "email": "jane@acme.com" }
```

`email_to_linkedin` returns `email`, `linkedin_url` and `full_name`.
4. Full profiles, up to 100 per call over MCP:

```json
{ "emails": ["jane@acme.com", "sam@brightpath.io"] }
```

`reverse_email_lookup` returns one item per address with its own `status` and a `result` holding `full_name`, `title`, `headline`, `seniority`, `city`, `state`, `country`, `industry`, `linkedin_url`, `company` and `last_updated_at`. Its `business_email` is re-verified.
5. A CSV with the CLI: dry run, sample, full.

```bash
npx ravn enrich customers.csv --tool email_to_linkedin --column Email --dry-run
npx ravn enrich customers.csv --tool email_to_linkedin --column Email --limit 10 --out sample.csv
npx ravn enrich customers.csv --tool email_to_linkedin --column Email --out with-linkedin.csv
```

Swap in `--tool reverse_email_lookup` for full profiles. The dry run shows how many lookups the run will use.
6. Check the match. If `full_name` clearly does not fit the name the user already has for that row, flag it as `match_check: review` rather than trusting it.
7. Free-provider addresses (Gmail and similar) match less often. Say so in the summary rather than retrying.

## Output

The CSV keeps every original column and adds:

- `rw_status`: `ok`, `not_found`, `error` or `dropped`.
- For `email_to_linkedin`: `rw_email`, `rw_linkedin_url`, `rw_full_name`.
- For `reverse_email_lookup`: `rw_full_name`, `rw_title`, `rw_seniority`, `rw_city`, `rw_state`, `rw_country`, `rw_industry`, `rw_linkedin_url`, `rw_company` (JSON), `rw_last_updated_at`.
- `match_check` where you flagged a name mismatch.

Summary: emails in, profiles found, match rate for work versus free-provider addresses, and lookups used.

## Rules

- Ravn does not scrape LinkedIn; profiles come from your own data-provider account, and opted-out people are never returned. Do not try to find them another way. See [/privacy#optout](https://askravn.com/privacy#optout).
- No FCRA uses: never look up applicants, tenants or candidates to decide credit, employment, insurance or housing.
- Use profiles for business context and outreach only.
- On a 429 `fair_use_exhausted` or a 403 `provider_key_required`, stop and tell the human.

## Example prompt

> Here's a CSV of our 300 paying customers' emails. Find their LinkedIn profiles and job titles so our CS team knows who they're talking to.
