HVAC Lead Scraper – Google Maps + Phone Email (Unofficial) avatar

HVAC Lead Scraper – Google Maps + Phone Email (Unofficial)

Pricing

from $4.00 / 1,000 place leads

Go to Apify Store
HVAC Lead Scraper – Google Maps + Phone Email (Unofficial)

HVAC Lead Scraper – Google Maps + Phone Email (Unofficial)

UNOFFICIAL Google Maps hvac lead scraper with public website emails and free MX checks. Not affiliated with Google. No AI language models.

Pricing

from $4.00 / 1,000 place leads

Rating

0.0

(0)

Developer

Viv K

Viv K

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Build hvac lead lists from public Google Maps listings and optional public website emails — with phone numbers, ratings, and free MX domain checks. No AI language models. No Google Places API key required.

UNOFFICIAL — not affiliated with Google LLC. Residential proxy recommended for Maps.

What does this HVAC lead scraper do?

This Actor searches Google Maps for HVAC contractors and related local businesses, then optionally visits each business’s public website to collect contact emails, social links, and contact-page URLs. It is built for agencies, SaaS founders, and sales teams who need structured hvac leads with phone + email fields for CRM import.

You configure cities and keywords (for example hvac in Austin, TX), set a small max results value for a test run, and download a clean dataset. Enrichment never invents emails with LLMs — only addresses that appear on public pages are saved.

Features / What data you get

  • Google Maps discovery by search terms + locations
  • Core listing fields: businessName, phone, phoneUnformatted, website, address / city, rating, reviewsCount, googleMapsUrl, placeId, lat / lng, category (Maps category)
  • Optional website enrichment: emails (with source URL + mxValid), primaryEmail, socials, contactPageUrl, hasContactForm
  • Quality flags: emailFound, enrichmentStatus (ok | skipped | failed), enrichmentError
  • Light niche tag from Maps/category text (emergency, AC, furnace, heat pump, commercial, residential — no LLM)
  • Dedup by placeId, residential Maps proxy by default, soft-fail enrichment (Maps row still saved if a site fails)

How to run

  1. Open the Actor Input tab.
  2. Set Target locations to one city (try Austin, TX).
  3. Set Search terms to hvac (add related keywords later).
  4. Set Max results per query to 1–5 for a first run.
  5. Keep Extract emails on if you want website enrichment; set Max pages per website to 1–2 for a cheap test.
  6. Confirm Proxy for Google Maps uses Apify Proxy → RESIDENTIAL.
  7. Click Start, wait for the run to finish, then open the Dataset (Overview / Contacts views).

Pricing

Pay-per-event (example, FREE tier — see the Pricing tab for live prices):

  • Actor start: $0.00005
  • Place lead: ~$0.004 per business saved from Maps
  • Email enrichment: ~$0.005 only when at least one public website email is found

Example: 100 places, 40 with email ≈ 100×$0.004 + 40×$0.005 + start ≈ $0.60 + proxy/platform usage.

Input example

{
"locations": ["Austin, TX"],
"searchTerms": ["hvac", "HVAC contractor"],
"maxPlacesPerQuery": 1,
"extractEmails": true,
"validateMxRecords": true,
"maxWebsitePagesPerPlace": 1,
"maxScrolls": 3,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Output example

{
"businessName": "Austin Premier HVAC",
"placeId": "ChIJxxxxxxxx",
"category": "HVAC contractor",
"phone": "+1 512-555-0100",
"phoneUnformatted": "15125550100",
"primaryEmail": "info@austinpremierhvac.com",
"emails": [
{
"email": "info@austinpremierhvac.com",
"sourceUrl": "https://austinpremierhvac.com/contact",
"sourceType": "mailto",
"mxValid": true,
"confidence": "high"
}
],
"website": "https://austinpremierhvac.com",
"address": "123 Congress Ave, Austin, TX 78701",
"city": "Austin",
"rating": 4.7,
"lat": 30.2672,
"lng": -97.7431,
"googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJxxxxxxxx",
"socials": { "facebook": null, "instagram": null },
"contactPageUrl": "https://austinpremierhvac.com/contact",
"enrichmentStatus": "ok",
"enrichmentError": null,
"niche": "HVAC contractor",
"emailFound": true,
"scrapedAt": "2026-09-23T12:00:00.000Z"
}

Limitations

  • Google Maps UI and anti-bot behavior change; residential proxy and retries help but do not guarantee 100% coverage.
  • Some contractor sites are form-only or block bots — enrichmentStatus may be failed / skipped even when the Maps row is valid.
  • Closed or temporarily closed listings can still appear depending on Maps results.
  • Email miss rate is normal for franchise or JS-heavy sites; this Actor does not use LLM APIs to invent contacts.
  • Large maxPlacesPerQuery values increase proxy and PPE spend — start small.

Is this an official Google tool?

No. This Actor is unofficial and not affiliated with Google. It collects publicly available business information from Google Maps listings and from public business websites.

You must use the data in line with applicable laws and Google’s terms. This tool does not send emails or SMS. You are solely responsible for outreach compliance (including CAN-SPAM, GDPR/CCPA where applicable) and for Apify’s Acceptable Use Policy.

Collects publicly available business information from Google Maps and public websites. Not affiliated with Google. Do not use for unlawful spam.

Actor slugNiche
dentist-lead-scraper-google-maps-email-finderDentist
roofing-lead-scraper-google-maps-phone-emailRoofing
plumbing-lead-scraperPlumbing
electrician-lead-scraperElectrician
pest-control-lead-scraper-google-maps-emailPest control
landscaping-lawn-care-lead-scraperLandscaping
garage-door-lead-scraper-google-mapsGarage door
locksmith-lead-scraper-google-maps-phoneLocksmith

Search these slugs on Apify under the same publisher family for sibling lead scrapers.

Support

Use the Actor Issues tab on Apify for bugs, schema questions, or feature requests. Include run ID, input JSON (without secrets), and a short description of expected vs actual output.