-
Paste your website. Poachly's agents take it from there: rivals, their fans on Qloo, and a campaign for every segment.
-
Or set it up step by step: tick the rivals Qloo says your fans also love, then the market, platforms and budget.
-
Profiling their fans live: Qloo's heat zones for Rivian's fans on a map, metros ranked, while the agents keep calling Qloo.
-
Who they are and what they love, all from Qloo calls. Click a city to see the campaigns aimed there.
-
A campaign for every segment: a Qloo taste, city and age band of one rival's fans, with its own ads on a map of the cities.
-
Raise the daily budget and the agency opens more cities and tastes. Tune taste match, places, ages and platforms with Qloo.
Inspiration
Every small brand has a bigger competitor whose customers it would love to win. Agencies charge thousands a month to work out who those customers are and how to reach them, and an LLM on its own can only guess. Qloo actually knows what people who love a brand also love, where they are and who they are. We wanted that knowledge to drive an ad agency that never stops working.
What it does
Paste your website. Watch the agency work. Get a campaign for every segment of your competitors' fans. No signup, usually 1-3 minutes (up to about 5 when the model is busy).
- Learning about your website: the agent reads the homepage, names the brand and looks it up in Qloo.
- Finding your competitors: Qloo's recommendations for the brand's fans; the Planner keeps the direct competitors.
- Profiling their fans, one screen per competitor, all from live Qloo calls:
- a fan map of Qloo's heat zones (where_popular), metros ranked;
- who they are: age and gender skew (audience demographics);
- what they love: their defining taste tags, or what they love that your fans don't (compare audiences);
- what they listen to, watch and buy: podcasts, TV, artists and brands (recommend), plus their trend;
- a one-line persona built only from those calls. Click a city to see the ads aimed there.
- Campaigns for every segment: each segment is a taste x a city x an age band of one competitor's fans, with its own ads for Meta feed, Stories, TikTok and Google search, in the brand's own colours and icon. The screen is a map of the campaigns' cities with the ad floating over it: click a pin to open its ad, click a campaign to fly the map to it.
- Segments powered by Qloo: each segment is one competitor's fans narrowed by three live Qloo signals (a taste from the taste graph, a city from the heatmap, an age band from audience demographics), each linked to its Qloo call.
- Daily budget ($10 to $1,000 a day) decides how many campaigns run: more budget opens more cities and tastes from Qloo's data (2 campaigns at $10, up to 12 at $1,000), and every reach estimate moves with it.
- Qloo levers: taste match (adds related tastes above an affinity threshold), places per ad set, age focus (Qloo's over-indexed bands are marked), platforms, and Replace segment to swap a campaign for the next segment in the data.
- Launch campaign shows the ready campaign as a labelled preview. Publishing to ad platforms comes after the hackathon.
- The agents work daily: signed-up projects are re-run every day; the agents re-read the competitors' fans on Qloo, uncover new segments and create ads for them, and compare each run with the last.
- Step-by-step setup: "Set up a new brand", or "Add or change rivals" on any brand, opens a guided setup. Tick up to five rivals from the brands Qloo says your fans also love (or search Qloo by name), pick the market and age focus, then platforms and daily budget, while an agency brief fills in beside it. Every step can be skipped and the agents decide.
- My campaigns: sign up (or claim the guest project with an email and password) and every brand gets a card with its rivals, campaigns, daily budget, estimated weekly reach, cities, status and next daily check, with totals across all brands and Run again. Every choice on the campaign screen is saved per project.
Every targeting choice shows the Qloo fact it came from, with a link to the stored Qloo call.
Why it needs Qloo
Without Qloo this is a generic ad generator. With Qloo, every segment is a real, measured taste of a real competitor's fans: the cities come from Qloo's heatmap, the ages from its demographics, the interests and sponsorships from its taste graph. Remove Qloo and there is nothing left to target.
How we built it
- Next.js 16 + React 19 + TypeScript, SQLite (
node:sqlite), server-sent events for the live run. - Qloo through Qloo's official agent harness over MCP, seven allowlisted tools: describe, trends, where-popular, audience demographics, entity tags, recommend, compare audiences. 18-20 cited Qloo calls per run.
- Agents: a Planner picks the competitors and plans the research; one Worker per competitor runs a tool loop over Qloo (code fills any call the model skips, and says so); a deterministic Composer builds the package so every field carries a citation; a GLM copywriter agent writes the ads, filtered against platform limits and a banned-phrase list.
- Model: GLM-5.3-Flash through Z.ai with function calling, with an automatic fallback chain.
- Ads: server-rendered creatives in the brand's colours (read from its site), platform-faithful previews, Meta/TikTok/Google templates with the platforms' real limits.
- Map: Qloo's heat cells projected onto a baked US/world outline, no map service.
Security by design
The model has no shell, file, browser or network tools. It is offered only the allowlisted Qloo calls, each checked against a strict schema; anything else is dropped and audited. Qloo results and errors are sanitised before they reach the model or the page. The app runs in a locked-down container (non-root, read-only filesystem, no capabilities, egress filter) with only the two API keys. A 24-check prompt-injection suite runs against every build before it goes live.
Challenges we ran into
- Qloo's where-popular returns coordinates, not places: we label each heat cell with its nearest metro and plot the cells themselves.
- Some Qloo taste tags describe content ("murder", "police") rather than a taste you would put in an ad; they are filtered out.
- Small brands are often not in Qloo: the agent then profiles the big brands their buyers also shop with, and says so.
What's next
Connect Meta, TikTok and Google Ads so the agency publishes, tests the three designs per campaign, moves budget to the segments that switch, and re-reads the fans on Qloo every day, always asking before it spends.
Built With
- cloudflare-tunnel
- docker
- glm
- mcp
- next.js
- node.js
- podman
- qloo
- react
- server-sent-events
- sqlite
- typescript
- vitest
- z.ai
- zod
Log in or sign up for Devpost to join the conversation.