tj-pak — restaurant-lead-scanner % cd ..

% open restaurant-lead-scanner

Restaurant Lead Scanner

Ranks the restaurants in any suburb by who most needs a website and can pay for one.

ai live

PROBLEM

The best person to pitch a website to is a busy, well-reviewed restaurant whose digital front door is broken. They have the customers and the money, the site is the thing letting them down. Finding them by hand means trawling Google one restaurant at a time, and you give up before you've got a list worth calling.

WHAT I BUILT

A scanner that pulls every restaurant in an area from Google Places, scores each one on how weak its website is crossed with how much demand it clearly has, and ranks them so the best lead sits on top. A restaurant with 400 reviews and no website lands near 90. A solid mobile site with HTTPS scores 0 and sinks, because it's not a lead. Out comes a ranked CSV you work top to bottom.

HOW IT WORKS

One engine, two front doors. A CLI writes the ranked leads.csv, and the same engine runs as an MCP server so Claude can find leads inline in chat — ask it for weak-website restaurants in Kingsland and it drops the list. Web weakness scores no site at all highest, then a social-only page, and with site checks on it actually fetches each site to judge HTTPS and mobile-friendliness. Demand is read off Google review volume and rating, then it multiplies the two so a busy place with a bad site always beats a quiet one with the same bad site.

WHERE IT'S AT

Live. Runs in demo mode with zero setup, or on real data with a Google Places key. I ran it live across Ponsonby, Dominion Road, Sandringham and Onehunga — real restaurants, real phone numbers, ranked and ready to call.

WHAT I LEARNED

The whole thing is a scoring opinion. The honest move was capping it: demand is a proxy from review counts, not real revenue, and a site that merely loads isn't a good site. So it says that out loud instead of pretending the number is gospel.

STACK

Python · Google Places API · FastMCP · requests

Live run over Ponsonby — the scanner ranks real restaurants by lead score. Busy place, no website, lands on top.
$ python scan.py "Ponsonby, Auckland" -o ponsonby.csv
lead_score  name              demand  reviews  rating  web_problem
90          The Gyoza Bar     high    353      4.6     no website at all
0           The Broken Lantern  high  444      4.7     site looks ok
0           Lucky 8           high    1153     4.4     site looks ok
0           Prego Restaurant  high    2187     4.6     site looks ok
Wrote 40 ranked leads to ponsonby.csv
Ran live across four Auckland suburbs — ranked CSVs of real restaurants. Code is private.

% cd ..