Bowmark AIdocs

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

FunctionWhat it does
findDomainTurns 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.
countEmailsHow 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)`) };
emailEmail (work addresses & domains) — the capability this provider backs.