For commercial cleaning & janitorial operators · 20-100+ cleaners

Two letters.
Six months apart.

From the same operations manager at the same cleaning company. The first one is a resignation. The second one isn't.

A hypothetical illustrative scenario

Diana is a fictional character. The cleaning company, the dates, the client names, and every dollar figure below are illustrative composites based on typical commercial-cleaning economics. They are not real customer data. The features XShift performs in the second letter are real.

Letter 1 of 2
Tuesday, September 16
Re: My resignation, effective in two weeks

I've been your operations manager for three years. I've stayed through the bad months. I've stayed through every Christmas you missed payroll a day late. I've stayed because I believed in what you were building.

I'm done.

I'm tired of getting texted at 6:34 AM because Sarah didn't show up at Sunset Plaza and the property manager is calling you. I'm tired of being the human phone tree. I'm tired of calling 12 cleaners from memory while my kids are eating breakfast — knowing two of them aren't even cleared for that site.

I'm tired of Sunday afternoons. Six to ten hours, every week, building next week's routes for 40 cleaners across 85 client sites. Cross-referencing certifications. Plotting drive times. Holding it all in my head because the grid forgets the moment I save it.

I'm tired of Carlos showing up at Wellness Medical when he isn't CDC-trained, and you blaming me when the contract goes on review. The whiteboard in your office says he isn't cleared. The grid let me schedule him anyway. That's not on me.

I'm tired of finding out about overtime on Monday morning. Maria worked 38 hours coming into Tuesday. The 6 PM Crestview visit tipped her to 41. Nobody saw it. We paid $87 in OT premium that nobody decided to spend. Multiply by 12 cleaners a month, every month. You don't see it. I do. I've watched us bleed roughly $15,000 a year in overtime that never needed to be owed.

I'm tired of Maria asking me at 2 PM on Friday if she can leave by 3:30 to pick up her daughter. Every Friday. I write it down. The next Friday someone else schedules her until 6. She quits. I find a replacement. I train them. They quit too. The industry says 200-300% turnover. We're worse.

I'm tired of contracts going on review because of things we could have prevented. Wellness. Bayside. The Cypress double-booking incident in July. Each one is six figures of revenue. Each one is on me, according to you.

I'm not asking for a raise. I'm not asking for more help. I'm asking for tools that work. I haven't gotten them.

I gave you my best three years. I'm going to use the next two weeks to wrap up handover. I hope whoever takes this seat after me lasts longer than I did.

They probably won't.

Sincerely,
Diana M.
Operations Manager
Six months later

The same desk. The same operations manager. A different letter.

Letter 2 of 2
Tuesday, March 18 — six months later
Re: An update — and why I'm staying

I started writing this last week and kept putting it down because I wasn't sure how to say it. I'll just say it.

I'm not leaving.

Six months ago I gave you my resignation letter. You asked me for two weeks to try one thing. You said: “Let me set up XShift before you walk.”

I gave you two weeks. It's been six months. Here's what changed.

I haven't been texted before 7 AM in a hundred and seventy-two days. The XShift Autopilot Call-Off handles the no-shows now. Sarah called off again last Tuesday. Before I even saw the text, XShift had filtered every cleaner cleared for Sunset Plaza, sent a one-tap accept to four qualified people, and James had taken it. I tapped Approve on my phone at 6:51 AM. I didn't get out of bed.

I have my Sundays back. The XShift AI Copilot validates 20+ constraints per cleaner — availability, role clearances, hour caps, approved time-off, preferences, pairing rules, minimum rest between shifts — across all 40 cleaners and all 85 client sites. That's thousands of constraint checks, in under a minute. I review the schedule for ten minutes. I publish. The six-to-ten-hour Sunday is over. My kids notice. My husband notices.

Carlos hasn't been sent to a medical site since November. We set up roles in XShift — “Medical-Certified Cleaner,” “Food-Service Cleaner,” “Standard.” Only cleaners with the role can be scheduled at sites that require it. The grid won't let us put Carlos at Wellness. (XShift doesn't track when their certs expire — that's still on me to keep current — but it won't schedule someone whose role assignment we've removed.)

The XShift Autopilot Overtime Scanner runs every Friday morning. Last week it found three cleaners heading into OT and recommended swaps with non-OT cleaners who wanted the hours. I approved two and dismissed one. We saved $230 that week alone. Over the last twelve months it's saved us close to $15,000. That number used to leave the building. Now it stays.

Maria is still here. Her schedule has her off by 3:30 every Friday. We set her preferences in XShift — preferred days, preferred start and end times, max hours per week. The Copilot honors them when it generates. She didn't quit. Neither did three others I was sure we'd lose by December. Industry turnover is still 200-300%. Ours dropped to around 100% this year. Still high. Still half of what it was.

You didn't ask me to write this. I'm writing it because I wanted you to know I'm not just staying — I'm here now. The job changed. I changed because of it.

We can talk about the next year on Monday.

— Diana M.
Operations Manager

$29 a month plus a dollar per cleaner.

On 40 cleaners, that's $69 a month.

Less than the cost of one cleaner you didn't lose.

  • 21-day free trial. Full platform.
  • Credit card required to start. Not charged in the trial window.
  • Cancel anytime in the trial. No commitment.
  • Setup runs in natural-language chat. Under 10 minutes.

Two letters. You decide which one your ops manager writes.

What XShift does — and doesn't — for a cleaning company

XShift handles the workforce-management side of your operation: who's scheduled at which client site, who covers a no-show, who's heading into overtime, who's qualified for a specialty site (medical, food service, hazmat — via role assignment), what your weekly hour caps are. XShift does not optimize drive routes or do GPS routing — that lives in your fleet/routing system. XShift does not track certification expiration dates — the manager updates the role assignment when a cert renews or lapses. XShift enforces the rules you configure and your management team remains in control of every decision and can override Autopilot at any time. XShift is a workforce-operations tool, not a compliance product — your company, your management team, your attorneys, and the relevant regulators determine whether your configured rules satisfy applicable law.

About the figures

Diana is a fictional character. The cleaning company, the cleaner names, the client names, the dates, and every dollar figure in the letters above are illustrative composites based on typical commercial cleaning economics (20-100 cleaners, 40-200 client sites). They are not measured XShift customer outcomes and are not drawn from any single customer's data. The features described in Letter 2 — the Autopilot Call-Off, the AI Copilot, role-based assignment, the Overtime Scanner, and employee preferences — are real XShift features. Actual results depend on your operation, wage structure, contract mix, regulatory environment, and how you configure XShift.

Cleaning & Janitorial Staff Scheduling Software | XShift AI