← Back to Homepage
Fantasy GM
Case study · Tech & fun
An AI general manager for a fantasy WNBA league
- What
- An AI general manager for an ESPN fantasy WNBA league.
- Stack
- Python + Pydantic pipeline over ESPN's fantasy API; static site; pytest on the math.
- Status
- LIVE
- Dates
- Published June 2026 · Updated July 2026
- Links
- Live site · Source code
Background
Who should I actually pick up off waivers this week, and what does my team really need?
Fantasy GM answers both, for every team in the league: here's your biggest positional gap, and here are the free agents who close it. ESPN hands you raw projections but won't tell you that you're stacked at guard and thin in the frontcourt, or which available player fixes that. The read runs for all teams, not just yours, so you can see where everyone stands.
A Look Inside
Each view shown on mobile and desktop — tap any image to open the live site.
How It Works
The whole pipeline runs locally and ships its results as a static site, so there's no server to babysit and no secrets in the repo:
- Data: a Python pipeline reads ESPN's private fantasy API with your own league cookies, kept in a local
.envthat is never committed, and writes plain JSON snapshots. - Team needs: guard production versus frontcourt production (forwards and centers share lineup slots), both measured against the league average. The biggest gap is that team's top need.
- Waiver targets: free agents ranked by per-game projection times games actually scheduled, then re-weighted toward what your roster lacks — so the board is tailored, not generic.
- Receipts: every add, drop, trade, and lineup change lands in an append-only log keyed by ESPN team ID, so history survives mid-season renames.
- Six tabs: Today, Waivers, Team Needs, Trades, News (ESPN's public feed, your players highlighted), and Transactions. Pydantic keeps the data honest; pytest keeps the math honest.


