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.
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
NameandCompanybut no email or website. - For lists that already have domains, enrich-csv with
search_business_email_by_nameis simpler.
Before you start
- Check the connection:
npx ravn whoami(free). search_business_profile_by_nameandsearch_companiesneed your own provider key connected — runravn keys add pdlfirst; these tools run on your own provider account. If a tool returns 403provider_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_companieswith the name asqueryandlimit1 (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; markrisky(catch-all) andunknownfor manual review; dropinvalid. - 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:
Domainanddomain_source(known,search_companiesor 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.
- Drop invalid and risky emails before any automated send.
- No FCRA uses.
- On a 429
fair_use_exhaustedor a 403provider_key_required, stop and tell the human; rows not reached aredropped.
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
Install them all with npx ravn skill install --all.