How to Make an Employee Schedule in Google Sheets

If you search how to make an employee schedule in Google Sheets, you’ll find a hundred templates: names down the side, dates across the top, colored cells. That works fine for a small team on weekdays. It falls apart the moment you run 24/7, with nights, rest rules and people who can’t work certain days. Now you’re counting cells by hand at 11 PM. So I built a free Google Sheets add-on, Shift Optimizer, that fills the schedule for you with a real optimization solver, right inside your sheet.

Below: the manual way first (it’s worth knowing, and for some teams it’s all you need), then the add-on, how I built it, how it’s going so far, and what’s next.

Continue reading “How to Make an Employee Schedule in Google Sheets”

AI Staff Scheduling in Claude: A Free Solver Connector

Most “AI staff scheduling” tools I tried do one of two things: they let a chatbot write a schedule that looks right and quietly breaks your rules, or they put a little AI button on top of a calendar you still fill in by hand. I wanted the opposite: you describe your team to an AI assistant in plain words, and a real optimization solver builds the roster, with the rules treated as rules. So I built a free connector for Claude that does exactly that. It’s called Shift Scheduler, there’s no signup, and it has been in the Claude directory since late September.

This post covers how to use it, how I built it (and what I broke along the way), what the first month of use looks like, and what I’m changing next.

Continue reading “AI Staff Scheduling in Claude: A Free Solver Connector”

AI Route Optimization in Claude, Free: My MCP Server

AI route optimization usually means a paid app with a sales call and a “per driver per month” price. What I built is smaller and weirder: a free connector that lets Claude plan multi-stop delivery routes for you, with a real solver behind it, no account and no signup. You type “plan tomorrow’s deliveries for my 3 vans” in a chat, paste your addresses, and get back routes, arrival times and Google Maps links. It’s called the Fleet Route Optimizer, and it has been live in the Claude directory for about a month.

This post does a few things at once (I tried to split it and it kept coming back together): how to use it, how I built it, what the usage log says after the first month, and what I’m changing because of it.

Continue reading “AI Route Optimization in Claude, Free: My MCP Server”

One Scratched Winger Was in 29% of My NHL DFS Lineups

On October 16 a single DFS late scratch sat in 29.1% of the NHL lineups I had built for a two-game slate. Egor Chinakhov, a $4,100 Penguins winger, was ruled out about 25 minutes before puck drop, and my Frozen Tools set had him in 134 of its 461 lineups. In the real DraftKings contests, 1.6% of entries had him. I have since rebuilt the night without him, checked four other nights, and added a “Check late news” button to my NHL lineup optimizer and the other three sports. The surprise is how little removing him changed.

Continue reading “One Scratched Winger Was in 29% of My NHL DFS Lineups”

How to Play Fantasy Sports Strategically: My Review

A review of Haugh and Singal’s DFS paper on modeling opponents, and the simulation-based NHL lineup generator I built from it.

Earlier this week I wrote about what an MIT DFS paper taught my NHL lineup optimizer. Read that paper and you quickly run into its follow-up: Martin Haugh (Imperial College) and Raghav Singal (Columbia), How to Play Fantasy Sports Strategically (and Win), later published in Management Science. It builds directly on the MIT work and asks the one question that paper skipped: what is everybody else doing? Their answer is that to play fantasy sports strategically you can’t just maximize your own points. You have to beat a field of lineups you can’t see yet.

I read it for a selfish reason. I have been paper-trading my NHL lineups for a week (I build them before lock, then score them against the real DraftKings fields once the games are over), and after five slates no setup has made money. None of them (that is not a typo). So this post is half review, half lab notebook: what the paper does, what I borrowed, and the different kind of lineup generator I am building along the same lines.

Bar chart of return on entry fees over five NHL slates with each night’s best prize removed: plain settings -81%, simulation picking by expected payout -71%, simulation with top-1% coverage -67%, power-play stack with Vegas filter -64%. The average entry loses about 16%.
Five DraftKings NHL slates, Oct 2–6, 2026, every contest filled to its entry cap and scored against the real field. Blue is the new simulation-based generator.
Continue reading “How to Play Fantasy Sports Strategically: My Review”