# Local Service Expansion Finder (`seeb/local-service-expansion-finder`) Actor

Analyze location, service-area, and directory pages to identify local expansion signals, weak coverage, and target markets.

- **URL**: https://apify.com/seeb/local-service-expansion-finder.md
- **Developed by:** [Techionik](https://apify.com/seeb) (community)
- **Categories:** Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $16.00 / 1,000 dataset items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Local Service Expansion Finder

Find local market expansion opportunities from service and directory pages.

### What this Actor does

Analyze location, service-area, and directory pages to identify local expansion signals, weak coverage, and target markets.

It accepts public URLs, crawls a limited number of same-domain pages, extracts relevant page sections, highlights matched signals, and saves clean dataset records that can be used in spreadsheets, dashboards, CRM enrichment, product research, and monitoring workflows.

### Target users

- Growth teams and agencies
- Product researchers and operators
- Sales intelligence teams
- Market analysts
- Ecommerce and SaaS teams

### Main use cases

- Franchise expansion research
- Agency lead research
- Local competitor mapping

### Input

- `startUrls`: Public URLs to analyze.
- `maxPagesPerStartUrl`: Maximum same-domain pages to crawl from each start URL.
- `maxConcurrency`: Number of pages analyzed at the same time.
- `proxyConfiguration`: Optional Apify proxy configuration.

#### Example input

```json
{
  "startUrls": [
    {
      "url": "https://en.wikipedia.org/wiki/List_of_companies_based_in_Austin,_Texas"
    },
    {
      "url": "https://en.wikipedia.org/wiki/List_of_companies_in_the_Dallas%E2%80%93Fort_Worth_metroplex"
    }
  ],
  "maxPagesPerStartUrl": 5,
  "maxConcurrency": 3
}
```

### Output

Each dataset item includes:

- Page status, URL, domain, title, and HTTP code
- Short buyer-ready summary
- Matched signals and signal count
- Top findings as plain text
- Money, date, and email signals when present
- Clear error message for failed pages

#### Example output

```json
{
  "status": "ok",
  "inputUrl": "https://en.wikipedia.org/wiki/List_of_companies_based_in_Austin,_Texas",
  "finalUrl": "https://en.wikipedia.org/wiki/List_of_companies_based_in_Austin,_Texas",
  "domain": "en.wikipedia.org",
  "statusCode": 200,
  "pageTitle": "Example page title",
  "summary": "Found local market, service-area, business, and city signals on example.com: expansion signal.",
  "matchedSignals": [
    "example signal"
  ],
  "signalCount": 1,
  "topFindings": [
    "Example finding containing a useful signal for the buyer."
  ],
  "moneySignals": [],
  "dateSignals": [],
  "emailSignals": [],
  "extractedAt": "2026-07-04T00:00:00.000Z",
  "errorMessage": null
}
```

### Marketplace value

This Actor turns scattered public pages into structured intelligence. It is designed for repeat monitoring jobs and lightweight research runs, with low compute cost and clean results.

### Recommended pricing

Paid per result at $2.50 per 1,000 analyzed local listing pages. Local expansion data is high-value for agencies and operators.

### Limitations

- Works best on public HTML pages.
- Login-only pages, CAPTCHA-heavy sites, and heavily blocked pages may fail or need proxy settings.
- The Actor extracts signals from page content; it does not claim legal access to private or restricted data.
- Dynamic JavaScript-only pages may return fewer results in this lightweight version.

### Search keywords

local market research, service areas, franchise expansion, local SEO, competitor coverage

# Actor input Schema

## `startUrls` (type: `array`):

Public pages to analyze with Local Service Expansion Finder. Add category pages, help pages, changelogs, listings, or article pages depending on your use case.

## `maxPagesPerStartUrl` (type: `integer`):

How many same-domain pages to analyze from each start URL.

## `maxConcurrency` (type: `integer`):

How many pages to analyze at the same time.

## `proxyConfiguration` (type: `object`):

Optional proxy settings. Most public pages work without a proxy.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://en.wikipedia.org/wiki/List_of_companies_based_in_Austin,_Texas"
    },
    {
      "url": "https://en.wikipedia.org/wiki/List_of_companies_in_the_Dallas%E2%80%93Fort_Worth_metroplex"
    }
  ],
  "maxPagesPerStartUrl": 10,
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

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

No description

## `json` (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 = {
    "startUrls": [
        {
            "url": "https://en.wikipedia.org/wiki/List_of_companies_based_in_Austin,_Texas"
        },
        {
            "url": "https://en.wikipedia.org/wiki/List_of_companies_in_the_Dallas%E2%80%93Fort_Worth_metroplex"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("seeb/local-service-expansion-finder").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 = { "startUrls": [
        { "url": "https://en.wikipedia.org/wiki/List_of_companies_based_in_Austin,_Texas" },
        { "url": "https://en.wikipedia.org/wiki/List_of_companies_in_the_Dallas%E2%80%93Fort_Worth_metroplex" },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("seeb/local-service-expansion-finder").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://en.wikipedia.org/wiki/List_of_companies_based_in_Austin,_Texas"
    },
    {
      "url": "https://en.wikipedia.org/wiki/List_of_companies_in_the_Dallas%E2%80%93Fort_Worth_metroplex"
    }
  ]
}' |
apify call seeb/local-service-expansion-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=seeb/local-service-expansion-finder",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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