$ cat /proof_of_work/turnover-agent · agent · telegram bot · scheduling
Turnover Agent
Telegram bot for the manager and the cleaners (email-to-SMS as a fallback), plus a live web dashboard.
FastAPI, Supabase, python-telegram-bot, an LLM agent on the manager's side, cron watchers — on a small VPS I run.
Live in production since late July 2026.
The problem. Every guest checkout starts a scramble: is the place clean before the next check-in? The manager was texting cleaners by hand, tracking replies by memory, and finding out about a missed clean when the guest was already at the door.
The build. An agent that watches the booking calendar for checkouts, then runs the loop by itself: it messages the cleaner the moment a turnover appears, reads the cleaner's tap or one-word reply, updates the state, and escalates automatically if nobody confirms in time. The manager sees everything in Telegram and on a live dashboard.
Why it's built this way. Nothing new to learn. The manager talks to a Telegram bot; cleaners tap a button or reply with one word. The agent does the chasing, the remembering, and the waking-you-up-only-when-it-matters.
The loop, in four messages
From offer to done — built so the cleaner never leaves the chat and the manager doesn't have to lift a finger unless something needs a human.




Screens use sample data.
What it's built to do without being asked
Polls the booking feed every 15 minutes. A new checkout becomes a turnover automatically — no copy-pasting between apps.
No confirmation? A reminder goes out. Still nothing? The escalation watcher flags it to the manager with a plain-English summary of what's stuck.
Cleaners tap a button or reply with a word — “1”, “done”, “issue” — and the agent moves the turnover to the right state. The LLM sits on the manager's side, answering questions in plain English.
Guests who message the bot get a concierge mode: check-out times, local FAQs, and a handoff to the host when it's something real.
The manager's side
A live dashboard next to the agent: today's turnovers with cleaner status at a glance, properties with their calendar and crew.


Screens use sample data.
Why not just buy a platform?
There are good products in this space. They're built for scale, sold per seat, and shaped around their workflow. This agent is built around yours.
Turno-style services connect you with their pool of cleaners, per clean. You pay per booking and — the catch — you're hiring their cleaners, not yours. If your trusted cleaner isn't on the platform, you're recruiting.
The big platforms (Breezeway, TIDY) bundle scheduling, messaging, checklists, and more — they're priced per property and scale up with seats and add-ons. Powerful, but you configure their system, adapt your team to it, and pay monthly for the parts you don't use.
One flat build, your cleaners reply with a tap, your calendar stays where it is, your rules drive escalation. No marketplace, no per-seat math, no monthly fee for 30 features you don't touch. When your operation changes, we change the agent — full customization is the point.
Pricing is scoped per operation — tell us what your day looks like and get a quote in one conversation.
