{"id":54307,"date":"2026-02-01T12:57:46","date_gmt":"2026-02-01T18:57:46","guid":{"rendered":"https:\/\/heartbeat.ai\/healthcare\/physician-contact-enrichment\/"},"modified":"2026-02-27T13:34:24","modified_gmt":"2026-02-27T19:34:24","slug":"physician-contact-enrichment","status":"publish","type":"post","link":"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/","title":{"rendered":"Physician contact enrichment: enrich vs verify vs refresh vs dedupe (recruiting ops 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\/physician-contact-enrichment-2e4f2399.png.webp\" alt=\"54306\" \/><\/p>\n<h1>Physician contact enrichment<\/h1>\n<p><strong>Ben Argeband, Founder &amp; CEO of Heartbeat.ai<\/strong> \u2014 Simple and operational. Reduce confusion between enrichment vs verification vs refresh.<\/p>\n<p><strong>TL;DR:<\/strong> Match on NPI\/license, enrich missing channels, validate and suppress risk, route the first-touch channel, then refresh when outcomes degrade and dedupe to prevent repeat touches.<\/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\/provider-contact-data\/physician-contact-enrichment\/#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\/provider-contact-data\/physician-contact-enrichment\/#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\/provider-contact-data\/physician-contact-enrichment\/#Framework_The_Enrichment_Decision_Loop_Enrich_%E2%86%92_Validate_%E2%86%92_Route_%E2%86%92_Refresh\" title=\"Framework: The Enrichment Decision Loop: Enrich \u2192 Validate \u2192 Route \u2192 Refresh\">Framework: The Enrichment Decision Loop: Enrich \u2192 Validate \u2192 Route \u2192 Refresh<\/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\/provider-contact-data\/physician-contact-enrichment\/#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\/provider-contact-data\/physician-contact-enrichment\/#1_Get_your_match_keys_right_before_you_append_anything\" title=\"1) Get your match keys right (before you append anything)\">1) Get your match keys right (before you append anything)<\/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\/provider-contact-data\/physician-contact-enrichment\/#2_Minimum_viable_input_columns_so_enrichment_runs_dont_stall\" title=\"2) Minimum viable input columns (so enrichment runs don\u2019t stall)\">2) Minimum viable input columns (so enrichment runs don\u2019t stall)<\/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\/provider-contact-data\/physician-contact-enrichment\/#3_Normalize_your_ATS_fields_so_enrichment_doesnt_create_chaos\" title=\"3) Normalize your ATS fields (so enrichment doesn\u2019t create chaos)\">3) Normalize your ATS fields (so enrichment doesn\u2019t create chaos)<\/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\/provider-contact-data\/physician-contact-enrichment\/#4_Clarify_the_four_operations_enrich_vs_verify_vs_refresh_vs_dedupe\" title=\"4) Clarify the four operations (enrich vs verify vs refresh vs dedupe)\">4) Clarify the four operations (enrich vs verify vs refresh vs dedupe)<\/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\/provider-contact-data\/physician-contact-enrichment\/#5_Enrich_with_deterministic_overwrite_rules\" title=\"5) Enrich with deterministic overwrite rules\">5) Enrich with deterministic overwrite rules<\/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\/provider-contact-data\/physician-contact-enrichment\/#6_Validate_suppress_before_you_route\" title=\"6) Validate + suppress before you route\">6) Validate + suppress before you route<\/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\/provider-contact-data\/physician-contact-enrichment\/#7_Route_to_the_right_outreach_workflow_channel_sequence\" title=\"7) Route to the right outreach workflow (channel + sequence)\">7) Route to the right outreach workflow (channel + sequence)<\/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\/provider-contact-data\/physician-contact-enrichment\/#8_Refresh_when_outcomes_degrade_not_just_on_a_calendar\" title=\"8) Refresh when outcomes degrade (not just on a calendar)\">8) Refresh when outcomes degrade (not just on a calendar)<\/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\/provider-contact-data\/physician-contact-enrichment\/#9_Dedupe_before_outreach_to_prevent_repeat_touches\" title=\"9) Dedupe before outreach to prevent repeat touches\">9) Dedupe before outreach to prevent repeat touches<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#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-15\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#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-16\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#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-17\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#Call_opener_mobile-first\" title=\"Call opener (mobile-first)\">Call opener (mobile-first)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#Email_verified_email\" title=\"Email (verified email)\">Email (verified email)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#Gatekeeper-friendly_office_line_script\" title=\"Gatekeeper-friendly office line script\">Gatekeeper-friendly office line script<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#Text_only_where_appropriate_and_permitted\" title=\"Text (only where appropriate and permitted)\">Text (only where appropriate and permitted)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#Common_pitfalls\" title=\"Common pitfalls\">Common pitfalls<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#Confusing_enrichment_with_verification\" title=\"Confusing enrichment with verification\">Confusing enrichment with verification<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#Weak_matching_that_creates_false_merges\" title=\"Weak matching that creates false merges\">Weak matching that creates false merges<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#Not_deduping_before_outreach\" title=\"Not deduping before outreach\">Not deduping before outreach<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#Overwriting_recruiter-confirmed_contact_info\" title=\"Overwriting recruiter-confirmed contact info\">Overwriting recruiter-confirmed contact info<\/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\/provider-contact-data\/physician-contact-enrichment\/#Refreshing_on_a_calendar_instead_of_outcomes\" title=\"Refreshing on a calendar instead of outcomes\">Refreshing on a calendar instead of outcomes<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#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-28\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#Use_consistent_metric_definitions_with_denominators\" title=\"Use consistent metric definitions (with denominators)\">Use consistent metric definitions (with denominators)<\/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\/provider-contact-data\/physician-contact-enrichment\/#Define_accuracy_metrics_so_ops_and_recruiters_agree\" title=\"Define accuracy metrics so ops and recruiters agree\">Define accuracy metrics so ops and recruiters agree<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#Measurement_instructions_required\" title=\"Measurement instructions (required)\">Measurement instructions (required)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#Workflow_fit_options_UI_upload_API\" title=\"Workflow fit options (UI, upload, API)\">Workflow fit options (UI, upload, API)<\/a><\/li><\/ul><\/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\/provider-contact-data\/physician-contact-enrichment\/#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-33\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#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-34\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#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-35\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#What_inputs_do_I_need_for_physician_contact_enrichment_to_work_well\" title=\"What inputs do I need for physician contact enrichment to work well?\">What inputs do I need for physician contact enrichment to work well?<\/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\/provider-contact-data\/physician-contact-enrichment\/#When_should_I_enrich_vs_verify_vs_refresh_vs_dedupe\" title=\"When should I enrich vs verify vs refresh vs dedupe?\">When should I enrich vs verify vs refresh vs dedupe?<\/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\/provider-contact-data\/physician-contact-enrichment\/#How_do_I_prevent_repeat_touches_after_enrichment\" title=\"How do I prevent repeat touches after enrichment?\">How do I prevent repeat touches after enrichment?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-38\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#How_should_we_route_outreach_for_physicians_with_gatekeepers\" title=\"How should we route outreach for physicians with gatekeepers?\">How should we route outreach for physicians with gatekeepers?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-39\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#Can_we_run_this_via_API_instead_of_spreadsheets\" title=\"Can we run this via API instead of spreadsheets?\">Can we run this via API instead of spreadsheets?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-40\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#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-41\" href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#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>This is for recruiting ops teams enriching ATS physician records with accurate mobiles\/emails\u2014without burning recruiter time, deliverability, or compliance posture.<\/p>\n<ul>\n<li>You have physician records in an ATS\/CRM with missing or stale phone\/email.<\/li>\n<li>You need stable matching (NPI\/license) so you don\u2019t merge the wrong people.<\/li>\n<li>You need a workflow that prevents repeat touches (dedupe + suppression) and keeps outreach usable over time (refresh triggers).<\/li>\n<\/ul>\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>Physician contact enrichment appends and standardizes phone\/email to existing physician records using stable identifiers (NPI\/license), then validates and routes the best channel for outreach.<\/dd>\n<dt>Key Statistic<\/dt>\n<dd><strong>Heartbeat observed typicals (internal):<\/strong> mobile accuracy 82%; email accuracy 95%.<\/dd>\n<dt>Best For<\/dt>\n<dd>Recruiting ops teams enriching ATS physician records with accurate mobiles\/emails.<\/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_Enrichment_Decision_Loop_Enrich_%E2%86%92_Validate_%E2%86%92_Route_%E2%86%92_Refresh\"><\/span>Framework: The Enrichment Decision Loop: Enrich \u2192 Validate \u2192 Route \u2192 Refresh<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In physician recruiting, enrichment only helps if it\u2019s a loop. Physicians have clinic-hour windows, gatekeepers, and multiple practice locations\u2014so stale or misrouted contact data wastes dials fast.<\/p>\n<ul>\n<li><strong>Enrich<\/strong>: append missing contact points and normalize fields.<\/li>\n<li><strong>Validate<\/strong>: phone validation + email verification + suppression so you don\u2019t scale bad channels.<\/li>\n<li><strong>Route<\/strong>: choose the first-touch channel and sequence based on confidence and workflow fit.<\/li>\n<li><strong>Refresh<\/strong>: re-check when outcomes degrade, not just on a calendar.<\/li>\n<\/ul>\n<p>The trade-off is\u2026 enrichment increases reach, but skipping validation, routing, and refresh shows up as bounces, low connects, and recruiter time loss.<\/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=\"1_Get_your_match_keys_right_before_you_append_anything\"><\/span>1) Get your match keys right (before you append anything)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Enrichment works best with stable identifiers. For physicians, that usually means <strong>NPI<\/strong> and\/or <strong>license matching<\/strong>. Names alone are not a safe primary key.<\/p>\n<ul>\n<li><strong>Preferred match keys<\/strong>: NPI; license number + state.<\/li>\n<li><strong>Helpful supporting fields<\/strong>: full name (split), specialty, city\/state, organization\/affiliation.<\/li>\n<\/ul>\n<p>If you need the mechanics, start here: <a href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/npi-license-matching\/\">NPI and license matching for provider records<\/a>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"2_Minimum_viable_input_columns_so_enrichment_runs_dont_stall\"><\/span>2) Minimum viable input columns (so enrichment runs don\u2019t stall)<span class=\"ez-toc-section-end\"><\/span><\/h3>\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>Column<\/th>\n<th>Required?<\/th>\n<th>Why it matters<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>NPI<\/td>\n<td><strong>Preferred<\/strong><\/td>\n<td>Best match key for physician identity<\/td>\n<\/tr>\n<tr>\n<td>License number + state<\/td>\n<td><strong>Preferred<\/strong><\/td>\n<td>Backup match key when NPI is missing<\/td>\n<\/tr>\n<tr>\n<td>First name \/ last name<\/td>\n<td><strong>Yes<\/strong><\/td>\n<td>Fallback matching and human review<\/td>\n<\/tr>\n<tr>\n<td>Specialty<\/td>\n<td><strong>Recommended<\/strong><\/td>\n<td>Routing and recruiter assignment<\/td>\n<\/tr>\n<tr>\n<td>City\/state<\/td>\n<td><strong>Recommended<\/strong><\/td>\n<td>Disambiguation and routing<\/td>\n<\/tr>\n<tr>\n<td>Existing phone(s) \/ email(s)<\/td>\n<td><strong>Recommended<\/strong><\/td>\n<td>Prevents overwriting good data; improves dedupe<\/td>\n<\/tr>\n<tr>\n<td>ATS internal provider ID<\/td>\n<td><strong>Recommended<\/strong><\/td>\n<td>Stable internal join and audit trail<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"3_Normalize_your_ATS_fields_so_enrichment_doesnt_create_chaos\"><\/span>3) Normalize your ATS fields (so enrichment doesn\u2019t create chaos)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Before enrichment, normalize what you already have so you can dedupe and avoid overwriting good data with worse data.<\/p>\n<ul>\n<li>Split names into first\/middle\/last\/suffix.<\/li>\n<li>Normalize phones to E.164 and separate by type (mobile vs office vs other).<\/li>\n<li>Normalize emails (lowercase, trim whitespace) and store provenance.<\/li>\n<li>Add timestamps: last phone validation date, last email verification date.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"4_Clarify_the_four_operations_enrich_vs_verify_vs_refresh_vs_dedupe\"><\/span>4) Clarify the four operations (enrich vs verify vs refresh vs dedupe)<span class=\"ez-toc-section-end\"><\/span><\/h3>\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>Operation<\/th>\n<th>What it does<\/th>\n<th>When to run it<\/th>\n<th>What it prevents<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Enrichment<\/strong><\/td>\n<td>Appends missing phone\/email and standardizes fields<\/td>\n<td>When records are missing channels or poorly formatted<\/td>\n<td>Recruiters hunting for contact info manually<\/td>\n<\/tr>\n<tr>\n<td><strong>Verification<\/strong><\/td>\n<td>Checks usability (phone validation, email verification) and suppresses risky contacts<\/td>\n<td>Before scaling outreach volume or after importing new contacts<\/td>\n<td>High bounce rate, wasted dials, compliance risk<\/td>\n<\/tr>\n<tr>\n<td><strong>Refresh<\/strong><\/td>\n<td>Re-checks and updates contact fields when performance degrades<\/td>\n<td>When outcomes degrade (bounces up, connects down, replies down)<\/td>\n<td>Stale data dragging down speed-to-submittal<\/td>\n<\/tr>\n<tr>\n<td><strong>Dedupe<\/strong><\/td>\n<td>Merges duplicate physician profiles and unifies suppression\/opt-out<\/td>\n<td>Before outreach and after imports\/migrations<\/td>\n<td>Repeat touches and internal ownership confusion<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"5_Enrich_with_deterministic_overwrite_rules\"><\/span>5) Enrich with deterministic overwrite rules<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Decide what can overwrite and what can only append. This is where ops protects recruiter trust in the ATS.<\/p>\n<ul>\n<li><strong>Overwrite allowed<\/strong>: formatting fixes, country code, missing fields.<\/li>\n<li><strong>Append only<\/strong>: additional phones\/emails, alternate locations, alternate names.<\/li>\n<li><strong>Never overwrite without evidence<\/strong>: recruiter-confirmed mobile, recently verified email, consented preferred channel.<\/li>\n<\/ul>\n<p><strong>What not to overwrite (practical rule):<\/strong> if a recruiter confirmed a mobile in a call disposition or notes, keep it as the primary number and append any new numbers as alternates with source + date.<\/p>\n<p>If you\u2019re using Heartbeat.ai, the goal is not \u201cmore numbers.\u201d The goal is <strong>ranked mobile numbers by answer probability<\/strong> so recruiters start with the most likely-to-connect option.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"6_Validate_suppress_before_you_route\"><\/span>6) Validate + suppress before you route<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Validation is where you protect deliverability and recruiter time.<\/p>\n<ul>\n<li><strong>Phone validation<\/strong>: confirm the number is callable and classify it (mobile vs office vs other) when possible.<\/li>\n<li><strong>Email verification<\/strong>: confirm the mailbox is deliverable enough to send without spiking bounces.<\/li>\n<li><strong>Suppression<\/strong>: enforce consent\/opt-out and internal do-not-contact across ATS, CRM, and recruiter tools.<\/li>\n<\/ul>\n<p><strong>Write-back fields to your ATS (so the work sticks):<\/strong><\/p>\n<ul>\n<li><strong>Source<\/strong> (e.g., Heartbeat.ai) for each phone\/email.<\/li>\n<li><strong>Phone type<\/strong> (mobile\/office\/other) and primary vs alternate ordering.<\/li>\n<li><strong>Last phone validation date<\/strong> and <strong>last email verification date<\/strong>.<\/li>\n<li><strong>Consent<\/strong> notes (if captured) and a global <strong>opt-out<\/strong> flag + timestamp.<\/li>\n<li><strong>Suppression reason<\/strong> (opt-out, internal DNC, invalid channel) so recruiters understand why a record is blocked.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"7_Route_to_the_right_outreach_workflow_channel_sequence\"><\/span>7) Route to the right outreach workflow (channel + sequence)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Routing is where enrichment turns into placements. Use the enriched + validated fields to choose a sequence that fits physician reality.<\/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>What you have<\/th>\n<th>Route to<\/th>\n<th>Ops note<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Validated mobile<\/td>\n<td>Call-first + short voicemail + optional compliant text<\/td>\n<td>Best for speed-to-submittal; log dispositions<\/td>\n<\/tr>\n<tr>\n<td>Verified email only<\/td>\n<td>Email-first + scheduled call window<\/td>\n<td>Protect deliverability; keep copy short<\/td>\n<\/tr>\n<tr>\n<td>Office line only<\/td>\n<td>Gatekeeper script + request preferred channel<\/td>\n<td>Capture preferred contact method in ATS<\/td>\n<\/tr>\n<tr>\n<td>Multiple channels<\/td>\n<td>Hybrid sequence (email + same-day call)<\/td>\n<td>Use suppression to prevent multi-recruiter overlap<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><strong>Use cases (when this workflow pays off fast):<\/strong><\/p>\n<ul>\n<li><strong>New req launch<\/strong>: enrich + validate + route so recruiters start with the best channel on day one.<\/li>\n<li><strong>Reactivation<\/strong>: refresh validation\/verification first, then re-run routing to avoid stale outreach.<\/li>\n<li><strong>ATS migration cleanup<\/strong>: normalize fields, dedupe on NPI\/license, then enrich missing channels.<\/li>\n<li><strong>Multi-site physician records<\/strong>: append alternates, store phone type, and route by confidence to avoid gatekeeper loops.<\/li>\n<\/ul>\n<p>Time math (no invented numbers): every non-connecting dial and every bounced email consumes recruiter minutes that could have been candidate conversations. Routing reduces wasted attempts by prioritizing the best channel first, which protects gross margin because recruiter hours are your most expensive input.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"8_Refresh_when_outcomes_degrade_not_just_on_a_calendar\"><\/span>8) Refresh when outcomes degrade (not just on a calendar)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Refresh should be triggered by performance signals, then prioritized by last validation\/verification date. Use this guide: <a href=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/provider-data-refresh-cadence\/\">provider data refresh cadence<\/a>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"9_Dedupe_before_outreach_to_prevent_repeat_touches\"><\/span>9) Dedupe before outreach to prevent repeat touches<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Dedupe is how you avoid the fastest way to lose trust with physicians: multiple recruiters contacting the same person from duplicate ATS profiles.<\/p>\n<ul>\n<li>Dedupe on NPI\/license first.<\/li>\n<li>Then dedupe on combinations (email, phone, name + specialty + city\/state).<\/li>\n<li>Keep a merge log: what merged, when, and why.<\/li>\n<\/ul>\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 root cause<\/th>\n<th>Fix<\/th>\n<th>What to track<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Email bounces spike after outreach<\/td>\n<td>Emails appended but not verified; stale domains; risky inbox types<\/td>\n<td>Run email verification, suppress risky addresses, store last verification date<\/td>\n<td><strong>Bounce Rate<\/strong> = bounced emails \/ sent emails (per 100 sent)<\/td>\n<\/tr>\n<tr>\n<td>Lots of dials, few connections<\/td>\n<td>Office lines\/gatekeepers; wrong number type; stale phones<\/td>\n<td>Phone validation, prioritize mobile, route to call windows<\/td>\n<td><strong>Connect Rate<\/strong> = connected calls \/ total dials (per 100 dials)<\/td>\n<\/tr>\n<tr>\n<td>Connected calls but no physician answers<\/td>\n<td>Front desk answers; shared lines; wrong extension<\/td>\n<td>Reclassify numbers, adjust routing, capture preferred channel<\/td>\n<td><strong>Answer Rate<\/strong> = human answers \/ connected calls (per 100 connected calls)<\/td>\n<\/tr>\n<tr>\n<td>Deliverability looks fine but replies are low<\/td>\n<td>Wrong channel for that physician; timing; message mismatch<\/td>\n<td>Route by channel confidence; tighten copy; test sequences<\/td>\n<td><strong>Reply Rate<\/strong> = replies \/ delivered emails (per 100 delivered emails)<\/td>\n<\/tr>\n<tr>\n<td>Deliverability drops over time<\/td>\n<td>Stale emails; missing suppression; verification dates not tracked<\/td>\n<td>Refresh verification on older segments; enforce suppression<\/td>\n<td><strong>Deliverability Rate<\/strong> = delivered emails \/ sent emails (per 100 sent emails)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><strong>ATS field map mini-table (store these so enrichment stays usable)<\/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>ATS field<\/th>\n<th>Populate with<\/th>\n<th>Why it matters<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>NPI<\/td>\n<td>10-digit NPI<\/td>\n<td>Primary match key for physician identity and joins<\/td>\n<\/tr>\n<tr>\n<td>License<\/td>\n<td>License number + state<\/td>\n<td>Backup match key when NPI is missing<\/td>\n<\/tr>\n<tr>\n<td>Mobile phone<\/td>\n<td>E.164 formatted mobile (if available)<\/td>\n<td>Fastest path to conversations<\/td>\n<\/tr>\n<tr>\n<td>Phone type<\/td>\n<td>mobile \/ office \/ other<\/td>\n<td>Routing and recruiter expectations<\/td>\n<\/tr>\n<tr>\n<td>Email<\/td>\n<td>Best available email + type (personal\/work)<\/td>\n<td>Deliverability and reply performance<\/td>\n<\/tr>\n<tr>\n<td>Last phone validation date<\/td>\n<td>Date<\/td>\n<td>Refresh prioritization and auditability<\/td>\n<\/tr>\n<tr>\n<td>Last email verification date<\/td>\n<td>Date<\/td>\n<td>Refresh prioritization and auditability<\/td>\n<\/tr>\n<tr>\n<td>Consent \/ opt-out<\/td>\n<td>Flag + timestamp + notes<\/td>\n<td>Compliance and suppression across teams<\/td>\n<\/tr>\n<tr>\n<td>Source<\/td>\n<td>Vendor\/system name<\/td>\n<td>Debugging and trust scoring<\/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>Score each item 0\u20132 (0 = no, 1 = partial, 2 = yes). Higher total means you\u2019re ready to enrich at scale without breaking your ATS.<\/p>\n<ul>\n<li><strong>(2x) Match keys present<\/strong>: NPI and\/or license matching fields exist and are populated for most records.<\/li>\n<li><strong>(2x) Normalized fields<\/strong>: phones separated by type; emails cleaned; names split.<\/li>\n<li><strong>(2x) Overwrite rules<\/strong>: written rules for overwrite vs append, plus a merge log.<\/li>\n<li><strong>(2x) Suppression enforced<\/strong>: opt-out and do-not-contact are centralized and applied everywhere.<\/li>\n<li><strong>(1x) Validation built-in<\/strong>: phone validation and email verification are part of the workflow.<\/li>\n<li><strong>(1x) Routing rules exist<\/strong>: channel + sequence rules are documented and used.<\/li>\n<li><strong>(1x) Refresh triggers defined<\/strong>: refresh is triggered by outcome degradation.<\/li>\n<li><strong>(1x) Dedupe logic<\/strong>: dedupe on NPI\/license first, then fallbacks.<\/li>\n<\/ul>\n<p><strong>Decision Tree worksheet (uniqueness hook: DECISION_TREE)<\/strong><\/p>\n<ul>\n<li><strong>If<\/strong> NPI\/license coverage is low, <strong>then<\/strong> fix match keys first (capture NPI, run license matching) before enrichment.<\/li>\n<li><strong>If<\/strong> bounce rate rises, <strong>then<\/strong> prioritize email verification + suppression before adding more emails.<\/li>\n<li><strong>If<\/strong> connect rate falls, <strong>then<\/strong> refresh phone validation and re-route to mobile-first sequences.<\/li>\n<li><strong>If<\/strong> repeat touches show up, <strong>then<\/strong> dedupe and unify suppression before any new enrichment run.<\/li>\n<li><strong>If<\/strong> you have strong match keys but missing mobiles, <strong>then<\/strong> enrich mobiles and route call windows immediately.<\/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>Short, physician-friendly templates. Always respect consent and opt-out.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Call_opener_mobile-first\"><\/span>Call opener (mobile-first)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u201cHi Dr. [Last], this is [Name] with [Org]. I\u2019m calling about a [specialty] role in [market]. Do you have 30 seconds?\u201d<\/p>\n<p>If busy: \u201cUnderstood. What\u2019s the best time window today or tomorrow for a quick call?\u201d<\/p>\n<p>Voicemail: \u201cDr. [Last], [Name] with [Org]. Quick question about a [role] in [market]. Call or text me at [number]. If you prefer no outreach, tell me and I\u2019ll stop.\u201d<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Email_verified_email\"><\/span>Email (verified email)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Subject:<\/strong> \u201c[Market] [Role] \u2014 quick fit check\u201d<\/p>\n<p>\u201cDr. [Last] \u2014 I\u2019m recruiting for a [role] in [market]. Two questions: (1) Are you open to details? (2) If not, what\u2019s the best contact method for you? If you prefer no outreach, reply \u2018opt out\u2019 and I\u2019ll suppress.\u201d<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Gatekeeper-friendly_office_line_script\"><\/span>Gatekeeper-friendly office line script<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u201cHi, I\u2019m trying to reach Dr. [Last] for a brief professional opportunity. Is there a preferred way to send details\u2014email or a direct line? I\u2019m happy to follow your process.\u201d<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Text_only_where_appropriate_and_permitted\"><\/span>Text (only where appropriate and permitted)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u201cDr. [Last], this is [Name] with [Org]. Quick fit check for a [role] in [market]. OK to send details here? Reply STOP to opt out.\u201d<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Common_pitfalls\"><\/span>Common pitfalls<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Confusing_enrichment_with_verification\"><\/span>Confusing enrichment with verification<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Appending contact fields is not the same as making them usable. If you skip phone validation and email verification, you\u2019ll see it in bounce rate and wasted dials.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Weak_matching_that_creates_false_merges\"><\/span>Weak matching that creates false merges<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Matching on name-only is how you attach the wrong phone\/email to the wrong physician. Use NPI and license matching as your backbone.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Not_deduping_before_outreach\"><\/span>Not deduping before outreach<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Duplicate profiles create duplicate touches. That drives opt-outs and damages your brand in a small physician community.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Overwriting_recruiter-confirmed_contact_info\"><\/span>Overwriting recruiter-confirmed contact info<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Store multiple phones\/emails with source + dates. Don\u2019t overwrite a recruiter-confirmed mobile with an appended number without evidence.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Refreshing_on_a_calendar_instead_of_outcomes\"><\/span>Refreshing on a calendar instead of outcomes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Refresh when outcomes degrade, then prioritize by last validation\/verification date.<\/p>\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=\"Use_consistent_metric_definitions_with_denominators\"><\/span>Use consistent metric definitions (with denominators)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>Connect Rate<\/strong> = connected calls \/ total dials (per 100 dials).<\/li>\n<li><strong>Answer Rate<\/strong> = human answers \/ connected calls (per 100 connected calls).<\/li>\n<li><strong>Deliverability Rate<\/strong> = delivered emails \/ sent emails (per 100 sent emails).<\/li>\n<li><strong>Bounce Rate<\/strong> = bounced emails \/ sent emails (per 100 sent emails).<\/li>\n<li><strong>Reply Rate<\/strong> = replies \/ delivered emails (per 100 delivered emails).<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Define_accuracy_metrics_so_ops_and_recruiters_agree\"><\/span>Define accuracy metrics so ops and recruiters agree<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>Mobile accuracy definition<\/strong>: per 100 phone numbers dialed from your enriched &#8220;mobile&#8221; field, how many reached the intended physician (based on recruiter disposition and notes over a defined reporting window (e.g., weekly), reported per 100 dials).<\/li>\n<li><strong>Email accuracy definition<\/strong>: per 100 emails sent to enriched addresses, how many were deliverable and belonged to the intended physician (based on verification results, bounces, and recruiter feedback).<\/li>\n<li><strong>Match key definition<\/strong>: a stable identifier used to join records across systems with low ambiguity (e.g., NPI or license number + state), not name-only matching.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Measurement_instructions_required\"><\/span>Measurement instructions (required)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Measure this by\u2026 running a weekly ops dashboard that ties outcomes back to the specific phone\/email used and its last validation\/verification date.<\/p>\n<ol>\n<li><strong>Tag each outreach<\/strong> with channel (call\/email\/text), contact source (e.g., Heartbeat.ai), and the exact phone\/email used.<\/li>\n<li><strong>Require call dispositions<\/strong>: wrong person, front desk, voicemail, physician answered, disconnected, no answer.<\/li>\n<li><strong>Capture email events<\/strong>: delivered, bounced, replied, unsubscribed\/opt-out.<\/li>\n<li><strong>Segment by age<\/strong>: group records by days since last phone validation and days since last email verification.<\/li>\n<li><strong>Trigger refresh<\/strong>: when older segments show worse bounce rate, deliverability rate, connect rate, or reply rate, refresh those records first.<\/li>\n<li><strong>Close the loop<\/strong>: feed &#8220;wrong person\/front desk&#8221; outcomes back into phone type classification and routing rules.<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Workflow_fit_options_UI_upload_API\"><\/span>Workflow fit options (UI, upload, API)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>Recruiter workflow<\/strong>: <a href=\"https:\/\/heartbeat.ai\/signup\">start free search &amp; preview data<\/a> for fast lookups on a short list (with ops governance on suppression and logging).<\/li>\n<li><strong>Ops file workflow<\/strong>: <a href=\"https:\/\/heartbeat.ai\/upload-file\">upload a file for enrichment<\/a> when you\u2019re cleaning an ATS export and want controlled overwrite rules.<\/li>\n<li><strong>System workflow<\/strong>: use the <a href=\"https:\/\/heartbeat.ai\/api\">Heartbeat API<\/a> to embed enrichment, validation, and refresh triggers into your stack.<\/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<p>Build your enrichment workflow so it\u2019s easy to do the right thing:<\/p>\n<ul>\n<li><strong>Consent and opt-out<\/strong>: store consent notes when provided; honor opt-out immediately across all systems.<\/li>\n<li><strong>Purpose limitation<\/strong>: use enriched contact data for legitimate recruiting communications only.<\/li>\n<li><strong>Minimize exposure<\/strong>: restrict exports of raw contact fields; log access where possible.<\/li>\n<li><strong>Suppression<\/strong>: maintain a global suppression list across teams and tools.<\/li>\n<\/ul>\n<p><strong>Suppression hierarchy (ops rule):<\/strong> opt-out overrides everything, then internal do-not-contact, then channel risk suppression (invalid\/unverified) before any routing rules.<\/p>\n<p>Heartbeat.ai does not provide legal counsel. If you operate across jurisdictions, align with your compliance team on outreach rules, retention, and suppression handling.<\/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>NPI is a common anchor for physician identity and matching workflows. Reference: <a href=\"https:\/\/nppes.cms.hhs.gov\/\">NPPES NPI Registry (CMS)<\/a>.<\/p>\n<p>For how Heartbeat approaches data quality, sourcing, and verification practices, see our <a href=\"http:\/\/heartbeat.ai\/resources\/trust-methodology\/\">trust methodology and data quality approach<\/a>.<\/p>\n<p>Reminder: we do not claim guaranteed matches. Your match rate depends on the match keys you provide (NPI\/license), record cleanliness, and suppression rules.<\/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_inputs_do_I_need_for_physician_contact_enrichment_to_work_well\"><\/span>What inputs do I need for physician contact enrichment to work well?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>At minimum: NPI and\/or license number + state, full name (split if possible), specialty, and location. Existing phones\/emails help prevent overwriting good data and improve dedupe.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"When_should_I_enrich_vs_verify_vs_refresh_vs_dedupe\"><\/span>When should I enrich vs verify vs refresh vs dedupe?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Enrich when you\u2019re missing channels. Verify before scaling outreach. Refresh when outcomes degrade (bounces up, connects down, replies down). Dedupe before outreach and after imports\/migrations.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"How_do_I_prevent_repeat_touches_after_enrichment\"><\/span>How do I prevent repeat touches after enrichment?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Dedupe on NPI\/license first, unify suppression and opt-out across ATS\/CRM and recruiter tools, and log merges so ownership is clear.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"How_should_we_route_outreach_for_physicians_with_gatekeepers\"><\/span>How should we route outreach for physicians with gatekeepers?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>If you only have an office line, route to a gatekeeper script and capture the physician\u2019s preferred channel. If you have a validated mobile, route to call-first with tight call windows.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Can_we_run_this_via_API_instead_of_spreadsheets\"><\/span>Can we run this via API instead of spreadsheets?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Yes. Many teams enrich and validate via API so new\/updated ATS records trigger enrichment, routing, and refresh automatically. Start with a controlled file run, then move to API once overwrite rules and suppression are stable.<\/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>Validate the workflow on a short list: <a href=\"https:\/\/heartbeat.ai\/signup\">start free search &amp; preview data<\/a>.<\/li>\n<li>Run a controlled ops pass with overwrite rules: <a href=\"https:\/\/heartbeat.ai\/upload-file\">upload a file for enrichment<\/a>.<\/li>\n<li>Embed enrichment + validation + refresh triggers in your stack: use the <a href=\"https:\/\/heartbeat.ai\/api\">Heartbeat API<\/a>.<\/li>\n<\/ul>\n<p>If you want one ops rule to enforce: enrich only when you can match confidently (NPI\/license), and refresh based on outcomes\u2014not hope.<\/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\",\"articleSection\":\"Resources\",\"author\":{\"@type\":\"Person\",\"jobTitle\":\"Founder & CEO of Heartbeat.ai\",\"name\":\"Ben Argeband\"},\"dateModified\":\"2026-01-05\",\"datePublished\":\"2026-01-05\",\"headline\":\"Physician contact enrichment: enrich vs verify vs refresh vs dedupe (recruiting ops playbook)\",\"keywords\":[\"physician contact enrichment\",\"enrichment\",\"physician\",\"NPI\",\"license matching\",\"phone validation\",\"email verification\",\"consent\",\"opt-out\"],\"mainEntityOfPage\":{\"@id\":\"https:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/\",\"@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\":\"At minimum: NPI and\/or license number + state, full name (split if possible), specialty, and location. Existing phones\/emails help prevent overwriting good data and improve dedupe.\"},\"name\":\"What inputs do I need for physician contact enrichment to work well?\"},{\"@type\":\"Question\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Enrich when you\u2019re missing channels. Verify before scaling outreach. Refresh when outcomes degrade (bounces up, connects down, replies down). Dedupe before outreach and after imports\/migrations.\"},\"name\":\"When should I enrich vs verify vs refresh vs dedupe?\"},{\"@type\":\"Question\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Dedupe on NPI\/license first, unify suppression and opt-out across ATS\/CRM and recruiter tools, and log merges so ownership is clear.\"},\"name\":\"How do I prevent repeat touches after enrichment?\"},{\"@type\":\"Question\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"If you only have an office line, route to a gatekeeper script and capture the physician\u2019s preferred channel. If you have a validated mobile, route to call-first with tight call windows.\"},\"name\":\"How should we route outreach for physicians with gatekeepers?\"},{\"@type\":\"Question\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Many teams enrich and validate via API so new\/updated ATS records trigger enrichment, routing, and refresh automatically. Start with a controlled file run, then move to API once overwrite rules and suppression are stable.\"},\"name\":\"Can we run this via API instead of spreadsheets?\"}]}<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>Recruiting ops playbook for physician contact enrichment: match on NPI\/license, enrich missing channels, validate and suppress risk, route outreach, refresh when outcomes degrade, and dedupe to prevent repeat touches.<\/p>","protected":false},"author":5,"featured_media":54306,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_focuskw":"physician contact enrichment","_yoast_wpseo_title":"Physician contact enrichment (enrich vs verify vs refresh vs dedupe) | Heartbeat.ai","_yoast_wpseo_metadesc":"Recruiting ops playbook for physician contact enrichment: match on NPI\/license, enrich, validate phone\/email, route outreach, refresh when outcomes degrade, and dedupe to prevent repeat touches.","_custom_permalink":"provider-contact-data\/physician-contact-enrichment","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>Physician contact enrichment (enrich vs verify vs refresh vs dedupe) | Heartbeat.ai<\/title>\r\n<meta name=\"description\" content=\"Recruiting ops playbook for physician contact enrichment: match on NPI\/license, enrich, validate phone\/email, route outreach, refresh when outcomes degrade, and dedupe to prevent repeat touches.\" \/>\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\/provider-contact-data\/physician-contact-enrichment\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Physician contact enrichment (enrich vs verify vs refresh vs dedupe) | Heartbeat.ai\" \/>\r\n<meta property=\"og:description\" content=\"Recruiting ops playbook for physician contact enrichment: match on NPI\/license, enrich, validate phone\/email, route outreach, refresh when outcomes degrade, and dedupe to prevent repeat touches.\" \/>\r\n<meta property=\"og:url\" content=\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/\" \/>\r\n<meta property=\"og:site_name\" content=\"Heartbeat.ai\" \/>\r\n<meta property=\"article:published_time\" content=\"2026-02-01T18:57:46+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2026-02-27T19:34:24+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/physician-contact-enrichment-2e4f2399.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=\"14 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/\"},\"author\":{\"name\":\"Ben Argeband\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/#\/schema\/person\/7b323ddce9b211907423482e2f9db173\"},\"headline\":\"Physician contact enrichment: enrich vs verify vs refresh vs dedupe (recruiting ops playbook)\",\"datePublished\":\"2026-02-01T18:57:46+00:00\",\"dateModified\":\"2026-02-27T19:34:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/\"},\"wordCount\":2778,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/#organization\"},\"image\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/physician-contact-enrichment-2e4f2399.png\",\"articleSection\":[\"News\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/\",\"url\":\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/\",\"name\":\"Physician contact enrichment (enrich vs verify vs refresh vs dedupe) | Heartbeat.ai\",\"isPartOf\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/physician-contact-enrichment-2e4f2399.png\",\"datePublished\":\"2026-02-01T18:57:46+00:00\",\"dateModified\":\"2026-02-27T19:34:24+00:00\",\"description\":\"Recruiting ops playbook for physician contact enrichment: match on NPI\/license, enrich, validate phone\/email, route outreach, refresh when outcomes degrade, and dedupe to prevent repeat touches.\",\"breadcrumb\":{\"@id\":\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#primaryimage\",\"url\":\"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/physician-contact-enrichment-2e4f2399.png\",\"contentUrl\":\"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/physician-contact-enrichment-2e4f2399.png\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/heartbeat.ai\/healthcare\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Physician contact enrichment: enrich vs verify vs refresh vs dedupe (recruiting ops 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":"Physician contact enrichment (enrich vs verify vs refresh vs dedupe) | Heartbeat.ai","description":"Recruiting ops playbook for physician contact enrichment: match on NPI\/license, enrich, validate phone\/email, route outreach, refresh when outcomes degrade, and dedupe to prevent repeat touches.","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\/provider-contact-data\/physician-contact-enrichment\/","og_locale":"en_US","og_type":"article","og_title":"Physician contact enrichment (enrich vs verify vs refresh vs dedupe) | Heartbeat.ai","og_description":"Recruiting ops playbook for physician contact enrichment: match on NPI\/license, enrich, validate phone\/email, route outreach, refresh when outcomes degrade, and dedupe to prevent repeat touches.","og_url":"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/","og_site_name":"Heartbeat.ai","article_published_time":"2026-02-01T18:57:46+00:00","article_modified_time":"2026-02-27T19:34:24+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/physician-contact-enrichment-2e4f2399.png","type":"image\/png"}],"author":"Ben Argeband","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ben Argeband","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#article","isPartOf":{"@id":"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/"},"author":{"name":"Ben Argeband","@id":"http:\/\/heartbeat.ai\/resources\/#\/schema\/person\/7b323ddce9b211907423482e2f9db173"},"headline":"Physician contact enrichment: enrich vs verify vs refresh vs dedupe (recruiting ops playbook)","datePublished":"2026-02-01T18:57:46+00:00","dateModified":"2026-02-27T19:34:24+00:00","mainEntityOfPage":{"@id":"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/"},"wordCount":2778,"commentCount":0,"publisher":{"@id":"http:\/\/heartbeat.ai\/resources\/#organization"},"image":{"@id":"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#primaryimage"},"thumbnailUrl":"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/physician-contact-enrichment-2e4f2399.png","articleSection":["News"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/","url":"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/","name":"Physician contact enrichment (enrich vs verify vs refresh vs dedupe) | Heartbeat.ai","isPartOf":{"@id":"http:\/\/heartbeat.ai\/resources\/#website"},"primaryImageOfPage":{"@id":"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#primaryimage"},"image":{"@id":"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#primaryimage"},"thumbnailUrl":"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/physician-contact-enrichment-2e4f2399.png","datePublished":"2026-02-01T18:57:46+00:00","dateModified":"2026-02-27T19:34:24+00:00","description":"Recruiting ops playbook for physician contact enrichment: match on NPI\/license, enrich, validate phone\/email, route outreach, refresh when outcomes degrade, and dedupe to prevent repeat touches.","breadcrumb":{"@id":"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#primaryimage","url":"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/physician-contact-enrichment-2e4f2399.png","contentUrl":"https:\/\/hc.heartbeat.ai\/wp-content\/uploads\/2026\/02\/physician-contact-enrichment-2e4f2399.png","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"http:\/\/heartbeat.ai\/resources\/provider-contact-data\/physician-contact-enrichment\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/heartbeat.ai\/healthcare\/"},{"@type":"ListItem","position":2,"name":"Physician contact enrichment: enrich vs verify vs refresh vs dedupe (recruiting ops 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\/54307"}],"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=54307"}],"version-history":[{"count":1,"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/posts\/54307\/revisions"}],"predecessor-version":[{"id":54512,"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/posts\/54307\/revisions\/54512"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/media\/54306"}],"wp:attachment":[{"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/media?parent=54307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/categories?post=54307"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/heartbeat.ai\/resources\/wp-json\/wp\/v2\/tags?post=54307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}