jacks
Test · AI and scheduling

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.

Jackson Cantrell · October 2026 · 4 min read
Short answerNot on its own. On a real 37-resident OB-GYN program, Claude managed one clean month in three tries and broke eight rules over the full year. A scheduling solver, the engine behind jacks, filled every seat at every length with zero rule breaks.
8rule breaks in Claude’s full-year schedule
0rule breaks from the solver, at every length
~1call from target for every resident, solver side

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.

Scheduling solver
AI on its own
4 weeks114 seats
0 rule breaks
1 of 3 tries valid
13 weeks365 seats
0 rule breaks
No schedule in 30 min
26 weeks721 seats
0 rule breaks
No schedule in 30 min
Full year1,323 seats
0 rule breaks
8 rule breaks

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.

FriPM
SatAM
SatPM
Site A
RK2
JT3
AL1
Site B
MN1
RK2
SP2

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.

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.