find people at these companies
get me contacts for this exhibitor list
senior execs at each of these companies
Turns a raw list of companies (name + domain, typically from an event exhibitor list) into a table of senior contacts with verified, risk-scored email addresses. Built from hard-won trial and error against messy small-business data — most companies on a list like this are NOT well-indexed, and the naive approach (search_people with a company_domain filter, stop after 2 hits) misses the majority of real, findable emails.
CSV of company name + domain
to search_people (free-text query first, then exact company name for the fuller roster)
to linkedin_to_best_email / search_business_email_by_name (chase an email per qualifying person)
to reverse_linkedin_lookup (confirm an email genuinely doesn't exist)
to reverse_email_lookup (pattern-guess common conventions, batched)
each email checked against acceptable risk score (A/B/C/D/F) before it counts toward the target
A CSV: row, company, domain, contact_name, title, seniority, email, email_type, risk_score, verification_status, linkedin_url, notes. Every match is tagged VERIFIED / INFERRED / UNVERIFIED / NOT FOUND so rows are safe to act on — LinkedIn-only fills, stale addresses, and out-of-range risk scores are flagged, not silently mixed in.
search_people filters on query, company, company_domain, country, state, city, seniority, department or functional_area, industry, linkedin_industry, naics_code, employee_range, and revenue_range.
query, so a filters-only search runs ~40x cheaper and lands more precisely. A bare query is never the right shape; at minimum it gets country attached (~99% fill rate).industry buckets, LinkedIn's ~150 niche labels, or a NAICS code at any depth. Shortening the code widens the net.seniority/industry/department are ~60% filled and naics_code/linkedin_industry ~50%, and every filter is exact-match, silently dropping records where the field is empty.count_only: true returns a match count without fetching data or charging tokens, and every response carries results.total to read before paginating.query beats the exact company and company_domain filters on messy small-business data — company is an analysed match, so every word you pass must appear in the stored name, and one extra word zeroes the result. Start with query (plus country — never bare), then use the exact stored name to pull the fuller roster. This is the one workflow where a query-led search is right; everywhere else, filters firstlinkedin_to_best_email → search_business_email_by_name → reverse_linkedin_lookup → pattern-guessing, checking each result's risk score as it surfaces and moving on if it's outside the acceptable setreverse_email_lookup (batched, up to 100 per call, no token cost on misses) before giving up — it finds real emails the forward tools missGet the Find Decision Makers and Contact Information from Company Names skill file. We'll send occasional updates - no spam.