Inspiration

“Where should we eat?” is a recurring workday decision. Nearby lists tend to optimize for distance or popularity, and group chats can favor whoever suggests a place first. Common Table makes the group’s tastes visible before the team chooses.

What it does

Two to four diners enter a city and named cultural favorites. Common Table returns restaurants found in every diner’s own Qloo results, then ranks the shared options by the harmonic mean of individual affinities. Each card shows individual scores, the lowest fit, and matched taste signals or Qloo tags when available. Affinity is a model score, not a probability.

The group can request another set without current picks, remember a table locally on one device, and open a Google Maps search built from the exact restaurant name and address.

How Qloo is used

Qloo Search resolves each diner’s anchors. The server requests Qloo Insights separately for every person with restaurant and locality filters and explainability data. We intersect Qloo restaurant entity IDs, then rank shared places using their per-person Qloo affinity. We don’t invent restaurant details or claim they are open, bookable, or suitable for dietary needs.

Optional Groq name help

Groq is used only when a user opts in to help with an unmatched named favorite. If Qloo has not resolved another anchor for that diner, the server sends Groq just the unresolved favorite text, without the city or table member names. Groq can propose one possible full entity name. Qloo must verify an exact entity match, and the user must approve that displayed match before it is used. Groq does not choose restaurants, rewrite preferences silently, or bypass Qloo rate limits. Without opt-in, Groq isn’t called.

Agent interface

The hosted app exposes find_shared_lunch over MCP Streamable HTTP. Assistants can call the same Qloo-backed planner used by the web UI and receive shared places, per-diner affinities, tags, and map-search URLs.

Implementation and testing

Built with server-side Node.js, browser HTML/CSS/JavaScript, Qloo Taste AI, optional Groq name help, and MCP, deployed on Vercel. The Qloo and Groq keys remain on the server. The repository has an MIT license and setup instructions.

Fixture tests cover anchor handling, opt-in and opt-out, Qloo verification of Groq candidates, and privacy boundaries. A live production smoke check returned a three-place Bengaluru shortlist with separate affinities; live catalog results can change, and one smoke check is not a reliability guarantee.

What we learned

A favorite name can be too vague or absent from Qloo’s catalog. Treating every string as resolved creates misleading recommendations. We keep Qloo’s exact matching in control and use Groq only as a consent-based candidate helper, with a second human approval before a change.

Limits

Catalog coverage, rankings, and availability depend on Qloo. The app does not verify hours, menus, reservations, or dietary suitability. Users should confirm restaurant details directly.

Built With

Share this project:

Updates

Submission history