# Website Redesign Lead Finder (`vivpm99/website-redesign-lead-finder`) Actor

Find global businesses with weak websites, score redesign opportunities, extract public contacts, and generate outreach-ready leads.

- **URL**: https://apify.com/vivpm99/website-redesign-lead-finder.md
- **Developed by:** [VIVEK P M](https://apify.com/vivpm99) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 qualified redesign leads

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

## Website Redesign Lead Finder

Google Maps Website Redesign Lead Finder discovers businesses anywhere in the world, audits their public websites, and turns visible conversion problems into prioritized, outreach-ready leads.

This Actor combines Google Maps business discovery with website checks, public contact extraction, opportunity scoring, service recommendations, and optional outreach drafts.

### Why use this Actor?

- Find potential web-design clients by category and location
- Focus on businesses with measurable website issues
- Export CRM-ready names, websites, phones, addresses, and public emails
- Understand every score through a clear score breakdown
- Generate a personalized draft for manual review
- Run the same workflow in any city, region, or country

### How it works

1. Searches Google Maps for your business category and location.
2. Collects business details and the Google Maps source URL.
3. Visits each public website and checks practical redesign signals.
4. Assigns an opportunity score from 0 to 100.
5. Keeps leads at or above your minimum score.
6. Saves structured results to the default dataset.

### Quick start

Use a focused category and a real geographic location:

```json
{
  "searchQuery": "physiotherapists",
  "location": "Berlin, Germany",
  "maxResults": 10,
  "minimumScore": 10,
  "generateOutreach": true
}
```

For broad discovery, start with a minimum score of `10`. Raise it to `25` or more when you want a smaller list with stronger visible signals.

### Input

| Field | Description | Default |
| --- | --- | --- |
| `searchQuery` | Business category or search phrase, such as `dentists`, `boutique hotels`, or `plumbers` | `dentists` |
| `location` | City, region, or country anywhere in the world | `Austin, Texas` |
| `maxResults` | Maximum businesses to analyze, from 1 to 100 | `10` |
| `minimumScore` | Save only results at or above this opportunity score | `10` |
| `generateOutreach` | Add a ready-to-personalize outreach draft | `true` |

### Output

Each saved lead can include:

- Business name and category
- Website, phone, address, and Google Maps source
- Public email addresses found on the retrieved page
- Opportunity score and priority level
- Human-readable score breakdown
- Detected website issues
- Recommended service
- Optional outreach draft
- Analysis timestamp

Example from an actual Berlin physiotherapist test (business-identifying details anonymized):

```json
{
  "businessName": "Berlin Physiotherapy Practice (anonymized)",
  "category": "Physical therapy clinic",
  "website": "Anonymized for privacy",
  "publicEmails": [],
  "opportunityScore": 25,
  "opportunityLevel": "low",
  "scoreBreakdown": [
    "No contact or enquiry form detected",
    "Slow initial response"
  ],
  "issues": [
    "No contact or enquiry form detected",
    "Slow initial response"
  ],
  "recommendedService": "targeted improvements to contact and booking conversion"
}
```

### Understanding the score

A higher score means the Actor found more visible signals that the business may benefit from website work. Signals can include a missing or unreachable website, missing HTTPS, absent mobile configuration, slow initial response, missing contact forms, and missing booking calls to action.

The score is a prospecting aid, not proof that a business wants a redesign. Review every lead before contacting it.

### Pricing

This Actor uses predictable pay-per-event pricing:

- Actor start: `$0.005` per GB of memory
- Qualified redesign lead: `$0.02` per dataset result
- Platform usage is included

You can set a maximum run charge in Apify Console.

### Integrations

Use dataset exports, the Apify API, webhooks, schedules, Zapier, Make, Google Sheets, or your CRM to build repeatable lead-generation workflows.

### Responsible use

Only public business information is collected. Follow applicable privacy, marketing, and anti-spam laws, respect website terms, and personalize outreach instead of sending unsolicited bulk messages.

### Frequently asked questions

#### Does this Actor use AI?

The current scoring system uses transparent, rule-based website signals. Outreach drafts are evidence-based templates for manual personalization. It does not claim AI visual-design analysis.

#### Can it find leads outside the United States?

Yes. Enter a category and any real city, region, or country. The same workflow supports global Google Maps searches.

#### Which minimum score should I choose?

Start with `10` for broader discovery. Use `25` or higher when you prefer fewer leads with stronger visible website issues.

#### Should I contact every saved lead?

No. Treat each result as a prospecting signal, review the website yourself, and follow applicable privacy and anti-spam laws before contacting a business.

### Current limitations

- Google Maps and business websites can change their page structure.
- Some sites block automated access or load important content only after interaction.
- Email extraction returns only addresses publicly present in retrieved HTML.
- Visual design quality and accessibility are not evaluated by AI.
- Scores should be manually reviewed before sales outreach.

# Actor input Schema

## `searchQuery` (type: `string`):

What kind of businesses should be found?

## `location` (type: `string`):

City, region, or country anywhere in the world.

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

Maximum number of businesses to analyze (1-100).

## `minimumScore` (type: `integer`):

Save only businesses scoring at or above this value. Start with 10 for broader lead discovery.

## `generateOutreach` (type: `boolean`):

Add a ready-to-personalize outreach message.

## Actor input object example

```json
{
  "searchQuery": "dentists",
  "location": "Austin, Texas",
  "maxResults": 10,
  "minimumScore": 10,
  "generateOutreach": true
}
```

# Actor output Schema

## `results` (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("vivpm99/website-redesign-lead-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("vivpm99/website-redesign-lead-finder").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 vivpm99/website-redesign-lead-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,vivpm99/website-redesign-lead-finder"
        }
    }
}

```

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/o4k6NREjxzEAylMIM/builds/moKOB9coVyPpbgebP/openapi.json
