Sports Pool OS
A football pick’em that runs itself, so the commissioner doesn’t have to.
See the front door Code on GitHub- automated tests
- 473automated tests
- between agent checks
- 5 minbetween agent checks
- accounts to create
- 0accounts to create
- house cut on the pot
- $0house cut on the pot
A friends’ football pool lives or dies on one person. Every week the commissioner chases picks by text, looks up scores, works out who won, splits the money and remembers who still owes. Miss one reminder and someone gets locked out; get one split wrong and it’s an argument.
Sports Pool OS hands that whole job to the app. It runs a real league with real money on the line, and the commissioner’s only weekly task is to watch the games.

Everything the commissioner used to do by hand.
No accounts, just a link
Each player gets a private link and picks from their phone. There is nothing to sign up for and no password to forget.
Reminders timed to kickoff
The week is announced three days before the first game, with nudges a day out and three hours out, so nobody is caught by an early Thursday or Thanksgiving lock.
Scores and standings on their own
Live scores pull in automatically. Standings update as games finish, ties go to the closest guess on the total points of the tiebreak game, and the week freezes the moment every game is final.
Payouts to the cent
The pot is split across every winner, with no house cut, and the leftover cents from an uneven split are handed out so the payouts always add up to the exact pot. Anyone unpaid gets a Cash App link for the exact amount.
A forgotten pick isn’t a zero
Anyone who joined the week but never picked gets the home team filled in before the lock — a coin flip instead of an automatic loss.
A recap with some trash talk
When the week settles, Claude writes a short group-chat recap from the real results — and if it can’t, the league still gets a plain summary.
The decisions that matter, and why.
- 01
Small agents on a five-minute clock
A scheduled job wakes every five minutes and runs a set of narrow agents — the commissioner, the scorekeeper, the auto-picker, the recap writer. Each one only decides what should happen; a single executor does the actual work, which keeps every decision testable without a network.
- 02
Doing the same thing twice is impossible, not just unlikely
Every agent run and every message carries a key that the database requires to be unique. An overlapping timer, a manual re-run or a retry loses that insert and skips — so a reminder or a payout can’t go out twice.
- 03
Money is whole cents, end to end
Amounts are stored and calculated as integers, never decimals, so rounding can’t create or lose a penny. The payout code refuses to run if a pot has no eligible winner rather than quietly dropping it.
- 04
The schedule anchors to the first kickoff, not the weekday
The first version sent reminders on fixed days, which broke on every week that didn’t start on a Sunday. Measuring backwards from the first kickoff makes one rule right for every week shape, and a late timer still sends instead of skipping the week.
- 05
The optional parts fail soft
The AI recap falls back to a plain summary on a refusal, a rate limit or an outage. Text messages sit behind the same interface as email, switched off until they’re registered, so turning them on later is a setting rather than a rewrite.
Sports Pool OS is running a real league this season. The same engine can host any number of pools, so the next step is opening it to other commissioners — with text-message reminders switched on once registration is done.
Talk about a build like this