What it does

Staging Brief is for home stagers and listing agents.

Pick the city and the neighbourhood. Describe the buyer by three things they love, never by who they are. List the furniture brands already in the house and tick what the home has. Staging Brief comes back with a brief: brands to show, coffee table books, an open house playlist and local favourites, each with the reason Qloo gives. Then the room audit: every brand in the house is scored against that buyer in that place and marked keep, swap or cut, with a better scoring brand to try instead. Flip the buyer and the brief changes, with what moved up and down. Copy the listing paragraph, which names real places nearby and the home's features.

Six examples are ready on the page. Each one plays back from a saved run, so the demo still works when the day's limits are spent.

How it uses Qloo

One live brief makes 12 to 16 Qloo calls (12 or 13 in the runs recorded on 26 Oct 2026).

  • Search turns each of the buyer's three loves into a Qloo entity, and each brand in the room into a brand.
  • Insights goes from the loves to brands, artists and places, with the neighbourhood and its city as the location signal ("Hyde Park, Chicago"). Places are kept local with the location filter, and very popular chains are dropped with a popularity ceiling.
  • Books come from the city with tag filters. Each buyer lens has its own coffee table genres (architecture, design and photography for one, food, gardening and travel for the other), and politics, religion, race, LGBT and parenting are excluded.
  • One more insights call scores the room's brands together with about 30 home brands using filter.results.entities. A room brand that beats 60% of the home brands for this buyer in this place is a keep, one that beats 30% is a swap, and the rest are cut. A swap names the best scoring home brand that is not already in the room. A brand in the room that is one of the buyer's loves is a keep, since Qloo does not score a love against itself.
  • Explainability gives every pick its share per love, shown as "Because they love Khruangbin (35%)".

The Qloo off tab asks the same language model for picks with no taste data and looks each one up in Qloo, so you can see which picks Qloo knows and how they score. Measured on 20 neighbourhoods on 26 and 27 Oct 2026: Qloo's top four brands averaged an affinity of 0.960 for that buyer and place. The plain picks averaged 0.943, and Qloo could not score 22 of the 80 at all. None of the 80 plain places were in Qloo's local list.

The same Qloo steps are open to other agents over the Model Context Protocol at /mcp, as three tools: resolve, place_taste and audit_room.

The agent

It plans the run, calls Qloo, reads what came back and changes course. When a neighbourhood has thin data, or Qloo places the name in another city, it says so on screen and uses the city. When one list is empty in the neighbourhood, it asks for that list across the city and marks it "From Chicago". It stops at 16 Qloo calls a brief. Code decides every score and verdict. In the brief, the language model only writes the short intro and the listing paragraph from the facts it is given, and a line that names anything not in those facts goes back to a plain template.

Fair housing

The buyer is described only by taste. No age, gender or family signal goes to Qloo or into the text. The listing paragraph describes the home and the area, never who should live there, and a scan refuses words that would. Places of worship and schools are left out of local favourites, and books on politics, religion, race, sexuality or parenting stay off the coffee table.

Limits that keep it free

Each visitor gets 3 fresh briefs a day, and the examples always play back. The app has a daily cap on Qloo calls, and its writing stays inside Cloudflare's free daily allowance. When the writing allowance is spent, a brief still comes back, with a plain template paragraph.

Challenges

The first test showed taste data is thin below the city for many neighbourhoods. East Nashville resolves but returns nothing, and a bare "Hyde Park" or "North End" lands in Tampa or Boston. So the agent always sends the neighbourhood with its city, checks where Qloo placed it, and when the data is thin or the place is wrong it says so and uses the city. Books were thin below the city everywhere, so they always come from the city.

The second was keeping the writer honest. Early drafts gave the nearby restaurants the home's front porch, and some said a home was "ideal for" someone. Now the facts keep the home's features apart from the places, every line is scanned before it shows, and a line that names anything not in the facts falls back to a plain template, with the caught word in the run log.

The third was the coffee table. The first book lists held titles on politics and race, and most of those books came back with no tags, so a filter on our side missed them. Asking Qloo for coffee table genres, with those topics excluded, fixed it.

What is next

Saved buyer lenses for a brokerage, a printable one page brief for the open house, and the audit for a whole house, room by room.

Built With

  • cloudflare-d1
  • cloudflare-workers
  • durable-objects
  • model-context-protocol
  • qloo-taste-ai
  • typescript
  • workers-ai
Share this project:

Updates

Submission history