Name Your Ideal Client → AI Finds Them on Google Maps + Email🎯
Pricing
from $29.00 / 1,000 verified leads
Name Your Ideal Client → AI Finds Them on Google Maps + Email🎯
Name your ideal client in plain words, like "independent roofers, not chains". AI scans Google Maps and keeps only the businesses that match, each with a checked email. Nothing to sort afterwards. Pay only for matches, not places scraped: $0.035 per lead. Weekly mode returns only new businesses.
Pricing
from $29.00 / 1,000 verified leads
Rating
0.0
(0)
Developer
Scout Forge
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
18 days ago
Last modified
Categories
Share
Find local businesses on Google Maps. Get only the ones that match, with phone and checked email.
You type who you want to sell to. In plain words. For example: "independent dental practices in Dallas, not large chains".
You receive a contact list of the businesses that match: name, phone, email, website, rating. Ready to call or email. You pay $0.035 for each lead, and nothing for the places that do not match.
What you type, what you get
You type, in 4 fields:
| Field | Example |
|---|---|
| Search queries | dentist |
| Location | Dallas, TX |
| Target description | Independent dental practices, not large chains or corporate groups |
| Max leads | 3 |
You get, in a table you can download as Excel, CSV or JSON:
| Name | Category | Phone | Rating | |
|---|---|---|---|---|
| Bear Creek Family Dentistry | Oral surgeon | info@bearcreekfamilydentistry.com | (214) 350-5333 | 4.9 (1,664 reviews) |
| Galaxia Dental | Oral surgeon | info@galaxiadentaldallas.com | (469) 399-7773 | 4.9 (1,232 reviews) |
| Amerismiles | Dentist | dmd@amerismiles.com | (214) 827-1305 | 4.8 (352 reviews) |
No scraper to set up, no list to sort, no workflow to build. A free Apify account receives up to 10 leads per run.
You sell to local businesses. Roofers, dentists, accountants, restaurants. You know the routine: you scrape Google Maps, receive 100 rows, and spend the afternoon deleting the closed ones, the chains, the cleaning company listed as a roofer, the places with no way to reach them. This Actor does that afternoon for you: it reads each business, keeps only those that match your target, opens each website, finds the email, and checks that the address can receive mail.
The test
We searched Google Maps for "roofing" in Dallas, Texas.
| Step | Result |
|---|---|
| Places scraped on Google Maps | 40 |
| Closed, or without a website | 4 |
| Rejected by the AI: chains, wrong trade, not certain | 21 |
| No usable email on the website | 8 |
| Leads delivered | 7 |
Each of the 7 has a phone number, a website, and an email read from the business's own site, on a domain with a working mail server. Fee for the leads: $0.245. Run the same search for your trade and your city.
What a finished list costs
The same finished list: 7 leads you can contact, from 40 places scraped in Dallas.
| By hand (basic scraper + sorting) | Your own workflow | This Actor | |
|---|---|---|---|
| Cash | $0.16 | $0.26 | $0.365 |
| Your time | 40 minutes of sorting | several hours to build, then fixes | none |
| Time at $20 an hour | $13.33 | $20 or more, for the first list | $0 |
| Total cost of the list | $13.49 | $20 or more | $0.365 |
| Cost per usable lead | $1.93 | $0.052 |
This Actor costs $0.205 more in cash than sorting by hand. It saves you 40 minutes. It pays for itself if your time is worth more than $0.31 an hour.
How we counted:
- Manual sorting: about 1 minute per place to check the name, open the website and look for an email. 40 places, 40 minutes.
- Your own workflow, in cash: scraping $0.16, AI filter under $0.01 (GPT-4.1 mini), email finder on the 15 places the AI kept $0.075, email validation $0.02. Total about $0.26. Building it takes several hours: we count 1 hour at $20 for the first list, as a minimum.
- This Actor: $0.245 for the leads plus $0.12 of Google Maps scraping.
- Cash prices: public Apify Store listings and OpenAI API prices, October 2026. Replace $20 with your own hourly rate: the result will not change much.
Who uses it
Web designers and agencies. Find businesses that have no website, with their phone number, rating and number of reviews. A business with good reviews and no website is the easiest pitch you will make. You can also find businesses whose website looks old, with the list of its problems.
Freelancers and consultants who sell to local businesses. SEO, bookkeeping, software for tradespeople, recruitment, insurance. One search per trade and city, one list per week.
Anyone who prospects by email. You receive the business, its phone number, and an email read from its own website.
Four ways to search
The Website filter field decides which businesses you receive.
| Website filter | What you get | Best for |
|---|---|---|
| Businesses with a website and a checked email (default) | Matching businesses with an email read from their own site | Cold email, any B2B offer |
| Businesses without a website | Matching businesses that have a phone number and no website. No email | Web designers: phone, WhatsApp, SMS or visits |
| Outdated websites with a phone number | Businesses whose website looks old, with their phone number. The email is included when one is found | Web designers who prospect by phone |
| Outdated websites with a checked email | Same, but only businesses with an email | Web designers who prospect by email |
Businesses without a website
Google Maps lists many businesses that have a phone number and no website. This mode delivers them with their phone number, rating and number of reviews. There is no email: contact them by phone, WhatsApp or in person. Businesses without a phone number are dropped.
In a country or a trade where most businesses have a website, only a small share of places qualify. Raise scrapeFactor to 8 or 10.
Outdated websites
The Actor opens each website and gives it a score from 0 (modern) to 100 (needs a rebuild). A business is delivered when the score is 40 or more. Each lead includes siteScore and siteIssues, so you can open your pitch with a real problem.
What the score looks at:
| Signal | Points |
|---|---|
| No viewport tag: the site is not made for mobile | 40 |
| No HTTPS | 30 |
| Old markup (font, center, marquee, frames) or Flash | 30 |
| Copyright year 3 or more years old | 20 |
| Old site builder (FrontPage, Dreamweaver, old Joomla or WordPress) | 20 |
| Old jQuery (1.x or 2.x) | 10 |
| Slow to load | 10 |
Every website that scores below 40 is skipped and costs you nothing.
Many old websites show no email, only a contact form. The version with a checked email drops them. The version with a phone number keeps them, as long as the Google Maps listing has a phone number. Raise scrapeFactor to 8 or 10.
You pay for results only
Google Maps scrapers charge for every place they scrape. You pay for the roofer who has no email, and for the cleaning company that is listed as a roofer.
This Actor charges $0.035 for one thing: a business that matches your target and meets your website filter. A business that does not costs you nothing from this Actor. Higher Apify subscription plans pay less per lead, down to $0.029.
Your first list in 3 minutes
- Click Try for free.
- In Search queries, type the trade you sell to, in the language of the country. Example:
roofing. - In Location, type the city or region. Example:
Dallas, Texas. - In Target description, write one sentence about your ideal prospect.
- Choose a Website filter.
- Set Max leads to 10 and click Start.
- When the run is finished, open the Output tab. Download the list as Excel, CSV or JSON.
Describe your target in plain words
The AI reads each business (name, categories, address, website address) and keeps it only when it is certain that it matches. Say who you want, then who you do not want.
- "Independent roofing businesses, not large chains or shops"
- "Dental clinics with one to three dentists, not hospital groups"
- "Independent restaurants, not fast food chains or franchises"
- "Accounting firms for small businesses, not franchises"
- "Wedding photographers, not photo studios for passports"
The AI rejects a business when:
- its name shows another main activity (a cleaning company listed as a roofer),
- its website is the page of one branch of a network (an address like
/location/dallas/), - it is not certain.
You receive fewer leads, and the ones you receive match. A very specific target ("seafood specialist") is rarely certain from a name and a category alone, so it can reject almost everything. Describe the type of business, not a detail you cannot see on a listing.
When you use the filter "Businesses without a website", do not write "with their own website" in the target: no business matches it.
Leave the field empty to skip the filter.
Where the places go
Not every place becomes a lead. At the end of each run, the Key-value store holds an OUTPUT record that counts them, step by step, as in the test table above.
The OUTPUT record also counts businesses that share the same website with another listing (a clinic and its doctors): you receive that website once, and pay once. In the "Outdated websites" modes, it counts the websites that were too recent.
Many contractor websites show only a contact form. That is why about half of the businesses that pass the AI filter have no email we can read.
If you receive fewer leads than you asked for, raise scrapeFactor: the Actor then scrapes more places for each lead you want.
What each lead contains
| Field | Content |
|---|---|
name | Business name |
category | Main Google Maps category |
address, city, country | Location. Empty for businesses that hide their address on Google Maps |
phone | Phone number |
website | Website. Empty in "Businesses without a website" mode |
email | Best email found on the website. Empty in "Businesses without a website" mode, and when none is found in "Outdated websites with a phone number" mode |
otherEmails | Up to 2 more emails, if any |
emailCheck | How the email was checked: syntax and mail server |
leadType | with-email, outdated-site or no-website |
siteScore | Website age score, 0 to 100. Empty when there is no website |
siteIssues | Problems found on the website, in plain words |
rating, reviewsCount | Google rating and number of reviews (empty for a new business) |
googleMapsUrl, placeId | Link and identifier on Google Maps |
aiMatch, aiReason | AI verdict and its reason, in 8 words |
scrapedAt | Date and time of the extraction |
Emails come from the business's own website (home, contact, legal and about pages) or from a common mailbox such as Gmail or Orange. Emails belonging to web agencies or parent groups are discarded. When a site shows several emails, the Actor puts first the one that contains the city, then info@ or contact@.
A fresh list every week
- Set Only new businesses to on.
- Keep the same Project name from one run to the next.
- Open Schedules and create a weekly schedule for this Actor.
Each run skips the businesses already delivered. You receive a fresh list, never the same one twice. Use one project name per trade and city.
Input
| Field | What it does |
|---|---|
searchQueries | Business types to search, one per line |
location | City, region or country |
maxLeads | Maximum leads to deliver (10 on a free account) |
targetDescription | Your ideal prospect, in plain words |
siteFilter | any (default), noWebsite, outdatedPhone or outdated |
language | Google Maps language |
onlyNew | Skip businesses delivered in earlier runs of the same project |
projectName | Name used to remember delivered leads |
scrapeFactor | Places scraped per lead wanted. Default 4. Use 8 to 10 for the website filters other than the default |
Example:
{"searchQueries": ["roofing"],"location": "Dallas, Texas","maxLeads": 10,"targetDescription": "Independent roofing businesses, not large chains or shops","language": "en"}
Example for a web designer looking for businesses without a website, to call:
{"searchQueries": ["restaurant"],"location": "Mauritius","maxLeads": 10,"targetDescription": "Independent restaurants, not hotel restaurants, fast food chains or franchises","siteFilter": "noWebsite","scrapeFactor": 8}
Output example
{"name": "Storm Warrior Roofing & Construction","category": "Roofing contractor","address": "2351 W Northwest Hwy, Dallas, TX 75220","city": "Dallas","country": "US","phone": "(972) 800-9122","website": "https://stormwarriorroofing.com/","email": "info@stormwarriorroofing.com","otherEmails": [],"emailCheck": "syntax + MX","leadType": "with-email","siteScore": 0,"siteIssues": [],"rating": 5,"reviewsCount": 7,"aiMatch": true,"aiReason": "Independent roofing contractor"}
Pricing
You pay per delivered lead. Higher Apify subscription plans get a lower price. The price is the same for the four website filters.
| Apify plan | Price per lead |
|---|---|
| Free and entry plans | $0.035 |
| Bronze | $0.033 |
| Silver | $0.031 |
| Gold | $0.029 |
At the standard price:
| What | Price |
|---|---|
| 20 leads | $0.70 |
| 100 leads | $3.50 |
| 1,000 leads | $35.00 |
The Actor runs the Google Maps Scraper by Compass internally. Its usage may appear separately on your bill, about $0.003 per place scraped. In the test above: 40 places, $0.12.
To cap your spending, set a maximum cost per run in Apify. The Actor stops when the budget is reached.
Connect it to your tools
Use the Apify integrations: Google Sheets, Make, n8n, Zapier, or a webhook. Or call it from your code:
curl -X POST "https://api.apify.com/v2/acts/scoutforge~google-maps-leads/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries":["roofing"],"location":"Dallas, Texas","maxLeads":10}'
What "checked" means
The email has a correct syntax and its domain has a working mail server. We cannot confirm that the mailbox itself exists: no tool can, without sending a message.
The website score is based on signals read from the home page. It shows that a site looks old, not that the owner wants a new one.
Emails come from public business websites. Follow the rules for B2B prospecting that apply in your country.
Questions
I received fewer leads than requested. Read the OUTPUT record to see where places were removed. Then raise scrapeFactor, widen the zone, or add search queries.
I received no lead. Check that your search is written in the language of the country, and that the target description is not too narrow or in conflict with your website filter.
Some businesses are missing from my list. In the default and "Outdated websites" modes, only businesses with a website are kept. Use "Businesses without a website" for the others.
Why do some leads have no email? In the phone modes, there is either no website to read, or the website shows no email. You get the phone number instead.
Some addresses are empty. Businesses that serve customers at their home hide their address on Google Maps.
Can I search several trades at once? Yes. Put one trade per line in searchQueries. The scraping budget is shared between them.
Do I need an OpenAI account? No. The AI filter is included in the price.
Missing a feature? Open an issue on this page. Requests shape the roadmap.
Try it now
Ten leads are free. Describe your ideal client, click Start, and judge the list for yourself.