GBP Local Pack Rank Tracker (UK Postcode-Level)
Pricing
from $10.00 / 1,000 local pack check in packs
GBP Local Pack Rank Tracker (UK Postcode-Level)
Tracks a business's position in the Google local 3-pack and organic local results for a given keyword, measured from specific UK postcodes rather than city-level. From £0.006 per real check.
Pricing
from $10.00 / 1,000 local pack check in packs
Rating
0.0
(0)
Developer
joseph fadero
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Google Business Profile + Local Pack Rank Tracker (UK Postcode-Level)
Tracks a business's position in the Google local 3-pack and organic local results for a given keyword — measured from specific UK postcodes, not just city-level. From £0.006 per real check.
Why postcode-level
Google's local pack is hyper-local: a business ranked #1 from one street can be invisible three miles away. Most rank trackers only support city or region-level location targeting. This actor geocodes real UK postcodes (via postcodes.io) to precise lat/long coordinates and uses those to geolocate the underlying Google search, so you see exactly what a customer at that postcode sees.
How it works
- Postcode → lat/long: each postcode (full, e.g.
CM23 2AB, or outward-only, e.g.CM23) is geocoded via postcodes.io — a free, no-key, real UK postcode API. - Geolocated Google search: for each keyword × postcode pair, the actor calls Apify's own
apify/google-search-scraperviaActor.call(), passing alocationUuleparameter built from the postcode's exact lat/long (Google's own UULE geolocation encoding) — not just a country/region string. - Local pack + organic parsing: parses both the local 3-pack (
localResults) and organic results (organicResults) from the sub-actor's real dataset output. - Fuzzy business-name matching: matches
businessNameagainst every pack/organic result name, case-insensitively and tolerant of minor punctuation,&/and, legal suffixes (Ltd/Limited), and trailing branch qualifiers. - "No local pack shown" is a valid result — not an error. Many keyword×postcode combinations genuinely show no map pack.
Inputs
| Field | Default | Description |
|---|---|---|
businessName | Acme Plumbing | Business name to track (fuzzy-matched) |
keywords | ["emergency plumber"] | Local search keywords to check |
postcodes | ["CM23 2AB"] | UK postcodes (full or outward code) to search from |
searchRadius | 5000 | Meters — advisory only. Google's UULE geolocation determines the actual geolocated viewpoint; this radius is not enforced by the underlying search API. Recorded on each output row for your own reference. |
Output fields (per keyword × postcode)
| Field | Description |
|---|---|
keyword | The keyword checked |
postcode | The postcode searched from |
searchRadius | The advisory radius passed in input |
localPackShown | Whether Google showed a local 3-pack for this query at all |
localPackPosition | 1-3 if the business is in the pack, else null |
organicPosition | Organic ranking position, or null if not found in scraped results |
competitorsInPack | Array of {name, position} for every other business in the pack |
timestamp | ISO timestamp of the check |
Pricing (Pay-Per-Event)
| Event | Price | When charged |
|---|---|---|
| Actor Start | $0.05 | Once per run (built-in) |
| Organic-Only Check | $0.003 | Query run, no local pack shown for that keyword×postcode |
| Local Pack Check Not In Pack | $0.006 | Pack shown, tracked business absent from it |
| Local Pack Check In Pack (primary) | $0.01 | Pack shown, tracked business ranked 1st-3rd |
| Competitor Snapshot | $0.001 | Per additional competitor captured in the pack alongside the tracked business |
Notes
- Business-name matching is intentionally conservative-but-tolerant: it normalizes case, punctuation,
&/"and", and common legal suffixes, and allows either name to contain the other (so "Acme Plumbing" matches "Acme Plumbing - Bishop's Stortford" branch listings). - Uses the same
Actor.call()sub-actor pattern already proven in this account'sserp-ai-visibility-tracker, including its fix for the sub-actor's lowercasecountryCodeenum and the requirement to passAPIFY_TOKENexplicitly toApifyClient(it is not read from the environment automatically).