BetterContact
Waterfall email enrichment with multi-provider verification, async (start + poll); contact-focused, billed on result retrieval.
Reach for BetterContact on a work-email (BD / selling-to-companies) run when single-provider finders (Prospeo, Lusha) miss and you want multi-provider waterfall email enrichment with triple verification.
Work email only. start_enrichment returns a corporate address at the person's current employer, never a personal one. It must not be used on a candidate / personal_email pipeline, including as a fallback when that waterfall returns fewer hits than hoped (a spending_cap_reached or still_enriching shortfall means retry later, not switch provider). Every start_enrichment / get_enrichment response carries _meta.channel: "work_email" and a work_email_only warning, and a call that declares "channel": "personal" (or personal_email / candidate) in the request body is refused with 400 work_email_only before any credit is spent.
Managed credits or BYOK, billing is deferred: the launcher is free and you're charged once on result retrieval, when the result carries data, 0.5 credits for an email reveal, 4.8 for a phone reveal (email included).
Capabilities
| Tool | Does | Cost |
|---|---|---|
start_enrichment | Launch an enrichment job (up to 100 contacts), returns a request id | Deferred |
get_enrichment | Fetch terminal results by request_id (reports credits_consumed) | Free retrieval |
Guidance
- Enrichment is async:
start_enrichmentreturns a requestidimmediately, use it as therequest_idforget_enrichmentto poll for terminal results. The payload key is exactlyrequest_id; any other key is refused with400 invalid_payloadnaming the expected one. - A job belongs to the workspace that started it.
get_enrichmentwith anidanother workspace launched (or one Hyreflow never issued) reads the same as one that doesn't exist:404. On your own BetterContact key the vendor account is the boundary instead. - Email status hierarchy: deliverable > catch_all_safe > catch_all_not_safe > undeliverable. Only trust deliverable and catch_all_safe for outreach.
- Only reveal what you need: set
enrich_phone_number: trueonly when the play actually needs a phone number: it raises the charge from 0.5 to 4.8 credits (billed once, on retrieval, when the result carries data). - Batch up to 100 contacts per job. Rate limit is 60 req/min/key, shared across endpoints.
- Don't use it for email validation only (use a dedicated validator) or for company/org enrichment (it's contact-focused).
hyreflow tools execute bettercontact start_enrichment \
--payload '{"data":[{"first_name":"Ada","last_name":"Lovelace","company_domain":"example.com"}]}'Call it directly with hyreflow tools execute bettercontact start_enrichment, it isn't part of the default email_enrichment waterfall (see Integrations Overview). Note it is an async provider, it uses a start/poll cycle.
Atlas
AI-native recruiting ATS/CRM: candidates, contacts, companies, projects (jobs), opportunities (deals). Production writes; pilot before bulk.
Breezy HR
Coming soon — Breezy's own API is still in progress, so this is not connectable yet. Post a job to Breezy HR: title, description, employment type, location, department, category, experience and education levels, salary band, pipeline, questionnaire, tags and application-form field visibility. BYOK-only, production writes.