Building Smart Scheduling — AI for Real Business Problems
A hospitality client came to us with a problem I've seen a hundred times: shift scheduling. Every week, the same headache — who works when, which roles are covered, who's on vacation. They were doing it with spreadsheets, WhatsApp messages, and sticky notes. We thought: we build AI tools for a living. We can fix this.
The Problem
Manual shift scheduling in hospitality is a nightmare. Think about it:
- Several locations with different staffing needs
- Different roles — Kitchen, Service, Bar, Cleaning — each needing specific people
- Contract types — full-time, part-time, minijob — each with different hour limits
- Vacation and sick days that change every week
- Coverage rules you have to hit, or Friday night lands understaffed
One mistake means an understaffed shift. And in hospitality, that's not just inconvenient — it's lost revenue and stressed-out staff.
The Solution
I built a visual week planner. The time grid spans 6 AM to 10 PM. Every shift carries a role color, so one glance shows what's covered and what isn't. The key features:
- Drag-and-drop scheduling — click a time slot, assign a person, done
- Coverage indicators — each day shows green (fully staffed), yellow (cutting it close), or red (understaffed)
- Employee management — contract hours, availability, vacation tracking all in one place
- AI assistant — a built-in chat that can analyze the current schedule and suggest optimizations
The Tech Stack
const stack = {
frontend: 'React + TypeScript',
backend: 'NestJS',
database: 'Azure SQL',
hosting: 'Azure Web Apps',
ai: 'Claude API',
};
Why NestJS over Express? The business logic is complex — contract hour calculations, role coverage checks, vacation conflict detection. NestJS gives me structure with decorators, modules, and dependency injection. Express would have turned into spaghetti fast.
The AI Part
The built-in KI-Assistent is where it gets interesting. It can analyze the current week's schedule and spot problems, suggest optimizations based on contract hours and role coverage, and consider all constraints automatically.
The hardest part wasn't the AI itself — it was making the suggestions useful for someone who isn't technical. The client doesn't care about prompt engineering. They want to click "optimize" and get a better schedule. That meant shaping how the AI delivers its suggestions — clear, specific, and ready to act on.
For my own workflow I use each AI tool where it's strongest — Claude for coding and architecture, Gemini for research and product testing, Copilot for Microsoft/Azure-related work and debugging, and ChatGPT occasionally for a second opinion.
What I Learned
Building for real clients teaches you things that building for yourself never will:
- Requirements change when someone actually uses it. I built the first version with a complex drag-and-drop system. The client wanted simple click-to-assign. I shipped the complex version anyway — learned the lesson the right way, then shipped the version that actually worked for them.
- "Good enough" ships faster than "perfect." The first version shipped without the AI assistant. Just a visual planner — and 10x better than spreadsheets. That gap matters more than any feature on the backlog.
- Non-technical users don't read documentation. The interface has to be self-explanatory. If you need to explain how your tool works, the tool isn't done yet.
The Best Part
The client uses it. Every week. Without being asked, without needing support, without reverting to spreadsheets. That's the only metric that matters — not downloads, not stars, not a polished demo. Just a real person solving their real problem with something I built. That's the job.
— Elias
Smart Scheduling bauen — KI für echte Business-Probleme
Ein Kunde aus der Gastronomie kam mit einem Problem auf uns zu, das ich hundertmal gesehen habe: Dienstplanung. Jede Woche dieselbe Last — wer arbeitet wann, welche Rollen sind abgedeckt, wer ist im Urlaub. Sie haben es mit Excel, WhatsApp und Klebezetteln gemacht. Wir haben uns gedacht: Wir bauen KI-Tools im Hauptjob. Das hier kriegen wir geregelt.
Das Problem
Manuelle Dienstplanung in der Gastro ist ein Albtraum. Denk drüber nach:
- Mehrere Standorte mit unterschiedlichen Personalbedarfen
- Verschiedene Rollen — Küche, Service, Bar, Reinigung — jede braucht bestimmte Leute
- Vertragsarten — Vollzeit, Teilzeit, geringfügig — jede mit anderen Stundenlimits
- Urlaubs- und Krankheitstage, die sich jede Woche ändern
- Abdeckungsregeln, die du treffen musst, oder der Freitagabend wird unterbesetzt
Ein Fehler heißt unterbesetzter Dienst. Und in der Gastro ist das nicht nur unpraktisch — das sind entgangene Umsätze und gestresste Leute.
Die Lösung
Ich habe einen visuellen Wochenplaner gebaut. Das Zeitraster läuft von 6 bis 22 Uhr. Jeder Dienst trägt eine Rollenfarbe, ein Blick reicht, um zu sehen, was abgedeckt ist und was nicht. Die Kernfunktionen:
- Drag-and-drop-Planung — auf ein Zeitfenster klicken, Person zuweisen, fertig
- Abdeckungsindikatoren — jeder Tag zeigt grün (voll besetzt), gelb (grenzwertig) oder rot (unterbesetzt)
- Mitarbeiterverwaltung — Vertragsstunden, Verfügbarkeit, Urlaubstracking an einem Ort
- KI-Assistent — ein eingebauter Chat, der den aktuellen Plan analysiert und Optimierungen vorschlägt
Der Tech-Stack
const stack = {
frontend: 'React + TypeScript',
backend: 'NestJS',
database: 'Azure SQL',
hosting: 'Azure Web Apps',
ki: 'Claude API',
};
Warum NestJS statt Express? Die Business-Logik ist komplex — Vertragsstunden-Rechnungen, Rollenabdeckungs-Checks, Urlaubskonflikte. NestJS gibt mir Struktur durch Decorators, Module und Dependency Injection. Express wäre schnell zu Spaghetti geworden.
Der KI-Teil
Der eingebaute KI-Assistent ist der spannende Teil. Er analysiert den Plan der aktuellen Woche, erkennt Probleme, schlägt Optimierungen auf Basis von Vertragsstunden und Rollenabdeckung vor und berücksichtigt alle Einschränkungen automatisch.
Das Schwierigste war nicht die KI selbst — es war, die Vorschläge für jemanden nützlich zu machen, der nicht technisch ist. Der Kunde interessiert sich nicht für Prompt-Engineering. Er will auf „Optimieren“ klicken und einen besseren Plan bekommen. Also ging es darum, wie die KI ihre Vorschläge liefert — klar, konkret, direkt umsetzbar.
Für meinen eigenen Workflow nutze ich jedes KI-Tool dort, wo es am stärksten ist — Claude für Code und Architektur, Gemini für Recherche und Produkttests, Copilot für alles rund um Microsoft/Azure und Debugging, ChatGPT gelegentlich für eine zweite Meinung.
Was ich gelernt habe
Für echte Kunden zu bauen lehrt dich Dinge, die Bauen für dich selbst nie lehrt:
- Anforderungen ändern sich, sobald jemand das Ding benutzt. Ich habe die erste Version mit einem komplexen Drag-and-drop-System gebaut. Der Kunde wollte einfaches Click-to-assign. Ich habe die komplexe Version trotzdem ausgeliefert — die Lektion richtig gelernt und dann die Version nachgeschoben, die für sie funktioniert hat.
- „Gut genug“ geht schneller raus als „perfekt“. Die erste Version ging ohne KI-Assistent live. Nur ein visueller Planer — und schon 10x besser als Excel. Dieser Sprung zählt mehr als jedes Feature aus dem Backlog.
- Nicht-technische Nutzer lesen keine Docs. Das Interface muss selbsterklärend sein. Wenn du erklären musst, wie dein Tool funktioniert, ist das Tool noch nicht fertig.
Der beste Teil
Der Kunde benutzt es. Jede Woche. Ohne Nachfrage, ohne Support, ohne Rückfall auf Excel. Das ist die einzige Metrik, die zählt — nicht Downloads, nicht Stars, nicht eine polierte Demo. Einfach ein echter Mensch, der sein echtes Problem mit etwas löst, das ich gebaut habe. Das ist der Job.
— Elias