# Los Angeles New Business Lead Generator & Radar (`vadimkurka/opensoon-la`) Actor

Find Los Angeles businesses before or around opening from official City business-start records and commercial building permits. OpenSoon LA filters residential noise, ranks opportunities by confidence, and suggests likely vendor needs for sales teams, agencies, and service providers.

- **URL**: https://apify.com/vadimkurka/opensoon-la.md
- **Developed by:** [VADIM KURKA](https://apify.com/vadimkurka) (community)
- **Categories:** Lead generation, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 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.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

## OpenSoon LA — Los Angeles New Business Lead Generator

OpenSoon LA finds **early B2B sales opportunities in the City of Los Angeles** from official public records.

Instead of returning a generic business directory or a raw permit dump, it combines City business-start records with commercial building-permit activity, filters obvious residential noise, classifies likely business verticals, ranks opportunities by confidence, and suggests likely vendor needs.

### Who this is for

OpenSoon LA is useful for teams that sell to businesses while they are opening, relocating, remodeling, or preparing a new location, including:

- POS and payment providers;
- commercial cleaning companies;
- signage and printing vendors;
- payroll and scheduling providers;
- internet and telecom providers;
- security and access-control vendors;
- local marketing and lead-generation agencies;
- food-service and business suppliers.

It does **not** promise buyer intent or provide private consumer data. It gives you a timing signal and a ranked list of businesses or commercial projects worth researching first.

### Try a ready-made example

Published example tasks let you start with a useful configuration immediately:

- [Find new restaurants opening in Los Angeles](https://apify.com/vadimkurka/opensoon-la/examples/restaurants-opening-los-angeles)
- [Find new beauty and wellness businesses in Los Angeles](https://apify.com/vadimkurka/opensoon-la/examples/beauty-wellness-los-angeles)
- [Find new retail businesses opening in Los Angeles](https://apify.com/vadimkurka/opensoon-la/examples/retail-opening-los-angeles)
- [Find new medical and dental business leads in Los Angeles](https://apify.com/vadimkurka/opensoon-la/examples/medical-dental-business-leads-los-angeles)
- [Find new fitness business leads in Los Angeles](https://apify.com/vadimkurka/opensoon-la/examples/fitness-business-leads-los-angeles)
- [Find new hospitality business leads in Los Angeles](https://apify.com/vadimkurka/opensoon-la/examples/hospitality-business-leads-los-angeles)
- [Find new professional office leads in Los Angeles](https://apify.com/vadimkurka/opensoon-la/examples/professional-office-leads-los-angeles)
- [Find high-confidence new business leads in Los Angeles](https://apify.com/vadimkurka/opensoon-la/examples/high-confidence-la-business-leads)
- [Find commercial permit leads in Los Angeles](https://apify.com/vadimkurka/opensoon-la/examples/commercial-permit-leads-los-angeles)

### What it can surface

- recently active business-registry/location-start records;
- registered business start dates up to a configurable number of days in the future;
- recently submitted building permits;
- recently issued building permits;
- addresses where independent business-registry and permit signals overlap;
- likely commercial verticals such as restaurants, retail, beauty/wellness, fitness, medical/dental, hospitality, and professional offices.

### Why the ranking matters

A permit by itself is not the same as a confirmed new business. OpenSoon LA separates independent signal families instead of treating every permit stage as a separate confirmation.

`high` confidence is reserved for stronger opportunities where both of these independent source families match the same normalized address:

1. City business registry/start-date data;
2. City building-permit data.

A submitted permit and an issued permit are two lifecycle stages of the same permit source family, so they are **not** counted as two independent confirmations.

### Output

Each dataset item can include:

- opportunity score (0–100);
- confidence (`low`, `medium`, or `high`);
- score reasons;
- signal types and independent source families;
- latest signal date;
- business/DBA name when available;
- business vertical;
- address and ZIP;
- industry/NAICS when available;
- permit valuation and evidence;
- likely vendor needs.

#### Example output

```json
{
  "opportunityScore": 87,
  "confidence": "high",
  "sourceFamilies": ["business_registry", "building_permit"],
  "signalTypes": ["new_business_registration", "building_permit_submitted"],
  "businessName": "Example Business LLC",
  "vertical": "restaurant_food",
  "address": "100 EXAMPLE ST",
  "zipCode": "90012",
  "futureBusinessStart": true,
  "vendorNeeds": ["POS/payments", "online ordering", "payroll", "commercial cleaning", "signage"]
}
```

The example above is illustrative; it is not a real business record.

### Input controls

Useful controls include:

- `daysBack` — how far back to search;
- `daysAhead` — future registered business-start horizon, default 90 days;
- `verticals` — optional business-category filter;
- `zipCodes` — optional LA ZIP filters;
- `keywords` — optional text filters;
- `minScore` — minimum opportunity score from 0–100;
- `onlyMultiSignal` — require an independent business-registry + permit match;
- `maxResults` — cap output size;
- `includeResidential` — include residential permit signals (off by default).

### Data sources

OpenSoon LA uses public City of Los Angeles Open Data datasets:

- Active Businesses — dataset `6rrh-rzua`;
- Building Permits Issued — dataset `pi9x-tg5x`;
- Building Permits Submitted — dataset `gwh9-jnip`.

No private consumer database is used.

### Pricing

OpenSoon LA uses Apify Pay Per Event pricing:

- **$5.00 per 1,000 ranked results** (`$0.005` per result);
- platform usage is included rather than charged separately to the user.

The charge event is the built-in `apify-default-dataset-item`, so one paid event corresponds to one ranked result written to the default dataset.

### Reliability

The repository includes automated checks for:

- address normalization;
- commercial vertical classification;
- independent-source confidence logic;
- future business-start handling;
- residential filtering;
- syntax validity;
- Docker image build;
- live connectivity and parsing against the current LA Open Data APIs.

### Limitations

Public records can be delayed, incomplete, amended, or inaccurate. A future location start date or building permit is an opportunity signal, not proof that a business will open on a particular date or purchase a service.

OpenSoon LA does not promise buyer intent, contact information, or sales outcomes. Use the ranked records as a research and prioritization layer, then verify a business before outreach.

# Actor input Schema

## `daysBack` (type: `integer`):

How far back to look for business-registry and permit signals.

## `daysAhead` (type: `integer`):

Include City business records with a registered location start date this many days into the future.

## `verticals` (type: `array`):

Optional vertical filter. Leave empty for all commercial opportunities.

## `zipCodes` (type: `array`):

Optional 5-digit LA ZIP filters, e.g. 90012.

## `keywords` (type: `array`):

Optional text match against business name, industry, permit type and work description.

## `minScore` (type: `integer`):

0-100. Higher values return fewer but stronger signals.

## `onlyMultiSignal` (type: `boolean`):

Require both a City business-registry signal and a building-permit signal at the same normalized address.

## `includeBusinessRegistrations` (type: `boolean`):

Include active City business-registry records and their registered location start dates.

## `includeSubmittedPermits` (type: `boolean`):

Include recently submitted City building-permit applications as early project signals.

## `includeIssuedPermits` (type: `boolean`):

Include recently issued City building permits as project-progress signals.

## `includeResidential` (type: `boolean`):

Include permits classified as residential. Off by default because this Actor is designed for B2B prospecting.

## `maxResults` (type: `integer`):

Maximum number of ranked opportunities to write to the default dataset.

## `maxRecordsPerSource` (type: `integer`):

Safety cap per City dataset before scoring and merging.

## `includeRaw` (type: `boolean`):

Add the original public-data row under each evidence item. Usually not needed and increases output size.

## Actor input object example

```json
{
  "daysBack": 30,
  "daysAhead": 90,
  "verticals": [],
  "zipCodes": [],
  "keywords": [],
  "minScore": 35,
  "onlyMultiSignal": false,
  "includeBusinessRegistrations": true,
  "includeSubmittedPermits": true,
  "includeIssuedPermits": true,
  "includeResidential": false,
  "maxResults": 250,
  "maxRecordsPerSource": 3000,
  "includeRaw": false
}
```

# Actor output Schema

## `results` (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("vadimkurka/opensoon-la").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("vadimkurka/opensoon-la").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 vadimkurka/opensoon-la --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,vadimkurka/opensoon-la"
        }
    }
}
```

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/RwPSIo525EWMxPGQT/builds/71PtaTT2mw1Q7gIJE/openapi.json
