google-mapslead-generationlocal

Scraping Google Maps for New Business Openings in Your Area

How to find new business openings using Google Maps search API instead of fragile browser scraping.

7 min read

Finding new businesses that just opened in your area is valuable for sales teams, local marketers, and B2B service providers. The traditional approach is scraping Google Maps with Selenium or Puppeteer, dealing with CAPTCHAs, rotating proxies, and parsing unstable HTML. There is a better way.

A search API returns the same Google Maps data as structured JSON -- no browser automation, no scraping infrastructure, no maintenance when Google changes their DOM. This post shows how to find new business openings using Scavio's Google search with location and map parameters.

Why Scraping Google Maps Breaks

Google Maps scraping is notoriously fragile. The reasons are well known:

  • Google aggressively blocks automated browser sessions
  • The Maps DOM changes without warning, breaking CSS selectors
  • Proxy rotation adds cost and complexity
  • CAPTCHA solving services are unreliable and expensive
  • Rendering JavaScript-heavy pages requires headless browsers

A search API bypasses all of this. You send a query, you get back structured data. The API provider handles the infrastructure.

Searching for Local Businesses

Use Google search queries that target new businesses in a specific area. The search_google endpoint returns local pack results and map data when the query has local intent:

async function findNewBusinesses(city: string, category: string) {
  const queries = [
    `new ${category} opened in ${city} 2026`,
    `${category} grand opening ${city}`,
    `recently opened ${category} near ${city}`,
    `new ${category} ${city} now open`
  ];

  const results = [];
  for (const query of queries) {
    const res = await fetch("https://api.scavio.dev/api/v1/search", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        "x-api-key": process.env.SCAVIO_API_KEY
      },
      body: JSON.stringify({
        platform: "google",
        query,
        mode: "full",
        gl: "us"
      })
    });
    const data = await res.json();
    results.push({
      query,
      localPack: data.localPack,
      organic: data.organic?.slice(0, 5)
    });
  }
  return results;
}

Extracting Business Details

The response includes structured data for each local result: business name, address, phone number, rating, review count, and website URL. Parse this into a clean format:

interface BusinessLead {
  name: string;
  address: string;
  phone?: string;
  website?: string;
  rating?: number;
  reviewCount?: number;
}

function extractLeads(localPack: any[]): BusinessLead[] {
  return (localPack ?? []).map((item) => ({
    name: item.title,
    address: item.address,
    phone: item.phone,
    website: item.website,
    rating: item.rating,
    reviewCount: item.reviewCount
  }));
}

New businesses typically have low review counts. Filtering for businesses with fewer than 10 reviews is a rough but effective proxy for recently opened establishments.

Automating Weekly Discovery

Set up a scheduled job that runs your queries weekly for each target city and category. Store the results in a database and diff against previous runs to surface genuinely new entries:

async function weeklyDiscovery() {
  const cities = ["Austin TX", "Denver CO", "Nashville TN"];
  const categories = ["restaurant", "coffee shop", "gym", "coworking"];

  for (const city of cities) {
    for (const category of categories) {
      const results = await findNewBusinesses(city, category);
      const leads = results.flatMap((r) => extractLeads(r.localPack));
      const newLeads = await filterKnownBusinesses(leads);
      if (newLeads.length > 0) {
        await saveLeads(newLeads);
        await notifyTeam(newLeads, city, category);
      }
    }
  }
}

Cost and Use Cases

Scraping infrastructure for Google Maps typically costs $200-500 per month in proxy fees alone. A search API costs a few cents per query. At 100 queries per week, you spend a few dollars instead of hundreds -- and zero engineering hours debugging broken scrapers.

New business data feeds sales prospecting for B2B services, local market intelligence for franchise operators, competitive monitoring, and commercial real estate analysis. The data is public, structured, and available through a simple API call.