Labs

What each system does, and how it's built.

Working demos showcasing how AI can turn customer-experience data into decisions. Every one is live and runs against a real database and a real model, reading from one synthetic dataset of 549 pieces of customer feedback.

See

The Observatory

Feedback Clustering + map
Why it exists

Customer feedback arrives as thousands of separate fragments, a review here, a survey response there, with no single view of how issues relate, grow or drift over time. The Observatory lays the whole corpus out as a map organised by meaning, so patterns that are invisible one verbatim at a time become visible at a glance.

What it does

Every piece of customer feedback is grouped into clusters and summarised, coloured by sentiment, theme or segment, sized by volume and positioned by how closely clusters relate in meaning. A time window filters the view to any range, and clicking a cluster or verbatim opens its full detail with a prefilled link to ask the Listening Post about it.

How it's built

Rails 8 · UMAP + HDBSCAN · Named Clusters · deployed on Heroku.

Open the lab
Ask

The Listening Post

RAG Retrieval + citation
Why it exists

Customer feedback is scattered across reviews, surveys, and win/loss and churn notes, so teams fall back on hunches. The Listening Post lets you ask questions of that feedback in plain language and get answers grounded in the actual customer feedback (verbatims), with every claim cited back to its source.

What it does

Ask a natural-language question, optionally scoped to a segment, and it retrieves the most relevant customer feedback, passes them to the model as context, and streams back a cited answer. Follow-up questions keep the conversation in context.

How it's built

Rails 8 · PostgreSQL + Voyage AI embeddings · hybrid retrieval (semantic search + lexical search) · Claude API, streamed token-by-token over Server-Sent Events · deployed on Heroku.

Open the lab
Connect

The Signal Line

MCP server
Why it exists

Customer intelligence usually lives in a separate dashboard from where the work actually happens. Someone has to remember to go look. The Signal Line puts this dataset's tools and data behind the Model Context Protocol, so an AI assistant like Claude can answer questions and take action on it directly, inside the tools people already use.

What it does

Search feedback, pull theme trends and segment health, and flag an account for review, live, over a documented MCP connection. It also ships a few ready-made prompts for common CS workflows, like a weekly at-risk brief and a per-account deep dive. The catalogue on the demo page reflects the running server's real tools, resources and prompts, so it's never out of date with what's actually callable.

How it's built

Rails 8 · StreamableHTTPTransport · bearer-token auth · tool/resource/prompt catalogue · deployed on Heroku.

Open the lab
Act

The Monday Brief

Autonomous agent
Why it exists

The most valuable signal in a customer base is usually the thing nobody thought to ask about, a health score sliding, an account flagged for review that nobody escalated, feedback data points that nobody connected to a pattern. The Monday Brief investigates on its own schedule and surfaces it to the CCO before anyone has to ask.

What it does

A scheduled agent run investigates at-risk accounts with its own tools: checks account health scores, recent feedback, usage trends, accounts flagged for review, then writes an executive risk brief naming the highest-risk accounts with data-backed reasons. The plan-act-observe trace is visible live as it works, and every run is kept in an archive.

How it's built

Rails 8 · Anthropic tool-use loop · Solid Queue background job · live-streamed output · genuinely scheduled Mon 7:02am AEST · deployed on Heroku.

Open the lab
Prove

The Proving Ground

Agent evals
Why it exists

Shipping a new agent prompt is a bet. The only way to know whether it handles a hardship disclosure, a prompt injection attempt, or a customer who buries the real question in a ramble is to throw exactly those cases at it before a real customer does. The Proving Ground runs them against every version of the agent, so a regression shows up in a verdict grid instead of in production.

What it does

Six simulated customers hold a real conversation with the support agent, each working from a secret brief it never sees. They improvise, and they decide for themselves when they've been helped or given up. A separate judge then scores the finished transcript pass or fail against six fixed criteria — it sees the briefs and every tool call, so it can catch an answer that sounded fine and missed the point. The result is a verdict grid for every agent version.

How it's built

Rails 8 · 6 customer personas · 4 tool-calling support agents · 1 simulated judge · deployed on Heroku.

Open the lab
Talk

The Front Desk

Real-time voice agent
Why it exists

Every other lab here is something you read, scroll or watch. None of them is something you talk to. Front Desk is a real-time voice agent, answering out loud, grounded in the same data every other lab reads from. Ask it what has been built, or for background about Jason or CX Matters, and it answers from facts rather than improvising.

What it does

Press the button and a voice call starts in the browser, no phone number and no install. Front Desk introduces the labs programme, explains any individual lab in plain language, answers questions (and tells jokes!). It calls real tools mid-conversation to do it, and refuses to answer when the retrieval comes back with nothing relevant. The full transcript appears live on the page as the call runs, so the conversation can be read as well as heard, and a post-call summary with insights appears at the end.

How it's built

Rails 8 · Vapi real-time voice · Sonnet 4.6 as the reasoning model · Deepgram transcription · Voyage and pgvector retrieval · deployed on Heroku.

Open the lab
The data

The Dataset Synthetic voice of customer feedback

12fictional accounts
549customer verbatims
146days covered
What's in it

Every lab above reads from the same corpus: fictional B2B SaaS accounts, each with a segment, ARR and health score, and customer verbatims spanning reviews, survey responses, and win/loss and churn notes. It's entirely fictional, with no real customers, generated with Claude and embedded with Voyage, but shaped to feel real, including a few “at-risk” accounts whose feedback turns negative over time.

Explore the raw data