← The work

KangRoo AI · built mid-2026

AI Maintenance Triage System

“What happens to the 2am leak email when nobody is awake to read it?”

  • Shelved
  • Email-only
  • Autonomy dial
  • Auditable trail

An AI maintenance desk for independent landlords and small property-management firms. A tenant emails a problem, or submits a short portal form with a photo. The system ranks the urgency, picks the right vendor from the manager’s own list, drafts the dispatch, chases the scheduling, confirms the fix with the tenant, and logs every decision it made to an auditable trail. Built to production readiness in mid-2026, then deliberately shelved.

The problem

A small landlord is the maintenance desk. Somewhere between five and a few hundred units, there is no facilities team: there is one person’s inbox, and every leak, dead outlet and broken lock lands in it with the same subject-line urgency. The expensive failures are the triage misses: the “slow drip” that was actually active water intrusion, read nine hours late. The product’s one job is to make sure the 2am emergency is recognized as one at 2:04am, and everything else is handled without waking anyone.

How it works

Everything arrives and leaves as email, on purpose. Claude classifies each request’s urgency and category with confidence scores; a confident, routine ticket flows through to vendor dispatch on its own, while anything below the confidence bar, above the spend cap, or emotionally hot lands in the manager’s Needs You lane instead of being guessed at. The manager’s dashboard is three lanes (Needs You, In Flight, Resolved) with a per-ticket kill switch that hands any conversation back to a human mid-flight.

Diagram scrolls sideways →

The maintenance pipeline: tenant email, triage with confidence, the Needs You gate, vendor dispatch, resolution, and the audit trail under all of it A tenant email with a photo is triaged by urgency and category with confidence scores. Low-confidence, over-cap, or hot tickets stop in the manager's Needs You lane; the rest flow to a vendor dispatched from the manager's own list, scheduling is negotiated, and the tenant confirms resolution. An audit trail underneath logs every decision, and an autonomy dial sets how much runs without the manager. THE TENANT an email, or a short form + photo plain language 2:04am TRIAGE urgency + category confidence scored emergency recognized as one, instantly unsure means ask NEEDS YOU THE VENDOR best fit from the manager’s own list dispatched by email scheduling negotiated RESOLVED tenant confirms the fix ticket closes with its whole history every AI decision logged to an auditable trail, in the same motion as the decision PM-LED SHARED TENANT-LED below the confidence bar, above the spend cap, or emotionally hot: it stops at the gate a per-ticket kill switch hands any conversation back to a human mid-flight
the gate, and the dial position flow what stops and waits for a person
Fig. 1. The desk, and the dial. The autonomy setting is a product control, not an engineering constant: PM-Led proposes everything, Shared runs the routine and escalates the rest, Tenant-Led runs the desk and reports. Six underlying knobs bundle into those three positions, and the audit trail is identical in all of them.

Screens, running on demo data

KangRoo dashboard with the three lanes: Needs You, In Flight, and closed tickets, on demo data
An emergency ticket thread: tenant reports water intrusion, the system dispatches a plumber, the vendor confirms an ETA, on demo data
The tenant's live status page for an emergency ticket, with the assigned vendor and updates, on demo data
The tenant submission form with a photo attachment, on demo data
Analytics view: AI autonomy rate, average resolution and dispatch times, on demo data

Where the lessons went

The product that survived the consolidation is the quoter, and it inherited this system’s spine: deterministic rules where money is involved, a gate wherever the system is unsure, and a log under every decision. How the quoter works →

If you run buildings and want to argue about where the autonomy dial should sit, email me.