Can Claude build a residency call schedule?
We gave Claude a real program’s full year of call, with every rule and every resident. Here’s what came back.
The test
We took one program’s real weekend and holiday call: 37 residents, three sites, AM and PM shifts, primary and backup, and the program’s own rules for rest, rotations, PGY level, weekend caps and yearly call targets. Names and sites were removed.
Claude got everything in one message, including the list of residents allowed in every seat. We asked for four weeks, three months, six months and the full year, and checked every answer against every rule. The solver got the same program and the same rules.
What happened
Same program, same rules, four lengths
Each AI answer was checked against every rule. Times are wall-clock.
The solver filled every seat at every length and kept every resident within about one call of their target.
The month came back clean once in three tries. The three- and six-month schedules never arrived; we stopped each at 30 minutes. The full year took 22 minutes and looked complete, but it broke eight rules and left one resident 11 calls off target. Across the year it missed the class targets by 233 calls. The solver missed by 25.
What one of those breaks looks like
The same resident on a Friday PM and the Saturday AM straight after. It’s easy to miss in a grid of 1,300 seats.
That’s the problem with a schedule that only looks right. In a grid of 1,300 seats, you won’t find the eight bad ones by eye.
Why a solver wins
Every rule in a call schedule touches every other one. Friday night decides who can work Saturday morning, which decides who has room for backup on Sunday, which decides who is behind on their yearly count. A solver checks all of it as it builds and only returns schedules that pass. A chatbot writes once and hopes.
How jacks uses both
jacks is a schedule generator for residency programs: call, rotations, OR and clinic. AI handles the conversation; a solver does the building.
- Your rules go in once; every draft checks all of them.
- Calls are balanced against each class’s target, and everyone can see the counts.
- When a seat can’t be filled, jacks names the rule in the way.
- Move anything by hand and it rechecks the whole schedule. Published weeks stay put.
This isn’t a lab result for us. jacks built that same program’s next full year of call with zero rule breaks.
Building next year’s call now? Start with how to build a fair residency call schedule.
Questions chiefs ask
Can ChatGPT build a residency call schedule?
Not reliably on its own, for the same reason Claude couldn’t: a chatbot writes the schedule in one go and nothing checks its work. Use it to talk to a scheduler, not as one.
What’s the difference between AI and a scheduling solver?
A solver searches arrangements against every rule and only returns schedules that pass. A language model predicts a likely-looking answer. For a year of call with hundreds of interacting rules, only one of those is safe to publish.
Can I still change the schedule by hand?
Yes. Move anything in jacks and it rechecks the whole schedule, so a swap in March can’t quietly break a rule in April.