
Sourcing physicians not on LinkedIn: a recruiter playbook for the hidden talent market
By Ben Argeband, Founder & CEO of Heartbeat.ai — This is the flagship narrative + the workflow.
What’s on this page:
Who this is for
This is for recruiters missing a large share of clinicians by relying on LinkedIn alone. If you’re seeing “we found profiles” but not getting real conversations, this is the workflow to fix it.
- In-house TA teams with hard-to-fill physician reqs and low reachability
- Agency recruiters who need faster connects without burning margin on dead outreach
- Teams whose ATS/CRM is accumulating duplicates because identity isn’t anchored
Quick Answer
- Core Answer
- Anchor each clinician to NPI/license, attach verified channels (phone/email), then run compliant outreach and track reachability metrics to access the hidden talent market.
- Key Statistic
- Heartbeat observed typicals: connect rate ~10% typical; placements 1 per 100–200 outreach attempts (where an attempt = one completed touch: a dial or a delivered email).
- Best For
- Recruiters missing a large share of clinicians by relying on LinkedIn alone.
Compliance & Safety
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.
Framework: The “Iceberg” Theory: Visible Profiles vs Reachable Clinicians
Most teams confuse visibility with reachability.
- Visible means you can find a profile.
- Reachable means you can start a conversation within your SLA (calls connected, emails delivered, replies).
The “Iceberg” Theory: the part you can see in a social network is only the top. The larger mass underneath is clinicians who are hard to search, not active, or not messageable, but still reachable through direct channels tied to a verified identity.
So the workflow flips: instead of starting with a social profile and hoping it’s current, you start with deterministic identity (NPI/license matching) and then attach channels you can actually use.
Step-by-step method
Step 1: Treat LinkedIn as a channel, not your index
LinkedIn is useful, but it’s not a universal clinician index. What you can see depends on member visibility and settings, so “not found” is not the same as “not real.”
Operationally: if your workflow is “find profile → message,” you will undercount and underreach physicians.
Step 2: Build your universal clinician index with deterministic identity (NPI + license matching)
For physicians, the cleanest universal index is NPI. When you need extra certainty (common names, multi-state, recent moves), add license matching.
- Define your target: specialty, geography, setting, and constraints.
- Build a table keyed by NPI (one row per clinician).
- Attach license data where it improves certainty and routing.
This is how you avoid duplicates, name collisions, and wrong-person outreach.
Step 3: Attach reachable channels (and label them correctly)
Once identity is stable, you need channels. Your goal is at least one reliable path to a human conversation:
- direct mobile number (fastest when it performs)
- personal email (asynchronous, lower interruption)
- office line (often gatekeepered; still useful for verification and routing)
The trade-off is… direct channels can improve speed to connect, but they also increase your responsibility to run suppression, honor opt-out, and keep outreach tight and relevant.
Step 4: Put compliance controls in place before you scale
Scaling outreach without controls is how teams burn domains, annoy candidates, and create internal chaos.
- Consent: document it when you have it; don’t invent it.
- Opt-out: make it easy and honor it immediately across all reqs and teammates.
- Suppression: maintain a do-not-contact list and apply it before every call block and email send.
- Data minimization: store what you need to recruit; don’t hoard sensitive data.
Step 5: Run a two-lane sequence that respects clinic reality
Physicians have clinic blocks, procedures, and call. Your sequence should respect that and minimize disruption.
- Lane A (call-first): when you have a direct mobile number and the req is urgent.
- Lane B (email-first): when you have a strong personal email and the pitch needs context (schedule, call, location, comp structure).
Keep it simple: a short sequence with clear opt-out language and a single ask (10-minute call, or “reply with best number/time”).
Step 6: Instrument reachability with canonical metric definitions
If you don’t define metrics the same way every week, you can’t diagnose what’s broken. Use these definitions consistently:
- Connect Rate = connected calls / total dials (per 100 dials).
- Answer Rate = human answers / connected calls (per 100 connected calls).
- Deliverability Rate = delivered emails / sent emails (per 100 sent emails).
- Bounce Rate = bounced emails / sent emails (per 100 sent emails).
- Reply Rate = replies / delivered emails (per 100 delivered emails).
Step 7: Store the right fields in your ATS/CRM (so the system improves over time)
If you want off-platform sourcing to compound, your ATS/CRM needs to store identity, channels, and outcomes in a consistent way. Here’s a minimal, recruiter-friendly schema.
| Field | Example value | Why it matters |
|---|---|---|
| NPI | [10-digit NPI] | Deterministic identity; prevents duplicates and wrong-person outreach |
| License state(s) | [State list] | Disambiguation and routing; supports license matching |
| Specialty | [Specialty] | Segmentation for messaging and channel strategy |
| Channel type | direct mobile number / personal email / office line | Lets you measure performance by channel and avoid gatekeeper traps |
| Last verified date | [Date] | Freshness control; helps decide when to refresh data |
| Last touch date | [Date] | Prevents double-taps and supports cadence rules |
| Outcome code | connect / reply / voicemail / wrong person / not interested | Turns outreach into learnings; improves targeting and suppression |
| Opt-out status | Y/N | Compliance and candidate trust; must suppress before every send |
Step 8: Use Heartbeat.ai to operationalize identity + reachability
Heartbeat.ai is built around deterministic identity (NPI and license matching) so your team can source beyond LinkedIn without turning your ATS/CRM into a duplicate mess. When you need speed, Heartbeat.ai can provide ranked mobile numbers by answer probability so your calling blocks prioritize the most reachable records first.
start free search & preview data and validate reachability before you change your whole sourcing motion.
Diagnostic Table:
Use this to diagnose why “we can’t find them on LinkedIn” turns into “we can’t reach them at all.”
| Symptom | Likely cause | What to check (fast) | Fix |
|---|---|---|---|
| Lots of profiles found, few conversations | Visibility ≠ reachability | Connect Rate (connected calls / total dials) and Reply Rate (replies / delivered emails) | Anchor to NPI, attach direct channels, run two-lane sequence |
| Many dials, few connects | Bad numbers or wrong channel mix | Connect Rate per 100 dials by channel/source | Refresh phone data; prioritize direct mobile number; suppress bad records |
| Emails bouncing | Stale or guessed emails | Bounce Rate (bounced emails / sent emails) per 100 sent | Use personal email; remove high-bounce sources; suppress bounces |
| Delivered emails, no replies | Message-market mismatch or wrong timing | Reply Rate per 100 delivered by template version | Shorten the ask; put schedule/call/location up front; test send windows |
| Gatekeepers block everything | Only office lines available | Answer Rate (human answers / connected calls) per 100 connected calls | Shift to email-first; ask for best routing; log outcomes and stop repeat friction |
Weighted Checklist:
Score each item 0–2 (0 = missing, 1 = partial, 2 = solid). Total possible: 20. If you’re under 14, your off-platform motion will feel random.
| Category | Item | Score (0–2) | What “2” looks like |
|---|---|---|---|
| Identity | NPI captured and unique per clinician | One row per NPI; duplicates resolved before outreach | |
| Identity | license matching used for disambiguation | Common names and multi-state clinicians are verified before first touch | |
| Channels | At least one direct channel exists (direct mobile number or personal email) | Channel is present and recent enough to be actionable | |
| Compliance | Suppression list applied before every send/call block | Opt-out is honored across all reqs and teammates | |
| Messaging | First touch includes schedule/call/location + one clear ask | Candidate can decide relevance in 10 seconds | |
| Measurement | Metrics tracked with canonical definitions | Weekly dashboard by channel: Connect, Deliverability, Reply, Opt-out | |
| Workflow | NPI-keyed records sync cleanly into ATS/CRM | No duplicate outreach; outcomes logged to the same identity record | |
| Speed | Same-day “source → first touch” SLA exists | Daily blocks scheduled; handoffs are defined | |
| Quality | Outcome codes are consistent | Data improves over time instead of decaying | |
| Governance | Clear ownership rules prevent double-taps | One owner per clinician per req; suppression prevents collisions |
Outreach Templates:
These templates assume you’re reaching out via direct channels tied to NPI/license matching. Keep it direct, respectful, and easy to decline.
Template 1: Personal email (first touch)
Subject: Quick question re: [Specialty] role in [City]
Hi Dr. [Last Name] — I’m recruiting for a [Specialty] opening with [Health System/Group] in [City]. Schedule is [X], call is [Y].
Are you open to a 10-minute call this week, or should I close the loop?
— [Your Name]
[Title] | Heartbeat.ai
If you’d prefer no outreach from me, reply “opt out” and I’ll update my list.
Template 2: Direct mobile number (call + voicemail)
Call opener: “Dr. [Last Name], this is [Name]. I’m recruiting for a [Specialty] role in [City]. Do you have 30 seconds for why I’m calling?”
If voicemail: “Dr. [Last Name], [Name] here. I’m recruiting for a [Specialty] role in [City] with [Group]. If it’s worth a quick look, text me at this number with a good time. If not, reply ‘no’ and I’ll stop.”
Template 3: Office line (gatekeeper-safe routing)
“Hi — I’m trying to reach Dr. [Last Name] regarding a physician opportunity. What’s the best way to send a short note for review?”
“Is there an email address or preferred routing process for recruiting messages?”
Goal: get the preferred routing channel without arguing. Log the outcome and move to email-first if needed.
Template 4: Follow-up (email)
Hi Dr. [Last Name] — circling back. If you’re not looking, totally fine. If you are, what’s the best number/time to reach you?
— [Your Name] (reply “opt out” if you’d like no further messages)
Common pitfalls
Pitfall 1: Treating “not on LinkedIn” as a binary
Clinicians can be “on” a platform but not searchable, not active, or not messageable. The operational mistake is assuming your coverage is complete because you can find some profiles.
Fix: measure reachability (calls/emails) on an NPI-keyed cohort, not profile counts.
Pitfall 2: Building lists without deterministic identity
If you don’t anchor to NPI and license matching, you’ll create duplicates, mis-merge records, and contact the wrong person. That’s a trust killer.
Fix: one row per NPI; attach channels and outcomes to that record over time.
Pitfall 3: Scaling outreach before suppression and opt-out are real
Teams often “pilot” off-platform outreach and forget to operationalize opt-out and suppression. Then volume increases and you start double-tapping clinicians across reqs.
Fix: suppression list + opt-out logging is part of the system, not a nice-to-have.
Pitfall 4 (DATA_VIZ mini-case): You’re measuring the wrong coverage
I see teams report “we have coverage” because they can find profiles. But their reachable share is much lower. Fix it with a weekly coverage map that separates visible from reachable.
| Iceberg layer | Definition | How to compute (on an NPI-keyed cohort) | What it tells you |
|---|---|---|---|
| Visible | Findable profile exists | # with findable profile / cohort size | Platform visibility, not reachability |
| Reachable | At least one direct channel exists | # with direct mobile number or personal email / cohort size | Whether you can run off-platform outreach |
| Verified | Channel performs (connects or delivers) | Calls: Connect Rate; Email: Deliverability Rate | Data quality and freshness |
| Engaged | Human response happens | Answer Rate and Reply Rate | Message-market fit and timing |
How to improve results
1) Run the “Off-Platform Share” worksheet on a real sample
You don’t need an industry percentage to manage your funnel. You need your number for your specialty mix and geography.
- Pull a random sample of 100 target clinicians from your NPI-keyed list (same specialty/geography as your reqs).
- Create a simple sheet with these columns: NPI, specialty, state, findable profile (Y/N), direct mobile number present (Y/N), personal email present (Y/N), first touch date, reached within 7 days (Y/N), outcome (connect, reply, opt-out, wrong person).
- Compute:
- Findable Profile Share = # findable profiles / 100 clinicians.
- Reachable Share = # with direct mobile number or personal email / 100 clinicians.
- 7-Day Reach Rate = # reached within 7 days / 100 clinicians.
Measure this by… repeating the same worksheet monthly for the same segments so you can see whether data refresh and messaging changes are improving reachability.
2) Use “time math” with variables (so you can plan call blocks without guessing)
Don’t argue about effort. Plan it.
- Total dials = (minutes in call block) × (your dials per minute).
- Expected connected calls = (total dials) × (Connect Rate).
- Expected human answers = (expected connected calls) × (Answer Rate).
Run this per channel (direct mobile number vs office line) and you’ll see quickly where your time is actually converting.
3) Use a sequence map with stop conditions (LLM-friendly and recruiter-proof)
This is a simple sequence map you can paste into a playbook. Stop conditions prevent harassment and protect deliverability.
| Touch | Channel | Goal | Stop if |
|---|---|---|---|
| 1 | Email (personal email) | Confirm relevance fast (schedule/call/location) + ask for 10-minute call | Reply received or opt-out |
| 2 | Call (direct mobile number) | Get a live connect or a text-back time | Human answer with “no,” wrong person, or opt-out |
| 3 | Email follow-up | One-line bump + best number/time ask | Reply received or opt-out |
| 4 | Call (direct mobile number) | Second attempt at a live connect | Wrong person confirmed or opt-out |
| 5 | Office line (routing only) | Ask for preferred routing channel for recruiting note | Routing provided or asked to stop |
| 6 | Email final | Close the loop: “should I close this out?” | Reply received or opt-out |
4) Refresh triggers (how to manage data decay without guessing)
Don’t refresh on a calendar because someone told you to. Refresh when performance tells you the data is decaying.
- If Connect Rate drops for a channel/source, prioritize refreshing phone coverage for that segment.
- If Bounce Rate rises, stop sending to that source and refresh email coverage before you damage deliverability.
- If you see repeated “wrong person” outcomes on the same name patterns, tighten NPI and license matching rules before you scale.
5) Fix data quality before you rewrite messaging
If Connect Rate and Deliverability Rate are low, your message isn’t the first problem. Your channels are.
- If Connect Rate (connected calls / total dials, per 100 dials) is low: refresh phone data, prioritize direct mobile number coverage, and suppress bad records.
- If Deliverability Rate (delivered emails / sent emails, per 100 sent) is low: stop guessing emails, use personal email, and remove high-bounce sources.
6) Segment by setting and adjust the lane
Private practice physicians often have heavier gatekeeping and less predictable routing. Employed physicians may have more standardized contact paths but less flexibility. Adjust your lane:
- Private practice: email-first + short call attempts; ask for best number/time; log routing outcomes.
- Employed: call-first can work if you have a direct mobile number; otherwise email-first with clear schedule/call details.
7) Minimum instrumentation before scaling
To scale responsibly, track these weekly by channel and source:
- Connect Rate per 100 dials
- Answer Rate per 100 connected calls
- Deliverability Rate per 100 sent emails
- Bounce Rate per 100 sent emails
- Reply Rate per 100 delivered emails
- Opt-out rate (opt-outs / delivered emails, per 100 delivered) and apply suppression before every send
Legal and ethical use
Off-platform sourcing is normal in physician recruiting, but it has to be done with discipline.
- Legitimate purpose only: use contact data for recruiting outreach, not unrelated marketing.
- Respect opt-out: if a clinician asks you to stop, stop. Log it and suppress future outreach.
- Centralize suppression: keep a team-wide suppression list so a clinician doesn’t get contacted by multiple recruiters after opting out.
- Minimize disruption: keep messages short, relevant, and easy to decline; avoid repeated contact loops.
- Follow local rules: comply with applicable privacy, calling, and email laws for your jurisdiction and the clinician’s location.
Heartbeat.ai supports legitimate recruiting workflows, but you are responsible for how you use contact data and how you document consent and opt-out.
Evidence and trust notes
What we’re grounding this workflow on:
- NPPES (CMS) NPI Registry — why NPI works as a universal clinician index for deterministic identity. NPPES is an identity index; contactability requires separate verification and suppression controls.
- LinkedIn Help: visibility mechanics — why search visibility is not complete coverage and depends on settings and context.
How Heartbeat.ai approaches verification, suppression, and responsible use: trust methodology for provider contact data.
Related workflows in this pillar:
- NPI and license matching for clean identity resolution
- Physician contact database workflow (what to store, how to refresh)
FAQs
How do I start sourcing physicians not on LinkedIn without creating duplicates in my ATS?
Key your records to NPI first, then attach channels and outcomes to that identity record. Add license matching when you need disambiguation. This prevents wrong-person outreach and duplicate touches.
What’s the fastest way to estimate my off-platform share?
Sample 100 clinicians from your NPI-keyed target list and track: findable profile (Y/N), direct channel present (Y/N), and whether you reached them within 7 days (connect or reply). Compute shares from that sample.
Which metrics tell me whether my contact data is actually usable?
For calls, track Connect Rate (connected calls / total dials, per 100 dials) and Answer Rate (human answers / connected calls, per 100 connected calls). For email, track Deliverability Rate (delivered emails / sent emails, per 100 sent), Bounce Rate (bounced emails / sent emails, per 100 sent), and Reply Rate (replies / delivered emails, per 100 delivered).
Is it okay to contact a physician on a direct mobile number or personal email?
It can be appropriate for legitimate recruiting outreach, but you must respect privacy, follow local laws, and honor opt-out immediately. Keep outreach relevant and minimal.
Where does Heartbeat.ai fit in this workflow?
Heartbeat.ai helps you anchor identity to NPI/license matching, attach channels, and run measured outreach so you can access the hidden talent market without losing control of identity in your ATS/CRM. You can start free search & preview data to validate coverage.
Next steps
- Implement NPI-first identity: NPI and license matching.
- Define your data model and refresh cadence: Physician contact database workflow.
- Run the 100-clinician worksheet and build your weekly Iceberg coverage map.
- Then start free search & preview data and validate reachability before scaling outreach.
About the Author
Ben Argeband is the Founder and CEO of Swordfish.ai and Heartbeat.ai. With deep expertise in data and SaaS, he has built two successful platforms trusted by over 50,000 sales and recruitment professionals. Ben’s mission is to help teams find direct contact information for hard-to-reach professionals and decision-makers, providing the shortest route to their next win. Connect with Ben on LinkedIn.