If you have ever tried extracting local business leads from Google Maps for outreach, sales, or data research, you know the struggle:

  1. Official Google Places API is expensive and strictly rate-limited for bulk queries.
  2. Third-party SaaS services charge anywhere from $49 to $199/month for lead credits.
  3. Existing Open-Source tools often come with heavy friction: requiring Docker Desktop background daemons, complex Python virtual environments, or outdated Puppeteer scripts that break on Google's modern dynamic feeds.

I wanted something instant, lightweight, and local-first — so I built ziara-lead-scrapper, an open-source CLI built with Node.js, TypeScript, and Playwright.

💡 The Problem with Scraping Google Maps

Standard HTTP scrapers (like Axios, Cheerio, or BeautifulSoup) instantly fail on Google Maps because:

  • Results are dynamically injected via client-side JavaScript.
  • Dynamic infinite scroll containers inside an internal div layout.
  • Regional cookie consent banners that block page loads.
  • Strict anti-automation checks on headless browsers.

🛠️ How It Works Under the Hood

1. Zero-Friction Browser Orchestration

Instead of forcing users to install Docker or configure external binaries, the tool leverages Playwright Chromium.
If a standalone Chromium binary isn't detected, it automatically falls back to your local Google Chrome or Microsoft Edge installation.

2. Built-in Anti-Bot Stealth

  • Automatically masks navigator.webdriver.
  • Realistic scroll pacing and micro-delays mimicking human interaction.
  • User-agent rotation and automated cookie consent dismissal.

3. Automated Lead Enrichment (--enrich)

Basic business info (Phone, Address, Rating, Reviews, Website) is good, but contact emails and social profiles are what turn raw data into actionable leads.

When you pass the --enrich flag, the scraper:

  1. Concurrently visits each scraped business website in the background.
  2. Extracts public contact emails.
  3. Pulls company social media handles (LinkedIn, Twitter/X, Instagram, Facebook).
  4. Sanitizes Unicode artifacts and Google icon glyphs (\uE000-\uF8FF).
  5. Exports everything cleanly into CSV or JSON.

🚀 Quickstart: Try It in 60 Seconds

You only need Node.js 18+ installed:

 bash # 1. Clone the repository git clone https://github.com/Aquil1401/ziara-lead-scrapper.git cd ziara-lead-scrapper # 2. Install dependencies & build npm install npm run build # 3. Run a test search node dist/bin/index.js -q "Coffee Shops in Austin" -l 20 --enrich