Building an NYC Restaurant Map from a Food Critic's Substack
How I used Claude Code subagents to extract 706 restaurants from 176 blog posts and put them on an interactive map.
I’ve been reading Robert Sietsema’s food criticism on Substack for a while — he covers everything from $2 dumplings in Flushing to $50 tasting menus in the West Village. After 176 posts, I wanted to see all his recommendations on a map.
The problem with NER
My first attempt used spaCy’s named entity recognition to pull restaurant names from the text. It found 1,257 “restaurants” — including gems like “Ecuador”, “BBQ”, and “Lilly Langtry” (a person). After aggressive filtering, I was down to 71. Not great.
LLM extraction
Instead of fighting regex, I split the posts into 12 batches and ran Claude Code subagents in parallel. Each agent read 15 posts and extracted structured data: restaurant name, cuisine type, neighborhood, borough, price tier, signature dishes, and a one-line summary.
Result: 788 unique restaurants from 992 mentions across 176 posts.
Geocoding
The Google Places API (New) Text Search endpoint geocoded 706 of the 788 restaurants. I built a local cache so re-runs don’t re-query already-found places.
The map
The frontend is a static site — Leaflet.js with MarkerCluster, warm-toned Stadia map tiles, and a split-panel layout with filters for cuisine, price, and borough.
Check it out: NYC Restaurant Map