Last updated: August 31, 2026

Ben Argeband, Founder & CEO of Heartbeat.ai — Extremely simple.
What’s on this page:
Who this is for
Recruiters and ops teams who want fast automations without engineering help, especially if you’re juggling an ATS/CRM, spreadsheets, and compliance steps like consent and opt-out tracking.
Quick answer
- Core answer
- Use Zapier to automate intake, enrichment, refresh, and suppression so candidate records stay current and opt-outs are enforced across your ATS/CRM and outreach tools.
- Key insight
- Trigger-based refresh reduces decay: re-check contact data when a record hits a re-engage stage, then write updates back to the same ATS/CRM record.
- Best for
- Recruiters and ops teams who want fast automations without engineering.
Compliance & safety
This method is for legitimate recruiting outreach only. Respect candidate privacy, opt-out requests, and local data laws. Heartbeat does not provide medical advice or legal counsel.
Recipe index
- Recipe 1: Upload → Enrich → Push to ATS/CRM (turn lists into recruiter-ready records)
- Recipe 2: New lead form → Instant enrich → Assign owner (speed-to-first-touch)
- Recipe 3: Stage change → Refresh contact data (reduce decay when it matters)
- Recipe 4: Opt-out anywhere → Suppress everywhere (centralize suppression)
- Recipe 5: Daily hot list digest (ops visibility without meetings)
The build-once framework
Speed in healthcare recruiting comes from removing repeat admin work while keeping compliance tight. The pattern behind every recipe below is the same: one trigger, one enrichment step, one write-back, one safety net.
- One trigger — a new row, a form submission, a stage change.
- One enrichment step — Heartbeat.ai via Zapier Webhooks or the API.
- One write-back — update the ATS/CRM record so recruiters work from a single place.
- One safety net — failure handling plus suppression so opt-outs never get re-contacted.
The trade-off: you’ll spend upfront time deciding where each field is mastered — ATS/CRM or spreadsheet — and standardizing field names so Zaps don’t drift over time.
Step-by-step setup
Step 1: Define your system of record
Decide where each item lives long-term before you build anything:
- Candidate identity: name, specialty, state(s), email, mobile phone.
- Workflow: stage, owner, next task.
- Compliance: consent status where required by policy or law, opt-out status, timestamp, channel.
Most teams treat the ATS/CRM as the system of record and use spreadsheets only as intake queues.
Step 2: Standardize a minimal field map
Create these fields, or equivalents, in your ATS/CRM and keep naming consistent everywhere:
- Full name
- Specialty
- State(s)
- Email (and optionally Email 2)
- Mobile phone (and optionally Phone 2)
- Source — referral, event, upload, etc.
- Opt-out (true/false), plus opt-out timestamp and channel
Step 3: Choose how Zapier talks to Heartbeat.ai
- Webhooks by Zapier: flexible, usually the fastest path for ops teams.
- Direct app action: easiest to maintain if it’s available in your account.
- Code step: only needed for custom transforms; most recruiting teams can skip it.
If you’re starting from a file, the simplest on-ramp is Upload File, then push the enriched fields into your ATS/CRM.
Zapier building blocks you’ll reuse
- Trigger: the event that starts a workflow — new row, new submission, stage change.
- Filter: stops the Zap unless conditions are met, for example Opt-out is not true.
- Paths: route records by specialty, state, or source.
- Webhooks: send data to Heartbeat.ai and receive results back.
- Delay: wait for async processing or schedule a follow-up check.
- Create/Update: write enriched fields back to the ATS/CRM record.
- Error logging: write failures to a log and alert ops.
Five recipes worth building
Build one recipe, stabilize it, then repeat the pattern for the next.
Recipe 1: Upload → Enrich → Push to ATS/CRM
Use when you receive candidate lists from events, referrals, or internal sheets and want them cleaned and enriched before recruiters touch them.
- Trigger: new file in a folder (Google Drive/Dropbox) or new rows in a Google Sheet.
- Action 1: send the file or rows to Heartbeat.ai via Upload File or a webhook to the API.
- Action 2: wait or poll for completion using Zapier Delay or a scheduled status check.
- Action 3: create or update the candidate in your ATS/CRM with enriched fields.
- Action 4: notify the recruiter that enriched candidates are ready, with a link to the filtered ATS/CRM view.
Setup tip: test with 5–10 rows first. Confirm the write-back fields land correctly before running a full file.
ATS/CRM note: whether you use Bullhorn, Apploi, or another system, the pattern holds — map enriched email and phone into the candidate record, then assign owner and stage. Keep the mapping doc in your ops folder so future edits don’t quietly break the Zap.
Recipe 2: New lead form → Instant enrich → Assign owner
Use when inbound leads arrive from a landing page, referral form, or event QR code and speed to first call matters.
- Trigger: new form submission (Typeform, Google Forms, Webflow).
- Action 1: create a candidate record in your ATS/CRM with the raw submission.
- Action 2: enrich via Heartbeat.ai and update the same record.
- Action 3: assign an owner based on specialty or state using Zapier Paths.
- Action 4: create a call task that includes the best phone field and a note to call during local business hours.
Ops note: call tasks created outside local business hours tend to underperform. Route tasks into a queue that respects the candidate’s time zone.
Recipe 3: Stage change → Refresh contact data
Use when candidates sit in a pipeline stage for weeks and contact info goes stale.
- Trigger: candidate moves to a stage like Re-engage, Credentialing, or Offer Pending.
- Action 1: request a refresh from Heartbeat.ai.
- Action 2: update ATS/CRM fields and log a note with the refresh date.
- Action 3: if key fields changed, notify the owner to use the latest phone or email.
This is the recipe that stops recruiters burning dials and bounces on data that was accurate months ago but isn’t anymore.
Recipe 4: Opt-out anywhere → Suppress everywhere
Use when opt-outs arrive through email replies, SMS keywords, call notes, or a web form, and you need one source of truth.
- Trigger: a new opt-out tag in the ATS/CRM, a new row in an opt-out sheet, or a form submission.
- Action 1: set Opt-out=true in the ATS/CRM with timestamp, channel, and optional reason.
- Action 2: add the contact to suppression lists in connected outreach tools, or log and enforce suppression in the ATS/CRM if those tools aren’t connected.
- Action 3: notify ops, not recruiters, so the team can audit patterns and sources.
Logging opt-out status in the ATS is what prevents re-contact when lists get re-uploaded, merged, or reassigned later.
Recipe 5: Daily hot list digest
Use when you want a daily pulse on pipeline activity without pulling manual reports.
- Trigger: a schedule, run every weekday at a consistent time in your team’s primary time zone.
- Action 1: search the ATS/CRM for candidates added or updated in the last day, grouped by specialty and owner.
- Action 2: post a digest to Slack or email covering new candidates, refreshed contacts, opt-outs logged, and any Zap failures.
Setup tip: keep the digest to counts and links to filtered views. Don’t paste candidate personal data into chat tools.
Implementation notes
- Auth and permissions: if a Zap starts failing after weeks of stability, check whether a connected account’s token expired or permissions changed.
- Task history review: ops should scan Zap run history weekly for repeated failures tied to a specific source or field.
- Rate limits and batching: process large uploads in batches so you can isolate failures without overwhelming downstream systems.
- Write-back discipline: always write enrichment and refresh results back to the ATS/CRM so recruiters aren’t hunting across tools.
- Suppression guardrail: if Opt-out=true, block every downstream outreach action in that Zap path.
Governance: who owns the Zaps
- Zap owner: assign one ops owner per workflow and name them in your SOP.
- Change requests: recruiters request changes through a short form covering trigger, fields, and notification.
- Testing rule: every change runs against one test record end-to-end before full volume resumes.
- Rollback: keep the last working field map, Zap version name, and test timestamp documented so you can revert quickly.
Failure handling
Automations fail for ordinary reasons — renamed fields, blank required values, expired tokens, brief outages. Build the safety net before you scale:
- Zap Errors log: a Google Sheet or Airtable row for every failure, with timestamp, recipe name, candidate ID, and error message.
- Route alerts correctly: ops gets failures, recruiters get only \”candidate ready\” notifications.
- Retry logic: retry transient errors later; stop and fix mapping errors before continuing.
- Suppression-first: if a record is opted out, the Zap should end after logging suppression, not continue.
Diagnostic table
| Symptom | Likely cause | Fast fix in Zapier | What to log in ATS/CRM |
|---|---|---|---|
| Recruiters say \”numbers don’t work\” | Stale contact data; no refresh trigger | Add Recipe 3 stage-based refresh; update fields on stage change | \”Refreshed on\” date + workflow name |
| Email bounces spike after an upload | Old emails; intake source quality varies | Split flow: enrich first, then push; quarantine rows missing required fields | Email status + last checked date |
| Candidate opted out but got contacted again | Opt-out stored in one tool only | Implement Recipe 4 suppression everywhere; block outreach when Opt-out=true | Opt-out=true + timestamp + channel |
| Duplicates in ATS/CRM | No matching strategy; inconsistent formatting | Use a dedupe step before create; normalize phone/email formatting | Merge note + external IDs (if used) |
| Zaps stop unexpectedly | Token expiry or field drift | Add failure logging + alerts; run a monthly field drift check | Ops incident note + resolution |
Which recipe to build first
Score each statement 0–3, where 0 is not true and 3 is very true. Build whichever category scores highest.
- (Weight 3) We regularly upload lists or copy/paste leads into the ATS/CRM.
- (Weight 3) Recruiters lose time hunting for the latest phone or email across tools.
- (Weight 3) Opt-outs are not consistently logged in the ATS/CRM.
- (Weight 2) We have stage changes that should trigger actions — re-engage, credentialing, offer.
- (Weight 2) Ops spends time building daily or weekly updates manually.
- (Weight 2) We don’t have a clear failure-handling process for automations.
- (Weight 1) We need routing by specialty, state, or owner without engineering.
If your opt-out score is high, build Recipe 4 first. If your upload score is high, build Recipe 1 first.
Templates you can reuse
Recruiter-to-ops build request
Subject: Zap request: {Recipe name} for {specialty/team}
\”We need a Zapier workflow that triggers when {trigger}. It should send data to Heartbeat.ai for enrichment, then update {ATS/CRM} fields: {field list}. If Opt-out=true, it must stop and log suppression. Owner routing: {rules}. Notify: {channel}. Failure handling: write errors to {log location} and alert {ops channel}.\”
ATS/CRM audit note
\”Contact data refreshed via Heartbeat.ai on {date}. Source workflow: {Recipe name}. If the candidate requests opt-out, set Opt-out=true and log channel and timestamp.\”
Daily Slack digest
\”Daily recruiting ops digest: New candidates added: {count}. Refreshed contacts: {count}. Opt-outs logged: {count}. Zap failures: {count}. Links: {ATS view 1}, {ATS view 2}.\”
Common pitfalls
Automating before defining the workflow
A real automation workflow has a clear trigger, required inputs, defined outputs, and failure handling. If you can’t name the trigger and the write-back field, you don’t have a workflow yet — you have an idea.
Treating enrichment as one-time
Healthcare recruiting cycles stretch over weeks or months. Enrich once at intake and never refresh, and you’ll be working stale records later. Stage-based refresh (Recipe 3) solves this by updating data only when it matters.
Not centralizing opt-out
Opt-out data that lives only in an email tool or a spreadsheet gets missed during re-uploads and reassignment. Centralize it in the ATS/CRM and suppress outreach from there.
Over-notifying recruiters
If every Zap posts to Slack, recruiters mute the channel and miss the notifications that actually matter. Send recruiters \”candidate ready\” events only; send ops the failures and system noise.
Field drift breaks stable automations
A common failure pattern: ops renames a field in the ATS/CRM — \”Mobile\” becomes \”Cell Phone\” — and the write-back step starts failing or writing to the wrong place. Add a monthly drift check:
- Open each Zap and confirm destination fields still exist.
- Run one test record end-to-end.
- Review the last week of entries in the Zap Errors log.
- Confirm the Opt-out=true suppression path still blocks outreach.
Measuring whether it’s working
- Pick a baseline week: record how long intake-to-ready takes today and where handoffs stall.
- Instrument each recipe: every Zap should write a status back to the ATS/CRM — success/fail, refreshed date, opt-out logged.
- Review weekly: ops checks Zap run history and the Zap Errors log; recruiters confirm records arrive complete and usable.
Week 1 checklist, no dashboard required
- Write-back check: confirm enriched fields appear on the ATS/CRM record, not only in Zapier history.
- Refresh check: move one record into the re-engage stage and confirm the refresh note gets written back.
- Suppression check: mark one record Opt-out=true and confirm outreach actions are blocked.
- Error check: confirm a failure creates a row in the Zap Errors log and alerts ops.
- Noise check: recruiters receive only \”candidate ready\” notifications, not failure spam.
Metrics worth tracking
- Time-to-ready record: minutes from the intake trigger to the ATS/CRM \”candidate ready\” update.
- Failure rate: failed Zap runs divided by total runs, per 100 runs.
- Suppression integrity: outreach attempts blocked because Opt-out=true, plus any exceptions, which should be zero.
- Deliverability rate: delivered emails divided by sent emails, per 100 sent.
- Bounce rate: bounced emails divided by sent emails, per 100 sent.
- Connect rate: connected calls divided by total dials, per 100 dials.
- Answer rate: human answers divided by connected calls, per 100 connected calls.
- Reply rate: replies divided by delivered emails, per 100 delivered.
If bounce rate worsens after adding a new intake source, quarantine that source into its own recipe and require enrichment before it enters your main pipeline.
Legal and ethical use
Automation should reduce admin work, not bypass consent, privacy, or opt-out requirements.
- Respect opt-out immediately across every connected tool.
- Minimize data movement: don’t post candidate personal data into chat tools.
- Limit access: only the recruiting team should see candidate contact fields.
- Document your process: keep an internal SOP for how consent and opt-out are captured and enforced.
Heartbeat.ai supports recruiting workflows but does not provide legal counsel.
Evidence and trust notes
Zapier behavior, triggers, and troubleshooting steps are documented in the Zapier Help Center: Zapier help center baseline.
For how Heartbeat.ai approaches data quality, verification, and responsible use, review our trust methodology and data handling notes.
If you’re implementing via API, start with the Heartbeat.ai API documentation. For file-based intake, use Upload File as the simplest on-ramp.
FAQs
Do I need engineering to use Zapier for healthcare recruiters?
No. Most teams can build the recipes above with ops plus a recruiter who knows the ATS/CRM fields. Engineering helps only if you need custom transforms.
What’s the safest first automation to build?
Opt-out suppression (Recipe 4). It reduces compliance risk and prevents accidental re-contact when lists get re-uploaded, merged, or reassigned.
How do I prevent duplicates when pushing enriched candidates into my ATS/CRM?
Use a dedupe step before creating a new record: search for an existing candidate by your chosen unique key, often email and sometimes phone, then update if found and create only if not found.
Can I route candidates by specialty or state automatically?
Yes. Use Zapier Paths or filters after enrichment to assign owner and create the right task queue based on specialty and state rules.
Where should I store consent and opt-out?
Store it in the ATS/CRM as the system of record, then sync suppression to downstream outreach tools. Always include timestamp and channel so you can audit later.
Next steps
- Pick one recipe from the checklist above and build it end-to-end with a 10-record test batch.
- Add failure handling — error log and alerts — before you scale volume.
- Connect Heartbeat.ai via the API or Upload File, then write enriched fields back to your ATS/CRM.
- Go live and review weekly metrics — failure rate, suppression integrity, deliverability/bounce, connect/answer, reply.
- Start free search & preview data and then wire it into your first Zap.
- For a related workflow pattern, see ATS enrichment workflows for recruiting ops.
About the Author
Ben Argeband is the Founder and CEO of Swordfish.ai and Heartbeat.ai. With deep expertise in data and SaaS, he has built two successful platforms trusted by over 50,000 sales and recruitment professionals. Ben’s mission is to help teams find direct contact information for hard-to-reach professionals and decision-makers, providing the shortest route to their next win. Connect with Ben on LinkedIn.