Skip to content
Bot jobsJob breakdowns

Built my own fantasy draft assistant in a day. Here's what worked and what didn't.

I've paid for fantasy football assistants. They're mostly fine. I could never really replicate my league behavior in mocks and I always felt the advice was a bit too generic. My league is pretty far

TrustworthyImported from X5 min read
TrustworthyLabsx article
See this runHouse 241 · 00326

Article

Job breakdowns

I've paid for fantasy football assistants. They're mostly fine. I could never really replicate my league behavior in mocks and I always felt the advice was a bit too generic. My league is pretty far from generic though. It’s ten team, PPR superflex, Q/W/R/T with a quarterback bonus, 18 slot roster. It’s a lot of players and a lot of games each week.

Last week I built my own assistant. It took about a day and about $20.

I sold myself on building a pipeline of historical data from the Yahoo API as a ‘secret weapon.’ Every pick that every manager in my league has made so I could better predict their moves. That turned out to be the part that mattered least when the draft went live.


The build

I started over text with Grok Bot. An agent with its own computer is genuinely awesome. I didn't want to deal with the Yahoo developer portal, so I logged into my dev account in the Bot's browser and let it do the setup itself.

It laid down ~60% of the scaffolding before I hit my SuperGrok cap. I renewed Cursor at the $20 tier, capped Bot usage in an hour and finished the build by hand.

First pass of the build, from my phone.
First pass of the build, from my phone.

I originally planned to run my board locally in-browser. Cursor turned out to be better for everything that actually mattered on draft night: asking the model for assistance, editing the program to account for anything I missed, and running the board in the same window. Something actually broke mid-draft at the table and I was able to fix it quickly without losing the existing board details.

Here’s the data and tools I added to the loop:

  • Full league history and settings through the Yahoo API: prior drafts, prior results, every pick every manager has made
  • My own pick preferences
  • Rankings from multiple platforms and independent analysts
  • Player news from the X API, plus Tavily when I needed web search

Architecture map.
Architecture map.


What worked well?

The mocks were excellent.

The afternoon before the draft I cleared the board and asked it to run mocks from my seat (pick 5 of 10). I didn't hand it a list of strategies. It came back with five plans and ran forty drafts against each, scoring every roster by summing the superflex consensus ranks of its starters. Lower is better.


I've targeted elite quarterbacks with my first pick for three years. In a superflex with a QB bonus it feels obvious. Taking a QB at pick 5 did guarantee a top-8 QB in every single mock, but it also dropped my first-place rate by a third.

That’s the finding from 200 mocks and I couldn’t believe was true.

Then I factored in the league history to discover, ‘Between your 5 and 16, the room takes ~1.7 QBs and a ton of WR.’ Not "quarterbacks are scarce in superflex, trust me bro" - which is what I'd been telling myself for three years. In live, it was 1 QB, not 1.7. Close enough to trust. I took Puka Nacua at 5 and Rashee Rice at 16. The league history data earned its keep here in the mocks, which wasn’t really the place I expected the most value.

It’s worth noting that the model's final recommendation wasn't the clean strategy label I wanted. It landed on "WR at pick 5, then BPA, not forced WR at 16." Batches disagreed with each other. I took the second receiver anyway because of who was left on the board, and rolled the dice on a QB I wanted falling back. Missed Burrow, but secured Hurts.

Product shots

Live board in Cursor. On the left, you can see the live chat with the model. In the screenshot I am locking Saquon in round 4 and asking for the round 5 board. The plans panel can show a “best” name. The useful part was the model arguing with that name: who is actually likely to be there, and the backup ladder if they are not. Player A, else B, else C.
Live board in Cursor. On the left, you can see the live chat with the model. In the screenshot I am locking Saquon in round 4 and asking for the round 5 board. The plans panel can show a “best” name. The useful part was the model arguing with that name: who is actually likely to be there, and the backup ladder if they are not. Player A, else B, else C.

Search functionality by position, sorted by ADP.
Search functionality by position, sorted by ADP.

Add player window. Clicking any player brings up a screen that rates the fit at your current pick. 'Best' simply means, it's the best pick available. Other options are rated 0-99%, and weighted by their ECR, VOR (value over replacement), and IQR (how much the public overall ranks disagreed on a player).
Add player window. Clicking any player brings up a screen that rates the fit at your current pick. 'Best' simply means, it's the best pick available. Other options are rated 0-99%, and weighted by their ECR, VOR (value over replacement), and IQR (how much the public overall ranks disagreed on a player).


What didn't work so well?

Predicting my league mate’s positional picks was unreliable. The board showed a predicted position for every upcoming seat and updated as picks came in. I’d look to possibly cut this feature. It makes sense in hindsight. One manager's surprise pick can cause an immediate pivot across the board. It happens every year, and we had plenty. Starting with Josh Allen at 1.01.

I don’t have the full predictions data saved, but from my experience, it wasn’t great. The pattern in the misses was more interesting. It was better at tracking which players were about to disappear within a few spots, rather than knowing exactly who would take them. It flagged Kyle Pitts as the risk in a window and named the wrong seat, but it also gave me a fallback ladder, Pitts then Tucker Kraft then Wan'Dale Robinson. Pitts went. I took Kraft.

In the end, the aggregate reads were useful. Projected league mate picks, not so much. If I were building this again I'd spend more time on scarcity modeling and treat the per-manager stuff as flavor.


What's next?

I’ll probably spend some time working on a waiver tool. Same APIs. Yahoo has the FAAB history and every bid anyone's made. Maybe spending habits will translate into more useful information.

I really liked running the board in Cursor, being able to connect different tools, data sources, modify the board and have a truly intelligent assistant from start to finish. I don’t think there is a tool out there in Fantasy land that can do all of that. FantasyPros and Yahoo both graded my draft an A+, which feels good now but doesn’t mean too much. Ask me how I feel in December.

I'm Allen, founder at TW Labs. I help teams use tools like Cursor and Grok to automate real workflows. If you need help with AI enablement and integrations, reach out.

Good luck this year!

Published on grokbot.sh. Cite the public log, not a prompt pack.

Command Menu