Inspiration

As a General Manager, I spent hours every week building staff rotas. Most scheduling software still left the manager doing the difficult part manually: deciding who should work, when they should work, and how to satisfy all of the business rules at once.

I wanted to build a system that could generate the week automatically from the requirements of the business, while still leaving the manager in control.

What it does

RotaBot automatically generates weekly staff rotas around the staffing requirements, contracts, availability, approved leave, roles, training and scheduling rules set by the manager.

Hard operational constraints remain binding, while an adaptive learning layer allows confirmed manager preferences from previous edits to influence future solves.

The manager reviews the generated rota, makes any required changes, pins anything that must not move, and publishes the final week.

How we built it

RotaBot's scheduling engine uses Google OR-Tools CP-SAT with a Python backend and REST API.

The web platform is built with React, data is stored in Supabase, and the application is deployed using Vercel and backend cloud services.

A major part of the engineering work has gone into modelling real operational rules in a way the solver can enforce reliably while still producing useful schedules.

Challenges we ran into

Staff scheduling becomes a large constraint problem very quickly.

A real rota may need to account for staffing demand, contracted hours, availability, approved leave, roles, training, breaks, fixed shifts and many other operational rules at the same time.

The difficult part was not simply generating a schedule. It was building a system that could respect those rules consistently while remaining flexible enough for real businesses to use.

Accomplishments that we're proud of

RotaBot has been used to generate live staff rotas in a real operating venue and has replaced manual rota creation for day-to-day scheduling there.

The system can generate a whole week from the manager's requirements, measure coverage against those requirements, preserve hard constraints and allow the manager to review and adjust the result before publishing.

We have also added adaptive learning so confirmed manager preferences can inform future rota generation without overriding the rules that must remain fixed.

What we learned

Building scheduling software is as much an operations problem as it is a software problem.

Every workplace has its own rules, preferences and exceptions. The most valuable part of RotaBot has therefore been creating a scheduling model that separates hard constraints from manager preferences, rather than trying to hard-code one idea of what a good rota looks like.

What's next for RotaBot

The next stage is continuing to improve the scheduling and learning system, expanding RotaBot to more businesses, and proving the product across a wider range of real operating environments.

The goal remains simple: reduce the amount of manual work involved in building a staff rota while keeping the manager firmly in control.

Built With

  • hospitality
  • optimisation
  • saas
  • staff-scheduling
  • workforce-management
Share this project:

Updates

posted an update —

Since the original Build Week submission, RotaBot’s scheduling engine has been heavily expanded and tested against hundreds of generated and real-world rota scenarios.

The current acceptance harness covers workplaces ranging from roughly 15 to 55 employees. Across 352 known-feasible test weeks, RotaBot achieved 100% staffing coverage, with zero hard-constraint violations and no unnecessary overstaffing.

The solver now handles combinations of staffing demand, contracts, availability, approved leave, roles, training, fixed shifts and other operational rules while still generating the whole week automatically.

We’ve also added an adaptive learning layer, allowing confirmed manager preferences from previous edits to influence future solves without overriding hard operational constraints.

The focus now is moving from proving the scheduling engine against increasingly difficult test packs to rolling RotaBot out to more real businesses.

Log in or sign up for Devpost to join the conversation.

Submission history