<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Md. Saquib Jawed</title>
    <description>The latest articles on DEV Community by Md. Saquib Jawed (@md_saquibjawed_b3154145).</description>
    <link>https://dev.to/md_saquibjawed_b3154145</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2811001%2F33e7565c-19c1-4043-9ac3-70239e95f6e8.jpg</url>
      <title>DEV Community: Md. Saquib Jawed</title>
      <link>https://dev.to/md_saquibjawed_b3154145</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/md_saquibjawed_b3154145"/>
    <language>en</language>
    <item>
      <title>Google Maps leads have no emails. Here's how to get them (and what I learned scraping 63 small-business sites)</title>
      <dc:creator>Md. Saquib Jawed</dc:creator>
      <pubDate>Thu, 12 Nov 2026 22:49:08 +0000</pubDate>
      <link>https://dev.to/md_saquibjawed_b3154145/google-maps-leads-have-no-emails-heres-how-to-get-them-and-what-i-learned-scraping-63-4hk6</link>
      <guid>https://dev.to/md_saquibjawed_b3154145/google-maps-leads-have-no-emails-heres-how-to-get-them-and-what-i-learned-scraping-63-4hk6</guid>
      <description>&lt;p&gt;If you've pulled local businesses from Google Maps, you know the problem: you get a name, a phone number and a website, but almost never an email. For cold outreach, that's the field you need most.&lt;/p&gt;

&lt;p&gt;The email is usually on the business's own website. The hard part is getting it out cleanly for hundreds of sites. I built a tool for that, tested it on 63 real small-business websites in five countries, and here's what I found.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where small-business contacts actually live
&lt;/h2&gt;

&lt;p&gt;I ran it on dentists in London, plumbers in Austin, marketing agencies in Pune, tax advisers in Munich and bakeries in Toronto:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;th&gt;Share of sites&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;At least one contact found&lt;/td&gt;
&lt;td&gt;90%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;An email found&lt;/td&gt;
&lt;td&gt;83%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A phone number found&lt;/td&gt;
&lt;td&gt;79%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Site blocks automated visitors&lt;/td&gt;
&lt;td&gt;8%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A few things surprised me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gmail is normal.&lt;/strong&gt; About 1 in 6 small businesses list a Gmail or Outlook address, not one on their own domain. If your tool filters those out, you lose real leads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The footer lies.&lt;/strong&gt; Lots of sites carry the web agency's email ("Website by studio@…"). Without a filter, you end up emailing the designer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;German and Austrian sites are the easiest.&lt;/strong&gt; The legally required &lt;em&gt;Impressum&lt;/em&gt; page almost always has an email and a phone number.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hidden emails are common.&lt;/strong&gt; &lt;code&gt;info [at] company [dot] com&lt;/code&gt; and Cloudflare's "email protection" hide addresses from most extractors, but both can be decoded.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Junk is everywhere.&lt;/strong&gt; Naive regex extraction returns things like &lt;code&gt;logo@2x.png&lt;/code&gt;, &lt;code&gt;you@example.com&lt;/code&gt; and long tracking ids from error-reporting scripts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The pipeline
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Get businesses with websites.&lt;/strong&gt; Any Google Maps scraper works; export the &lt;code&gt;website&lt;/code&gt; column.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visit each site's home page, then its contact, about and imprint pages.&lt;/strong&gt; Five pages per site finds nearly everything; going deeper mostly adds noise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extract and clean&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;emails from &lt;code&gt;mailto:&lt;/code&gt; links, visible text, decoded &lt;code&gt;[at]&lt;/code&gt;/&lt;code&gt;[dot]&lt;/code&gt; and Cloudflare-protected addresses&lt;/li&gt;
&lt;li&gt;drop file names, placeholders and other companies' domains&lt;/li&gt;
&lt;li&gt;mark each email as a shared inbox (&lt;code&gt;info@&lt;/code&gt;, &lt;code&gt;sales@&lt;/code&gt;) or a person (&lt;code&gt;jane.smith@&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;check the email's domain has mail servers (MX records), so you don't import addresses that will bounce&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick one "best email" per company.&lt;/strong&gt; Prefer a sales or info inbox on the company's own domain, and never &lt;code&gt;noreply@&lt;/code&gt;, &lt;code&gt;privacy@&lt;/code&gt; or &lt;code&gt;jobs@&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validate phone numbers&lt;/strong&gt; against each country's numbering rules, format them internationally (+14155552671), and skip fax numbers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep the company's own social profiles&lt;/strong&gt;, not share buttons, single posts or the agency's Instagram.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The no-code version
&lt;/h2&gt;

&lt;p&gt;If you'd rather not build and maintain this, I packaged it as a tool on Apify: &lt;a href="https://apify.com/intropi/company-contacts-tech-lookup" rel="noopener noreferrer"&gt;Company Contacts &amp;amp; Tech Stack Lookup&lt;/a&gt;. Paste the websites and you get one row per company: best email, all emails (each marked inbox or person), phones, LinkedIn/X/Facebook/Instagram, address, and the tech the site runs on (Shopify, WordPress, HubSpot, Stripe…).&lt;/p&gt;

&lt;p&gt;It costs $0.015 per company where contacts were found. Sites that are down, block bots or have nothing on them are free.&lt;/p&gt;

&lt;p&gt;Pairing it with a Google Maps scraper: export the Maps results, copy the website column into the tool's &lt;em&gt;Websites&lt;/em&gt; field, run, and export CSV.&lt;/p&gt;

&lt;h2&gt;
  
  
  One honest limit
&lt;/h2&gt;

&lt;p&gt;About 8% of sites show a "checking your browser" page to automated visitors. The tool reports those and doesn't charge for them; it doesn't try to get around the check. Big brands do this far more than small businesses, so local-business lists come through best.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I built the tool. Happy to answer questions about the extraction rules in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>leadgeneration</category>
      <category>webscraping</category>
      <category>automation</category>
      <category>sales</category>
    </item>
  </channel>
</rss>
