Google Maps CEE Supplier Shortlist Builder
Pricing
from $2.50 / 1,000 supplier record saveds
Google Maps CEE Supplier Shortlist Builder
Build evidence-based local supplier shortlists from Google Maps for CEE procurement and sales teams. Transparent readiness scoring, risk flags, CEE language support, and optional BYOK AI summaries.
Pricing
from $2.50 / 1,000 supplier record saveds
Rating
0.0
(0)
Developer
Viktor Kondas
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Build evidence-based local supplier shortlists from Google Maps for CEE procurement and sales teams.
What it does
- Scrapes local service provider listings from Google Maps for a city or region (HU, RO, PL, CZ, SK, AT).
- Resolves locations via OpenStreetMap Nominatim or custom GeoJSON.
- Returns structured JSON/CSV/Excel with phone, website, ratings, coordinates, and shortlist fields.
- Procurement mode adds transparent supplier readiness scoring, risk flags, and shortlist status.
- Optional multi-provider AI scoring (BYOK): Gemini, Claude, ChatGPT, or OpenRouter.
- Optional Google Sheets export (service account).
- Built for n8n, Make, Zapier, and vibe-coder agent workflows.
Optional enrichment: pipe result website URLs into the sibling Website Intelligence + Contact Extractor actor for emails, tech stack, and EU compliance flags.
Who it's for
- Procurement teams building first-pass supplier shortlists for clinics, catering, cleaning, security, maintenance, facilities, and local IT services.
- Sales teams building contactable SME lead lists by city or district.
- Vibe coders powering AI supplier-discovery agents.
- Market researchers auditing service density in CEE cities.
- Agencies running competitor mapping for clients.
What this score is — and is not
This actor helps you discover and rank public Google Maps evidence. It does not verify legal entity status, insurance, certifications, financial health, pricing, or formal vendor approval.
Use the output for:
- supplier discovery
- shortlist preparation
- outreach prioritization
Do not use it as the sole basis for contract award or formal vendor qualification.
What data you get
| Field | Description |
|---|---|
placeId | Stable Google Maps place identifier |
title | Business name |
categoryName | Primary category |
address, city, postalCode | Parsed location |
phone, website | Contact channels |
totalScore, reviewsCount | Rating signals |
matchedSearchTerms | Search terms that surfaced this supplier |
supplierReadinessScore | 0–100 shortlist readiness score |
shortlistStatus | READY, REVIEW, LOW_EVIDENCE, EXCLUDE |
scoreConfidence | HIGH, MEDIUM, LOW |
shortlistReasons | Human-readable reasons |
riskFlags | Missing contact, weak evidence, category mismatch, etc. |
shortlistReady | True when status is READY |
contactableLead | Leads mode only — has phone/website and rating ≥ 3.5 |
aiScore, aiSummary | When AI scoring enabled |
reviews[] | When includeReviews is true |
Legacy aliases procurementScore and vendorTier remain for backward compatibility.
How to use it
- Configure input — search terms, location, country code, language, limits.
- Run on Apify cloud (recommended) or locally with
apify run. - Download dataset as JSON, CSV, or Excel from the run page.
Input presets
Budapest dental clinics
{"searchTerms": ["fogászat", "dental"],"location": "Budapest, Hungary","countryCode": "HU","language": "hu","maxResultsPerSearch": 5,"outputMode": "procurement"}
Store input prefill uses this small cap so Apify automated QA finishes within 5 minutes. For real shortlists, raise maxResultsPerSearch (e.g. 50–100) and/or add terms like fogorvos.
Published Store example: Budapest dental clinics shortlist.
Budapest cleaning suppliers
{"searchTerms": ["takarítás", "cleaning service", "facility management"],"location": "Budapest, Hungary","countryCode": "HU","language": "hu","maxResultsPerSearch": 100,"minRating": 3.5,"outputMode": "procurement"}
Warsaw IT vendors
{"searchTerms": ["software development", "IT outsourcing", "web agency"],"location": "Warsaw, Poland","countryCode": "PL","language": "pl","maxResultsPerSearch": 50,"outputMode": "leads"}
CEE catering suppliers
{"searchTerms": ["catering", "étterem", "restaurant catering"],"location": "Budapest, Hungary","countryCode": "HU","maxResultsPerSearch": 200,"includeReviews": true,"maxReviewsPerPlace": 5,"outputMode": "procurement","enableAIScoring": true,"aiProvider": "openrouter","openrouterApiKey": "YOUR_KEY"}
Output example
{"placeId": "ChIJ...","title": "Smile Dental Clinic","categoryName": "Dentist","address": "Budapest, Váci út 33, 1134","phone": "+36 1 234 5678","website": "https://example.hu","totalScore": 4.7,"reviewsCount": 112,"matchedSearchTerms": ["fogászat", "fogorvos"],"supplierReadinessScore": 84,"shortlistStatus": "READY","scoreConfidence": "HIGH","shortlistReady": true,"shortlistReasons": ["Strong adjusted rating", "Multiple contact channels"],"riskFlags": [],"googleMapsUrl": "https://www.google.com/maps/place/...","scrapedAt": "2026-07-15T12:00:00.000Z"}
Supplier readiness scoring
Deterministic 0–100 score (no AI required):
| Component | Max points |
|---|---|
| Bayesian-adjusted reputation | 25 |
| Review confidence (log scale) | 20 |
| Contactability (website + phone) | 25 |
| Location completeness | 15 |
| Category/search relevance | 10 |
| Operational listing evidence | 5 |
Shortlist status:
READY— strong evidence, contactable, complete enough for outreachREVIEW— promising but needs manual checkLOW_EVIDENCE— too little public review evidenceEXCLUDE— permanently closed or no contact channel
AI scoring (BYOK — bring your own key)
Scraping and shortlist scoring work without any LLM key. AI is optional and summarizes only the public evidence collected.
When enableAIScoring is true, choose aiProvider and paste your API key:
| Provider | Input key field | Get key |
|---|---|---|
| Gemini (default in auto) | geminiApiKey | Google AI Studio |
| Claude | anthropicApiKey | Anthropic Console |
| ChatGPT | openaiApiKey | OpenAI API keys |
| OpenRouter | openrouterApiKey | OpenRouter |
| auto | First available key above | Tries Gemini → Claude → OpenAI → OpenRouter |
OpenRouter model: defaults to google/gemma-4-31b-it:free. Override with aiModel.
Google Sheets integration
- Create a Google Cloud service account with Sheets API access.
- Set
GOOGLE_SERVICE_ACCOUNT_KEYin actor environment (JSON string). - Share the target spreadsheet with the service account email (Editor).
- Enable
enableGoogleSheetsExportand passgoogleSheetsUrl.
CEE language support
The actor is built for CEE markets (HU, RO, PL, CZ, SK, AT). Here is what is supported:
| Feature | Support |
|---|---|
| Search terms in any language | Yes — pass local keywords directly, e.g. "fogászat" for Hungary |
Maps UI language (language input) | Yes — sets ?hl=hu (or ro, pl, cs, sk, de) on search URLs |
| Location geocoding | Yes — Nominatim resolves "Budapest, Hungary" with countryCode: "HU" |
| Category/relevance scoring | Yes — accent-normalized matching against your searchTerms |
| Localized DOM labels (verified, closed, reviews) | Partial — HU/PL/RO/CZ patterns plus English; Maps UI changes can affect extraction |
Recommended Hungary dental run:
{"searchTerms": ["fogászat", "fogorvos", "dental"],"location": "Budapest, Hungary","countryCode": "HU","language": "hu","maxResultsPerSearch": 50,"outputMode": "procurement"}
You do not need English terms like "dental" — they broaden coverage but are optional. Combining local + English terms often finds more suppliers because Google Maps indexes both.
Secrets and local development
- Never commit
apify/google-maps-cee-scraper/.env— it is listed in.gitignore. apify pushexcludes.envvia.gitignoreand.actorignore.- Docker builds exclude
.envvia.dockerignore. - On Apify cloud, customers paste keys into input fields (
openrouterApiKey, etc.) marked as secrets — not from your local.env. - For local runs only, copy
.env.example→.envand addAPIFY_TOKEN+ optionalOPENROUTER_API_KEY. - Only
.env.example(placeholders, no real keys) is in git.
FAQ
Is scraping Google Maps legal?
You are responsible for compliance with Google’s Terms of Service and local laws. This actor collects publicly visible listing data for legitimate business research.
How is this different from generic Google Maps scrapers?
This actor is focused on CEE local-service supplier shortlists with transparent readiness scoring, risk flags, matched search terms, and optional BYOK evidence summaries — not raw record dumps.
How many results can I get per run?
Up to 500 per search term (maxResultsPerSearch). Multiple terms multiply discovery; duplicates are removed by placeId.
What is AI scoring and does it cost extra on Apify?
AI scoring is optional and BYOK. You pay your LLM provider directly. The actor’s Apify fee is per saved supplier record. Scraping works with zero LLM keys.
Local development
cd apify/google-maps-cee-scrapernpm installnpm run buildnpm testapify run --input-file=INPUT.test.jsonnpx playwright install chromium
Pricing
Pay-per-event: $2.50 per 1,000 supplier records (place event), minimum charge $0.10 per run.
Enable Pay per event + usage in Apify Console so platform compute/proxy costs are passed through to users. That keeps developer margins healthy while remaining competitive for decision-ready shortlists rather than raw scraping.
Related actors (suite)
| Actor | Role |
|---|---|
| Google Maps CEE Supplier Shortlist (this Actor) | Discover local suppliers |
| Website Intelligence + Contact | Enrich websites (contacts, tech, compliance) |
| Dealer / Distributor Locator | Expand brand locator pages |
| PDF Procurement Document Extractor | Find certs / reports / datasheets |
| Website Change Monitor | Watch pages for changes |
Each Actor runs standalone; use them as an optional suite when chaining discovery → enrichment → monitoring.
Feedback
Open an issue on the actor’s Apify page or contact Vibe Coder's Life.