# Enrich a Conference Attendee List — Ravn

Canonical: https://askravn.com/skills/event-attendee-enrichment

Claude skill

# Enrich a conference attendee list

Event lists usually arrive as a name and a company name, sometimes a title, rarely an email. This skill resolves each company to a domain, finds each person's work email, verifies it and fills in missing titles, so the user can follow up after the event.
[Download SKILL.md](https://askravn.com/skills/event-attendee-enrichment/SKILL.md) [Start free](https://askravn.com/#start)

Install
## One command.
Installs into `~/.claude/skills` for Claude Code. In Claude, upload the downloaded file under Settings → Capabilities → Skills.
```
npx ravn skill install event-attendee-enrichment
```

## When to use

- After a conference, trade show or meetup when the user has a badge-scan export or a published attendee list.
- Rows have `Name` and `Company` but no email or website.
- For lists that already have domains, enrich-csv with `search_business_email_by_name` is simpler.

## Before you start

- Check the connection: `npx ravn whoami` (free).
- `search_business_profile_by_name` and `search_companies` 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. Finding and verifying emails are ours and need no key. Every call is one lookup; misses are free.
- Ask where the list came from. Badge scans of people who visited the user's booth are a warm audience. A list of all attendees bought or scraped from elsewhere may not be allowed under the event's terms; check before going further.

## Steps

- Resolve company names to domains. The email finder needs a domain. For each unique company name: - If you know the domain with confidence, use it. - If not, call `search_companies` with the name as `query` and `limit` 1 (one lookup per company found). Confirm the match by name and country.

```
{ "query": "Northwind Logistics", "limit": 1 }
```

- If still unsure, leave the domain blank and mark the row `needs_domain`. Do not guess. 2. Write the domain into a new `Domain` column and save `attendees-domains.csv`. 3. Find emails. Dry run, sample, full:

```
npx ravn enrich attendees-domains.csv --tool search_business_email_by_name --map name=Name,company=Domain --dry-run
npx ravn enrich attendees-domains.csv --tool search_business_email_by_name --map name=Name,company=Domain --limit 10 --out sample.csv
npx ravn enrich attendees-domains.csv --tool search_business_email_by_name --map name=Name,company=Domain --out attendees-emails.csv
```

Each hit already carries a verdict in `rw_verdict`, plus `rw_pattern` and `rw_confidence`. 4. Fill titles where the list has none, only if the user wants them. Make a copy of the rows with an empty title, rename the step 3 `rw_*` columns (for example `rw_email` to `found_email`, `rw_verdict` to `email_verdict`) so the next pass does not clash, then:

```
npx ravn enrich no-title.csv --tool search_business_profile_by_name --map name=Name,company=Domain --dry-run
```

- Sort by verdict: keep `valid`; mark `risky` (catch-all) and `unknown` for manual review; drop `invalid`.
- Tag each row with the follow-up track the user wants, for example `visited_booth`, `attended_talk`, `general`.

## Output

`attendees-enriched.csv` with the original columns plus:

- `Domain` and `domain_source` (`known`, `search_companies` or blank)
- `rw_status` (`ok`, `not_found`, `error`, `dropped`), `rw_email`, `rw_verdict`, `rw_risk_score`, `rw_pattern`, `rw_confidence`
- Title fields from the profile pass, where run
- `follow_up_track`
Summary: attendees in, domains resolved, emails found, valid versus risky, titles filled, and lookups used.

## Rules

- Respect the event's terms for how the list can be used, and honour any "do not contact" flag on the export.
- Never contact anyone who opted out. See [/privacy#optout](https://askravn.com/privacy#optout).
- Drop invalid and risky emails before any automated send.
- No FCRA uses.
- On a 429 `fair_use_exhausted` or a 403 `provider_key_required`, stop and tell the human; rows not reached are `dropped`.

## Example prompt

We scanned 220 badges at the logistics expo. The export just has Name, Company and sometimes Title. Get me verified work emails and titles so we can send follow-ups on Monday.

## More [skills](https://askravn.com/skills)
Install them all with `npx ravn skill install --all`.
- [Find Decision Makers at Target CompaniesUse when someone has a list of target company domains and needs the actual buyers at each one, with titles and verified work emails..](https://askravn.com/skills/find-decision-makers)
- [Find Someone's Work Email by NameUse when someone needs one person's work email from their name and company, found from the company's own address pattern and then checked..](https://askravn.com/skills/find-work-email)
- [Hashed Email Audience for Meta and Google AdsUse when someone wants to upload their own customer list to Meta or Google Ads as a hashed audience, verifying emails first and hashing locally..](https://askravn.com/skills/hashed-email-audience)
- [Clean and Enrich a HubSpot Contacts ExportUse when someone exports HubSpot contacts and wants them verified, gaps filled and a clean file ready to re-import without creating duplicates..](https://askravn.com/skills/hubspot-export-cleanup)
- [Identify Website Visitor Companies from IPsUse when someone has server or analytics logs and wants to know which companies visited, turning IPv4 addresses into organisations with honest gaps..](https://askravn.com/skills/identify-website-visitors)
- [LinkedIn Profile URL to Verified EmailUse when someone has LinkedIn profile URLs and wants a verified email for each person, work email first, via your own data provider..](https://askravn.com/skills/linkedin-to-email)
