# Google Maps Competitor Location Intelligence Agent (`quanmatrix/google-maps-competitor-location-intelligence`) Actor

Use this Actor to analyze google maps competitor location and return decision-ready structured signals. Turn Google Maps business snapshots into competitor expansion, closure, geographic density, rating and market-whitespace intelligence.

- **URL**: https://apify.com/quanmatrix/google-maps-competitor-location-intelligence.md
- **Developed by:** [Rafael Barreto Haddad](https://apify.com/quanmatrix) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.45 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Google Maps Competitor Location Intelligence Agent

Use this Actor to analyze google maps competitor location and return decision-ready structured signals. It is designed for repeatable human, API, Apify AI, and MCP-driven workflows.

Turn recurring Google Maps business snapshots into expansion, closure, brand-share, rating/review and geographic opportunity intelligence.

### Why use this Actor

Raw Google Maps business data answers what exists now. Competitive strategy usually needs a different question: what changed, which brand is expanding, where locations disappeared, how concentrated is a city, and where is relative whitespace? This Actor is the downstream intelligence layer for those recurring decisions.

It accepts business rows from your preferred Google Maps collection workflow and compares the current portfolio with an optional previous snapshot. That separation is deliberate: customers can keep the scraper they already trust while using this Actor to create repeatable competitor intelligence.

### Key features

- Detect openings and closures using placeId, URL or name fallback identity.
- Calculate brand location counts, share of observed locations and period-over-period deltas.
- Aggregate average rating, total reviews, city coverage and category coverage by brand.
- Detect rating, review-count, category and city changes for persistent locations.
- Rank cities by competitor density and report the observed market leader.
- Generate geographic density cells from latitude/longitude coordinates.
- Produce a transparent relative whitespace score for less crowded observed cities.
- Emit an agent-ready market summary with expansion/contraction action.

### Input

Provide `currentBusinesses` as an array of Google Maps business rows. `placeId` is the preferred stable key. Include `brand` or `competitor`, `city`, `category`, `rating`, `reviewsCount`, latitude and longitude when available. Add `previousBusinesses` to activate opening, closure and change intelligence.

### Output

The default Dataset contains multiple normalized record types: `market_summary`, `brand_intelligence`, `city_intelligence`, `opening`, `closure`, `location_change` and `density_cell`. The key-value store also receives `COMPETITOR_SUMMARY` with compact brand, city, category and density intelligence for downstream automation.

### Use cases

Use this Actor for retail and franchise expansion, local SEO competitive monitoring, commercial-real-estate prospecting, territory planning, competitor footprint tracking, market-entry research, agency reporting and location-strategy agents. A recurring workflow can scrape or import locations, run this Actor with the previous snapshot, and alert only when meaningful expansion or contraction appears.

### Example

Provide two current Austin coffee locations and a previous snapshot containing one Austin location plus a now-missing Dallas competitor. The output will identify the Dallas closure, rating/review changes on persistent locations, current brand share, city density and the net location-change action.

### Pricing

Pricing is pay per intelligence row, not per scraped Google Maps request. This reflects the product's actual customer outcome: decision-ready brand, city and change records. Tiered PPE is applied only when measured margin remains positive.

### Limitations

This Actor consumes supplied business rows and does not itself bypass Google Maps access controls. The whitespace score is a relative density heuristic over the observed dataset, not a population, demand or revenue forecast. Missing place IDs reduce identity precision because URL or name fallbacks can change. Coordinates are required for density-cell output.

### Reliability and interpretation

All rankings and deltas are deterministic from the supplied snapshots. The Actor does not invent demand estimates. A city with low observed density is a research lead, not proof that a new store should be opened there. Customers should combine these signals with demographic, mobility, property and unit-economics data before capital decisions.

# Changelog

This Actor's version history is a separate document: https://apify.com/quanmatrix/google-maps-competitor-location-intelligence/changelog.md

# Actor input Schema

## `currentBusinesses` (type: `array`):

Current Google Maps business rows. placeId is preferred; name/url can be used as fallback keys. Include brand/competitor, city, category, rating, reviewsCount and coordinates when available.

## `previousBusinesses` (type: `array`):

Optional prior snapshot for opening, closure, rating, review and market-share change detection.

## `mcpConnectors` (type: `array`):

Optional MCP connectors authorized in your Apify account. Use them to send or write this Actor result to tools such as Slack, Notion, GitHub, Sentry, Supabase, or another compatible MCP service.

## `mcpToolName` (type: `string`):

Optional exact MCP tool name. Leave blank to let the selected MCP action preset discover a compatible tool automatically.

## `mcpToolArguments` (type: `object`):

JSON object passed to the selected MCP tool. String values may use {{actor\_title}}, {{result\_summary}}, or {{result\_json}} placeholders.

## `mcpFailOnError` (type: `boolean`):

When enabled, an MCP delivery error fails the Actor run. Disabled by default so data extraction and intelligence results remain available even if the external destination is unavailable.

## `mcpActionPreset` (type: `string`):

Choose a safe action pattern. AUTO\_SAFE\_WRITE discovers a compatible non-destructive write tool automatically; use a specific preset for Slack, GitHub, Notion, or database delivery.

## Actor input object example

```json
{
  "currentBusinesses": [
    {
      "placeId": "a1",
      "name": "Alpha Coffee",
      "brand": "Alpha",
      "city": "Austin",
      "category": "Coffee shop",
      "rating": 4.5,
      "reviewsCount": 120,
      "lat": 30.2672,
      "lng": -97.7431
    },
    {
      "placeId": "b1",
      "name": "Beta Coffee",
      "brand": "Beta",
      "city": "Austin",
      "category": "Coffee shop",
      "rating": 4.2,
      "reviewsCount": 80,
      "lat": 30.271,
      "lng": -97.75
    }
  ],
  "previousBusinesses": [],
  "mcpToolName": "",
  "mcpToolArguments": {},
  "mcpFailOnError": false,
  "mcpActionPreset": "AUTO_SAFE_WRITE"
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("quanmatrix/google-maps-competitor-location-intelligence").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("quanmatrix/google-maps-competitor-location-intelligence").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call quanmatrix/google-maps-competitor-location-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,quanmatrix/google-maps-competitor-location-intelligence"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3OZ3w1U3PAEPLAC1I/builds/t2USGH1Axe23xpAlL/openapi.json
