/apify-verified-email-finder
Builds a list of verified business emails from Google Maps, Google SERPs, or a user-supplied URL list. Verification happens inside the same Apify run — no third-party verifier needed. Use when user asks to find verified emails, build a leads list, scrape emails from Maps or
$ npx -y skills add apify/awesome-skills --skill apify-verified-email-finder --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/apify-verified-email-finder
Context preview
The summary Claude sees to decide when to auto-load this skill.
Builds a list of verified business emails from Google Maps, Google SERPs, or a user-supplied URL list. Verification happens inside the same Apify run — no third-party verifier needed. Use when user asks to find verified emails, build a leads list, scrape emails from Maps or
SKILL.md
apify-verified-email-finder.SKILL.mdname: apify-verified-email-finder
description: Builds a list of verified business emails from Google Maps, Google SERPs, or a user-supplied URL list. Verification happens inside the same Apify run — no third-party verifier needed. Use when user asks to find verified emails, build a leads list, scrape emails from Maps or SERP, verify emails for a URL list, or find an Apollo / Hunter alternative.
author: Daniela Ryplová
author_url: https://github.com/danielarypl
metadata:
keywords: "email, verification, leads, contacts, verified-emails, google-maps, serp, apify, apollo-alternative, hunter-alternative"
Verified Email Finder
Return a list of verified business emails by routing the user's input to the right Apify Actor and turning on the leads enrichment + email verification add-ons in a single run. No third-party verifier (Hunter, NeverBounce, Apollo) needed — verification happens inside the same Actor run.
Prerequisites
(No need to check it upfront)
The skill supports two execution paths. Pick the one that matches your environment — Steps 4 and 5 show commands for both.
**MCP path (default in Claude sessions, recommended).** If the Apify MCP server is connected, no setup is needed — auth runs through the user's Apify account. Use the `call-actor` and `get-dataset-items` MCP tools.
**Script path (CLI / scheduled / non-Claude execution).** Requires:
- `.env` file with `APIFY_TOKEN`
- Node.js 20.6+ (for native `--env-file` support)
Workflow
Copy this checklist and track progress:
Task Progress:
- [ ] Step 1: Collect the six required anchor inputs
- [ ] Step 2: Route to the correct Actor (confirm if ambiguous)
- [ ] Step 3: Build the Actor input (verification always ON)
- [ ] Step 4: Run the Actor and wait
- [ ] Step 5: Apply the result-scope filter, deduplicate, and render
Step 1: Collect the Six Required Anchor Inputs
Ask all six as one block before any Actor call. Don't bundle Actor-specific optional fields (country code, language, max pages) into this round — surface those as follow-ups.
1. **What do you have to start with?** — `location query` / `SERP keyword` / `URL list`. This drives the routing decision. 2. **The actual input** — the location string, the keyword(s), or the URLs themselves. 3. **Department filter** — one or more of: `c_suite`, `product`, `engineering_technical`, `design`, `education`, `finance`, `human_resources`, `information_technology`, `legal`, `marketing`, `medical_health`, `operations`, `sales`, `consulting`. Default is `any` (leave the array empty), but ask every time. 4. **Max contacts per domain / business** — passed as `maximumLeadsEnrichmentRecords`. Default `3`, but ask every time. 5. **Output format** — `CSV` or `JSON`. Ask every time. 6. **Result scope** — which leads to keep in the deliverable. The Actor always runs the same way (verification always on); this only controls post-run filtering. Pick one:
- `verified-only` (default) — only leads with `emailVerification.result == "ok"`. Safest for cold email.
- `verified-plus-catchall` — `ok` plus `catch_all`. Catch-all is often deliverable but unprovable.
- `all-emails` — any lead with a non-empty `email`, regardless of verification.
- `with-phone` — any lead with a non-empty phone number, regardless of email status. Use for call campaigns.
- `everything` — every lead the Actor returned, even incomplete ones.
Step 2: Route to the Correct Actor
Inspect anchor #1 and pick the Actor.
| User has to start with | Actor ID | Use when | |---|---|---| | Location + business type ("dentists in Berlin") | `compass/crawler-google-places` | Local leads list from Maps listings; best when user wants address / phone / hours too | | Keyword / search query ("best CRM software") | `apify/google-search-scraper` | Contacts from whichever sites Google ranks for a topic | | Pre-existing URL list (pasted, file path) | `vdrmota/contact-info-scraper` | User already has domains; cheapest route since no discovery step |
All three Actors share the same three add-on fields, so verification behavior is identical across routes.
**Decision examples**
| User says | Route | |---|---| | "Dentists in Munich" / "Lawyers in Prague" | Maps | | "Marketing contacts at the top results for 'AI agent builder'" | Search | | "Find emails for these 5 URLs: acme-co.example, demo-co.example..." | URL list | | "Find HR contacts at Fortune 500 companies" | **Ask:** SERP for "Fortune 500 HR" or a URL list? | | "Find contacts at SaaS companies in Berlin" | **Ask:** Maps for "SaaS companies in Berlin" or SERP for "SaaS companies Berlin"? Maps works best when businesses are Google-Maps-listed. | | (User pastes both a SERP keyword AND a URL list) | **Ask:** run one route, the other, or both as separate deliverables? |
**Ambiguity rule:** if anchor #1 is unclear, ask **one** follow-up before running. Never burn Actor compute on a guessed route.
**Mixed deliverables:** if the user explicitly asks for two routes in one deliverable, run both Actors and concatenate. The `Source` column makes the mix clear; dedupe by email across the combined output.
Step 3: Build the Actor Input
Always set these three fields, regardless of which Actor is selected.
| Field | Value | |---|---| | `maximumLeadsEnrichmentRecords` | anchor #4 (default `3`, min `1`) | | `leadsEnrichmentDepartments` | anchor #3 as array, or `[]` if "any" | | `verifyLeadsEnrichmentEmails` | `true` (always) — guard rail, never set to `false` |
Full per-Actor input parameters and example payloads are in [reference/apify-actor-usage.md](reference/apify-actor-usage.md).
**URL-list pre-validation:** before submitting URLs to `vdrmota/contact-info-scraper`, parse each one and check it is http/https and parseable. Skipped entries must appear in the output as `skipped — invalid URL`, never silently dropped.
Step 4: Run the Actor
Maps and SERP runs with leads enrichment can take several minutes per query. Raise the timeout for large jobs.
Read more
name: apify-verified-email-finder description: Builds a list of verified business emails from Google Maps, Google SERPs, or a user-supplied URL list. Verification happens inside the same Apify run — no third-party verifier needed. Use when user asks to find verified emails, build a leads list, scrape emails from Maps or SERP, verify emails for a URL list, or find an Apollo / Hunter alternative. author: Daniela Ryplová author_url: https://github.com/danielarypl metadata: keywords: "email, verification, leads, contacts, verified-emails, google-maps, serp, apify, apollo-alternative, hunter-alternative"
Verified Email Finder
Return a list of verified business emails by routing the user's input to the right Apify Actor and turning on the leads enrichment + email verification add-ons in a single run. No third-party verifier (Hunter, NeverBounce, Apollo) needed — verification happens inside the same Actor run.
Prerequisites
(No need to check it upfront)
The skill supports two execution paths. Pick the one that matches your environment — Steps 4 and 5 show commands for both.
**MCP path (default in Claude sessions, recommended).** If the Apify MCP server is connected, no setup is needed — auth runs through the user's Apify account. Use the `call-actor` and `get-dataset-items` MCP tools.
**Script path (CLI / scheduled / non-Claude execution).** Requires:
- `.env` file with `APIFY_TOKEN`
- Node.js 20.6+ (for native `--env-file` support)
Workflow
Copy this checklist and track progress:
Task Progress: - [ ] Step 1: Collect the six required anchor inputs - [ ] Step 2: Route to the correct Actor (confirm if ambiguous) - [ ] Step 3: Build the Actor input (verification always ON) - [ ] Step 4: Run the Actor and wait - [ ] Step 5: Apply the result-scope filter, deduplicate, and render
Step 1: Collect the Six Required Anchor Inputs
Ask all six as one block before any Actor call. Don't bundle Actor-specific optional fields (country code, language, max pages) into this round — surface those as follow-ups.
1. **What do you have to start with?** — `location query` / `SERP keyword` / `URL list`. This drives the routing decision. 2. **The actual input** — the location string, the keyword(s), or the URLs themselves. 3. **Department filter** — one or more of: `c_suite`, `product`, `engineering_technical`, `design`, `education`, `finance`, `human_resources`, `information_technology`, `legal`, `marketing`, `medical_health`, `operations`, `sales`, `consulting`. Default is `any` (leave the array empty), but ask every time. 4. **Max contacts per domain / business** — passed as `maximumLeadsEnrichmentRecords`. Default `3`, but ask every time. 5. **Output format** — `CSV` or `JSON`. Ask every time. 6. **Result scope** — which leads to keep in the deliverable. The Actor always runs the same way (verification always on); this only controls post-run filtering. Pick one:
- `verified-only` (default) — only leads with `emailVerification.result == "ok"`. Safest for cold email.
- `verified-plus-catchall` — `ok` plus `catch_all`. Catch-all is often deliverable but unprovable.
- `all-emails` — any lead with a non-empty `email`, regardless of verification.
- `with-phone` — any lead with a non-empty phone number, regardless of email status. Use for call campaigns.
- `everything` — every lead the Actor returned, even incomplete ones.
Step 2: Route to the Correct Actor
Inspect anchor #1 and pick the Actor.
| User has to start with | Actor ID | Use when | |---|---|---| | Location + business type ("dentists in Berlin") | `compass/crawler-google-places` | Local leads list from Maps listings; best when user wants address / phone / hours too | | Keyword / search query ("best CRM software") | `apify/google-search-scraper` | Contacts from whichever sites Google ranks for a topic | | Pre-existing URL list (pasted, file path) | `vdrmota/contact-info-scraper` | User already has domains; cheapest route since no discovery step |
All three Actors share the same three add-on fields, so verification behavior is identical across routes.
**Decision examples**
| User says | Route | |---|---| | "Dentists in Munich" / "Lawyers in Prague" | Maps | | "Marketing contacts at the top results for 'AI agent builder'" | Search | | "Find emails for these 5 URLs: acme-co.example, demo-co.example..." | URL list | | "Find HR contacts at Fortune 500 companies" | **Ask:** SERP for "Fortune 500 HR" or a URL list? | | "Find contacts at SaaS companies in Berlin" | **Ask:** Maps for "SaaS companies in Berlin" or SERP for "SaaS companies Berlin"? Maps works best when businesses are Google-Maps-listed. | | (User pastes both a SERP keyword AND a URL list) | **Ask:** run one route, the other, or both as separate deliverables? |
**Ambiguity rule:** if anchor #1 is unclear, ask **one** follow-up before running. Never burn Actor compute on a guessed route.
**Mixed deliverables:** if the user explicitly asks for two routes in one deliverable, run both Actors and concatenate. The `Source` column makes the mix clear; dedupe by email across the combined output.
Step 3: Build the Actor Input
Always set these three fields, regardless of which Actor is selected.
| Field | Value | |---|---| | `maximumLeadsEnrichmentRecords` | anchor #4 (default `3`, min `1`) | | `leadsEnrichmentDepartments` | anchor #3 as array, or `[]` if "any" | | `verifyLeadsEnrichmentEmails` | `true` (always) — guard rail, never set to `false` |
Full per-Actor input parameters and example payloads are in [reference/apify-actor-usage.md](reference/apify-actor-usage.md).
**URL-list pre-validation:** before submitting URLs to `vdrmota/contact-info-scraper`, parse each one and check it is http/https and parseable. Skipped entries must appear in the output as `skipped — invalid URL`, never silently dropped.
Step 4: Run the Actor
Maps and SERP runs with leads enrichment can take several minutes per query. Raise the timeout for large jobs.
Community collection of Apify agent skills for AI coding assistants
Other skills on awesome-skills.
- /apify-ads-intelligence
Research, spy on, and analyze ads across Meta (Facebook & Instagram), Google (Ads Transparency Center + paid search results), TikTok (Ads Library + Creative Center), LinkedIn Ad Library, and X (Twitter — promoted tweets, best-effort) using Apify Actors. Use when user asks about
Open skill - /apify-ai-search-visibility-tracker
Track whether a brand and its competitors get cited or mentioned across Google AI Overviews, Google AI Mode, ChatGPT Search, Perplexity, Microsoft Copilot, and Google Gemini for a defined set of prompts, on a recurring schedule. Use when user asks to track AI visibility, monitor
Open skill - /apify-booking-host-leads
Find and enrich B2B leads from Booking.com - hotels, apartments, and vacation rentals - and pull each host's or property manager's real contact details (email, phone, company name, registration number). Use when the user says things like "get emails from Booking.com",
Open skill - /apify-easy-competitive-intelligence
This skill should be used when the user asks to "analyze a competitor", "compare pricing", "competitive landscape", "market research", "what do customers think", "review intelligence", "hiring signals", "content strategy", "SEO battle", "build a battlecard", "competitive
Open skill - /apify-ecommerce
Scrape e-commerce data for pricing, reviews, bestsellers, and seller discovery across 30+ platforms including Amazon, Walmart, eBay, Shopify, WooCommerce, and more. Use when user asks about product prices, competitor analysis, store scraping, tech stack detection, food delivery,
Open skill - /apify-financial-news
Discover and extract financial news for tracked portfolio companies across 33 verified Tier 1 sources (Bloomberg, Reuters, FT, WSJ, IntelliNews, ČTK, PAP, BTA, TASR, ING Think, ECB, EC Press Corner, ...) plus broad Google News fallback. Use when the user asks to find news about
Open skill

