Inspiration
Every creator has to answer the same two questions before anyone will take a chance on them: what's it like? and who's it for? Authors write "comps" into every query letter. Producers put them on a pitch-deck slide. Musicians fill in "for fans of" on every playlist pitch. Game devs write "if you like…" on their store page. And all of them need an audience to target with their first ad dollars.
Today that's guesswork. Ask a chatbot for comps and you get the phenomenon everyone already knows ("Harry Potter meets The Hunger Games"), titles from before its training cutoff, and no evidence about the audience. Agents and buyers see through that immediately.
Qloo already measures the answer: which books, films, shows, artists, games and podcasts the same people love, how big each one is, who those people are, and where they live. Meets turns that into a pitch.
What it does
Tell Meets what you're making (book, film, TV, music, game, podcast or stand-up), a line about it, and two to five things it's like. The agent then:
- Resolves your touchstones in Qloo. If you only wrote a logline, it proposes touchstones and themes and keeps only the ones Qloo can find.
- Scans the taste graph for comps on your "shelf", filtered to recent years, and checks what the same audience watches, reads, plays and listens to.
- Right-sizes. When the top of Qloo's list is all blockbusters, it digs below the top 0.1% of popularity for comps your size, then tests pairings to find the two that triangulate your work. That pair becomes your comp line.
- Checks your comps. The comps you planned to use get a verdict ("too big", "outside your window", "weak overlap") and a right-sized swap.
- Measures your first fans: age and gender skew, the tags that define their taste, and the cities where they cluster, including hidden gems where fans run far ahead of the local market.
- Writes the kit: a query-letter or pitch-deck paragraph, a "for fans of" line, ad hooks, and ready-to-paste targeting lists for Amazon, BookBub, Meta, Spotify, Steam and podcast ads.
Then you talk to it: "only the last 3 years", "more indie", "UK market", "add Severance". It re-runs Qloo and versions the kit. Every kit opens with a Gut check, right under the comp line: the same model is asked for comps without Qloo, and every suggestion is looked up and scored against your audience. The first thing a creator sees is what Qloo changed. In our runs on the seven example briefs, the plain model (Claude Sonnet 5.5, no tools) suggested 46 comps. We set aside the 11 that were already touchstones in the kit. Of the other 35, Qloo backed 15. The other 20 were too big to position against (7), outside the recency window (3), had a weak audience overlap (8) or weren't in Qloo at all (2). The plain model did best on TV (6 of 7 held up) and worst on film (0 of 5).
Meets is also an MCP server, so any agent (Claude, IDEs, your own) can call find_comps and check_comps.
How we built it
- Qloo, deeply:
/search,/entities,/v2/tags, and/v2/insightsacross eight entity types with entity, tag and age signals, year filters (publication_year,release_year,latest_known_year),filter.popularity.max,filter.exclude.entities,feature.explainability,filter.results.entities(as a pairwise similarity oracle and for scoring user comps),urn:demographics,urn:tagwithfilter.parents.types,urn:heatmaprolled up to named cities, and/v2/analysis/compare. - An agent that adapts: it drops themes or widens the window when results are thin, and runs a second pass below the blockbusters when sizes are wrong. Every decision streams to the UI with the Qloo call behind it.
- Grounded writing: Claude writes the copy from an evidence digest and can call
check_fitandcompare_audiencesto verify claims. It may only cite entities through aliases ({{E4}}), which the server resolves to Qloo-returned names; anything else is stripped. Without a model, evidence-only templates take over. - Stack: Dart end to end. A shared
meets_corepackage holds models and scoring. The server uses shelf and compiles to a single native binary with a throttled, cached Qloo client. The app is Flutter (web first; also Android and iOS). One Docker image serves both. - Honesty built in: popularity is shown as "top X%", affinities are labelled as aggregate taste (not forecasts), and no personal data goes to Qloo. Every kit carries its full audit trail.
Request to result: one kit, step by step
The example brief is The Lantern Archive, a debut fantasy novel. Touchstones: Piranesi and The Starless Sea. Themes: "dark academia" and "magical realism". Published in the last 5 years, breakout size. The author planned to use Harry Potter and the Sorcerer's Stone and The Night Circus as comps. Requests below are trimmed; the API key travels in a server-side header and never appears in a kit or its audit trail.
- Choose the entities.
GET /searchfor each touchstone. A name can match several entities (a novel and its film adaptation, say), so Meets keeps the exact title of the requested type and, if two remain, the more popular one. Picked: Piranesi (55908017-4CFD-4688-9A7E-7B1FF04B171D) and The Starless Sea (9F2055FC-22FA-44B9-A8D0-D0EC167A1EF8). Claude also proposed The Ten Thousand Doors of January and The Book of Lost Things from the logline; Qloo found both, so they joined the signal, marked as suggestions. - Choose the tags.
GET /v2/tags?filter.query=dark academia&filter.parents.types=urn:entity:book. Qloo can return several tags with the same name in different families (Jazz the genre, Jazz the keyword). Meets keeps the exact name and prefers genre, then subgenre, then keyword. Without an exact name, a tag must contain every word of the theme. Picked:urn:tag:genre:media:magical_realism. Qloo has no "dark academia" tag (it offered "Dark", "Dark Fantasy" and "Academia"), so Meets dropped that theme rather than search for dark books. - Scan the shelf.
GET /v2/insightswithfilter.type=urn:entity:book, the touchstones and tags assignal.interests.*,filter.publication_year.min, the touchstones infilter.exclude.entities, andfeature.explainability. Result: 40 books published 2021 or later. Meets kept the best 24, each showing the touchstones that pulled it up. - Right-size. When the top of the list is all far bigger than "breakout", a second pass adds
filter.popularity.max. Result: not needed for this brief. Enough of the 40 were already the right size; of the 24 kept, 13 are breakout, 9 mid-list and 2 niche. - Pair.
filter.results.entitiesscores every strong comp against every other, and the comp line is the pair that fits well but overlaps least./v2/analysis/compareshows what fans of both share. Result: Gallant meets Sea of Tranquility (Qloo similarity 71%: close enough to share fans, different enough to triangulate). - Check the author's comps. Both planned comps are scored against the same audience, in the same request as Meets' own comps so the numbers are comparable. Verdicts: Harry Potter and the Sorcerer's Stone is from 2010, outside the 5-year window, and Qloo found no affinity with the touchstones; swap for Gallant. The Night Circus is in the top 0.02% of popularity (a phenomenon, not a market signal) and from 2011; swap for When Women Were Dragons.
- Profile the first fans.
urn:demographics,urn:tagandurn:heatmapfor the same signal. Result: the audience over-indexes at ages 30–34 and under-indexes from 35 up. Its strongest US markets are Buffalo, Burlington, Providence and Seattle, with Spokane as a hidden gem where fans run ahead of the local market. Taste tags, limited to the book genre family: fantasy, magical realism, young adult fantasy, literary fiction, high fantasy and dystopia. - Write. Claude gets an evidence digest and may cite titles only as
{{E4}}-style aliases, so every title in the copy is one Qloo returned.
Every step above appears in the kit's audit trail with the Qloo call behind it, so a reader can check any choice and override it ("drop X", "add Y").
Challenges we ran into
- Popularity is a percentile across everything Qloo tracks, so almost every recognisable title is in the top 1%. We read it on a log scale ("top 0.4%") and defined size bands from that, then let the creator pick the target (indie, breakout or mainstream).
- Raw affinities bunch near the top of a list, so fit blends Qloo's rank with affinity.
- Some properties aren't documented (book authors and years, game type spelling), so the parsers are defensive and
bin/probe.dartchecks the live shapes. - Book and film creators live in
disambiguation("2020, Susanna Clarke"), not in an author or director property. The live contract probe caught it, and the parser now reads the name from there. - Tag search is fuzzy. "dark academia" came back as "Dark", "Dark Fantasy" and "Academia", and a loose match would have searched for dark books. Meets now takes a tag only when its name contains every word of the theme.
- A new heavy request can be slow the first time. One music scan took 71 seconds when Qloo first saw it and about 10 seconds after, so Qloo calls get 90 seconds before timing out.
- Unfiltered taste tags drift off-topic. Qloo's top tags for a gothic library novel's audience led with "Beauty Pageant". Limiting them to each format's tag family (book genres, film keywords, music genres) fixed it. Stand-up kits skip them, because person tags describe jobs, not tastes.
- "Comedy" isn't "comedian". Most actors carry a Comedy tag, so a clean stand-up hour was paired with Rainn Wilson and Tracy Morgan. Filtering the scan with Qloo's comedian tag gave Brian Regan meets Jeff Foxworthy.
- Affinity only compares within one request. Scores from different signals sit on different scales, so an outside title scored on its own looked worse than any comp Meets found. The Gut check and comp check now score outside titles in the same request as Meets' comps.
Accomplishments that we're proud of
- The comp line is chosen by measuring how different two strong comps are, not just how good each one is.
- The comp check tells you, with numbers, why "it's Harry Potter meets…" hurts you, and what to say instead.
- Every title in the kit traces to a Qloo call you can inspect.
What we learned
- A chatbot's comps fail in predictable ways. Across seven briefs, 20 of 35 plain-LLM picks failed Qloo's checks: too famous, too old, a weak audience overlap, or not in Qloo at all. Recency and size are where a model without data guesses worst.
- The plain model is better on some formats than others. Six of its seven TV picks held up, but none of its five film picks did. That's a reason to measure, not assume.
- A Qloo score is relative. An affinity means something only next to other scores from the same request, so the useful unit is a ranking, not a number.
- Heatmaps find markets you wouldn't guess. For the fantasy novel, Qloo pointed to Buffalo, Burlington, Providence and Spokane before any big city.
Known limitations
- Groups, not individuals. Qloo results describe what groups of fans tend to like. A high fit is not a sales forecast and says nothing about what one reader, listener or buyer will do.
- Only what Qloo knows. A very new or very niche title may not be in Qloo yet. Meets leaves it out rather than guessing at a near match, and the Gut check labels such titles "Not in Qloo".
- Popularity is relative to everything. "Top 1%" still means well known, because Qloo ranks each title against every entity of its type.
- Recency is uneven. Qloo has no release-year filter for artists, podcasts or people, so the window applies only to books, film, TV, and games when a year is present.
- Name collisions. When names collide, Meets prefers the requested type and the genre tag. That is a rule, not certainty, so every choice is shown in the audit trail for the creator to correct.
- Markets are a starting point. Heatmap cities show where this audience's taste is concentrated, not where tickets or copies will sell.
- The copy is still generated. Every title in it comes from Qloo, but the prose is Claude's and should be read before it's sent.
- The Gut check is a demonstration, not a benchmark. It compares one model on seven briefs (35 judged picks) on one day, and the model's picks change from run to run.
What's next for Meets
Saved projects that refresh when your comps age out, Amazon Ads and Meta audience exports, launch timing from Qloo trends, and a B2B tier for publishers, labels, sales agents and game publishers who review hundreds of pitches.
Log in or sign up for Devpost to join the conversation.