# Email Finder - B2B Contact Scraper (Hunter.io Alt) (`miccho27/email-finder`) Actor

Find email addresses, phone numbers, and social links from any website. Homepage-only or deep scan modes. Extracts company info from JSON-LD. Bulk processing, JSON/CSV export. From $0.01/domain. For B2B lead gen and sales prospecting.

- **URL**: https://apify.com/miccho27/email-finder.md
- **Developed by:** [Tatsuya Mizuno](https://apify.com/miccho27) (community)
- **Categories:** Lead generation, Developer tools
- **Features:** Limited permissions
- **Stats:** 151 total users, 4 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $40.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?

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

## Email Finder - Free No-Code B2B Contact Scraper (Alternative to Hunter.io, Snov.io, FindThatLead)

Find email addresses, phone numbers, and social media links from any website -- no API keys, no monthly subscription. Perfect for lead generation, sales prospecting, and business directory enrichment. The best free alternative to Hunter.io, Snov.io, FindThatLead, and Lusha.

### Who Is This For?

- **Sales teams & SDRs** -- Build prospect contact lists from company websites before outreach
- **Growth hackers** -- Scrape contact info at scale for cold email campaigns
- **Recruiters** -- Find hiring manager emails and company social profiles from career pages
- **Market researchers** -- Collect contact data across an industry for analysis
- **Freelancers** -- Find decision-maker emails on prospect websites to pitch services

### Features

- **Email Extraction** -- Finds all email addresses with smart filtering (removes false positives like image@2x, noreply, etc.)
- **Phone Detection** -- Extracts phone numbers from text and `tel:` links
- **Social Media Links** -- Detects Facebook, Twitter/X, LinkedIn, Instagram, YouTube, TikTok, GitHub
- **Company Info** -- Extracts organization data from JSON-LD structured data (name, address, description)
- **Deep Scan** -- Optionally crawls /contact, /about, /team pages for more comprehensive results
- **Anti-Detection** -- Browser-like headers and random delays to avoid blocking
- **Zero Configuration** -- No API keys, no developer accounts, no signup required

### Pricing -- Free to Start

| Tier | Cost | What You Get |
|------|------|-------------|
| **Free trial** | $0 | Apify free tier includes monthly compute credits |
| **Pay per site** | ~$0.01-0.05/website | Only pay for actual Apify compute used |
| **vs. Hunter.io** | Saves $49-399/mo | Same contact discovery from public sources |
| **vs. Snov.io** | Saves $39-199/mo | No credit system, unlimited scans |
| **vs. Lusha** | Saves $39-69/mo | No per-contact pricing |

### Quick Start (3 Steps)

1. **Click "Try for free"** on this Actor's page in Apify Store
2. **Paste website URLs** you want to scan for contact info (see examples below)
3. **Click "Start"** and download results as JSON, CSV, or Excel

### How It Compares to Paid Email Finders

| Feature | This Actor (FREE) | Hunter.io ($49/mo) | Snov.io ($39/mo) | FindThatLead ($49/mo) | Lusha ($39/mo) |
|---------|-------------------|-------------------|------------------|----------------------|----------------|
| Email extraction | Yes | Yes | Yes | Yes | Yes |
| Phone numbers | Yes | No | No | No | Yes |
| Social media links | 7 platforms | No | LinkedIn only | No | LinkedIn only |
| Company info (JSON-LD) | Yes | No | No | No | No |
| Deep scan (/contact, /about) | Yes | No | No | No | No |
| API/automation | Yes (Apify API) | Yes | Yes | Yes | Yes |
| Bulk processing | Unlimited | 25-500 credits/mo | 50-5000 credits/mo | Plan-limited | 5-100 credits/mo |
| Cloud-based | Yes | Yes | Yes | Yes | Browser extension |
| API keys required | None | Yes | Yes | Yes | Yes |
| Monthly cost | $0 (pay per run) | $49-399 | $39-199 | $49-399 | $39-69 |

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `urls` | string\[] | required | Websites to scan for contact info |
| `scanDepth` | string | `"homepage"` | `"homepage"` (fast) or `"deep"` (also scans /contact, /about, /team pages) |
| `includePhones` | boolean | `true` | Extract phone numbers |
| `includeSocial` | boolean | `true` | Extract social media links |

#### Example Input -- Single Website

```json
{
  "urls": [
    "https://example.com"
  ],
  "scanDepth": "deep",
  "includePhones": true,
  "includeSocial": true
}
```

#### Example Input -- Bulk Lead Generation

```json
{
  "urls": [
    "https://company-a.com",
    "https://company-b.com",
    "https://company-c.com",
    "https://company-d.com",
    "https://company-e.com"
  ],
  "scanDepth": "deep",
  "includePhones": true,
  "includeSocial": true
}
```

### Output Example

```json
{
  "domain": "example.com",
  "emails": ["info@example.com", "sales@example.com", "support@example.com"],
  "emailCount": 3,
  "phones": ["+1-555-123-4567", "+1-555-987-6543"],
  "socialLinks": {
    "linkedin": "https://www.linkedin.com/company/example",
    "twitter": "https://twitter.com/example",
    "facebook": "https://www.facebook.com/example",
    "instagram": "https://www.instagram.com/example",
    "github": "https://github.com/example"
  },
  "companyInfo": {
    "name": "Example Inc.",
    "description": "Leading provider of example services",
    "address": "123 Main St, San Francisco, CA"
  },
  "pagesScanned": [
    "https://example.com",
    "https://example.com/contact",
    "https://example.com/about"
  ]
}
```

### Output Fields

| Field | Description |
|-------|-------------|
| `domain` | Website domain |
| `emails` | Array of found email addresses |
| `emailCount` | Number of unique emails found |
| `phones` | Array of phone numbers (when `includePhones: true`) |
| `socialLinks` | Object with social media URLs (when `includeSocial: true`) |
| `companyInfo` | Organization name, description, address from JSON-LD structured data |
| `pagesScanned` | URLs that were scanned |

### Real-World Use Cases

#### 1. Cold Email Outreach Pipeline

Upload a CSV of prospect websites, run this Actor in bulk, and feed results into your email outreach tool (Instantly, Mailshake, Lemlist) via Apify integrations.

#### 2. CRM Enrichment

Enrich your CRM records with missing email, phone, and social data. Schedule weekly runs to keep contact info fresh.

#### 3. Competitor Contact Research

Scan competitor websites to identify key contacts, social channels, and company structure from their /about and /team pages.

#### 4. Business Directory Building

Scrape hundreds of business websites in a niche to build a contact database. Export to Google Sheets for a free lead database.

#### 5. Freelancer Prospect Discovery

Find decision-maker emails on potential client websites. Use deep scan to check /about and /team pages for personal email addresses.

### FAQ

**Q: How does this compare to Hunter.io?**

A: Hunter.io uses a proprietary database of verified emails, so it may find emails not published on the website itself. This Actor extracts only what's publicly visible on the website (HTML, structured data, linked pages). For most B2B prospecting, website-published contacts are sufficient and this approach costs nothing per month.

**Q: Does deep scan slow down the process?**

A: Deep scan adds 2-5 seconds per website since it checks additional pages (/contact, /about, /team). For bulk runs, the extra time is minimal and significantly increases email discovery rates.

**Q: How are false positive emails filtered?**

A: The Actor filters out common non-email patterns (image@2x.png, noreply@, wixpress, sentry, cloudflare addresses, etc.) and validates email format before including in results.

**Q: Can I schedule this to run regularly?**

A: Yes. Use Apify's built-in scheduler to run daily or weekly. Combine with webhooks to push new contacts to your CRM, Google Sheets, or Slack automatically.

**Q: What social platforms are detected?**

A: Facebook, Twitter/X, LinkedIn, Instagram, YouTube, TikTok, and GitHub. Links are extracted from page HTML, footer sections, and structured data.

**Q: Can I export results to CSV or Google Sheets?**

A: Yes. Apify datasets can be exported as JSON, CSV, Excel, or pushed directly to Google Sheets, Slack, email, or any webhook endpoint.

# Actor input Schema

## `urls` (type: `array`):

List of website URLs to scan for contact information. Enter company homepages for best results (e.g., 'https://stripe.com'). Bulk processing supported.

## `scanDepth` (type: `string`):

'homepage' scans only the main page (fast). 'deep' also scans /contact, /about, /team, /impressum pages for more complete results.

## `includePhones` (type: `boolean`):

Extract phone numbers from scanned pages.

## `includeSocial` (type: `boolean`):

Extract social media profile URLs (Facebook, Twitter, LinkedIn, Instagram, YouTube, TikTok, GitHub).

## Actor input object example

```json
{
  "urls": [
    "https://stripe.com",
    "https://shopify.com"
  ],
  "scanDepth": "homepage",
  "includePhones": true,
  "includeSocial": true
}
```

# 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 = {
    "urls": [
        "https://stripe.com",
        "https://shopify.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("miccho27/email-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 = { "urls": [
        "https://stripe.com",
        "https://shopify.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("miccho27/email-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 '{
  "urls": [
    "https://stripe.com",
    "https://shopify.com"
  ]
}' |
apify call miccho27/email-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,miccho27/email-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/gv7B9C72zD3PCtdJ7/builds/fo2TZIgoZ7iFgGnVb/openapi.json
