-
Vernacular, the spell-checker for culture: every reference in your copy scored for your audience on Qloo’s taste graph.
-
Twelve real-world scenarios open instantly, with a live ticker of real swaps and a guided 60-second tour.
-
Every reference is marked lands, mixed or misses for this audience, with the Qloo evidence on each card.
-
Each swap is verified on Qloo; its taste path shows which of the audience’s favourites pulled it in.
-
Dial Test: hear the copy read aloud while the reaction curve dips on misses and spikes on swaps.
-
Predicted comments from Qloo-built personas, reacting in line with each reference’s score. Simulated.
-
Qloo neighbourhood heatmaps show where an audience lives in a city, and which references’ fans live there too.
-
Culture Translator: Seinfeld lands with 55+ classic-rock fans; for Gen Z Latin-pop fans it becomes On My Block.
-
Vernacular Anywhere: a browser extension that checks culture in any text box, with one-click swaps.
-
Benchmark on 40 copy × audience pairs: p88 average fit with Qloo, p73 for Claude alone, p51 for the original.
-
How it works: the pipeline, the scoring method, and what we learned about culture and audiences.
-
Every page has a light and a dark theme, an accessible layout, and works on a phone.
Inspiration
Every brand talks to a dozen audiences, but each piece of copy is written by one person with one set of cultural reflexes. "Picture a Seinfeld marathon" lands with a 55-year-old and slides straight past a 22-year-old. "Dinner like a Friday at Olive Garden" means something different in every city.
Spellcheck fixes typos and Grammarly fixes tone, but nothing checks culture. Translation tools change the language, not the references. AI-written copy makes it worse: a model reaches for the most famous reference, not the one this audience actually loves.
Qloo's taste graph can tell, across music, film, TV, brands and places, for a specific audience. So we built the missing tool: a spell-checker for culture.
What it does
Paste copy (or upload a storyboard or a video ad) and pick who it's for. Vernacular:
- Finds every cultural reference. Claude extracts every named artist, show, film, brand, place and public figure, with the role it plays in its sentence.
- Scores each one on Qloo for that exact audience, defined by taste anchors, an age band, Qloo audience segments and interest tags. Each reference gets a verdict (lands, mixed or misses) and the evidence behind it.
- Swaps the weak ones. A Claude agent with Qloo tools finds equivalents the audience over-indexes on, verifies each with the same scoring, and rewrites only the words it needs. Qloo's explainability shows which of the audience's favourites pulled each swap in.
Around that core:
- Dial Test: an AI voice reads the copy while a live reaction curve swings to each reference's Qloo score as it's spoken. Then hear the swapped version land.
- Predicted comments: a simulated comment section before you post. Each commenter's favourites come from Qloo for the audience, and their reactions have to match each reference's score.
- Where it lands: Qloo neighbourhood heatmaps show where an audience lives in a city, and whether each reference's fans live there too. Useful for billboards and geo-targeted runs.
- Culture Translator: one reference, five audiences. Seinfeld already lands with 55+ classic-rock fans; for Gen Z Latin-pop fans it becomes On My Block.
- Tour Mode: the same copy against up to five audiences side by side.
- Real-world scenarios: twelve one-click cases, from a podcast ad read and a radio spot to a Chicago billboard and a Spanish-language promo.
- Vernacular Anywhere: a Chrome extension that checks culture in any text box.
- An MCP server with five tools, so any AI agent can check its copy before it publishes.
How we built it
Stack: Next.js 15 (App Router) on Vercel, React 19, TypeScript, Tailwind CSS 4. Claude (claude-opus-5-5) runs through the Anthropic SDK, with structured outputs and the SDK's tool runner. OpenAI gpt-4o-mini-tts and whisper-1 power the voice features, and the MCP server is built on the official TypeScript SDK. Checks stream over server-sent events, so the first verdicts appear in about 7 seconds.
Scoring that means something. Raw Qloo affinity isn't comparable across audiences, so each reference \(r\) is scored in the same Qloo request as a panel \(B\) of about 40 well-known entities of the same type, all for the same audience, and ranked against them:
$$p(r) = 100 \cdot \frac{\left|{\, b \in B : a_b \le a_r \,}\right|}{|B|}$$
where \(a\) is Qloo's affinity for that audience. A reference lands at \(p \ge 65\) and misses below 35. If Qloo's demographic data shows its fans skew away from the audience's age, the verdict drops a step.
Qloo, end to end. /search resolves every reference, with a check that the match plausibly is what was asked for (using Qloo's alternative names). /v2/insights does the rest:
- scoring with interest, age, audience-segment and tag signals;
- recommendations with
feature.explainability; - demographics for age skew;
- location for local places;
- heatmaps with Qloo's locality boundaries for the map.
/v2/audiences and /v2/tags turn a plain-language audience into Qloo signals.
An agent with guardrails in its tools. One agent runs per sentence, in parallel. The rules are enforced in the tools, not just the prompt:
- a swap must come from Qloo in this run;
- it must verify as landing, or be mixed and clearly above the original;
- the rewrite must name it and drop the original.
The prompt adds judgment the data can't make: keep references that state facts (credits, venues), and prefer household names when a reference is a yardstick ("funnier than X").
Proof. We built a public benchmark: 8 pieces of ad copy × 5 audiences. Each pair is rewritten by Claude alone (same model, same brief, no Qloo) and by Vernacular, and every final text is graded the same way on Qloo.
| Original | Claude alone | Vernacular | |
|---|---|---|---|
| Mean percentile | p51 | p73 | p88 |
| References that miss | 49% | 24% | 4% |
Vernacular scored higher in 26 of 40 pairs: +14.4 percentile points on average, with a 95% bootstrap interval of 9.0 to 19.7. A blind judge rated meaning kept at 4.60/5 for Vernacular against 4.65/5 for Claude alone.
Challenges we ran into
- Affinity isn't comparable across audiences. Our first data test compared raw numbers across audiences and failed. Ranking within an audience against a panel scored in the same request fixed it.
- Search always answers. Qloo returns its closest match, so a made-up band ("Zorblax Quartet") borrowed Vitamin String Quartet's score, and a TV search for "Bob Ross" returned Bob's Burgers. We added a plausibility check that still accepts real aliases: La Casa de Papel finds Money Heist.
- Local places need local peers. With a city set, Qloo scores only nearby places, so comparisons against global landmarks came back empty. Places are now ranked among that city's well-known places.
- Facts aren't references. "From the studio that gave you Jurassic Park" is a claim about the studio, and swapping it would make the ad untrue.
- Speed and load. One agent for all references took about a minute. One per sentence, in parallel, plus request queuing and Qloo pacing brought a fresh check to about 38 seconds, with five simultaneous checks completing in our load test.
Accomplishments that we're proud of
- A measurable answer to "would it work without Qloo?": a reproducible benchmark against the strongest baseline we could find, the same model with no Qloo data.
- A live adversarial suite of 16 cases that all pass: prompt injection inside the copy, made-up names, Spanish copy, misspellings, possessives, Atlanta the show vs the city, and more. Plus 63 unit tests, and CI on every push.
- Taste data you can feel: hearing a reference miss in the Dial Test, reading the comments it would get, and seeing on a map where its fans live.
- A complete product: guided tour, real-world scenarios, light and dark themes, zero axe-core accessibility violations on the main pages, and a mobile layout that works.
What we learned
- Without data, a model repeats the brief. In the benchmark, 36 of Claude alone's references were the very examples we used to describe the audience: Bad Bunny for Bad Bunny fans. Qloo leaves the examples you give it out of its suggestions, so every Vernacular swap is a new name the audience already loves.
- Popularity isn't recognisability. Qloo rated a little-known film about as popular as Boy Meets World. A yardstick needs a household name, and that judgment belongs to the model.
- Where fans live isn't what they like. Olive Garden's fans live where Los Angeles' Gen Z Latin-pop fans live, yet it misses on taste. The map is for placement, next to the verdicts, never instead of them.
- The model writes; Qloo decides. The value is in the verification loop.
What's next for Vernacular: the spell-checker for culture
- Your audiences, not presets: audiences built from a brand's own customer segments and Qloo's audience data.
- Where teams write: Google Docs, Figma, CMS integrations, and the extension on the Chrome Web Store.
- More markets and languages: Spanish copy already works, and Qloo's taste graph is global.
- A feedback loop: every accepted or rejected swap is a labelled example of what lands with whom, which no general model sees.
Built With
- anthropic
- chrome
- claude
- github-actions
- model-context-protocol
- next.js
- node.js
- openai
- qloo
- react
- server-sent-events
- svg
- tailwindcss
- typescript
- vercel
- vitest
- whisper
- zod
Log in or sign up for Devpost to join the conversation.