Football IQ is a daily football trivia app with 12 game modes. Every day, it needs fresh puzzles across Career Path, Connections, Starting XI, and more. That adds up to thousands of puzzles a year.
I don't have a content team. I'm one person. What I do have is Karl.
Karl is a self-hosted AI agent I talk to on Telegram, WhatsApp, or Discord. He handles the research, formats the data, and submits it to my API. He's not always right. He occasionally needs correcting, and he has a tendency to pick obscure Uruguayan centre-backs for Connections puzzles. But he's fast, he's available at 11pm, and he doesn't complain when I ask him to fill six puzzles in a row.
The problem: daily puzzles, one person
Each puzzle needs real research. A Career Path puzzle needs verified club histories with correct years, appearances, and goals. Goalscorer Recall needs exact scorers and minutes from actual matches. Connections needs 16 players grouped into 4 categories with no overlap.
You can't fake this stuff. Football fans will spot errors immediately, and you definitely can't let an AI hallucinate transfer fees and hope nobody notices.
Creating a single puzzle manually takes 15-30 minutes. Multiply that across several modes every day and you're looking at hours of content work. That doesn't leave much time for writing code, marketing, or having a life.
Meet Karl
Rather than building some elaborate admin dashboard or hiring freelancers, I set up Karl on OpenClaw, an open-source agent platform that plugs into Telegram, WhatsApp, and Discord. He loads custom skills on demand, so when I mention a game mode or say "Football IQ", he already knows the data schema and what to do.
Three things matter:
Karl always researches using live web data, never his training data. Every career history, transfer fee, and match result comes from a real-time search. For factual content, this is the only way.
He fetches the live JSON schema before building any payload. If I ship a code change that adds a field or tightens a constraint, he picks it up automatically next time. No docs to maintain.
Nothing goes live without my approval. Karl presents his work, I review it, and only then does he submit. He does the legwork; I keep editorial control.

A typical interaction
I'm on Telegram, probably on the sofa, and I type:
"Karl, fill tomorrow's connections"
He checks the API for the next empty slot, grabs the current schema, searches the web for four football-related connection groups, cross-checks all 16 names to make sure there's no overlap, and shows me the result. I might say "swap Messi for Ronaldinho in group 2" or just "looks good". He submits, reports back with the puzzle ID, and we're done.

Two or three minutes. No laptop involved.


The modes
Karl covers seven modes day-to-day. Each has its own research requirements, and he knows the rules for all of them.
Career Path
The flagship. Karl pulls a player's full career history from multiple sources (clubs, years, appearances, goals) and structures it into a sequence of clues. Getting the chronology right matters. Football fans know when Thierry Henry joined Barcelona, and they'll notice if you're a year off.


Connections
Probably the hardest mode to get right. 16 players, 4 groups of 4, no overlap. Karl cross-checks every name against every category before showing me the puzzle. I still catch the odd edge case ("technically he played there on loan for six months"), but Karl does the grunt work of finding groups that actually hold up.
Starting XI
Iconic match lineups: FA Cup finals, Champions League semis, World Cup knockouts. Karl verifies all 11 starters and the formation against match reports. Exactly 11 players, correct positions, no guessing.
Goalscorer Recall
Classic matches with verified scorers and exact minutes. Karl pulls from match reports and cross-references across sources. If one source says Gerrard scored in the 54th minute and another says 56th, he flags it rather than picking one.
Transfer Guess
Famous transfers with verified fees, clubs, years, and nationalities. Transfer fees are some of the most misreported stats in football, so Karl checks multiple sources and flags conflicts.
Timeline
Six events related to a subject, each with a verified year, sorted chronologically. Simple concept, but getting a single date wrong ruins the whole puzzle.
Top Tens
Statistical ranked lists verified against football databases. Top 10 Premier League scorers in a season, most expensive transfers of a decade, that kind of thing.
The rest
The remaining modes (The Grid, The Chain, Threads, and Topical Quiz) I either create manually when I fancy something more hands-on, or they're on the list for Karl to pick up eventually.
Why it works
A few design decisions make this setup reliable:
The API exposes its own JSON schemas. Karl fetches the schema before building any payload, so if I change a field or add a validation rule, he adapts automatically. I don't maintain separate docs for the agent.
The API uses upsert semantics, so Karl can retry or update without creating duplicates. That matters when you're working over a dodgy mobile connection.
Because he's on Telegram, WhatsApp, and Discord, I can manage content from wherever I am. Waiting at the school gate? Fill a few puzzles. At my desk? Use Discord.
And everything goes in as a draft first. I promote puzzles to live when I'm happy with them, so a bad puzzle never reaches users.

The results
Since setting this up:
Career Path is filled 61 days ahead, well into May 2026
What took 15-30 minutes per puzzle now takes 2-3 minutes
I run the whole content pipeline from my phone
Accuracy holds up because Karl researches live data and I review everything before it goes out
Karl doesn't replace my judgement on what makes a good puzzle. He replaces the research, the JSON formatting, and the repetitive API calls. I still make the editorial decisions. I just don't spend hours a day on the boring bits.
What's next: MCP servers
The current setup works, but I still had to build a set of REST endpoints specifically for Karl to talk to. Fetching schemas, checking coverage, submitting puzzles. It's plumbing that only exists to connect the agent to the backend.
The next step is MCP (Model Context Protocol) servers. MCP is an open standard that lets agents connect to tools and data sources through a standardised interface. Instead of building custom endpoints for the agent, you expose your backend as an MCP server and the agent can interact with it directly.
For Football IQ, Karl would be able to understand the database structure, the validation rules, and the content lifecycle without a separate API layer sitting in between. No dedicated puzzle endpoints to build and maintain.
This is the direction I'm heading for Football IQ and for the agent setups I build for clients through Camber Co. The REST approach is solid and proven. MCP is just a cleaner pattern that cuts out a lot of integration code. Next blog will be about this upgrade.
Wrapping up
There's a lot of talk about AI agents right now, and most of it is theoretical. This is what it actually looks like day-to-day: a solo founder with a chat-based assistant that handles the tedious parts of running a content-heavy app, so I can focus on product work and the decisions that actually need a human.
The setup (the agent platform, the skill config, the API patterns) is something I've built up through running my own products. It's also what I help other businesses put together through Camber Co.
If you're spending hours on tasks that could be researched, formatted, and submitted by an agent, it might be worth a look. The agent doesn't need to be perfect. It needs to be fast, grounded in real data, and supervised.
Charlie is the founder of Camber Co, an AI consultancy helping businesses build practical AI workflows. He also builds Football IQ, a daily football trivia app with 12 game modes. Download the app.
Interested in setting up an AI agent workflow for your business? Get in touch.