By default, an AI tells you what sounds good. Not what's true.
During the 2026 elections in Peru and Colombia, I had one narrate election day live, minute by minute, without making up a single line. Alone, at night, no team.
It's called CONDOR. AI-powered election intelligence — a dashboard that covered first rounds, runoffs and the live count, without asking anyone for money. condorlatam.com.
On a single screen you could follow the live count, compare the candidates and their platforms, take a quiz to see which one you matched, check which campaign claims were true and which weren't, and read a daily summary written by an AI. All in one place, all organized, no WhatsApp chain messages, no smoke.
This post is the story of why I built it, what I learned, and the part that actually kept me up at night: making sure it didn't lie.
Why one guy builds this alone
I didn't do it to raise money. No pitch, no round, no payroll to cover. I did it for 2 reasons, and both are a little stubborn.
First: I wanted to understand AI by getting my hands dirty, not by reading Twitter threads. The only way I know to learn something is to build something that can break out in the real world.
Second: election-season disinformation drives me nuts. Your aunt's WhatsApp forward, the undated screenshot, the bogus poll, the "sources say." I wanted to see if you could build the opposite: one screen, organized, verifiable, that didn't sell you smoke or a side.
So instead of complaining for one more Sunday, I opened the editor.
The brain runs on its own, every day
The heart of CONDOR is something I called Brain. An orchestrator that runs 8 tasks in a row, every day, for each country, without me touching a thing.
Here it is in plain English, because people who don't code read this too:
- Checks that the data isn't broken.
- Verifies incoming polls.
- Curates the day's news and tosses the junk.
- Puts together a briefing on the big picture.
- Compiles a profile of each candidate, but only with verifiable facts pulled from real articles.
- Runs a health check on itself.
- Reorders the front page based on what matters that day.
- And at the end, it audits itself: gives itself a score from 0 to 100 and compares it with yesterday's.
All with AI. All logged in an audit table, so if something looks off I can go in and see exactly what it decided and why. A system you can't audit isn't a system: it's faith.
To give you a sense of the volume: the Brain monitored 36 different outlets, and some days it chewed through 444 news stories in a single day, just to leave you with a clean feed at the end.
Cheapskate founder detail: the Brain runs on a cheap model. For the daily grind, it's more than enough. The money (well, the pennies) gets saved for the one moment where you can't afford to fail.
Election day: the AI calling it live
This is the crown jewel. And this is where I almost threw the whole thing in the trash.
On E-day I built something I called Pulse. Every 5 minutes, an AI reads the live headlines from the big outlets (El Tiempo, Semana, Infobae, La Silla Vacía, Google News), adds what I scrape into my own database plus the official preliminary count from the Registraduría (Colombia's electoral authority), and writes a paragraph narrating the day. In real time. Without me.
The pace was scary. On the day of Peru's runoff, it wrote 402 dispatches in a single day: 1 every 3 and a half minutes, nonstop, while I watched.
I built the first version on the cheap model, the same one the Brain uses. Huge mistake.
The cheap model alucinaba. It made up "an atmosphere of enthusiasm in the streets," "lines since early morning," statements nobody had ever made. It sounded beautiful. And it was a lie. The exact thing I was trying to fight, my own product was manufacturing.
That's when I understood something I won't forget: in an election, an AI that writes pretty but makes things up isn't a tool. It's a hazard.
The anti-hallucination validator
The fix had 2 layers.
The first one, the obvious one: I moved Pulse up to a pricier, more serious model. Better, but not enough. A better model hallucinates less, not never. And "less" didn't cut it.
The second layer is the one I'm proud of, and it's more stubborn than smart. After the AI writes each paragraph, another process audits it before it goes out. The rules are a bouncer's, not a poet's:
- Did you mention Cepeda, Petro, anyone at all? That name has to appear, word for word, in a real headline. If it's not there, it doesn't run.
- No invented quotes. Zero statements I can't trace.
- No "literary color": no atmosphere, no enthusiasm, no lines, no emotion. Facts, not fiction.
And the best part: if the paragraph fails, I don't drop in some generic filler. I hand the error back to the same AI, tell it which rule it broke, and send it back to rewrite with that correction in hand. It corrects itself until it gets past the bouncer.
The one on the right is a real paragraph CONDOR published on May 31, 2026. The one on the left is the kind of text the validator killed before it ever went out.
All of this running every 5 minutes, for about 2 dollars a day. Cheap for what it does: across all those days, the AI wrote some 177,000 words live (the equivalent of 2 novels) without making up a single one.
Watching that work on election day (the AI telling you what was actually happening, minute by minute, without a single lie) was one of the most satisfying things I've built in years. Not because it talked. Because it shut up when it didn't know.
The shortcut I learned the most from
A technical one, for those who like a look inside the kitchen.
For the runoff, I wanted to show how the gap between the 2 candidates was moving, minute by minute, a live heartbeat. The plan was to sample the number every couple of minutes with a scheduled job. Problem: on my plan, that scheduled job didn't fire reliably. Sometimes it did, sometimes it didn't. Useless for anything live.
The fix was to flip the problem on its head: instead of relying on a clock that didn't work, I sample the gap every time a visitor lands on the page. Every person who shows up leaves a reading without knowing it. With a lock so 2 readings in the same minute don't step on each other. More people watching, denser chart. The visits became the engine.
And this is what those visits drew, tally sheet by tally sheet:
The lesson isn't technical. It's the usual one: when the ideal tool isn't there, don't sit around waiting for it. You make do with what you've got, out in the field.
What nobody tells you: half the work is human rules
I went in thinking the challenge was technical. Models, database, live charts, the runoff gap moving on screen.
I was wrong. Half the job was coding real-world rules that no tutorial teaches you:
- The electoral blackout. In Colombia, publishing polls is banned during the 7 days before the vote. I had to hide an entire polling panel from the site during that window. Data that's useful in any other context is illegal there.
- Bogotá is not Colombia. Sounds obvious until the AI starts writing "the country" when it's talking about a snapshot of a single city. You call the country by its name.
- "Mesas" are not "puestos." A puesto is the polling site; the mesas are the voting tables inside it. Mix them up and you've lost credibility in the first line.
- "Preconteo" is not "escrutinio." One is the fast, informational preliminary count; the other is the legal, formal count, backed by tally sheets. Mixing them up is spreading disinformation without meaning to.
None of those rules is pretty code. Every one of them is the difference between a serious tool and a toy that screws up at the worst possible moment.
A number I like more than any ranking: the fact-checker reviewed 1,793 claims over the course of the coverage. How many turned out to be false or misleading? 31. The rest, the vast majority, were true.
And that's fact-checking too. The easy move is to grab a megaphone and yell "fake news" at everything that makes you uncomfortable. The serious move is to review nearly 1,800 claims, catch the 31 that were lies, and have the stomach to say that almost everything else going around was true. Fact-checking isn't a witch hunt. It's telling the truth, however it shakes out.
What CONDOR leaves me with
It covered what I wanted it to cover: 2 countries, first rounds, runoffs, live count, an affinity quiz, a candidate and platform comparison tool, a fact-checker, share-ready images of the count. All from one screen, running almost entirely on its own.
What I take away isn't the audience. It's that the machine wrote 3,809 live dispatches, 177,000 words —the equivalent of 2 novels— and didn't make up a single one. I can trace every one of them to a real headline. And underneath, quietly, the system filtered nearly 12,000 news stories to leave you with a clean feed.
Yes, around 51,000 people showed up. That's nice. But anyone can pull 50K with a good LinkedIn thread. What not just anyone can pull off is an AI that narrates an entire election, live, without lying.
One number stuck with me. On the day of Colombia's runoff, more than 5,000 people came in, and the exact peak was at 4 in the afternoon: the very hour the polls closed. Nobody came out of curiosity. They came when the number started to matter.
And yes, the audience showed up too
5 months of silence, then a week-long eruption. Here's how it looked, day by day:
But what I take away isn't the feature list or the numbers.
I take away that one guy with an editor and some drive can build, on his nights, something that a couple of years ago needed a team and a budget. AI has driven the cost of trying down to almost nothing. That's huge, and we still haven't wrapped our heads around it.
And I take away the uncomfortable part: by default, AI is going to tell you what sounds good, not what's true. Keeping it from lying isn't an extra you bolt on at the end. It's the discipline from the very first line. Bouncer first, poet second.
CONDOR did its job, and I shut it down. It was built for these elections, and the elections are over. Not everything you build has to stay on forever.
Behind all of it, there's an ordinary Sunday, staring at a count that wouldn't come in.
And ahead, an AI that narrated an entire election without making up a single line.
Anyone can blow smoke. The hard part is building something that shuts up when it doesn't know.



