# High School Lead Generator (`parse-point/high-school-lead-generator`) Actor

🏫 High School Lead Generator mines Google Maps for secondary school leads with name, phone, website, address and coordinates. 📧 Emails and socials from every school site. 📚 For edtech vendors & education marketing teams.

- **URL**: https://apify.com/parse-point/high-school-lead-generator.md
- **Developed by:** [Parse Point](https://apify.com/parse-point) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

### High School Lead Generator

**High School Lead Generator** is an Apify actor that helps marketers, recruiters, and education teams scale **high school lead generation** by automatically collecting business contact information (emails, phone numbers, and social profiles) from publicly available sources. If manual research is slowing your student recruitment leads, this actor speeds up prospecting and improves ROI with dataset-ready results.

### What is High School Lead Generator? 🔍

**High School Lead Generator** is an Apify actor (an automated web scraping tool) designed to find businesses related to **high school lead generation** and extract their publicly available contact information. It works with business search terms and target locations to produce a structured dataset you can use for admissions lead sourcing, education marketing, and school enrollment marketing workflows.

As a **high school lead generation** tool, it reduces the time spent on manual research, so you can build prospective student outreach lists faster. Use it as a **high school email extractor** or **contact scraper** to support a **high school marketing funnel**—and capture leads you can follow up with through CRM, lead capture forms, and email nurture campaigns.

### What Data Does a High School Lead Generator Collect? 📊

This actor captures multiple categories of information for each business it finds to support targeted advertising education and conversion rate optimization for schools. Results include contact details, website and location context, plus scraping status fields for transparency.

| Data Category | Fields Extracted | Description |
|---|---|---|
| Business & Contact | `name`, `website`, `phone` | Business name, official website, and primary phone contact when available |
| Address & Location | `full_address`, `city`, `state`, `zip`, `country_code`, `lat`, `long` | Full address and structured geo fields to help segment admissions lead sourcing by region |
| Emails & Phones | `scraped_emails`, `scraped_phones`, `emails_found` | Extracted emails/phones and a count of how many emails were found for the business |
| Social & Authority | `scraped_social_media` | Social media links to expand your outreach channels beyond email |
| Scraping Quality | `pages_scraped`, `avg_rating`, `total_reviews`, `scrape_status` | Quality and progress indicators to help you judge completeness for lead capture forms and CRM imports |
| Place Identification | `place_id` | A stable identifier for the place used during data collection |

### What Do Results from a High School Lead Generator Look Like? 👀

Each result is a structured JSON record saved to your Apify dataset. Here’s a real example matching the dataset fields:

```json
{
  "name": "Brooklyn Adult Learning Center",
  "website": "https://example-balc.org",
  "phone": "+1-718-555-0148",
  "full_address": "1234 Atlantic Ave Brooklyn NY 11201 US",
  "city": "Brooklyn",
  "state": "NY",
  "zip": "11201",
  "country_code": "US",
  "scraped_emails": [
    "admissions@example-balc.org",
    "info@example-balc.org"
  ],
  "scraped_phones": [
    "+1-718-555-0148",
    "+1-718-555-0192"
  ],
  "scraped_social_media": [
    "https://www.facebook.com/examplebalc",
    "https://www.linkedin.com/company/examplebalc/"
  ],
  "emails_found": 2,
  "pages_scraped": 7,
  "avg_rating": 4.3,
  "total_reviews": 86,
  "lat": "40.6782",
  "long": "-73.9442",
  "place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
  "scrape_status": "success"
}
```

The actor saves results to your Apify dataset (including fields like `emails_found`, `pages_scraped`, and `scrape_status`) so you can filter easily during prospective student outreach planning and event-based lead generation.

#### Core Features: High School Lead Generator ⚡

| Feature | Benefit |
|---|---|
| ✅ **Keyword-driven targeting** | Use `googleMapsSearchTerm` to align with your high school lead generation niche (e.g., education and school-related businesses) |
| ✅ **Location-based discovery** | Provide one or more `googleMapsLocation` values to focus admissions lead sourcing by geography |
| ✅ **Configurable business cap** | Use `maxBusinesses` to control run size and speed—useful when building a high school marketing funnel in stages |
| ✅ **Per-location or global limits** | Toggle `scrapeMaxBusinessesPerLocation` to control whether you want up to `maxBusinesses` per location or one combined total |
| ✅ **Built-in proxy support** | `proxyConfiguration` is supported to improve reliability for larger scraping runs |
| ✅ **Phone and social extraction** | Captures `scraped_phones` and `scraped_social_media` alongside `scraped_emails` to expand education marketing coverage |
| ✅ **Structured dataset output** | Clean, labeled fields make it easy to move leads into CRM for schools workflows |
| ✅ **Run resilience with scraping workflow** | Includes fallback behavior when no website contact is available, so your dataset remains consistent for analysis |
| ✅ **Lead-ready dataset fields** | `full_address`, `lat`, `long`, `emails_found`, and `place_id` support deduping and segmentation |

### Getting Started with High School Lead Generator 🚀

1. **Open Apify Console** — Go to the actor page for **High School Lead Generator**
2. **Add a search term** — Set `googleMapsSearchTerm` (default is **High School**) to match your lead generation focus
3. **Choose locations** — Set `googleMapsLocation` to one or more target geographies (default includes **New York**)
4. **Set result limits (optional)** — Adjust `maxBusinesses` to control how many businesses you want targeted
5. **Decide per-location vs global cap (optional)** — Toggle `scrapeMaxBusinessesPerLocation` depending on how you plan your high school email nurture campaigns
6. **Proxy configuration (optional)** — Configure `proxyConfiguration` for large-scale education marketing runs
7. **Run the actor** — Start scraping and monitor progress
8. **Export from Dataset** — Use your Apify dataset output for CRM for schools imports and outreach workflows

### Ways to Use High School Lead Generator 💡

- 🎯 **Student recruitment leads** — Build segmented prospect lists for prospective student outreach by city/region
- 📣 **Admissions lead sourcing** — Identify education-related businesses with publicly available contact details for follow-up
- 🤝 **School enrollment marketing** — Combine emails with `scraped_social_media` to support multi-channel campaigns
- 🔬 **Market research** — Analyze coverage by rating (`avg_rating`) and review volume (`total_reviews`)
- 📊 **CRM enrichment** — Use `place_id` plus structured addresses (`city`, `state`, `lat`, `long`) for deduping and routing
- ⚙️ **Education marketing ops** — Feed lead capture forms and email nurture campaigns with fresh, dataset-ready contacts

#### Input Parameters — High School Lead Generator

```json
{
  "googleMapsSearchTerm": "High School",
  "googleMapsLocation": ["New York"],
  "maxBusinesses": 5,
  "scrapeMaxBusinessesPerLocation": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `googleMapsSearchTerm` | string | ✅ Yes | `High School` | The business type or niche you want the scraper to target for high school lead generation (example: `coffee shops`, `dentists`) |
| `googleMapsLocation` | array | ✅ Yes | `["New York"]` | Target geographic location(s) for finding leads (example: city/state names like `Miami, Florida`—formatted as strings in the list) |
| `maxBusinesses` | integer | No | `5` | Target number of businesses to find (1–1000). The scraper stops when it reaches your target |
| `scrapeMaxBusinessesPerLocation` | boolean | No | `false` | If enabled, collects up to `maxBusinesses` per location; if disabled, combines all locations up to a single total limit |
| `proxyConfiguration` | object | No | `{ "proxy support": true }` | Proxy settings for scraping. Recommended for large-scale scraping and improved reliability |

#### Output Parameters — High School Lead Generator

```json
{
  "name": "Brooklyn Adult Learning Center",
  "website": "https://example-balc.org",
  "phone": "+1-718-555-0148",
  "full_address": "1234 Atlantic Ave Brooklyn NY 11201 US",
  "city": "Brooklyn",
  "state": "NY",
  "zip": "11201",
  "country_code": "US",
  "scraped_emails": [
    "admissions@example-balc.org",
    "info@example-balc.org"
  ],
  "scraped_phones": [
    "+1-718-555-0148",
    "+1-718-555-0192"
  ],
  "scraped_social_media": [
    "https://www.facebook.com/examplebalc",
    "https://www.linkedin.com/company/examplebalc/"
  ],
  "emails_found": 2,
  "pages_scraped": 7,
  "avg_rating": 4.3,
  "total_reviews": 86,
  "lat": "40.6782",
  "long": "-73.9442",
  "place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
  "scrape_status": "success"
}
```

| Field | Label | Format | Description |
|---|---|---|---|
| `name` | Business Name | text | The business name discovered during the lead generation run |
| `website` | Website | link | The business website URL used for contact extraction |
| `phone` | Phone | text | The primary phone number associated with the business listing |
| `full_address` | Address | text | Combined address string built from street, city, state, zip, and country code |
| `city` | City | text | City portion of the business location |
| `state` | State | text | State or region portion of the business location |
| `zip` | zip | text | Postal/ZIP code when available |
| `country_code` | country\_code | text | Country code for the listing |
| `scraped_emails` | Emails Found | array | List of emails extracted from public sources related to the business |
| `scraped_phones` | Phone Numbers | array | List of phone numbers extracted from public sources |
| `scraped_social_media` | Social Media | array | List of social media profile links extracted alongside contact details |
| `emails_found` | # Emails | number | Count of emails found for this business |
| `pages_scraped` | Pages Scraped | number | Number of pages processed for extracting contacts from the business website |
| `avg_rating` | Rating | number | Rating associated with the business listing |
| `total_reviews` | Reviews | number | Total review count associated with the business listing |
| `lat` | lat | text | Latitude value used for location context |
| `long` | long | text | Longitude value used for location context |
| `place_id` | place\_id | text | Place identifier used to ensure uniqueness |
| `scrape_status` | Status | text | Scraping outcome status (for example: `success`, `failed`, `no_website`) |

### Why Choose This High School Lead Generator? 🏆

**High School Lead Generator** is built for marketers and education teams who need fast, structured **high school lead generation** results without spending days on manual research. You get a clean dataset with `scraped_emails`, `scraped_phones`, `scraped_social_media`, and location context (`full_address`, `city`, `state`, `lat`, `long`)—ideal for CRM for schools enrichment and outreach automation. Built-in proxy support helps maintain reliability for larger education marketing campaigns.

For questions or help, contact <helloparsepoint@gmail.com>.

### How Many Results Can You Scrape? 📈

You control output size using `maxBusinesses` (1–1000). If `scrapeMaxBusinessesPerLocation` is `true`, the actor aims for up to `maxBusinesses` per location; otherwise it combines locations under a single total cap. Results vary by how many listings expose publicly available contact information for your chosen `googleMapsSearchTerm`. Everything is stored in your Apify dataset for easy export and analysis.

### Legal Guidelines for Scraping High School ⚖️

This tool collects information only from **publicly available sources** to support legitimate education marketing and prospecting workflows. No private or authenticated content is targeted. You are responsible for complying with applicable laws and platform policies (including privacy and anti-spam rules) in your use of the scraped data. For data removal requests, email <helloparsepoint@gmail.com>.

#### Can I use this for high school admissions lead sourcing?

Yes. The dataset is designed for **admissions lead sourcing** and **school enrollment marketing** by capturing business contact information such as `scraped_emails`, `phone`, and social links, along with location context for segmentation.

#### What if some businesses don’t have a website or contact details?

When there’s no website available for extraction, the actor records a consistent result and sets `scrape_status` accordingly (for example, `no_website`) with empty contact lists (`scraped_emails`, `scraped_phones`, and `scraped_social_media`) and `emails_found` set to 0.

#### How does proxy support help with high school marketing funnel campaigns?

Proxy configuration helps improve scraping reliability at larger scales, which is useful when you’re building a **high school marketing funnel** across multiple locations and iterations (for example, week-by-week lead capture forms and email nurture campaigns).

#### Will I always get emails in the dataset?

Not always. The actor targets listings based on `googleMapsSearchTerm` and `googleMapsLocation`, but email availability depends on what contact information is publicly accessible. Use `emails_found` and `scraped_emails` to filter for businesses that actually provide email contacts.

#### Where can I find the results after the run?

Results are saved to your Apify dataset. Each dataset row includes the fields defined in the dataset output schema, such as `name`, `website`, `scraped_emails`, `emails_found`, `pages_scraped`, and `scrape_status`.

### FAQ — High School Lead Generator ❓

#### How do I tailor this for targeted education marketing?

Use `googleMapsSearchTerm` to match the exact business niche you want (aligned with **high school lead generation** and **education marketing**) and provide multiple values in `googleMapsLocation` to focus on specific markets. Then cap output with `maxBusinesses` for controlled, repeatable lead generation.

#### How do I export the dataset for CRM for schools use?

Open the Apify dataset from the run output and export it in the format you need. The dataset already contains structured fields like `full_address`, `city`, `state`, `scraped_emails`, and `place_id`, which make CRM enrichment and deduping easier.

#### Can I run it per city for event-based lead generation?

Yes. Toggle `scrapeMaxBusinessesPerLocation` to `true` if you want up to `maxBusinesses` results per location. This is helpful for event-based lead generation where you need consistent coverage across regions.

#### What do the status values mean?

Look at the `scrape_status` field in the dataset. It indicates whether extraction succeeded, failed, or could not proceed due to missing website data. Pair it with `pages_scraped` and `emails_found` to understand completeness.

#### Where can I request changes or ask for support?

If you have feature requests or need help, contact <helloparsepoint@gmail.com>.

### Conclusion 🏁

**High School Lead Generator** helps you scale **high school lead generation** with dataset-ready contact information—emails, phone numbers, social media links, and location context. If you’re building student recruitment leads, improving prospective student outreach, or powering email nurture campaigns, run it with your keyword and location set and export results straight into your workflow.

### Complete number formats

| Field | Meaning |
| --- | --- |
| `phoneRaw` | The exact text the number was read from, before any normalisation |
| `phoneE164` | International dialable form, e.g. `+442079460958` |
| `phoneNational` | As someone inside that country would dial it |
| `phoneInternational` | Readable international form, e.g. `+44 20 7946 0958` |
| `phoneRfc3966` | `tel:` URI for VoIP systems (optional) |
| `phoneExtension` | The internal extension, when one was published |
| `phoneNumbers` | Every number on the row, each in all of the above forms |

Numbers are parsed against the business's own country from its Maps listing.
`phoneRaw` is never derived, so it stays trustworthy even when parsing the rest
fails.

### Contact Memory

| Field | Meaning |
| --- | --- |
| `firstSeenAt` | The date this contact was first delivered to you, across all runs |
| `isNewSinceLastRun` | `false` for a contact an earlier run already returned |

These carry real information because repeats are still delivered by default —
a scraper that dropped duplicates before delivery would mark every row new and
tell you nothing. If you would rather not receive repeats at all, **Skip
contacts delivered by a previous run** suppresses them, and **Reset contact
memory** starts the record over.

A contact is identified by its email address where there is one, otherwise by
its phone number.

# Actor input Schema

## `googleMapsSearchTerm` (type: `string`):

Enter the business type or niche for email scraper (e.g., 'coffee shops', 'dentists').

## `googleMapsLocation` (type: `array`):

Target geographic location for the email scraper (e.g., 'Miami, Florida').

## `maxBusinesses` (type: `integer`):

Target number of businesses to find (1-1000). The scraper will stop when this target is reached.

## `scrapeMaxBusinessesPerLocation` (type: `boolean`):

If enabled, the scraper will collect up to `maxBusinesses` results per location. If disabled, it combines all locations up to a single total limit.

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

Proxy settings for scraping. Recommended for large-scale scraping.

## `includeDialerUri` (type: `boolean`):

Add the tel: URI form some VoIP and telephony systems expect. It duplicates information already in the other number columns - keep it only if your phone system asks for this exact format.

## `skipPreviouslySeenContacts` (type: `boolean`):

Suppress any contact an earlier run already returned, so a scheduled job only pays for what is new. Off by default - leave it off if you want the full list each time and would rather filter on the New column yourself.

## `resetContactMemory` (type: `boolean`):

Clear the remembered contacts before this run, so everything counts as new again. Use after changing your target list.

## Actor input object example

```json
{
  "googleMapsSearchTerm": "High School",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "scrapeMaxBusinessesPerLocation": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "includeDialerUri": true,
  "skipPreviouslySeenContacts": false,
  "resetContactMemory": false
}
```

# Actor output Schema

## `dataset` (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 = {
    "googleMapsSearchTerm": "High School",
    "googleMapsLocation": [
        "New York"
    ],
    "maxBusinesses": 5,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parse-point/high-school-lead-generator").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 = {
    "googleMapsSearchTerm": "High School",
    "googleMapsLocation": ["New York"],
    "maxBusinesses": 5,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("parse-point/high-school-lead-generator").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 '{
  "googleMapsSearchTerm": "High School",
  "googleMapsLocation": [
    "New York"
  ],
  "maxBusinesses": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call parse-point/high-school-lead-generator --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parse-point/high-school-lead-generator"
        }
    }
}

```

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/ROiZ3aSNk8hkGQEyC/builds/2zyPr9NeyLl8y36tB/openapi.json
