I used to do competitor research the way everyone does it: open Google Maps, type a city, scroll, open ten listings, lose the tab, start over in the next city. That is not research. That is a walk.
What I wanted was a directory I could keep — every mobility shop we care about in México, their Google rating, how fast reviews are arriving, which chains are opening branches, and what customers actually complain about. Then one screen that turns that into where the market is, not a pile of CSVs.
The data source is Outscraper (that link is a referral — I earn a bonus if you sign up through it). The screen is what I call Directory Insights. This post is the plain version of how we wired it, what the first pull cost, and what it costs to keep it fresh.
The same pattern — agents crawl, you approve anything paid or public — is in the open Agentic Company playbook. First post in this series: Agentic Company — turning a wish into a scheduled job.
The wish (say this once)
Pull Google Maps places and reviews for the shops we track. Snapshot ratings and review counts on a cadence. Do not download every review text every week. Show me growth, geography, chains, and themes. Ask before spending on a new text crawl.
That sentence is the product.
What Outscraper actually is
Outscraper is a pay-as-you-go Google Maps API. You send a search (a shop name + city, or a category + metro). You get back structured place data: name, address, rating, review count, Google place id.
A place lookup is cheap. A review-text lookup is where the bill lives.
Public pricing (as of this writing, on Outscraper’s pricing page):
- First 500 places and 500 reviews per month are free.
- After that, $3 per 1,000 records until you pass 100,000 in the month.
- After 100,000, $1 per 1,000.
We did not buy email or phone enrichment. For competitor tracking you need ratings, counts, and (once) review texts. Contact scraping is a different job and it stacks extra dollars.
How we use it
1. Build the list. We already had a directory of México mobility / ortopedia shops from public registries and websites. Outscraper is not the first source — it is the Google truth layer on top.
2. Places-only refresh. For each tracked shop we ask Maps: current stars and current review count. We save a snapshot. Two snapshots = you can see who is growing.
3. Review texts (once, then deltas). We pulled the actual review wording once, so we can chart themes (service, product, price, delivery). We do not re-download the whole library every Sunday. New texts only when I confirm, newest-first, stop when we hit a review we already have.
4. Directory Insights. That data lands on one operator page: counts, implied category volume, a México map, growth bars, chains, metros, and theme charts.
The expensive step is #3. Treat it like buying a library, not like running a weekly report.
What Directory Insights looks like
These are real screenshots from the Insights screen. The dollar figures in the volume model are implied category estimates from public Google listings (you can change ticket size and review rate on the page). They are not our company sales.
What the first pull cost
We logged this as estimated API spend (Outscraper’s $3 / 1,000 rate × records). Day one was 19 July 2026.
| What we pulled | Rough $ |
|---|---|
| Places-only snapshot for ~1,200 tracked México shops (rating + review count, no texts) | ~$2.10 |
| Full Google review texts for the tracked set (~17,700 reviews) | ~$53 |
| Small extras (chain lookups, a retry) | ~$3–$6 |
| Day-one total | about $61 |
The library of review texts is the line item. The snapshot that lets you watch growth is pocket change.
A later discovery pass (grid-searching metros for shops we did not already have) added on the order of ~$25 across Maps queries. That is optional coverage, not the weekly job.
What it costs to keep it updated
This is the part I wish someone had written down for me.
Weekly (designed job): places-only refresh — stars and review counts. At ~1,000–1,300 shops and $3 / 1,000 places, plan about $2–$3 per week. You get growth deltas. You do not pay for texts you already stored.
Review texts after that: $0 until you approve a crawl. Then $3 per 1,000 new reviews. If fifty shops each picked up twenty new reviews, that is ~1,000 texts → about $3. If you re-download the whole ~18,000-review library every month, you will recreate the $53 bill for no reason.
Monthly freebie: Outscraper’s first 500 places and 500 reviews. Fine for a test city. Not enough for a national directory.
Do not do: enrich emails and phones “while you’re there.” That is a different product and a different invoice.
Hard gate we use: the weekly email estimates the $ to fetch new texts and waits. No silent paid crawl.
How you can copy this
- Create an Outscraper account. If this write-up saved you an afternoon, use the referral link: outscraper.com/refer… — I get a bonus; you get the same product.
- Start with one metro and places-only. Confirm the rows look like real shops.
- Save snapshots (date, rating, review_count, place_id). Growth needs two dates.
- Pull review texts once. Store each review id so the next run can stop early.
- Chart what you actually decide with: top growing shops, metros, a couple of themes. A 40-column export is not a strategy.
- Put a dollar cap on any job that calls the Reviews API.
Official pricing: outscraper.com/pricing.
Why this belongs in this series
The job is boring on purpose. Maps does not care about your strategy deck. An agent can refresh places every Sunday, draft a “who grew” memo, and stop. You decide whether a $3 text crawl is worth it this week.
That is the same pattern as the first post: wish → recipe → scheduled job → human OK. The recipes live in Agentic Company on GitHub.
Closing
Competitor tracking on Google is not a mystery. It is a places API, a reviews API, and the discipline to not re-buy the library every week.
First bill: about $61 (almost all review texts). Keep-alive: about $2–$3 a week for counts, plus a few dollars when you choose to fetch new wording.
If you want to try Outscraper, here is my referral link again: Sign up via Outscraper.
