§ 01Pipeline overview
1
Discovery · Google Maps (Scrapes 1–12)
One scrape per medical category. 30–50 places each. Center coordinate 39.2511, −94.6316. Returns business name, address, phone, website, email, social links, ratings.
2
Decision-makers · LinkedIn (Scrapes 13–16)
Four profile searches: practice owners, med spa operators, urgent care franchise development, and healthcare RE investors. Returns name, title, company, profile URL.
3
Enrichment · Website crawl (Scrape 17)
Cheerio crawl on the top-50 highest-scoring practice domains. Pulls staff pages, contact pages, and any structured “about us” data not in Maps.
4
Hand-off · Clay enrichment (Doc 13)
Domain list and contact list ship into Clay for revenue, headcount, and verified email. See Doc 13 for the enrichment pipeline.
§ 02Google Maps configs (12)
Apify actor (used by all 12 Google Maps configs)actor
actor: lukaskrivka/google-maps-with-contact-details center: 39.2511104, -94.6316167 scrapeEmails: true scrapeSocials: true includeWebResults: false proxyConfiguration.useApifyProxy: true proxyConfiguration.apifyProxyGroups: ["SHADER"]
Google Maps medical scrapes12 configs \u00B7 \u2248$0.85 total
| # | Category | Priority | Per-search cap | Est. results |
|---|---|---|---|---|
| 1 | Chiropractic | High | 30 | 30–50 |
| 2 | Optometry & Eye Care | High | 25 | 20–40 |
| 3 | Med Spa & Aesthetic Medicine | HIGHEST | 30 | 25–60 |
| 4 | Physical Therapy & Rehab | Medium-High | 30 | 30–50 |
| 5 | Urgent Care & Walk-In | HIGHEST | 25 | 15–30 |
| 6 | Dental & Orthodontic | High | 30 | 40–70 |
| 7 | Behavioral Health & Counseling | HIGHEST | 25 | 30–50 |
| 8 | Specialty Medical (Derm/Pod/ENT) | High | 25 | 40–60 |
| 9 | Labs · Imaging · Pharmacy | Medium-High | 25 | 30–50 |
| 10 | Medical Staffing · Home Health | Medium | 25 | 20–40 |
| 11 | Veterinary (adjacent medical) | Low | 20 | 20–30 |
| 12 | Comprehensive backup / catch-all | Medium | 30 | 100–150 |
Sample query block \u00B7 Scrape 3 (Med Spa, HIGHEST priority)json
"searchStringsArray": [ "med spa near Kansas City MO 64154", "medical spa Kansas City Northland", "Botox clinic near Kansas City MO", "laser hair removal Kansas City MO", "CoolSculpting near Kansas City MO", "aesthetic clinic Kansas City MO", "skin care clinic near Platte County MO", "medspa near Overland Park KS" ], "maxCrawledPlacesPerSearch": 30
§ 03LinkedIn configs (4)
LinkedIn profile-search scrapes4 configs \u00B7 \u2248$2.40 total
| # | Audience | Actor | Est. profiles |
|---|---|---|---|
| 13 | Medical Practice Owners (KC) | harvestapi/linkedin-profile-search | 60–120 |
| 14 | Med Spa & Aesthetic Operators | harvestapi/linkedin-profile-search | 40–80 |
| 15 | Urgent Care Franchise Development | harvestapi/linkedin-profile-search | 30–60 |
| 16 | Healthcare Real Estate Investors | harvestapi/linkedin-profile-search | 50–100 |
Compliance reminder
All four LinkedIn scrapes return public profile data. No connection-graph, message-content, or behind-auth data is harvested. The output joins to Clay by name + company for verified email lookup.
§ 04Website enrichment crawl
Website crawl \u00B7 top-50 medical practice domainsactor
actor: apify/cheerio-scraper scope: top 50 highest-scoring practice domains from Scrapes 1–12 target_pages: /about, /team, /providers, /contact, /locations extract: staff names, titles, emails, location count // Output joins to Apify-scraped business records by domain
§ 05Cost summary
Cost summary17 configs \u00B7 \u2248$5.50 total
| Bucket | Configs | Est. cost |
|---|---|---|
| Google Maps | 12 | ≈$0.85 |
| LinkedIn profile search | 4 | ≈$2.40 |
| Website crawl (Cheerio) | 1 | ≈$0.25 |
| Compute · proxy · overhead | — | ≈$2.00 |
| TOTAL | 17 | ≈$5.50 |
§ 06Execution order
1
Run Scrapes 3, 5, 7 first (highest priority gaps)
Med Spa, Urgent Care, Behavioral Health — zero current prospects in each. Run in parallel.
2
Run Scrapes 1, 2, 4, 6, 8 (high priority)
Chiropractic, Optometry, PT, Dental, Specialty — fills out the rest of the local medical universe.
3
Run Scrapes 9, 10, 11, 12 (medium / catch-all)
Labs, Staffing, Veterinary, Backup. These pad the Tier C/D pool for retargeting audiences.
4
Run Scrapes 13–16 (LinkedIn decision-makers)
Profile-level data joins to the company-level data from Scrapes 1–12 by name + company.
5
Run Scrape 17 (website crawl)
Top-50 by score. Pulls staff and contact pages that Google Maps does not capture.
6
Hand off to Clay (Doc 13)
Domain list and named-contact list ship into Clay for revenue, headcount, and verified email.