Cleaners upload 15 to 25 photos a turn and nobody reads them until a guest complains. Turnover Photo Check reviews every photo against a golden reference for that exact property and surfaces only what a guest arriving in four hours would notice. Fewer than 15% of turns ever reach you.
Connect your cleaning platform (Breezeway, Turno, or Properly)
Capture a golden reference once per checkpoint per property
Go live, it reviews silently and only shows you the flags
What this does
Compares each photo to that property's own golden reference, so a missing pillow at Oak House flags but a pillow that was never at Maple House does not
Grades every finding one to five, from a cosmetic angle to a check-in blocker to possible damage
Surfaces only severity three and up, and sends the cleaner a rework request with the annotated photo when check-in is close
Prepares the AirCover claim packet the moment it spots damage, with the before photo, the after photo, and the timestamps
Defaults to not flagging, because false positives waste your time and burn cleaner trust
Saves
The 300 or more photos a week nobody has time to open, reviewed for you
The AirCover claim you miss because the 14-day window closed, filed with evidence while it still counts
Workflow
Trigger
The moment a cleaner marks the turn done
Fires on the completion webhook from Breezeway, Turno, or Properly, with a daily 8am backup pass for anything missed.
Tool call
Pull the photos and the reference
cleaning.get_photos() + golden.get() · every photo grouped by checkpoint, next to the canonical shot and a few recent good ones for that property.
Prompt
Compare and grade
vision.analyze() weighs each new photo against the reference and scores it one to five, checking neighboring shots first so a camera angle is not mistaken for a problem.
Watch
Flag only what a guest would see
Passes the clean turns in silence. Severity three and up goes to the review queue, and a close check-in triggers an annotated rework request to the cleaner.
Draft
Build the claim packet
aircover.prepare_packet() · on likely damage, assembles the prior-stay photo, the flagged photo, the EXIF timestamps, and a factual note, held for your approval.
Approval
You get a short morning card
At 8am you see only yesterday's flagged turns, at most a handful, each with Mark OK, Rework, or Start claim. A clean night stays silent.