Official agent skill

Apify Verified Email Finder

by apify in apify/awesome-skills

Builds a list of verified business emails from Google Maps, Google SERPs, or a user-supplied URL list.

OfficialApache-2.0Auto-check: notesData & Analytics

Install Apify Verified Email Finder

skills CLI
$ npx skills add apify/awesome-skills --skill apify-verified-email-finder -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install apify/awesome-skills apify-verified-email-finder --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/apify/awesome-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/apify-verified-email-finder .claude/skills/apify-verified-email-finder && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
apify-verified-email-finder
GitHub stars
266
Token cost
~2.7k tokens
SKILL.md length
1,233 words
Files
9
Skills in repo
25
Repo updated
First seen
Licence
Apache-2.0

At a glance

Builds a list of verified business emails from Google Maps, Google SERPs, or a user-supplied URL list.

  • Works in 5 steps: Collect the Six Required Anchor Inputs → Route to the Correct Actor → Build the Actor Input → …
  • User asks to find verified emails
  • SKILL.md covers Prerequisites, Workflow, Worked Examples and Quality Rules (always enforce), plus 2 more sections
  • Runs JavaScript scripts from its folder; calls node and curl; reaches api.apify.com; needs APIFY_TOKEN

What it does

Apify Verified Email Finder is an agent skill from apify/awesome-skills, published by the product's own GitHub organization. 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.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files (for example `examples/example-maps-input.md`, `examples/example-search-input.md` and `examples/example-url-list-input.md`).

It sits in Data & Analytics, covering Web scraping. It works with Apify and Google Maps Platform. The repository describes itself as: Community collection of Apify agent skills for AI coding assistants. The licence is Apache-2.0.

When your agent uses it

  • User asks to find verified emails
  • Build a leads list
  • Scrape emails from Maps
  • Verify emails for a URL list

Example prompts

  • “Use the apify-verified-email-finder skill to build a list of verified business emails from Google Maps, Google SERPs, or a user-supplied URL list”
  • “/apify-verified-email-finder”

Requirements

  • Node.js
  • A credential in APIFY_TOKEN

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Collect the Six Required Anchor Inputs
  2. Route to the Correct Actor
  3. Build the Actor Input
  4. Run the Actor
  5. Filter, Deduplicate, and Render

What it can do on your machine

Read from SKILL.md and the folder at commit 1eb0cd0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.apify.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • APIFY_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Apify Verified Email Finder loads about 2.7k tokens when it runs. Until then it costs about 95 tokens; SKILL.md has 1,233 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~95
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:22
    - `.env` file with `APIFY_TOKEN`
  • NoteMentions a .env fileSKILL.md:112
    node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from apify/awesome-skills at commit 1eb0cd0, republished under its Apache-2.0 licence (© apify). 1,233 words, ~2,696 tokens.

Download SKILL.mdSave it as .claude/skills/apify-verified-email-finder/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
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 withActor IDUse when
Location + business type ("dentists in Berlin")compass/crawler-google-placesLocal leads list from Maps listings; best when user wants address / phone / hours too
Keyword / search query ("best CRM software")apify/google-search-scraperContacts from whichever sites Google ranks for a topic
Pre-existing URL list (pasted, file path)vdrmota/contact-info-scraperUser 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 saysRoute
"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.

FieldValue
maximumLeadsEnrichmentRecordsanchor #4 (default 3, min 1)
leadsEnrichmentDepartmentsanchor #3 as array, or [] if "any"
verifyLeadsEnrichmentEmailstrue (always) — guard rail, never set to false

Full per-Actor input parameters and example payloads are in 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.

MCP path (default in Claude sessions):

Call the call-actor tool:

  • actor: one of the three Actor IDs (compass/crawler-google-places, apify/google-search-scraper, vdrmota/contact-info-scraper)
  • input: the JSON payload from Step 3
  • callOptions: {"timeout": 1800, "memory": 4096} for a generous budget

The tool returns runId and datasetId. If status is still RUNNING, poll with get-actor-run (waitSecs up to 45) until SUCCEEDED. Capture both IDs for the run_metadata.json sidecar.

Script path (CLI / scheduled use):

bash
node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \
  --actor "ACTOR_ID" \
  --input 'JSON_INPUT' \
  --output YYYY-MM-DD_verified-emails.csv \
  --format csv \
  --timeout 900

Use --format json for JSON. The script writes the raw dataset to disk; Step 5 still applies the spurious-match + scope filters on top.

Show full SKILL.md (454 more words)Show less
Step 5: Filter, Deduplicate, and Render

Pull the dataset:

  • MCP path: call get-dataset-items with the datasetId from Step 4. Use the fields parameter (e.g., title,searchString,countryCode,city,address,phone,website,leadsEnrichment) and clean: true to keep the response small. For datasets that still exceed the response cap, fetch directly via curl https://api.apify.com/v2/datasets/<id>/items?fields=...&clean=true and pipe through jq.
  • Script path: the raw dataset is already on disk in the file from Step 4.

