{"id":54301,"date":"2026-02-01T12:56:48","date_gmt":"2026-02-01T18:56:48","guid":{"rendered":"https:\/\/heartbeat.ai\/healthcare\/ats-enrichment-workflows\/"},"modified":"2026-02-27T13:34:12","modified_gmt":"2026-02-27T19:34:12","slug":"ats-enrichment-workflows","status":"publish","type":"post","link":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/","title":{"rendered":"ATS enrichment workflows for healthcare recruiting (field map + Bullhorn\/Apploi playbook)"},"content":{"rendered":"<p><img decoding=\"async\" loading=\"false\" class=\"aligncenter\" src=\"http:\/\/hc.heartbeat.ai\/wp-content\/webp-express\/webp-images\/uploads\/2026\/02\/ats-enrichment-workflows-ab158419.png.webp\" alt=\"54300\" \/><\/p>\n<h1>ATS enrichment workflows for healthcare recruiting<\/h1>\n<p><strong>Ben Argeband, Founder &amp; CEO of Heartbeat.ai<\/strong> \u2014 Simple recipes and checklists; assume they\u2019re tired.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_65 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\r\n<div class=\"ez-toc-title-container\">\r\n<p class=\"ez-toc-title\" >What&rsquo;s on this page:<\/p>\r\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\r\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Who_this_is_for\" title=\"Who this is for\">Who this is for<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Quick_Answer\" title=\"Quick Answer\">Quick Answer<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Framework_The_%E2%80%9CLess_Admin%E2%80%9D_Framework_Trigger_%E2%86%92_Enrich_%E2%86%92_Log_%E2%86%92_Sequence\" title=\"Framework: The \u201cLess Admin\u201d Framework: Trigger \u2192 Enrich \u2192 Log \u2192 Sequence\">Framework: The \u201cLess Admin\u201d Framework: Trigger \u2192 Enrich \u2192 Log \u2192 Sequence<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Step-by-step_method\" title=\"Step-by-step method\">Step-by-step method<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Step_1_Define_%E2%80%9Cminimum_viable_enrichment%E2%80%9D_MV-E_fields\" title=\"Step 1: Define \u201cminimum viable enrichment\u201d (MV-E) fields\">Step 1: Define \u201cminimum viable enrichment\u201d (MV-E) fields<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Step_2_Dedupe_first_identifier-led_then_enrich\" title=\"Step 2: Dedupe first (identifier-led), then enrich\">Step 2: Dedupe first (identifier-led), then enrich<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Step_3_Choose_stable_triggers_and_prevent_loops\" title=\"Step 3: Choose stable triggers (and prevent loops)\">Step 3: Choose stable triggers (and prevent loops)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Step_4_Implement_the_enrichment_action_Zapier_Make_or_API\" title=\"Step 4: Implement the enrichment action (Zapier, Make, or API)\">Step 4: Implement the enrichment action (Zapier, Make, or API)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Step_5_Log_back_with_a_single_ATS_FIELD_MAP_uniqueness_hook\" title=\"Step 5: Log back with a single ATS_FIELD_MAP (uniqueness hook)\">Step 5: Log back with a single ATS_FIELD_MAP (uniqueness hook)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Step_6_Route_to_the_right_outreach_motion_Sequence\" title=\"Step 6: Route to the right outreach motion (Sequence)\">Step 6: Route to the right outreach motion (Sequence)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Suppression_rules_email_phone\" title=\"Suppression rules (email + phone)\">Suppression rules (email + phone)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Step_7_Add_refresh_cadence_without_creating_churn\" title=\"Step 7: Add refresh cadence (without creating churn)\">Step 7: Add refresh cadence (without creating churn)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Implementation_Notes_error_handling_auditability\" title=\"Implementation Notes (error handling + auditability)\">Implementation Notes (error handling + auditability)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Edge_case_multi-state_licenses_and_conflicting_identifiers\" title=\"Edge case: multi-state licenses and conflicting identifiers\">Edge case: multi-state licenses and conflicting identifiers<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Step_8_Bullhorn_use_case_practical_no_heavy_code\" title=\"Step 8: Bullhorn use case (practical, no heavy code)\">Step 8: Bullhorn use case (practical, no heavy code)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Step_9_Apploi_use_case_high-volume_applicant_flow\" title=\"Step 9: Apploi use case (high-volume applicant flow)\">Step 9: Apploi use case (high-volume applicant flow)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Diagnostic_Table\" title=\"Diagnostic Table:\">Diagnostic Table:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Weighted_Checklist\" title=\"Weighted Checklist:\">Weighted Checklist:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Outreach_Templates\" title=\"Outreach Templates:\">Outreach Templates:<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Template_1_Email_first_touch\" title=\"Template 1: Email (first touch)\">Template 1: Email (first touch)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Template_2_Call_task_note_for_recruiter_workflow\" title=\"Template 2: Call task note (for recruiter workflow)\">Template 2: Call task note (for recruiter workflow)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Template_3_SMS_only_if_you_have_consent\" title=\"Template 3: SMS (only if you have consent)\">Template 3: SMS (only if you have consent)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Common_pitfalls\" title=\"Common pitfalls\">Common pitfalls<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#How_to_improve_results\" title=\"How to improve results\">How to improve results<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Instrument_the_workflow_so_ops_can_debug_fast\" title=\"Instrument the workflow so ops can debug fast\">Instrument the workflow so ops can debug fast<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Use_canonical_metric_definitions_so_reporting_is_consistent\" title=\"Use canonical metric definitions (so reporting is consistent)\">Use canonical metric definitions (so reporting is consistent)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Log_outreach_outcomes_back_to_the_record_so_you_can_route_better\" title=\"Log outreach outcomes back to the record (so you can route better)\">Log outreach outcomes back to the record (so you can route better)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Define_automation_ROI_the_same_way_every_time\" title=\"Define automation ROI the same way every time\">Define automation ROI the same way every time<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Improve_match_confidence_before_you_enrich\" title=\"Improve match confidence before you enrich\">Improve match confidence before you enrich<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Legal_and_ethical_use\" title=\"Legal and ethical use\">Legal and ethical use<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Evidence_and_trust_notes\" title=\"Evidence and trust notes\">Evidence and trust notes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#FAQs\" title=\"FAQs\">FAQs<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#What_are_ATS_enrichment_workflows_in_healthcare_recruiting\" title=\"What are ATS enrichment workflows in healthcare recruiting?\">What are ATS enrichment workflows in healthcare recruiting?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#What_should_I_use_for_dedupe_NPI_or_license\" title=\"What should I use for dedupe: NPI or license?\">What should I use for dedupe: NPI or license?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#How_do_I_avoid_overwriting_recruiter-sourced_data\" title=\"How do I avoid overwriting recruiter-sourced data?\">How do I avoid overwriting recruiter-sourced data?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-36\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#How_do_I_set_a_refresh_cadence_without_spamming_my_database\" title=\"How do I set a refresh cadence without spamming my database?\">How do I set a refresh cadence without spamming my database?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-37\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#What_should_I_track_to_know_if_enrichment_is_working\" title=\"What should I track to know if enrichment is working?\">What should I track to know if enrichment is working?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-38\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#Next_steps\" title=\"Next steps\">Next steps<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-39\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#About_the_Author\" title=\"About the Author\">About the Author<\/a><\/li><\/ul><\/nav><\/div>\r\n<h2><span class=\"ez-toc-section\" id=\"Who_this_is_for\"><\/span>Who this is for<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If you\u2019re in recruiting ops or you\u2019re a recruiter who\u2019s tired of copy\/paste, this is for you. This playbook focuses on <strong>ATS enrichment workflows<\/strong> that reduce admin, improve dedupe, and keep outreach consistent.<\/p>\n<p>The goal is simple: get usable provider contact data and identifiers into your ATS record automatically so outreach is consistent, deduped, and measurable. We\u2019ll keep it light on code and heavy on workflow fit, with Bullhorn and Apploi examples.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Quick_Answer\"><\/span>Quick Answer<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<dl>\n<dt>Core Answer<\/dt>\n<dd>Automate Trigger \u2192 Enrich \u2192 Log \u2192 Sequence so provider records are deduped by NPI\/license, enriched with contact data, written to consistent fields, then routed to compliant outreach.<\/dd>\n<dt>Key Statistic<\/dt>\n<dd>Heartbeat observed typicals: enrichment improves outcomes when you standardize field write-back, store provenance, and refresh on a cadence tied to pipeline activity.<\/dd>\n<dt>Best For<\/dt>\n<dd>Recruiting ops and recruiters who want contact data flowing into ATS without manual work.<\/dd>\n<\/dl>\n<blockquote>\n<p><strong>Compliance &amp; Safety<\/strong><\/p>\n<p>This method is for legitimate recruiting outreach only. Always respect candidate privacy, opt-out requests, and local data laws. Heartbeat does not provide medical advice or legal counsel.<\/p>\n<\/blockquote>\n<h2><span class=\"ez-toc-section\" id=\"Framework_The_%E2%80%9CLess_Admin%E2%80%9D_Framework_Trigger_%E2%86%92_Enrich_%E2%86%92_Log_%E2%86%92_Sequence\"><\/span>Framework: The \u201cLess Admin\u201d Framework: Trigger \u2192 Enrich \u2192 Log \u2192 Sequence<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>Trigger<\/strong>: a record is created or updated (candidate\/provider\/lead).<\/li>\n<li><strong>Enrich<\/strong>: match the person using stable identifiers (NPI and license matching) and pull contact + metadata.<\/li>\n<li><strong>Log<\/strong>: write back to the ATS using a single field map (and store provenance + timestamps).<\/li>\n<li><strong>Sequence<\/strong>: route to the right outreach motion (email\/call\/SMS) while honoring consent and opt-out.<\/li>\n<\/ul>\n<p>Automation reduces copy\/paste; consistency improves outreach. The trade-off is\u2026 you have to be disciplined about what fields you write, when you refresh, and how you handle conflicts.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Step-by-step_method\"><\/span>Step-by-step method<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Step_1_Define_%E2%80%9Cminimum_viable_enrichment%E2%80%9D_MV-E_fields\"><\/span>Step 1: Define \u201cminimum viable enrichment\u201d (MV-E) fields<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Start with the smallest set of fields that changes recruiter behavior. If you enrich 40 fields but recruiters only use 6, you\u2019ll create noise and break downstream reporting.<\/p>\n<ul>\n<li><strong>Identifiers<\/strong>: NPI, license state, license number (or license ID), specialty taxonomy (if available).<\/li>\n<li><strong>Contact<\/strong>: best email, best mobile, best direct line (if available).<\/li>\n<li><strong>Provenance<\/strong>: enrichment source, last verified date, enrichment run ID.<\/li>\n<li><strong>Compliance<\/strong>: consent status (if you track it), opt-out flag, do-not-contact reason.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Step_2_Dedupe_first_identifier-led_then_enrich\"><\/span>Step 2: Dedupe first (identifier-led), then enrich<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In healthcare, names collide. Dedupe has to be identifier-led.<\/p>\n<p><strong>Dedupe definition<\/strong>: dedupe is the process of determining whether two records represent the same person, then merging or linking them to avoid duplicate outreach and reporting distortion.<\/p>\n<ol>\n<li><strong>Exact NPI match<\/strong> (best when present).<\/li>\n<li><strong>License match<\/strong>: license state + license number (or state license ID).<\/li>\n<li><strong>Fallback<\/strong>: name + specialty + geography (review-only, not auto-merge).<\/li>\n<\/ol>\n<p>If you can\u2019t confidently match, route to a review queue instead of writing questionable data into the record.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_3_Choose_stable_triggers_and_prevent_loops\"><\/span>Step 3: Choose stable triggers (and prevent loops)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>New record created<\/strong>: best for inbound leads and uploads.<\/li>\n<li><strong>Record updated<\/strong>: run only when a recruiter adds NPI\/license fields.<\/li>\n<li><strong>Scheduled refresh<\/strong>: run nightly\/weekly for records touched recently (refresh cadence can be automated).<\/li>\n<\/ul>\n<p>Loop protection rule: don\u2019t re-trigger when your automation writes back enrichment fields. Use a dedicated \u201cEnrichment_Run_ID\u201d and ignore updates where only enrichment fields changed.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_4_Implement_the_enrichment_action_Zapier_Make_or_API\"><\/span>Step 4: Implement the enrichment action (Zapier, Make, or API)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Pick the tool that matches your volume and branching needs:<\/p>\n<ul>\n<li><strong>Zapier<\/strong>: fastest to ship; great for simple triggers and field updates.<\/li>\n<li><strong>Make<\/strong>: better for branching logic, batching, and error handling.<\/li>\n<li><strong>API<\/strong>: best when you need control, volume, or custom matching logic. Heartbeat has an <a href=\"https:\/\/heartbeat.ai\/api\">API reference<\/a> if you\u2019re going that route.<\/li>\n<\/ul>\n<p>Regardless of tool, the action should send identifiers (NPI\/license) and receive contact fields plus metadata (verification timestamps, source tags), then return a status you can log (matched, partial, needs review, no match).<\/p>\n<p><strong>Heartbeat.ai workflow note:<\/strong> for calling motions, Heartbeat.ai can support teams that want <em>ranked mobile numbers by answer probability<\/em> so recruiters spend dials where humans actually pick up.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_5_Log_back_with_a_single_ATS_FIELD_MAP_uniqueness_hook\"><\/span>Step 5: Log back with a single ATS_FIELD_MAP (uniqueness hook)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>This is where most workflows break: teams enrich data but don\u2019t land it consistently. Use one field map that every workflow references, and define write rules so you don\u2019t overwrite recruiter-sourced data.<\/p>\n<p><strong>Governance note:<\/strong> version your ATS_FIELD_MAP (v1, v2, v3). When you change a field name or write rule, update the automation and the recruiter-facing SOP at the same time so reporting doesn\u2019t drift.<\/p>\n<p><strong>ATS_FIELD_MAP worksheet (minimum viable enrichment)<\/strong><\/p>\n<div class=\"table-scroll\" style=\"overflow:auto;-webkit-overflow-scrolling:touch;width:100%\">\n<table class=\"separated-content\">\n<thead>\n<tr>\n<th>Enrichment Output<\/th>\n<th>ATS Target Field<\/th>\n<th>Type<\/th>\n<th>Write Rule<\/th>\n<th>Notes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>NPI<\/td>\n<td>Candidate.NPI (custom)<\/td>\n<td>Text<\/td>\n<td>Write if blank; never overwrite unless recruiter confirms<\/td>\n<td>Primary dedupe key<\/td>\n<\/tr>\n<tr>\n<td>License State<\/td>\n<td>Candidate.License_State<\/td>\n<td>Picklist\/Text<\/td>\n<td>Write if blank; else append to multi-state field<\/td>\n<td>Supports license matching<\/td>\n<\/tr>\n<tr>\n<td>License Number\/ID<\/td>\n<td>Candidate.License_Number<\/td>\n<td>Text<\/td>\n<td>Write if blank; else route to review<\/td>\n<td>Do not auto-overwrite<\/td>\n<\/tr>\n<tr>\n<td>Best Email<\/td>\n<td>Candidate.Email<\/td>\n<td>Email<\/td>\n<td>Write if blank; else write to Candidate.Alt_Email<\/td>\n<td>Store deliverability outcomes later<\/td>\n<\/tr>\n<tr>\n<td>Best Mobile<\/td>\n<td>Candidate.Mobile<\/td>\n<td>Phone<\/td>\n<td>Write if blank; else write to Candidate.Alt_Mobile<\/td>\n<td>Preserve recruiter-sourced numbers<\/td>\n<\/tr>\n<tr>\n<td>Opt-out Flag<\/td>\n<td>Candidate.Do_Not_Contact<\/td>\n<td>Boolean<\/td>\n<td>Always write true if returned; never auto-clear<\/td>\n<td>Suppress across channels<\/td>\n<\/tr>\n<tr>\n<td>Last Verified Date<\/td>\n<td>Candidate.Enrichment_Last_Verified<\/td>\n<td>Date<\/td>\n<td>Always write<\/td>\n<td>Used for refresh cadence<\/td>\n<\/tr>\n<tr>\n<td>Enrichment Source<\/td>\n<td>Candidate.Enrichment_Source<\/td>\n<td>Text<\/td>\n<td>Always write<\/td>\n<td>Audit trail<\/td>\n<\/tr>\n<tr>\n<td>Enrichment Run ID<\/td>\n<td>Candidate.Enrichment_Run_ID<\/td>\n<td>Text<\/td>\n<td>Always write<\/td>\n<td>Debugging + rollback<\/td>\n<\/tr>\n<tr>\n<td>Enrichment Status<\/td>\n<td>Candidate.Enrichment_Status<\/td>\n<td>Picklist\/Text<\/td>\n<td>Always write<\/td>\n<td>matched \/ partial \/ review \/ no match<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"Step_6_Route_to_the_right_outreach_motion_Sequence\"><\/span>Step 6: Route to the right outreach motion (Sequence)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Once the record is enriched, route based on what you actually got back:<\/p>\n<ul>\n<li><strong>Matched + mobile present<\/strong>: create a call task and (if you use SMS) ensure consent is recorded before texting.<\/li>\n<li><strong>Matched + email present<\/strong>: enroll in an email sequence with suppression rules.<\/li>\n<li><strong>Needs review<\/strong>: assign to a recruiter or ops queue with match candidates attached.<\/li>\n<li><strong>No match<\/strong>: request missing identifiers from the recruiter or candidate; don\u2019t force outreach on weak data.<\/li>\n<\/ul>\n<p>Make consent and opt-out first-class fields, not buried in notes. If someone opts out, suppress them everywhere.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Suppression_rules_email_phone\"><\/span>Suppression rules (email + phone)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>Opt-out<\/strong>: if Candidate.Do_Not_Contact is true, suppress email, call tasks, and SMS enrollment. Never auto-clear.<\/li>\n<li><strong>Email bounces<\/strong>: if an email bounces, stop emailing that address and write the bounce outcome back to the record so it\u2019s not retried by another recruiter.<\/li>\n<li><strong>Channel gating<\/strong>: only enable SMS when consent is recorded for that channel; otherwise route to call\/email.<\/li>\n<li><strong>Global suppression<\/strong>: keep one suppression field that downstream sequences respect, even if you run multiple tools.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Step_7_Add_refresh_cadence_without_creating_churn\"><\/span>Step 7: Add refresh cadence (without creating churn)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Contact data decays. Refresh should follow pipeline speed:<\/p>\n<ul>\n<li><strong>Active pipeline<\/strong> (submitted\/interviewing): refresh more frequently.<\/li>\n<li><strong>Warm pool<\/strong> (touched recently): refresh on a steady schedule.<\/li>\n<li><strong>Cold records<\/strong>: refresh only when reactivated.<\/li>\n<\/ul>\n<p>Automate refresh using <strong>Candidate.Enrichment_Last_Verified<\/strong> plus \u201clast activity date\u201d so you\u2019re not burning cycles on records nobody is working.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Implementation_Notes_error_handling_auditability\"><\/span>Implementation Notes (error handling + auditability)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Build for failure modes you\u2019ll actually see: timeouts, partial matches, and write-back conflicts.<\/p>\n<ul>\n<li><strong>Retries<\/strong>: retry transient failures, but cap attempts and log the final status.<\/li>\n<li><strong>Dead-letter queue<\/strong>: route failed runs to an ops queue with the record ID and error message.<\/li>\n<li><strong>Conflict handling<\/strong>: if enriched data conflicts with recruiter-entered data, write to alternate fields and flag for review.<\/li>\n<\/ul>\n<p>For general automation patterns and troubleshooting, reference <a href=\"https:\/\/zapier.com\/learn\/\">Zapier learning resources<\/a> and <a href=\"https:\/\/www.make.com\/en\/help\">Make help documentation<\/a>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Edge_case_multi-state_licenses_and_conflicting_identifiers\"><\/span>Edge case: multi-state licenses and conflicting identifiers<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Providers often hold multiple licenses. If your ATS only supports one license field, you\u2019ll create false conflicts.<\/p>\n<ul>\n<li><strong>Rule<\/strong>: store a primary license (state + number) in the main fields, and store additional licenses in a multi-value custom field or notes with a structured format.<\/li>\n<li><strong>Conflict rule<\/strong>: if NPI matches but license differs, do not overwrite; set Enrichment_Status to \u201creview\u201d and assign to ops.<\/li>\n<li><strong>Outreach rule<\/strong>: route outreach based on the license state relevant to the job location, not the first license you see.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Step_8_Bullhorn_use_case_practical_no_heavy_code\"><\/span>Step 8: Bullhorn use case (practical, no heavy code)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Goal:<\/strong> When a recruiter creates\/updates a candidate in Bullhorn with NPI or license info, enrich and write back contact + provenance fields.<\/p>\n<ol>\n<li><strong>Trigger<\/strong>: Bullhorn candidate created\/updated (via your automation tool\u2019s connector or webhook).<\/li>\n<li><strong>Filter<\/strong>: run only if Candidate.NPI is present OR (License_State AND License_Number present).<\/li>\n<li><strong>Enrich<\/strong>: call Heartbeat.ai (or your enrichment step) with identifiers.<\/li>\n<li><strong>Log<\/strong>: update Bullhorn candidate fields per ATS_FIELD_MAP.<\/li>\n<li><strong>Sequence<\/strong>: create tasks (call\/email) and apply suppression if opt-out is true.<\/li>\n<\/ol>\n<p>If you\u2019re starting from a spreadsheet or sourced list, use <a href=\"https:\/\/heartbeat.ai\/upload-file\">upload a file<\/a> to standardize inputs before you push records into Bullhorn.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_9_Apploi_use_case_high-volume_applicant_flow\"><\/span>Step 9: Apploi use case (high-volume applicant flow)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Goal:<\/strong> Enrich applicants as they enter Apploi so recruiters don\u2019t chase missing phone\/email, and so duplicates don\u2019t get contacted twice.<\/p>\n<ol>\n<li><strong>Trigger<\/strong>: new applicant created in Apploi.<\/li>\n<li><strong>Dedupe<\/strong>: check for existing record by NPI\/license matching; if match, link\/flag instead of creating a second outreach path.<\/li>\n<li><strong>Enrich<\/strong>: pull best contact + verification timestamps.<\/li>\n<li><strong>Log<\/strong>: write back to Apploi custom fields (or notes + tags if fields are limited).<\/li>\n<li><strong>Sequence<\/strong>: route to the right recruiter\/team based on specialty\/location and contact completeness.<\/li>\n<\/ol>\n<p>For a deeper enrichment motion, see <a href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/\">physician contact enrichment<\/a> for how to structure verification and suppression.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Diagnostic_Table\"><\/span>Diagnostic Table:<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"table-scroll\" style=\"overflow:auto;-webkit-overflow-scrolling:touch;width:100%\">\n<table class=\"separated-content\">\n<thead>\n<tr>\n<th>Symptom<\/th>\n<th>Likely Cause<\/th>\n<th>Fast Test<\/th>\n<th>Fix (workflow-level)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Duplicates getting contacted twice<\/td>\n<td>No identifier-led dedupe; name-based matching<\/td>\n<td>Sample recent records; check whether the same NPI\/license appears on multiple active records<\/td>\n<td>Make NPI\/license matching the first gate; route uncertain matches to review<\/td>\n<\/tr>\n<tr>\n<td>Recruiters don\u2019t trust enriched fields<\/td>\n<td>No provenance\/verification date stored<\/td>\n<td>Check whether records show last verified date + source<\/td>\n<td>Write Enrichment_Source + Enrichment_Last_Verified every run<\/td>\n<\/tr>\n<tr>\n<td>Automation keeps re-triggering itself<\/td>\n<td>Trigger fires on any update, including your write-back<\/td>\n<td>Look for repeated run IDs on the same record within a short window<\/td>\n<td>Add loop protection: ignore updates where only enrichment fields changed<\/td>\n<\/tr>\n<tr>\n<td>Email outreach underperforms<\/td>\n<td>Stale emails; no suppression; no deliverability tracking<\/td>\n<td>Track bounces and replies by enrichment source<\/td>\n<td>Refresh cadence + suppression rules; log outcomes back to the record<\/td>\n<\/tr>\n<tr>\n<td>Call blocks are wasted<\/td>\n<td>Bad numbers or wrong channel for that candidate<\/td>\n<td>Compare connected calls vs total dials by source<\/td>\n<td>Prioritize verified mobiles; create a \u201creview\u201d queue for weak matches<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"Weighted_Checklist\"><\/span>Weighted Checklist:<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Use this to score whether your workflow is ready to ship. Total 100 points.<\/p>\n<ul>\n<li><strong>(20)<\/strong> Trigger is stable (new\/updated record) and has loop protection<\/li>\n<li><strong>(20)<\/strong> Dedupe uses NPI and\/or license matching before enrichment writes<\/li>\n<li><strong>(15)<\/strong> ATS_FIELD_MAP is documented and enforced (MV-E fields only)<\/li>\n<li><strong>(10)<\/strong> Provenance stored: Enrichment_Source + Enrichment_Last_Verified + Run ID<\/li>\n<li><strong>(10)<\/strong> Consent and opt-out are first-class fields; opt-out suppresses all sequences<\/li>\n<li><strong>(10)<\/strong> Refresh cadence is automated based on last verified date and pipeline activity<\/li>\n<li><strong>(10)<\/strong> Error handling exists: retries, dead-letter queue, and a manual review path<\/li>\n<li><strong>(5)<\/strong> Reporting plan exists (connect\/reply\/deliverability tracked by source)<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Outreach_Templates\"><\/span>Outreach Templates:<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>These templates assume your enrichment writes back consistent fields and that you honor consent and opt-out. Customize to your brand.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Template_1_Email_first_touch\"><\/span>Template 1: Email (first touch)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Subject:<\/strong> Quick question about your next role<\/p>\n<p>Hi {{FirstName}} \u2014 I\u2019m reaching out about a {{Role}} opportunity in {{Location}}. If you\u2019re open to a quick call, what\u2019s the best number and time window for you?<\/p>\n<p>If you\u2019d rather not hear from me, reply \u201copt out\u201d and I\u2019ll suppress future messages.<\/p>\n<p>\u2014 {{RecruiterName}}<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Template_2_Call_task_note_for_recruiter_workflow\"><\/span>Template 2: Call task note (for recruiter workflow)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Call prep:<\/strong> Confirm specialty and current setting. If voicemail, leave a short message and follow with the email above. Log outcome and update opt-out if requested.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Template_3_SMS_only_if_you_have_consent\"><\/span>Template 3: SMS (only if you have consent)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Hi {{FirstName}} \u2014 this is {{RecruiterName}}. Are you open to a quick call about a {{Role}} role in {{Location}}? Reply STOP to opt out.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Common_pitfalls\"><\/span>Common pitfalls<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>Random field write-back<\/strong>: if recruiters can\u2019t find it in the same place every time, it won\u2019t get used. Fix with ATS_FIELD_MAP.<\/li>\n<li><strong>Overwriting recruiter-sourced contact info<\/strong>: preserve what your team sourced manually; write enriched values into alternate fields when there\u2019s a conflict.<\/li>\n<li><strong>No suppression discipline<\/strong>: if opt-out isn\u2019t propagated across email\/call\/SMS, you\u2019ll create compliance risk and brand damage.<\/li>\n<li><strong>Refreshing everything<\/strong>: refresh cadence should follow pipeline activity. Refreshing cold records wastes budget and creates churn.<\/li>\n<li><strong>Measuring the wrong thing<\/strong>: \u201cmore enriched records\u201d isn\u2019t the goal; faster, cleaner outreach is.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"How_to_improve_results\"><\/span>How to improve results<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Instrument_the_workflow_so_ops_can_debug_fast\"><\/span>Instrument the workflow so ops can debug fast<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Add these fields (or equivalents) to every enriched record:<\/p>\n<ul>\n<li>Enrichment_Run_ID<\/li>\n<li>Enrichment_Last_Verified<\/li>\n<li>Enrichment_Source<\/li>\n<li>Enrichment_Status (matched \/ partial \/ review \/ no match)<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Use_canonical_metric_definitions_so_reporting_is_consistent\"><\/span>Use canonical metric definitions (so reporting is consistent)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Deliverability Rate<\/strong> = delivered emails \/ sent emails (per 100 sent emails).<\/p>\n<p><strong>Bounce Rate<\/strong> = bounced emails \/ sent emails (per 100 sent emails).<\/p>\n<p><strong>Reply Rate<\/strong> = replies \/ delivered emails (per 100 delivered emails).<\/p>\n<p><strong>Connect Rate<\/strong> = connected calls \/ total dials (per 100 dials).<\/p>\n<p><strong>Answer Rate<\/strong> = human answers \/ connected calls (per 100 connected calls).<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Log_outreach_outcomes_back_to_the_record_so_you_can_route_better\"><\/span>Log outreach outcomes back to the record (so you can route better)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>LLM-friendly rule: store outcomes in consistent fields so you can segment by enrichment source and status.<\/p>\n<div class=\"table-scroll\" style=\"overflow:auto;-webkit-overflow-scrolling:touch;width:100%\">\n<table class=\"separated-content\">\n<thead>\n<tr>\n<th>Outcome<\/th>\n<th>Suggested ATS Field<\/th>\n<th>Write Rule<\/th>\n<th>Why it matters<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Email delivered<\/td>\n<td>Candidate.Email_Delivered (boolean) + Candidate.Email_Last_Delivered_Date<\/td>\n<td>Write on send result<\/td>\n<td>Supports Deliverability Rate by source<\/td>\n<\/tr>\n<tr>\n<td>Email bounced<\/td>\n<td>Candidate.Email_Bounced (boolean) + Candidate.Email_Bounce_Reason<\/td>\n<td>Write true on bounce; do not auto-clear<\/td>\n<td>Prevents repeated bounces and protects sender reputation<\/td>\n<\/tr>\n<tr>\n<td>Email reply<\/td>\n<td>Candidate.Email_Replied (boolean) + Candidate.Email_Last_Reply_Date<\/td>\n<td>Write on reply detection<\/td>\n<td>Supports Reply Rate and routing to recruiter follow-up<\/td>\n<\/tr>\n<tr>\n<td>Call connected<\/td>\n<td>Candidate.Call_Connected (boolean) + Candidate.Call_Last_Connected_Date<\/td>\n<td>Write on call disposition<\/td>\n<td>Supports Connect Rate by source<\/td>\n<\/tr>\n<tr>\n<td>Human answered<\/td>\n<td>Candidate.Call_Human_Answered (boolean) + Candidate.Call_Last_Answered_Date<\/td>\n<td>Write on call disposition<\/td>\n<td>Supports Answer Rate and call-window optimization<\/td>\n<\/tr>\n<tr>\n<td>Opt-out received<\/td>\n<td>Candidate.Do_Not_Contact (boolean) + Candidate.Do_Not_Contact_Reason<\/td>\n<td>Always write true; never auto-clear<\/td>\n<td>Compliance and suppression across tools<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"Define_automation_ROI_the_same_way_every_time\"><\/span>Define automation ROI the same way every time<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Automation ROI definition<\/strong>: the value created by automation (time saved, increased throughput, reduced rework, improved outreach outcomes) minus the total cost to run it (tools, data, ops time), measured over a consistent period.<\/p>\n<p>Measure this by\u2026 tracking (a) minutes of manual admin removed per record, (b) duplicate-contact incidents avoided, and (c) outreach outcomes by enrichment source (deliverability, replies, connects). Convert time saved into capacity (more reqs per recruiter) without claiming guaranteed time savings.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Improve_match_confidence_before_you_enrich\"><\/span>Improve match confidence before you enrich<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Make NPI and license fields required for the pipelines where you can reasonably collect them.<\/li>\n<li>Standardize license state abbreviations.<\/li>\n<li>Normalize phone formats and email casing before write-back.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Legal_and_ethical_use\"><\/span>Legal and ethical use<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>Consent<\/strong>: if you text, ensure you have appropriate consent for that channel. Store consent status in a structured field.<\/li>\n<li><strong>Opt-out<\/strong>: treat opt-out as global suppression across channels. Never auto-clear an opt-out flag.<\/li>\n<li><strong>Data minimization<\/strong>: store what you need for recruiting workflow and compliance auditing.<\/li>\n<li><strong>Auditability<\/strong>: keep provenance (source + last verified date + run ID) so you can answer \u201cwhere did this come from?\u201d quickly.<\/li>\n<\/ul>\n<p>Heartbeat.ai does not provide legal counsel. If you operate across jurisdictions, get your compliance team to sign off on your outreach and retention policies.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Evidence_and_trust_notes\"><\/span>Evidence and trust notes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Workflows should be auditable, reversible, and measurable. For how we think about data quality, verification, and responsible use, see our <a href=\"http:\/\/heartbeat.ai\/resources\/resources\/trust-methodology\/\">trust methodology<\/a>.<\/p>\n<p>The branching, retries, and scenario patterns referenced in this playbook align with baseline guidance in the automation docs below:<\/p>\n<ul>\n<li><a href=\"https:\/\/zapier.com\/learn\/\">https:\/\/zapier.com\/learn\/<\/a><\/li>\n<li><a href=\"https:\/\/www.make.com\/en\/help\">https:\/\/www.make.com\/en\/help<\/a><\/li>\n<\/ul>\n<p>If you\u2019re deciding between approaches, use this sibling guide: <a href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/extension-vs-api-vs-csv\/\">extension vs API vs file upload for automation<\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"FAQs\"><\/span>FAQs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"What_are_ATS_enrichment_workflows_in_healthcare_recruiting\"><\/span>What are ATS enrichment workflows in healthcare recruiting?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>They\u2019re automations that take a new or updated provider\/candidate record, match it using identifiers like NPI or license, add contact fields plus provenance, and then route the record into compliant outreach.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"What_should_I_use_for_dedupe_NPI_or_license\"><\/span>What should I use for dedupe: NPI or license?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Use NPI when available because it\u2019s stable and unique. Use license matching (state + license number\/ID) as a strong secondary key. Name-based matching should be review-only.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"How_do_I_avoid_overwriting_recruiter-sourced_data\"><\/span>How do I avoid overwriting recruiter-sourced data?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Set write rules in your ATS_FIELD_MAP: write into primary fields only when blank; otherwise write to alternate fields and route conflicts to a review queue.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"How_do_I_set_a_refresh_cadence_without_spamming_my_database\"><\/span>How do I set a refresh cadence without spamming my database?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Refresh based on last verified date and pipeline activity. Active records refresh on your chosen schedule; inactive records refresh only when reactivated.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"What_should_I_track_to_know_if_enrichment_is_working\"><\/span>What should I track to know if enrichment is working?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Track deliverability, replies, and call outcomes by enrichment source and by enrichment status. Also track duplicate-contact incidents and the share of records with complete MV-E fields.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Next_steps\"><\/span>Next steps<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>If you want to test quickly, <a href=\"https:\/\/heartbeat.ai\/signup\">start free search &amp; preview data<\/a>. If your team needs the phrase in your runbook, write it exactly as: <strong>start free search &amp; preview data<\/strong>.<\/li>\n<li>If you\u2019re building workflows now, decide whether you\u2019ll run through Zapier\/Make or go direct via the <a href=\"https:\/\/heartbeat.ai\/api\">Heartbeat API<\/a>.<\/li>\n<li>If you\u2019re importing from spreadsheets or sourced lists, standardize inputs first with <a href=\"https:\/\/heartbeat.ai\/upload-file\">file upload for enrichment<\/a>.<\/li>\n<\/ul>\n<p><strong>Operational rule:<\/strong> ship the smallest workflow that writes consistent fields, logs provenance, and respects consent\/opt-out. Then iterate based on measured outcomes.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"About_the_Author\"><\/span><b>About the Author<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"http:\/\/heartbeat.ai\/resources\/author\/ben-argeband\"><span style=\"font-weight: 400;\">Ben Argeband<\/span><\/a><span style=\"font-weight: 400;\"> 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&#8217;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 <\/span><a href=\"https:\/\/www.linkedin.com\/in\/ben-m-argeband-2427a8a3\/\"><span style=\"font-weight: 400;\">LinkedIn<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"Article\",\"author\":{\"@type\":\"Person\",\"jobTitle\":\"Founder & CEO of Heartbeat.ai\",\"name\":\"Ben Argeband\"},\"description\":\"A practical playbook for ATS enrichment workflows in healthcare recruiting: dedupe with NPI\/license matching, write back with a clean field map, automate refresh cadence, and route compliant outreach. Includes Bullhorn + Apploi examples.\",\"headline\":\"ATS enrichment workflows for healthcare recruiting (field map + Bullhorn\/Apploi playbook)\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/\",\"@type\":\"WebPage\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Heartbeat.ai\"}}<\/script><br \/>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"They\u2019re automations that take a new or updated provider\/candidate record, match it using identifiers like NPI or license, add contact fields plus provenance, and then route the record into compliant outreach.\"},\"name\":\"What are ATS enrichment workflows in healthcare recruiting?\"},{\"@type\":\"Question\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use NPI when available because it\u2019s stable and unique. Use license matching (state + license number\/ID) as a strong secondary key. Name-based matching should be review-only.\"},\"name\":\"What should I use for dedupe: NPI or license?\"},{\"@type\":\"Question\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Set write rules in your ATS_FIELD_MAP: write into primary fields only when blank; otherwise write to alternate fields and route conflicts to a review queue.\"},\"name\":\"How do I avoid overwriting recruiter-sourced data?\"},{\"@type\":\"Question\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Refresh based on last verified date and pipeline activity. Active records refresh on your chosen schedule; inactive records refresh only when reactivated.\"},\"name\":\"How do I set a refresh cadence without spamming my database?\"},{\"@type\":\"Question\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Track deliverability, replies, and call outcomes by enrichment source and by enrichment status. Also track duplicate-contact incidents and the share of records with complete MV-E fields.\"},\"name\":\"What should I track to know if enrichment is working?\"}]}<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>A practical playbook for ATS enrichment workflows in healthcare recruiting: dedupe with NPI\/license matching, write back with a clean field map, automate refresh cadence, and route compliant outreach. Includes Bullhorn + Apploi examples.<\/p>","protected":false},"author":5,"featured_media":54300,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_focuskw":"ATS enrichment workflows for healthcare recruiting","_yoast_wpseo_title":"ATS enrichment workflows for healthcare recruiting (playbook)","_yoast_wpseo_metadesc":"A practical playbook for ATS enrichment workflows: dedupe with NPI\/license matching, write back with a field map, automate refresh cadence, and route compliant outreach. Bullhorn + Apploi examples.","_custom_permalink":"integrations-automation\/ats-enrichment-workflows","footnotes":""},"categories":[1],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<title>ATS enrichment workflows for healthcare recruiting (playbook)<\/title>\r\n<meta name=\"description\" content=\"A practical playbook for ATS enrichment workflows: dedupe with NPI\/license matching, write back with a field map, automate refresh cadence, and route compliant outreach. Bullhorn + Apploi examples.\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"ATS enrichment workflows for healthcare recruiting (playbook)\" \/>\r\n<meta property=\"og:description\" content=\"A practical playbook for ATS enrichment workflows: dedupe with NPI\/license matching, write back with a field map, automate refresh cadence, and route compliant outreach. Bullhorn + Apploi examples.\" \/>\r\n<meta property=\"og:url\" content=\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/\" \/>\r\n<meta property=\"og:site_name\" content=\"Heartbeat.ai\" \/>\r\n<meta property=\"article:published_time\" content=\"2026-02-01T18:56:48+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2026-02-27T19:34:12+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/ats-enrichment-workflows-ab158419.png\" \/>\r\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\r\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\r\n<meta name=\"author\" content=\"Ben Argeband\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ben Argeband\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/\"},\"author\":{\"name\":\"Ben Argeband\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/#\/schema\/person\/7b323ddce9b211907423482e2f9db173\"},\"headline\":\"ATS enrichment workflows for healthcare recruiting (field map + Bullhorn\/Apploi playbook)\",\"datePublished\":\"2026-02-01T18:56:48+00:00\",\"dateModified\":\"2026-02-27T19:34:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/\"},\"wordCount\":2907,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/#organization\"},\"image\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/ats-enrichment-workflows-ab158419.png\",\"articleSection\":[\"News\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/\",\"url\":\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/\",\"name\":\"ATS enrichment workflows for healthcare recruiting (playbook)\",\"isPartOf\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/ats-enrichment-workflows-ab158419.png\",\"datePublished\":\"2026-02-01T18:56:48+00:00\",\"dateModified\":\"2026-02-27T19:34:12+00:00\",\"description\":\"A practical playbook for ATS enrichment workflows: dedupe with NPI\/license matching, write back with a field map, automate refresh cadence, and route compliant outreach. Bullhorn + Apploi examples.\",\"breadcrumb\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#primaryimage\",\"url\":\"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/ats-enrichment-workflows-ab158419.png\",\"contentUrl\":\"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/ats-enrichment-workflows-ab158419.png\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/heartbeat.ai\/healthcare\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ATS enrichment workflows for healthcare recruiting (field map + Bullhorn\/Apploi playbook)\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/#website\",\"url\":\"http:\/\/heartbeat.ai\/resources\/\",\"name\":\"Heartbeat.ai\",\"description\":\"\",\"publisher\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/heartbeat.ai\/resources\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/#organization\",\"name\":\"Heartbeat.ai\",\"url\":\"http:\/\/heartbeat.ai\/resources\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2021\/04\/Heartbeat.ai-logo.png\",\"contentUrl\":\"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2021\/04\/Heartbeat.ai-logo.png\",\"width\":704,\"height\":126,\"caption\":\"Heartbeat.ai\"},\"image\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/#\/schema\/person\/7b323ddce9b211907423482e2f9db173\",\"name\":\"Ben Argeband\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/0.gravatar.com\/avatar\/6356f96884d5a313d758128b3d9aaef7?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/0.gravatar.com\/avatar\/6356f96884d5a313d758128b3d9aaef7?s=96&d=mm&r=g\",\"caption\":\"Ben Argeband\"},\"url\":\"http:\/\/heartbeat.ai\/resources\/author\/ben-argeband\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ATS enrichment workflows for healthcare recruiting (playbook)","description":"A practical playbook for ATS enrichment workflows: dedupe with NPI\/license matching, write back with a field map, automate refresh cadence, and route compliant outreach. Bullhorn + Apploi examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/","og_locale":"en_US","og_type":"article","og_title":"ATS enrichment workflows for healthcare recruiting (playbook)","og_description":"A practical playbook for ATS enrichment workflows: dedupe with NPI\/license matching, write back with a field map, automate refresh cadence, and route compliant outreach. Bullhorn + Apploi examples.","og_url":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/","og_site_name":"Heartbeat.ai","article_published_time":"2026-02-01T18:56:48+00:00","article_modified_time":"2026-02-27T19:34:12+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/ats-enrichment-workflows-ab158419.png","type":"image\/png"}],"author":"Ben Argeband","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ben Argeband","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#article","isPartOf":{"@id":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/"},"author":{"name":"Ben Argeband","@id":"http:\/\/heartbeat.ai\/resources\/#\/schema\/person\/7b323ddce9b211907423482e2f9db173"},"headline":"ATS enrichment workflows for healthcare recruiting (field map + Bullhorn\/Apploi playbook)","datePublished":"2026-02-01T18:56:48+00:00","dateModified":"2026-02-27T19:34:12+00:00","mainEntityOfPage":{"@id":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/"},"wordCount":2907,"commentCount":0,"publisher":{"@id":"http:\/\/heartbeat.ai\/resources\/#organization"},"image":{"@id":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#primaryimage"},"thumbnailUrl":"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/ats-enrichment-workflows-ab158419.png","articleSection":["News"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/","url":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/","name":"ATS enrichment workflows for healthcare recruiting (playbook)","isPartOf":{"@id":"http:\/\/heartbeat.ai\/resources\/#website"},"primaryImageOfPage":{"@id":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#primaryimage"},"image":{"@id":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#primaryimage"},"thumbnailUrl":"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/ats-enrichment-workflows-ab158419.png","datePublished":"2026-02-01T18:56:48+00:00","dateModified":"2026-02-27T19:34:12+00:00","description":"A practical playbook for ATS enrichment workflows: dedupe with NPI\/license matching, write back with a field map, automate refresh cadence, and route compliant outreach. Bullhorn + Apploi examples.","breadcrumb":{"@id":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#primaryimage","url":"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/ats-enrichment-workflows-ab158419.png","contentUrl":"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/ats-enrichment-workflows-ab158419.png","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"http:\/\/heartbeat.ai\/resources\/integrations-automation\/ats-enrichment-workflows\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/heartbeat.ai\/healthcare\/"},{"@type":"ListItem","position":2,"name":"ATS enrichment workflows for healthcare recruiting (field map + Bullhorn\/Apploi playbook)"}]},{"@type":"WebSite","@id":"http:\/\/heartbeat.ai\/resources\/#website","url":"http:\/\/heartbeat.ai\/resources\/","name":"Heartbeat.ai","description":"","publisher":{"@id":"http:\/\/heartbeat.ai\/resources\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/heartbeat.ai\/resources\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/heartbeat.ai\/resources\/#organization","name":"Heartbeat.ai","url":"http:\/\/heartbeat.ai\/resources\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/heartbeat.ai\/resources\/#\/schema\/logo\/image\/","url":"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2021\/04\/Heartbeat.ai-logo.png","contentUrl":"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2021\/04\/Heartbeat.ai-logo.png","width":704,"height":126,"caption":"Heartbeat.ai"},"image":{"@id":"http:\/\/heartbeat.ai\/resources\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"http:\/\/heartbeat.ai\/resources\/#\/schema\/person\/7b323ddce9b211907423482e2f9db173","name":"Ben Argeband","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/heartbeat.ai\/resources\/#\/schema\/person\/image\/","url":"http:\/\/0.gravatar.com\/avatar\/6356f96884d5a313d758128b3d9aaef7?s=96&d=mm&r=g","contentUrl":"http:\/\/0.gravatar.com\/avatar\/6356f96884d5a313d758128b3d9aaef7?s=96&d=mm&r=g","caption":"Ben Argeband"},"url":"http:\/\/heartbeat.ai\/resources\/author\/ben-argeband\/"}]}},"_links":{"self":[{"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/posts\/54301"}],"collection":[{"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/comments?post=54301"}],"version-history":[{"count":1,"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/posts\/54301\/revisions"}],"predecessor-version":[{"id":54509,"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/posts\/54301\/revisions\/54509"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/media\/54300"}],"wp:attachment":[{"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/media?parent=54301"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/categories?post=54301"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/tags?post=54301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}