Inspiration Google Maps tells you where places are. It doesn't understand why you're going. We've all stared at a wall of 4-star restaurants trying to figure out which one actually works for a quiet client lunch versus a loud birthday party. The intent is obvious to a human — it should be obvious to the app.

What it does The Right Spot takes a natural language query ("post-hike coffee with my dog near Twin Peaks," "first date spot that isn't intimidating," "private room for 12 in Midtown") and returns a ranked shortlist of venues scored for your specific situation. Each result includes AI-written rationale explaining why it fits — noise level, group capacity, occasion match, freshness — streamed live on an interactive Google Maps interface.

How we built it Multi-agent pipeline on FastAPI with SSE streaming:

Claude parses intent into structured signals and synthesizes final recommendations with brand voice Nimble SERP extracts real-time venue data and review snippets from Google Maps ClickHouse (ReplacingMergeTree) runs a multi-factor weighted scoring query across freshness, noise, group fit, price band, and occasion Senso.ai publishes venue intelligence so AI models like ChatGPT and Perplexity can cite it Datadog traces every span end-to-end: AI calls, scrape requests, DB queries Next.js 14 frontend with Google Maps Advanced Markers and a conversational search UI Challenges we ran into Getting Claude to extract consistent structured intent from wildly varied natural language queries took significant prompt iteration — users say "just me and my partner" and "table for 2" and "date night" and they all mean the same thing. We also hit Google Maps TOS constraints that prevented us from caching any Place API response data, forcing us to design a real-time-only integration. Deploying a Python ASGI backend alongside a Next.js frontend on Vercel as a true monorepo required working around relative import resolution that only breaks at runtime, not locally.

Accomplishments that we're proud of The scoring engine feels genuinely useful — the gap between a 72-point and a 31-point venue is meaningful and explainable, not a black box. The SSE streaming pipeline makes the AI "thinking" feel live rather than a spinner. And the Senso GEO integration means The Right Spot's venue intelligence is now citable by other AI models answering venue discovery questions.

What we learned Prompt caching with Claude's ephemeral cache blocks dramatically cuts latency on the synthesis step when multiple venues share the same context prefix. ClickHouse's FINAL keyword on ReplacingMergeTree is essential for correctness but has real query cost — partitioning by city keeps it fast. And "graceful degradation" has to be enforced architecturally, not assumed — every external dependency (Redis, Nimble, ClickHouse) needs a silent no-op fallback or one missing env var brings down the whole service.

What's next for The Right Spot Neighborhood clustering — group results spatially, not just by score Time-of-day awareness — lunch crowd vs. dinner atmosphere vs. late-night vibe User memory — Redis-backed preference learning so repeat users get personalized scoring weights Mobile — the conversational search pattern is even more natural on a phone than a desktop map

Built With

Share this project:

Updates

Submission history