Hunter
Work email addresses: the people at a given company and how to reach them, the address of one named person at one employer, whether an address will…
Work email addresses: the people at a given company and how to reach them, the address of one named person at one employer, whether an address will actually accept mail, the company or person behind a domain or an address, and company/people search by ideal-customer profile.
Domain: hunter.io
Also known as: Hunter, Hunter.io, hunter.io, Email Hunter
Prefer the capability
bowmark.email covers this provider and routes around it when it is having a bad day. Reach for this page when you need hunter.io specifically.
Call it directly
bowmark.providers.hunter.findDomain(company: string, limit?: number): Promise<hunterDomainMatch>
bowmark.providers.hunter.countEmails(domain: string): Promise<hunterDomainEmailCount>Functions
| Function | What it does |
|---|---|
findDomain | Turns a company NAME into the domain it sends mail from — the missing first step for every lead that arrives as "Jane Smith, Acme Corp" with no website. |
countEmails | How many work email addresses Hunter holds for one DOMAIN — the cheap look-before-you-search that says whether a company is worth spending a real lookup on. |
Types
interface hunterDomainCandidate {
name: string // the company as Hunter records it, e.g. "Kettlewell Colours"
domain: string // its email domain, e.g. "stripe.com" — the key this site indexes on
emailCount: number // addresses Hunter holds there. NOT a confidence score; 0 is real
logo: string | null
}
interface hunterDomainMatch {
query: string // the company name as asked, verbatim
bestMatch: hunterDomainCandidate | null // null when the top candidate is NOT the company asked for
candidates: hunterDomainCandidate[] // Hunter's OWN order — best name match first
}
interface hunterDomainEmailCount {
domain: string // the domain as asked, normalized (lowercased, no "www.")
total: number | null // addresses Hunter holds there. NULL IS NOT ZERO: null = not indexed, 0 = indexed and empty
name: string | null // the company Hunter records for that domain; non-null exactly when total is
otherDomains: hunterDomainCandidate[] // the other rows the search surfaced, Hunter's own order
}Examples
// A lead arrives as a name plus an employer. Get the domain to look them up by.
const match = await bowmark.providers.hunter.findDomain("Basecamp LLC");
return match.bestMatch?.domain ?? null;// bestMatch is null when Hunter does not actually know the company — the
// candidates are still worth showing a human, but do NOT key a lookup on them.
const match = await bowmark.providers.hunter.findDomain("Tamarack Fabricating", 10);
if (match.bestMatch) return { domain: match.bestMatch.domain, confident: true };
return { confident: false, candidates: match.candidates.map((c) => `${c.name} (${c.domain}, ${c.emailCount} addresses)`) };Related
email | Email (work addresses & domains) — the capability this provider backs. |