Inspiration

Small venues all have the same problem. The bookshop is packed on Saturday and empty on Tuesday. The jazz club fills up for the late set and nobody comes to the early one. The owners who fix this usually do it with a neighbour i.e. the bookshop hosts a reading, then everyone walks over to the cinema for the film. Bookshops even run crawls with passport stamps on Independent Bookstore Day. People already do this by hand.

What nobody can see from behind their own counter is which neighbour actually shares their crowd. And it has to work both ways. You might love the bar next door, but if the bar's regulars don't care about you, the night flops. Qloo knows what millions of people like, so we asked it the question from both sides. That became Full House.

What it does

Type in your venue. Full House reads the street around you and comes back with one answer: your partner, and why.

It pulls the places your crowd loves within a short walk and drops the ones that can't host a night or that compete with you. Qloo's top pick for Daunt Books in London was a tennis shop. Great taste, wrong room. Then it asks Qloo the same question from each neighbour's side. If their crowd ranks you highly too, that's a match. For Housing Works Bookstore in New York it came back with Angelika Film Center: the bookshop's crowd loves the cinema, and the cinema's crowd loves the bookshop right back.

Then it plans a night around what the two places actually are. A bookshop and a cinema get a book club followed by the film of the same book, two minutes down the road. A bar and a jazz club get drinks, then the set. It picks a day you're both open.

Your neighbour gets an invite that shows its own crowd's list with you on it. It sets its part of the night and says yes, and nothing goes public with its name until it does. Each place gets its own sign up link, so you can see who brought whom. And every Monday Full House checks the street again and drafts the next night for you to approve.

How we built it

Cloudflare Workers with Hono and TypeScript, one Durable Object per venue (that's also where the Monday agent lives), Leaflet and OpenStreetMap for the maps, and an MCP endpoint so other agents can use it too. A small Mistral model writes the event copy, and a checker throws out anything that mentions a place or a title Qloo didn't actually return.

Most of the work went into the decision. Every candidate gets a score out of 100 from six checks:

$$\text{fit} = \text{your pull} + \text{their pull} + \text{good partners} + \text{open together} + \text{walk} + \text{shared taste}$$

The two pulls carry the most weight, because a match only counts if it goes both ways. A full read is around twenty calls to Qloo: search, tags, the places your crowd loves, a reverse read for each top candidate, a compare, heatmaps, and a joint read with both venues as the signal so we can tell whose crowd likes each pick.

Challenges we ran into

The honest one: our first version was an API wrapper. It showed Qloo's list and called it a recommendation. Everything that matters came after that. We had to learn what counts as a room, which kinds of places help each other instead of competing, and how to show the judgement on screen so an owner can argue with it.

Opening hours were the other surprise. One very famous diner is listed as closed every day of the week, so we stopped trusting a full week of "closed".

And consent. Inviting another business to a night is a real ask, so their name never goes up anywhere until they say yes themselves.

Accomplishments that we're proud of

We ran it on about forty well known independent venues in New York and London, and just over half came back with a two way match a short walk away. That told us the idea holds up on real streets. We're also proud that every number in the app is real and comes from a live call, with nothing typed in by hand.

What we learned

Taste isn't symmetric. The place your crowd loves often doesn't love you back, and asking that second question changed most of our answers.

What's next for Full House

Get two real owners to run one night together and count who walks in. Then let every neighbour that says yes go and find its own partner.

Built With

Share this project:

Updates

Submission history