GBP Completeness Audit - Score Google Business Profiles
Pricing
from $0.50 / 1,000 results
GBP Completeness Audit - Score Google Business Profiles
Score any Google Business Profile against an 8-signal completeness rubric. Flags profiles missing a website or ownership claim as HIGH-priority leads for local SEO agencies. Zero-fetch, zero-LLM. Pay-per-result.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
NanoScrape
Maintained by CommunityActor stats
0
Bookmarked
23
Total users
15
Monthly active users
2 days ago
Last modified
Categories
Share
GBP Completeness Audit
Score any Google Business Profile against an 8-signal completeness rubric. Surfaces high-priority local SEO leads: profiles with no website or an unclaimed listing. Zero fetches, zero LLM, zero API keys.
Feed it the output of the Google Maps Scraper and get one score row per business, ready to sort in a sheet or push into a CRM.
What It Does
For every input place record the actor evaluates 8 signals:
| Signal | Weight | Full credit when |
|---|---|---|
| Website | 1 pt | website is set |
| Phone | 1 pt | phone is set |
| Hours | 1 pt | open_hours is populated |
| Description | 1 pt | description is set |
| Category | 1 pt | category or categories is set |
| Photos | 0 / 0.5 / 1 pt | 0 / 1-4 / 5+ photos |
| Reviews | 0 / 0.5 / 1 pt | 0 / 1-9 / 10+ reviews |
| Claimed | 1 pt | owner object present |
Total points are scaled to a 0-100 gbp_completeness_score. The actor also returns:
sub_scores- per-signal raw score, so you can rebuild your own weightingmissing_fields[]- the field names that scored 0, ready to hand to the business ownerlead_priority_flag-HIGHwhen the profile has no website OR is unclaimed,NORMALotherwise
HIGH profiles are the sweet spot for local SEO agencies: the business exists on Google Maps but has not claimed its listing or built a website.
Input
Two shapes are accepted, and you can mix them in a single run.
Flat places list (natural shape, just pipe the google-maps-scraper output):
{"places": [{ "place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4", "title": "Example Restaurant Ltd.", "website": "..." }]}
Companies shape (with a company_id passthrough for join-back to your CRM):
{"companies": [{ "company_id": "acme-42", "place": { "place_id": "ChIJ...", "title": "Acme Widgets GmbH" } }]}
Output
One row per input place:
{"company_id": "acme-42","place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4","cid": "10281019595535971924","name": "Example Restaurant Ltd.","gbp_completeness_score": 88,"sub_scores": {"has_website": 1, "has_phone": 1, "has_hours": 1, "has_description": 0,"has_category": 1, "photo_count": 0.5, "review_count": 1, "is_claimed": 1},"missing_fields": ["description"],"lead_priority_flag": "NORMAL","scraped_at": "2026-07-17T10:30:00Z"}
How To Use It
- Run Google Maps Scraper to collect places for a niche and city.
- Feed the dataset into this actor as
places. - Sort the output by
lead_priority_flag = HIGHandgbp_completeness_scoreascending. - Pitch those businesses first. They have the most room to improve, which makes them the easiest to close.
Pricing
Pay-per-result via Apify Pay-Per-Event billing:
| Event | Price | Description |
|---|---|---|
| Actor start | $0.001 | Charged once per run |
| Place audited | $0.003 | Charged per scored place |
Auditing 1,000 places costs about $3. No monthly fees, no minimums.
Related Actors
Discovery:
- Google Maps Scraper - collect places in bulk
Enrichment:
- AI Icebreaker Generator - one personalized cold-outreach line per business
- Website Email Scraper - pull emails and phones from company sites
- Website Contact Extractor - LLM-powered people extraction
Issues & Feature Requests
If a signal is missing or you would score things differently, open an issue on the actor's Issues tab and we will take a look.