Extract Emails Contacts Socials From Any: AI Lead Scoring
Pricing
from $4.99 / 1,000 results
Extract Emails Contacts Socials From Any: AI Lead Scoring
AI-powered website scraper extracts emails, phone numbers, contacts, social profiles, company details, and lead signals from websites, then scores leads by quality and relevance. Ideal for prospecting, contact discovery, lead generation, and sales intelligence.
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
API Empire
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Email Lead Scraper — Extract Emails, Socials and Lead Tags as JSON
Email Lead Scraper finds public email leads across 80+ platforms — Instagram, LinkedIn, TikTok, YouTube, Etsy, Zillow, and more — by running targeted Google site: searches for your keywords, then optionally tags each lead with AI-inferred intent, industry, role seniority, language, and business-vs-person signals. Every response is typed, normalized JSON — no HTML, no selectors, nothing to parse. AI tagging is off by default, so a keyless run still returns the full email dataset. You'll know exactly which fields you get and how to wire results into a lead pipeline.
What is Email Lead Scraper?
Email Lead Scraper is a Google-search-based lead generation tool that extracts public email addresses from search snippets across 80+ platforms — you pick a platform (Instagram, LinkedIn, Facebook, Etsy, Zillow, and dozens more) and a keyword, and it runs a site:<platform>.com "keyword" search and pulls out every email it finds. No account or login on the target platform is required — it only reads what Google has already indexed. An optional, off-by-default AI layer can classify each lead's snippet text into lead-intelligence tags using a provider you choose.
- Scrape public email addresses from 80+ platforms via one keyword-driven search
- Scrape the underlying social/profile source data (network, URL, title, snippet) behind every email
- Optionally tag leads with AI-inferred intent, industry, role seniority, language, and business-vs-person signals
- Filter results to specific email domains and locations before they're returned
- Export as structured JSON — no proxy management, no HTML parsing
What data does Email Lead Scraper collect?
Every run returns one record per email lead, built from three kinds of fields: the email/contact fields, the platform-source metadata, and (optionally) AI-inferred lead tags.
| Data Type | Key Fields | JSON Field Names |
|---|---|---|
| Email leads | email address, result title, result snippet, source URL | email, title, description, url |
| Platform/source metadata | source platform, search keyword, extraction timestamp | network, keyword, scrapedAt |
| AI lead tags (optional, off by default) | inferred intent, industry, role seniority, language, business-vs-person | intent, industry, roleSeniority, language, businessVsPerson |
Need more lead data?
If you only need one platform instead of the full 80+, two related API-Empire Actors go deeper on a single source: Instagram B2B Email Scraper With Business Profile Leads focuses on Instagram business profiles, and LinkedIn B2B Emails Scraper: Key Decision Maker Contacts focuses on LinkedIn decision-maker contacts. Use Email Lead Scraper when you need breadth across many platforms in one run, and a platform-specific scraper when you need deeper per-profile fields on just one.
Why not build this yourself?
There is no single official API for finding public email addresses across arbitrary websites — email discovery through search snippets is not a service any platform publishes or supports. Building it yourself means writing and maintaining a Google SERP scraper: rotating user agents, handling Google's block pages, retrying through proxies, and re-parsing the results HTML every time Google changes its markup. Email Lead Scraper already does this — proxy rotation through Apify's GOOGLE_SERP proxy group, block detection, retry logic, and a stable JSON output — so you send a keyword and platform and get leads back, instead of maintaining a scraper.
Why do developers and teams scrape email leads?
For sales and B2B prospecting teams
Sales teams use keyword-and-platform searches to build outbound lead lists without a paid contact database subscription. A team targeting marketing agencies can run the leadKeywords field with "marketing agency" against source: "Linkedin", restrict results to business-plausible domains with leadEmailDomains, and export a CSV of email, title, and url straight into a cold-outreach sequence. Because every run is a fresh Google search rather than a static purchased list, the same keyword can be re-run monthly to catch newly indexed profiles, keeping a pipeline topped up without paying for a stale, pre-built contact database that decays the moment it's delivered.
For growth marketers building outreach lists
Marketers running influencer or partnership campaigns use the 80+ platform breadth to search Instagram, TikTok, or YouTube for creators in a specific niche and pull the emails already listed in their public bios or captions. Turning on AI enrichment adds an industry and intent tag to each result, so a marketer can filter a raw keyword dump down to leads whose snippet reads as "business" with a "selling services" or "hiring" intent, before ever opening a message thread — cutting the manual profile-by-profile review that outreach list-building normally requires down to a filtered spreadsheet.
For agencies and lead-generation businesses
Agencies that resell lead lists use the keyword-per-platform model to generate niche-specific batches on demand — real estate contacts from Zillow-adjacent searches, restaurant owners from Yelp-adjacent searches, boutique founders from Etsy-adjacent searches — and hand clients a dataset of email, network, url, and keyword fields matched to whatever brief they were given. Because the source and leadKeywords inputs are just parameters, one agency workflow can be repointed at a new platform or vertical for a new client without rebuilding any scraping logic from scratch.
For developers building lead-gen products
Developers building a prospecting SaaS or an internal CRM enrichment step call the Actor's REST API directly, loop leadKeywords across a customer's target platforms and locations, and store the typed JSON rows straight into their own database. Because AI enrichment is optional and additive, a product can ship with the base email-finder fields first and turn on aiEnhancement later as a premium tier — without changing the underlying field names or breaking any integration built against the base schema in the meantime.
How to scrape email leads (step by step)
- Open Email Lead Scraper on its Apify Store page and click Try for free (or Run) to open the input form.
- Enter one or more
leadKeywordsdescribing the leads you want (e.g.["marketing agency"]) — this is the only input the Actor needs to run. - Pick a
sourceplatform from the 80+ available (Instagram, LinkedIn, TikTok, and more), and optionally narrow withmarket(location) orleadEmailDomains(domain allowlist). - Start the run. Optionally turn on
aiEnhancementfirst and supply anaiModelandaiApiKeyif you want AI-inferred intent/industry/seniority tags on each lead. - Download the results as JSON or CSV from the run's dataset, or pull them via the Apify API.
What to do when a source platform changes its structure
Email Lead Scraper is maintained, and its output schema stays stable — the same field names (network, email, url, and the rest) keep working even as Google's result markup shifts underneath it. No turnaround time is published for fixes.
⬇️ Input
No input parameter is required — the Actor runs with defaults if you provide none, though leadKeywords should be set for a meaningful search.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
leadKeywords | No | array | Keywords describing the leads to find. The Actor searches Google for profiles/posts on the chosen platform containing these keywords and extracts email addresses. | ["marketing agency"] |
source | No | string (select) | Platform to search for leads on — one of 80+ supported platforms (Instagram, Linkedin, Tiktok, Youtube, Facebook, Zillow, and more). Default Instagram. | "Instagram" |
market | No | string | Optional location added to the search (e.g. a city). Leave empty to search globally. | "London" |
leadEmailDomains | No | array | Optional allowlist: keep only leads whose email ends in one of these domains. Leave empty to qualify every domain. | ["@gmail.com"] |
maxLeads | No | integer (1–5000) | Maximum number of email leads to collect per keyword. Default 20. | 50 |
aiEnhancement | No | boolean | OFF by default. When on (and an API key is set), each lead's title+snippet is classified into AI-inferred intent, industry, roleSeniority, language, and businessVsPerson. | false |
aiModel | No | string (select) | AI model/provider for classification. Provider is auto-detected from the name prefix (claude-*=Anthropic, gpt-*/o1/o3=OpenAI, gemini-*=Google, grok-*=xAI, deepseek-*=DeepSeek, sonar*=Perplexity, mistral-*=Mistral). Default claude-haiku-4-5. | "claude-haiku-4-5" |
aiApiKey | No | string (secret) | API key for the chosen provider. Falls back to a provider env var (ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY/GOOGLE_API_KEY, XAI_API_KEY, DEEPSEEK_API_KEY, PERPLEXITY_API_KEY, MISTRAL_API_KEY). Only used when AI enrichment is on. | "sk-ant-..." |
aiPrefilterKeywords | No | array | Optional token-saver: only classify leads whose title/snippet contains one of these words. Leave empty to consider every lead with usable text. | ["hiring"] |
aiExcludeKeywords | No | array | Optional: skip AI classification for leads whose title/snippet contains any of these words. | ["spam"] |
proxyConfiguration | No | object (proxy) | Proxy used for the Google searches. When Apify proxy is enabled, the GOOGLE_SERP group is added automatically if no group is chosen. | {"useApifyProxy": true, "apifyProxyGroups": ["GOOGLE_SERP"]} |
Example JSON input
{"leadKeywords": ["marketing agency"],"source": "Instagram","market": "London","leadEmailDomains": ["@gmail.com"],"maxLeads": 50,"aiEnhancement": true,"aiModel": "claude-haiku-4-5","aiApiKey": "sk-ant-your-key-here","aiPrefilterKeywords": [],"aiExcludeKeywords": [],"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["GOOGLE_SERP"] }}
The most common input mistake is turning on aiEnhancement without supplying aiApiKey (and having no matching provider env var set) — the run still completes and returns the full email dataset, but every AI field comes back null instead of erroring.
⬆️ Output
Every run returns typed, normalized JSON rows to the dataset — exportable as JSON or CSV. Because AI tagging is optional, there is a single row shape per lead: base fields are always populated, and the five AI fields are populated only when aiEnhancement is on, a valid API key resolves, and classification succeeds — otherwise they are null, never guessed.
Scraped email lead
{"network": "Instagram.com","keyword": "marketing agency","title": "Bright Marketing — London agency","description": "Full-service marketing agency based in London. Contact hello@example.com for a quote.","url": "https://www.instagram.com/brightmarketing","email": "hello@example.com","intent": "selling services","industry": "marketing","roleSeniority": "owner/founder","language": "en","businessVsPerson": "business","scrapedAt": "2026-07-25T10:00:00Z"}
Each pushed row is charged as a single row_result event — no separate uncharged rows are pushed for empty search pages or errors, so the number of dataset rows you see is exactly the number of billed results.
How many results can you scrape with Email Lead Scraper?
The Actor's maxLeads parameter caps results at up to 5000 leads per keyword (default 20, minimum 1), and that cap applies independently to every keyword you supply — running 3 keywords with maxLeads: 50 can return up to 150 leads. There is no separate hard cap in the Actor itself beyond maxLeads. Internally, it pages through Google search results 10 at a time and stops early for a given keyword after 5 consecutive result pages with no qualifying email, so very niche keyword/platform/domain combinations may return fewer leads than maxLeads allows. No benchmark run time is published — actual throughput depends on how many qualifying pages Google returns for your keyword.
Integrate Email Lead Scraper and automate your workflow
Email Lead Scraper works with any language or tool that can send an HTTP request.
REST API integration
import requestsTOKEN = "your_apify_token"ACTOR = "API-Empire~extract-emails-contacts-socials-from-any-with-ai-lead-scoring"run = requests.post(f"https://api.apify.com/v2/acts/{ACTOR}/runs?token={TOKEN}",json={"leadKeywords": ["marketing agency"], "source": "Instagram", "maxLeads": 50},).json()dataset_id = run["data"]["defaultDatasetId"]items = requests.get(f"https://api.apify.com/v2/datasets/{dataset_id}/items?token={TOKEN}").json()print(items[0]["email"])
Works in Python, Node.js, Go, Ruby, cURL.
Automation platforms (n8n, Make)
In n8n, the Apify node's "Run Actor" operation can call this Actor by ID and pass leadKeywords, source, and the other input fields directly, then feed the returned dataset items into any downstream node (CRM, email tool, Google Sheets). In Make, the Apify app module works the same way — trigger a run, wait for it to finish, and iterate the dataset items into your scenario.
Is it legal to scrape email leads from public web pages?
Yes — Email Lead Scraper only returns data already publicly indexed by Google search, the same results a person could find by searching manually. Because email addresses can identify an individual, they qualify as personal data under regimes like GDPR and CCPA: you are responsible for having a lawful basis before storing or using any personal email address you collect, and for honoring opt-out and deletion requests. Business-context emails tied to a company (e.g. a listed contact address) carry a lower — but not zero — privacy bar than a personal inbox. Consult legal counsel for commercial use cases involving bulk personal data.
Frequently asked questions
Does Email Lead Scraper work without a platform account?
Yes. It searches Google for publicly indexed pages on the platform you choose — no login or account on Instagram, LinkedIn, or any other source platform is required.
How often is the scraped data updated?
Every run performs a live Google search at the moment you start it — results are not cached from a previous run, so each run reflects what Google has indexed as of that request.
What happens if a keyword or platform returns no emails?
The Actor pages through Google results and stops that keyword after 5 consecutive pages with no qualifying email, returning whatever leads it already collected (possibly zero) rather than erroring. An empty result for a given keyword/platform combination usually means the site: search matched too few pages containing both the keyword and a visible email.
Can I scrape private or login-gated content?
No. Only content Google has already publicly indexed is returned — private accounts, DMs, and login-gated pages on any source platform are outside what this Actor can see.
Does Email Lead Scraper work for AI agent workflows and LLM pipelines?
Yes. It is callable as an HTTP endpoint by any agent framework via the Apify API — start a run, poll or wait for it, then read the dataset. Every response is typed JSON with stable field names, so no parsing step is needed before passing results to an LLM.
How does the AI lead scoring actually work?
It is not a numeric score — despite the "AI Lead Scoring" name, the actual output is a set of five categorical tags (intent, industry, roleSeniority, language, businessVsPerson) inferred by an LLM from each lead's title and snippet text alone. It is off by default; when enabled, it sends the snippet text (never the full page) to the provider/model you choose and asks it to classify, not to look up real company data. If the call fails, or no API key resolves, the fields come back null rather than a guessed value.
How does Email Lead Scraper handle Google's anti-bot defenses?
It rotates user agents and Accept-Language headers per request, routes traffic through Apify's GOOGLE_SERP proxy group, detects Google's block responses, and retries through a fresh proxy URL up to 3 times before giving up on a page. This is implemented for Google's search results specifically, since that is where every request in this Actor is sent.
Does Email Lead Scraper return data in a format LLMs can use directly?
Yes. Typed, normalized JSON with stable field names — no HTML, no selectors, no parsing. Pass results directly into an LLM context window, a vector store, or an agent tool call.
Can I use Email Lead Scraper without managing proxies?
Yes. If you don't supply your own proxyConfiguration, the Actor defaults to Apify's GOOGLE_SERP proxy group automatically — no separate proxy setup is required.
What happens when a source platform changes its structure or Google blocks the scraper?
The scraper is maintained and its output schema stays stable — the field names and types you build against (email, network, url, and the rest) don't change on your end. No numeric turnaround time is published for fixes.
Your feedback
Found a bug or missing a field? We want to know. Reach out through the Actor's Apify Store page (Issues tab) or Apify Console support so it can be checked against the source and fixed — that feedback loop is how the schema in this README stays accurate.