Each record contains business fields plus a leadsEnrichment array (Maps, SERP) or top-level lead fields (URL list). Each lead has a departments array, a companyWebsite, and an emailVerification object with result (ok / invalid / disposable / catch_all / unknown / error) and quality (good / risky / bad).

  • Spurious-match filter (mandatory, always on). Apply this first, before any other filter. The lead-enrichment service can return global-fallback leads when no local match exists (real case observed: a single US-zoo CFO whose companyWebsite=zoo.org was attributed to 8 unrelated Polish zoos because the matcher latched onto the zoo substring). Drop any lead whose companyWebsite hostname doesn't equal the source URL's hostname (strip https?://, leading www., anything after /; lowercase). Count drops in run_metadata.json and call them out in the deliverable header if non-zero.

  • Filter by result scope (anchor #6). Applied second.

    ScopeRow-keep logic
    verified-onlyemailVerification.result == "ok"
    verified-plus-catchallemailVerification.result in {"ok", "catch_all"}
    all-emailsemail is non-empty (any result, including missing verification)
    with-phonephone (or company phone) is non-empty (regardless of email)
    everythingkeep every lead, no filter
  • Dedupe: group by lowercased email; keep the first occurrence and merge Source Query or URL if the same email appears from multiple sources. For with-phone rows that have no email, dedupe by lowercased phone instead.

  • Empty-result surfacing: if the department filter (anchor #3) produces zero leads for a given domain, include a row for that domain with Email = "" and Email Verification Status = "no leads matched filter". Do not silently drop it. This is separate from the result-scope filter above — empty-domain rows are inserted before scope-filtering and always shown.

Output row schema (16 columns, including Departments) and per-format rendering details are in reference/output-formats.md.

Worked Examples

Quality Rules (always enforce)

  • Guard rail: never submit a run with verifyLeadsEnrichmentEmails: false.
  • Provenance & traceability: populate the Source column on every row; carry Apify runId + datasetId in run_metadata.json.
  • No fabrication: missing dataset fields stay blank.
  • Deliverable header transparency: state the active result scope and the spurious-match drop count; offer to re-render under a different scope.
  • Ambiguity confirm: if anchor #1 is unclear, ask before running.

Cost & Pricing

Email verification is charged only for decisive results (ok / invalid / disposable); catch_all / unknown / error are free. Leads enrichment is charged per successfully extracted lead. Check the Apify console for live rates (they vary by subscription tier and change over time).

Error Handling

See reference/troubleshooting.md.

© apify, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files in skills/apify-verified-email-finder of apify/awesome-skills.

  • SKILL.md
  • examples/example-maps-input.md
  • examples/example-search-input.md
  • examples/example-url-list-input.md
  • reference/apify-actor-usage.md
  • reference/output-formats.md
  • reference/scripts/package.json
  • reference/scripts/run_actor.js
  • reference/troubleshooting.md

Open the folder on GitHubat commit 1eb0cd0

Compare with similar skills

Apify Verified Email Finder next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Apify Verified Email Finder compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Apify Verified Email Finder this skillapify/awesome-skills266—~2.7kAutomated safety check: NotesApache-2.0
Apify Brand Reputation Monitoringsickn33/agentic-awesome-skills47k2 repos~1.2kAutomated safety check: NotesMIT
Apify Competitor IntelligenceaAAaqwq/AGI-Super-Team1053 repos~1.3kAutomated safety check: NotesMIT
Apify Multi-Platform Scraperapify/agent-skills2.4k2 repos~1.4kAutomated safety check: NotesNone
Apify Market Researchsickn33/agentic-awesome-skills47k2 repos~1.2kAutomated safety check: NotesMIT
Google Maps ScraperMahanaicoach/google-maps-scraper-kit1.3k—~2.8kAutomated safety check: PassMIT

Similar skills

  • Apify Brand Reputation Monitoring

    sickn33/agentic-awesome-skills

    Scrape reviews, ratings, and brand mentions from multiple platforms using Apify Actors.

    47k GitHub starsUsed in 2 repos~1.2k tokens
    Data & AnalyticsAuto-check: notes
  • Apify Competitor Intelligence

    aAAaqwq/AGI-Super-Team

    Analyze competitor strategies, content, pricing, ads, and market positioning across Google Maps, Booking.com, Facebook, Instagram, YouTube, and TikTok.

    105 GitHub starsUsed in 3 repos~1.3k tokens
    Data & AnalyticsAuto-check: notes
  • Official

    Scrapes public data from social, maps, search and review platforms by choosing from about a hundred Apify Actors and running them through the Apify CLI.

    2.4k GitHub starsUsed in 2 repos~1.4k tokens
    Data & AnalyticsAuto-check: notes
  • Apify Market Research

    sickn33/agentic-awesome-skills

    Analyze market conditions, geographic opportunities, pricing, consumer behavior, and product validation across Google Maps, Facebook, Instagram, Booking.com, and TripAdvisor.

    47k GitHub starsUsed in 2 repos~1.2k tokens
    Marketing & SEOAuto-check: notes
  • Google Maps Scraper

    Mahanaicoach/google-maps-scraper-kit

    Scrape Google Maps business listings (name, address, phone, website, rating, reviews, lat/lng, hours, emails) via the local gosom google-maps-scraper REST API.

    1.3k GitHub stars~2.8k tokensUpdated 5 days ago
    Data & AnalyticsAuto-check passed
  • Reddit Post Finder

    gooseworks-ai/goose-skills

    Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.

    1.2k GitHub starsUsed in 1 repo~1.2k tokens
    Data & AnalyticsAuto-check passed

More from apify/awesome-skills

All 25 skills in this repo
  • Apify Buying Signal Detection

    apify/awesome-skills

    Official

    Set up a recurring buying-signal detection pipeline that finds companies showing buying intent across three signal types — job postings (hiring for the persona), fundraising events (recent raises)…

    266 GitHub stars~5.1k tokensUpdated 17 days ago
    Auto-check: notes
  • Apify Lead Scoring Enrichment

    apify/awesome-skills

    Official

    Score and enrich a CSV of B2B leads using Apify Actors. An agent skill from apify/awesome-skills.

    266 GitHub stars~4.4k tokensUpdated 17 days ago
    Auto-check: notes
  • Apify App Store Intelligence

    apify/awesome-skills

    Official

    Pull structured Apple App Store and Google Play data — app metadata, price, rating, the 1–5★ ratings histogram, version, developer, and reviews — and watch it for changes over time.

    266 GitHub stars~3.5k tokensUpdated 17 days ago
    Auto-check passed
  • Apify Ashby Jobs Scraper

    apify/awesome-skills

    Official

    Scrape Ashby jobs or discover companies using Ashby with the Apify Ashby Job Board API Actor (johnvc/ashby-job-board-scraper).

    266 GitHub stars~3.7k tokensUpdated 17 days ago
    Auto-check passed
  • Apify Company Data API

    apify/awesome-skills

    Official

    Pull structured B2B company data from Clutch.co with the Clutch.co Agency API Actor (johnvc/clutch-agency-api).

    266 GitHub stars~2.8k tokensUpdated 17 days ago
    Auto-check passed
  • Apify Google Maps Leads

    apify/awesome-skills

    Official

    Build a local-business lead database from Google Maps in one Apify pipeline: search by target audience + geography, enrich each place with company contacts from its website, leads enrichment (names…

    266 GitHub stars~3.8k tokensUpdated 17 days ago
    Auto-check passed

Questions about Apify Verified Email Finder

What does Apify Verified Email Finder do?

Builds a list of verified business emails from Google Maps, Google SERPs, or a user-supplied URL list. Apify Verified Email Finder is an agent skill from apify/awesome-skills, published by the product's own GitHub organization. Builds a list of verified business emails from Google Maps, Google SERPs, or a user-supplied URL list.

When should I use Apify Verified Email Finder?

Apify Verified Email Finder fits situations like: user asks to find verified emails; build a leads list; scrape emails from Maps; verify emails for a URL list.

How do I install Apify Verified Email Finder in Claude Code?

Run `npx skills add apify/awesome-skills --skill apify-verified-email-finder -a claude-code`. Or copy the skill folder (skills/apify-verified-email-finder in apify/awesome-skills) into .claude/skills/apify-verified-email-finder in your project. Claude Code loads it when a task matches its description.

How do I install Apify Verified Email Finder in Codex?

Run `npx skills add apify/awesome-skills --skill apify-verified-email-finder -a codex`. Or copy the skill folder (skills/apify-verified-email-finder in apify/awesome-skills) into .agents/skills/apify-verified-email-finder in your project. Codex loads it when a task matches its description.

Can I use Apify Verified Email Finder in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add apify/awesome-skills --skill apify-verified-email-finder -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/apify-verified-email-finder, .gemini/skills/apify-verified-email-finder, .github/skills/apify-verified-email-finder and .opencode/skills/apify-verified-email-finder in your project.

What does Apify Verified Email Finder need to run?

Going by SKILL.md and its folder, Apify Verified Email Finder needs JavaScript for the scripts in its folder, the command-line tools its instructions call (node and curl) and credentials named APIFY_TOKEN. Our summary lists: Node.js; A credential in APIFY_TOKEN.

Does Apify Verified Email Finder access the network?

SKILL.md names 1 domain. In commands or code: api.apify.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Apify Verified Email Finder safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Apify Verified Email Finder use?

Apify Verified Email Finder is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Apify Verified Email Finder use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Apify Verified Email Finder?

Skills that share tags, products or a category with Apify Verified Email Finder: Apify Brand Reputation Monitoring (sickn33/agentic-awesome-skills, 47k stars), Apify Competitor Intelligence (aAAaqwq/AGI-Super-Team, 105 stars), Apify Multi-Platform Scraper (apify/agent-skills, 2.4k stars) and Apify Market Research (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Apify Verified Email Finder?

apify (a GitHub organization, an official publisher) maintains it in apify/awesome-skills, which has 266 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on September 22, 2026.

Source: apify/awesome-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.