If you have ever cleaned a Sunday-turnover kitchen you know the shape of the regret. A guest checks out at 11 a.m., posts a four-star review that night mentioning "the kitchen sink has been draining slowly for the last two nights," and the host does not read reviews until Wednesday. By then the slow drain is a drip-clogged under-sink the next cleaner walks into, and the next guest checks in to standing water. The maintenance signal sat in the review stream for three days; the host's spreadsheet of "wait until someone mentions it twice" never filed a ticket. Roostr's review-driven maintenance is the answer — a fourth capability that watches the review stream, extracts the maintenance token, runs it through a per-listing pretriage threshold, and emits a queued ticket before the host reads the review.
What review-driven maintenance actually is
Review-driven maintenance is the fourth of the four capabilities, joining nightly repricing, guest inbox, and turnovers under the Auto/Manual posture all four share. It watches the review stream for maintenance tokens guests prefigure in a clean four-star write-up, routes them through a per-listing threshold, and lands them on the maintenance board. The loop has no human in it unless the threshold trips — that hands-off, threshold-gated shape is the point.
- No human in the loop unless the threshold trips. A mention the threshold absorbs queues silently on the AI Suggestions hub for tap-or-skip; a mention the threshold surfaces opens a queued ticket on /dashboard/maintenance with the suggested fix, suggested assignee, and a verification-photo stub. The host's read of the review never gates the agent's write — read and write are two separate decisions on two separate surfaces.
- The agent watches the review stream AND the post-stay inbox reply. A guest who texts "the kitchen sink is starting to drain slowly" Monday morning prefigures the Monday-night review. The agent reads both, folds them into one signal, and the threshold reads the aggregated confidence.
- The threshold is per-listing, not app-wide. A "kitchen slow drain" is `ignore` for a cabin whose last 200 reviews always mention a slow drain (the cabin's reputation baseline); the same mention is `high` for a city apartment whose last 200 reviews never mention plumbing. Roostr does not know the noise floor; the per-listing threshold is the host's posture.
- The ticket lands on the host's queue, never the host's inbox. Above-threshold signals open as tickets on /dashboard/maintenance, grouped by listing, severity, and confidence. Below-threshold signals queue on the AI Suggestions hub. The host reads the queue, the same way the host reads the queue for refunds on the inbox surface.
The five-step review-to-ticket loop
Each maintenance signal completes the same five-step path from review mention to maintenance ticket. The extraction model is the same one the other pricing, inbox, and turnover surfaces use — consistent under one crew — so a host who has trusted the extraction on those surfaces has already earned the trust on maintenance. The threshold is the new piece; the rest is consistency.
- Review mentions a maintenance token, classified by category and reason. "Kitchen sink has been draining slowly for the last two nights" carries the `kitchen / plumbing` token with a `slow-drain / two-night-pattern` reason. The extraction model emits a structured signal the threshold reads in two structured fields, not a free-text re-read.
- Signal is emitted with a severity tier and a confidence score. Low (cosmetic: chipped mug, missing remote), medium (inconvenient-but-not-blocking: slow drain, flickering lamp), high (degraded stay: broken AC, leaking faucet), destructive (property risk: clogged main, gas smell). Confidence runs 0–1 on the token match and reason pair.
- Above the threshold, the ticket opens with fix, assignee, and verification-photo stub. A medium `kitchen / slow drain` crossing this listing's threshold opens a ticket on /dashboard/maintenance with three fields pre-written: the suggested fix (`snake + reseal P-trap`), the suggested assignee (`handyman who handled the kitchen-faucet last quarter`), and the stub (`post-fix under-sink, before next check-in`). Below the threshold, the same row sits on the AI Suggestions hub for tap-or-skip.
- The host never reads the review to know. Saturday morning's read of /dashboard/maintenance tells the host everything that crossed the threshold that week; the AI Suggestions hub tells the host everything that did not. The agent never tells the host to read the review — the agent tells the host what's on the queue.
A date-stamped example: Tuesday, August 12. The previous guest checked out Sunday at 11 a.m., texted Tuesday morning that the kitchen sink was draining slowly, then posted a four-star review at 09:14 with the slow-drain mention as the second sentence. The signal emits at 09:17 — category `kitchen / plumbing`, reason `slow-drain / two-night-pattern`, severity `high`, confidence `0.91`. The pretriage threshold is `kitchen = high` for this listing; the signal crosses it. The ticket opens at 09:17 with the suggested fix, the handyman who reseated the faucet last quarter, and the verification-photo stub. The host has not read the review yet; the signal is already on the queue.
The Sunday-slow-sink walkthrough
The walkthrough is the host opening /dashboard/maintenance Wednesday morning, the turnover cleaner arriving for the next booking already carrying the maintenance handoff, and the next stay's review posting a positive signal that crosses the same threshold back in the opposite direction. The queue is two-way — a signal that crossed up this week can cross down next week, and the loop handles both directions the same way.
- Wednesday morning, the host opens /dashboard/maintenance. One open ticket, dated Tuesday 09:17. Suggested fix reads `snake + reseal P-trap`. Suggested assignee reads `Marcus H. — handled the kitchen-faucet reseat in May`. Verification-photo stub reads `post-fix under-sink, before next check-in`. The queue tells the host what the agent did, with the same itemized receipt the pricing and turnover rows carry.
- The Wednesday turnover cleaner arrives pre-loaded with the handoff. The brief the cleaner already carries now carries a maintenance line item pre-written from the Tuesday signal. The cleaner reads the brief on the way over, plays Marcus directly, and the contractor window is on the cleaner's calendar.
- Wednesday afternoon, Marcus snakes the drain and reseals the P-trap. Marcus arrives mid-afternoon, snakes the slow drain, reseals the P-trap, snaps a verification photo of the cleared under-sink, and drops it into the listing photo queue.
- The next stay's five-star review emits a positive signal that crosses the threshold back down. "Kitchen drain quiet for the first time in the year" emits a positive signal on the same token (`kitchen / plumbing — confirmed working`), classifies `low`, and the threshold absorbs it because this listing's baseline already absorbed the up-cross three days earlier. The down-cross is a calibration event, not a fresh row.
Why this is the fourth capability
Built for the 1–3 cabin owner
Catch the wedding weekend your inbox misses.
Nightly repricing on every cabin, an in-tone inbox that doesn't drop the Saturday enquiry, photo-verified turnovers between groups, and a maintenance queue that only surfaces the signals that cross the threshold.
The Auto/Manual handoff pillar lays out the global rule: every Auto-mode action is logged with the same itemized receipt a human would write, every Manual-mode action queues on the suggestion hub for tap-or-skip, and the host flips the row the morning math moves. Review-driven maintenance inherits the same posture and applies it to the maintenance stream.
- Default is Manual with a low pretriage threshold. A host who has never seen the surface defaults wants every signal to surface until the host has reviewed 30+ signals and measured this listing's noise floor. Manual-with-low-threshold is the posture that earns the Auto flip without losing the queue.
- A flip moves the threshold above the noise floor, not above zero. A host who has reviewed fifty signals and accepted the agent-suggested threshold has earned the trust to flip Maintenance Auto-above. The line moves to a tuned band where only signals crossing the band's edge surface.
- A wedding weekend flips the row Manual for the duration, then Auto back after. A cabin owner checks the AI Suggestions hub the week of a Saturday wedding and sees `Late-July: AC complaints above threshold across the wedding window`. The cabin owner flips Maintenance Auto-above for the wedding weekend — every crossing-band signal surfaces — and flips back to its tuned Auto on the Tuesday after the lift decays. The flip is durable across the nightly run; the flip is reversible in one tap.
- The host's queue stays the surface the host reads. Settings → Automation, the maintenance row fourth on the list, the Pretriage threshold dropdown on the right rail next to the row's default badge. The agent never files outside the band; the host never reads inside an envelope the agent could close.
Why the threshold has to be per-listing, not app-wide
The threshold is not a Roostr opinion; it is the host's per-listing posture, calibrated on this listing's review history and reputation baseline. An app-wide threshold would treat every "slow drain" mention the same way regardless of which listing it landed on; a per-listing threshold treats the mention as a signal on its own listing's history sorted against its own baseline.
- A "kitchen slow drain" is `ignore` on one listing and `high` on another. For the Smoky Mountain cabin whose last 200 reviews always mention a slow drain (the cabin's reputation baseline), the same mention is `ignore` — not because the drain is fine, but because the noise floor is the cabin itself. For the downtown apartment whose last 200 reviews never mention plumbing once, the same mention is `high` — a regression, not a baseline.
- The threshold is the host's posture, not Roostr's opinion. Roostr suggests a threshold at onboarding based on the listing's review history; the host accepts, edits, or moves it manually. The host earns the Auto flip the same way the host earned the pricing and inbox Auto flips — by reviewing 30+ signals and accepting the agent-suggested threshold on the row.
- Set in Settings → Automation → Maintenance → Pretriage threshold. Same path as the other four rows — the Pretriage threshold dropdown on the right rail next to the default badge.
- The host earns the Auto flip by reviewing thirty signals. One row, one tap, one signal at a time, with the verification-photo stubs and the itemized receipts the Auto-mode rows carry. A host who has reviewed thirty signals has earned the Auto flip. The flip is one tap. The trust is the row-by-row review that earned it.
What changes on the host's Saturday morning
The Sunday-slow-sink review never had to reach the host's eye. The signal landed on the maintenance board Tuesday at 09:17 — three minutes after the review hit the stream, three days before the host opens reviews on the Saturday-morning check. Saturday's read of /dashboard/maintenance tells the whole story: the row Marcus handled Wednesday, the verification photo on the photo queue, and the positive signal the next review emitted Thursday crossing the threshold back down. The Sunday spreadsheet never knew.
- The kitchen-sink review never had to reach the host's eye. The signal landed Tuesday at 09:17 and surfaces Saturday as one closed ticket with the verification photo Marcus dropped Wednesday. The inbox tab stayed empty; the maintenance board carried the row without weeknight intervention.
- The turnover brief carried the contractor handoff before the cleaner arrived. The Wednesday cleaner arrived with a brief that pre-loaded Marcus on the kitchen-sink line — no email to ask whether to send a contractor, no waiting on the host's morning check.
- The AI Suggestions hub shows the down-crossing row the host already knew about. The AI Suggestions hub shows the positive signal from the next guest's review — `kitchen / plumbing, low, confidence 0.96` — queued for tap-or-skip. The host taps approve, the stub returns to `confirmed working — calibration event`, and the row drops off.
- The Sunday spreadsheet of "wait until someone mentions it twice" is replaced by a queue. One row per signal, one suggested fix per row, one verification action per row. Maintenance becomes a queue, not a memory — the same shape as pricing, inbox, and turnovers.
Closing — the fourth capability on the same crew
The full maintenance loop lives in the review-driven maintenance deep dive, with the pricing page alongside it for the per-listing and per-roster plans. The cabin-owner form of the loop — the same threshold shape, the same wedding-weekend flip, the same Tuesday preview pattern — is the segment landing at For cabin owners. The unified comparison with separately managed tools lives on /compare, and the explainer for how the AI Suggestions hub reads the maintenance queue lives on the AI Suggestions hub pillar. The Auto/Manual posture maintenance inherits — every flip durable across the nightly run, every flip reversible in one tap, the host flipping the row the morning math moves — is the Auto/Manual handoff maintenance slots into as the fourth capability row.
Built for the 1–3 cabin owner
Catch the wedding weekend your inbox misses.
Nightly repricing on every cabin, an in-tone inbox that doesn't drop the Saturday enquiry, photo-verified turnovers between groups, and a maintenance queue that only surfaces the signals that cross the threshold.
If you want review-driven maintenance running on your roster — [Join the Roostr waitlist →](/waitlist).