Our Agents
The agents we've built to run our own business and products in production, every day, not demos.
The agents that scale marketing teams instantly, from campaign brief to finished, exported asset.
News Bulletin - Trending Topics Agent
Objective
Give marketing teams a live read on what's actually happening across the sporting world right now, without someone manually scanning news and social all day.
What we believe
Marketing teams want to engage their customers around the topics that are relevant all the time, but you can't have experts in every sport and every language tracking every news story 24 hours a day.
What we brought to life
The News Bulletin - Trending Topics Agent watches over 30 news outlets and, the moment new articles land, understands what's actually trending and turns it into a news bulletin ready for marketing teams to use in player communication.
Benefits
- -Autonomous and continuous, not scheduled: it fires off the real ingestion event, not a fixed hourly check.
- -Self-checking before it ever reaches a person: every citation and headline is verified against the source articles before it writes, deterministically, no model grading its own homework.
- -Never publishes on a failed check: if self-review fails, the write is blocked and the team is alerted, not shipped with a shaky citation.
- -Cheap enough to run continuously: a lightweight model handles synthesis, chosen deliberately over a heavier one for a task that fires this often.
How we do it
Claude Haiku, via a dedicated Gateway budget, triggered directly by the content-ingestion event stream. Runs a five-step pipeline: Plan (pull trending entities and the latest content), Synthesis (Haiku drafts the bulletin), Self-Review (deterministic citation and headline checks), Write (idempotent insert), Announce (fires a pointer event for downstream systems).
Backend today, no UI surface yet, writing straight to the database and ready to power a marketing-facing view.
Intelligent Promo Creation Agent
Objective
Turn a campaign idea into a complete, structured brief, grounded in real fixtures and the operator's own promo mechanics and brand guidelines, all through an interactive chat.
What we believe
A good campaign brief isn't a form to fill in, it's a conversation, but a conversation isn't enough on its own. A mechanic the operator can't run this week, or a fixture that isn't real, costs more time downstream than the form-filling ever saved.
What we brought to life
A conversational agent that captures the seven things every campaign needs, brand, focus, market, event, output format, mechanic, campaign name, one question at a time, picking up whatever's already implied in what you typed and only asking for what's missing. Underneath, it reads that operator's own live brand config for the bonus mechanics they're actually allowed to offer, and resolves the campaign's focus, a team or player, to their real next fixture: opponent, competition, kickoff, pulled from live fixture data rather than assumed.
Real example — a resolved run, brand and mechanic unchanged
1. Entity resolved
Benefits
- -No blank-form paralysis: it asks one focused question at a time instead of presenting seven empty fields.
- -Never offers a mechanic the operator can't run: available mechanics are read live from that brand's own config, not a generic list.
- -The event is never assumed: focus resolves to the entity's actual next fixture, opponent, competition and kickoff time, pulled from live fixture data.
- -Nothing forgotten: none of the seven slots can be skipped silently, every campaign starts from a complete brief.
- -Edits mid-flow: change your mind on the market halfway through and it updates, not restart from scratch.
How we do it
Claude Sonnet, called once per question in the flow, resolving the focus entity against the platform's canonical entity and fixture data and pulling that operator's live brand config for its approved mechanics as the conversation goes. Each call returns the current captured state plus the single next question to ask, rendered as a filled-in card with quick-pick options. A confirmed brief, entity, fixture and mechanic all resolved, hands straight to the content-generation agents below.
Email Copy Agent
Objective
Get a marketer from “I need an email for this” to three ready-to-send subject lines and three body options, without writing a first draft themselves.
What we believe
The bottleneck in campaign production isn't creativity, it's the blank page. Give someone three real options and they pick, mix and edit fast, starting from nothing is what actually costs time.
What we brought to life
An agent that takes whatever content the marketer already picked (an entity's stats, an offer, a confirmed angle) and streams three subject line options followed by three body copy options, in the brand's own voice, sourced and cited.
Real example — a resolved run, brand unchanged
Subject
▍
Preview text
Body
Please gamble responsibly. 18+ only. For help and support visit BeGambleAware.org. T&Cs apply.
Benefits
- -Streams as it writes: options appear within about half a second, not after a long wait.
- -Brand rules aren't a checklist a person has to remember: prohibited terms, tone, and channel rules are compiled in before a single word generates.
- -Forward-looking language for fixtures that haven't happened yet is an enforced rule, not left to chance.
- -Every option is picked from, not accepted blind: the marketer chooses, doesn't just approve.
How we do it
Claude, streaming through the same chat interface as everything else in the platform, with that tenant's brand voice and content rules compiled in before generation starts. Designed for a sub-second time to first token.
Social Copy Agent
Objective
The same job as email copy, but shaped correctly for whichever platforms the campaign is actually going out on.
What we believe
Channel-specific constraints, X versus Instagram versus Facebook have different shapes, shouldn't be something a marketer has to remember every single time.
What we brought to life
An agent that streams a section per picked platform, three subject and three body options each, with hashtag suggestions and CTA shapes pulled from that brand's own configuration, never hardcoded.
Real example — a resolved run, brand unchanged
▍
18+ | BeGambleAware.org | T&Cs apply
▍
18+ | BeGambleAware.org | T&Cs apply
Benefits
- -One request, every picked platform covered: no separate tool per channel.
- -Hashtags and mechanic language come from config, never hardcoded, so output is never off-brand by accident.
- -The responsible-gambling tagline is included automatically when the rules call for it, not left to memory.
- -Same sub-second streaming start as the email agent, per platform.
How we do it
Claude, same streaming mechanism as email copy, with a platform-aware prompt block driven by that brand's channel configuration.
Push Copy Agent
Objective
Three ready push notification options, sized to the least forgiving format in the stack.
What we believe
A push notification is too short for a wasted word. That precision shouldn't take a person any longer than writing the email did.
What we brought to life
An agent that streams three numbered push notification options straight from picked content, with brand voice and mechanic guidance baked in.
Real example — a resolved run, brand unchanged
▍
Benefits
- -Same picked-content input as email and social: no re-explaining the campaign for a third time.
- -Mechanic guidance (what the CTA should say for a price boost versus a free bet) comes from config, not guesswork.
- -The responsible-gambling tagline logic is conditional and automatic, matching the same rule set as every other channel.
- -No hardcoded regulatory language anywhere in the prompt, everything routes through brand config so it stays current as rules change.
How we do it
Claude, same streaming mechanism as email and social, tuned for the tighter character constraints of a push notification.
Export Agent
Objective
Get a finished asset out of the chat and into a usable, tracked record, without a separate tool.
What we believe
The last step of a workflow is where things get lost. Exports usually land in someone's downloads folder with no record of what was sent, when, or by whom.
What we brought to life
An agent that, the moment a marketer confirms an asset, writes a permanent, tenant-isolated record: asset type, content snapshot, export format, campaign name, and timestamp.
Benefits
- -No LLM round-trip: it's instant and deterministic, nothing to wait for or get wrong.
- -A queryable history: every export is a searchable database row, not a file that gets lost.
- -Tenant isolation enforced at the database level, not by convention, one team can never see another's exports.
- -The same action that finishes the campaign creates the audit trail, no separate step to remember.
How we do it
A direct, authenticated write to the platform's asset records table, with row-level security enforcing tenant isolation. No model call in the loop, purely app-layer.