TL;DR: A residential roofing contractor in Denver was losing disputes not because their work was poor, but because they couldn't find the photos that proved it six months later. Crews texted or emailed photos to the office. The office manager spent 8-12 hours a week filing them. Folder names were inconsistent. Thirty to forty percent of jobs had documentation gaps. Four disputes in the past year were lost or settled for roughly $47,000 in avoidable costs. We built a four-stage agent that lets crews text photos to a dedicated number, auto-matches each photo to the right job using GPS and schedule data, categorises by photo type using image recognition, and generates complete evidence packages in 30 seconds. Documentation completeness jumped from 60-70% to 94%. Pam's filing time dropped from 10 hours a week to 30 minutes. Agent cost: $180/month.
Six Photos. Maybe the Right Job.
A homeowner in south Denver called the roofing company in September. She'd noticed interior water damage in her second-floor bedroom. The roof had been replaced eight months earlier. She wanted it fixed under warranty.
The owner said absolutely. Send over photos of the damage and they'd schedule an inspection.
Her next email included photos of the ceiling stain. And photos from her own neighborhood inspector who'd already examined the roof. His report suggested improper flashing around a vent stack. He was recommending a full reinspection at the roofer's cost.
The owner needed the original job site documentation. Specifically: photos showing the flashing installation, which would either vindicate his crew or confirm the defect.
He called Pam, the office manager. "Can you pull the photos from the Henderson job in March?"
Her reply took 40 minutes. "I found some. I think they're from the Henderson job. There are six photos. None of them show the vent stack clearly."
Six photos. Possibly from the right job. The neighborhood inspector had 23 photos of the defect.
They settled for $18,000 rather than fight it. Not because the work was bad. Because they couldn't prove it was good.
The Company
Residential roofing contractor in Denver, Colorado. Eighteen employees: two owners, Pam as office manager, three project managers, four crew leads, eight roofers. Roof replacements, repairs, inspections, and insurance claim work. About 180 to 220 jobs per year. Average job value: $12,000 to $28,000. Denver's hail season from May through September drives heavy insurance claim volume.
The documentation process: crews take photos on their phones. Text them or email them to the office. Pam saves them to a shared Google Drive in job folders. The problem is everything downstream of "crews take photos."
Folder naming is inconsistent. Some crews use "Henderson 3-15-26." Some use "Job 47." Some use "Johnson residence" (wrong surname). Some just email IMG_4392.jpg with no context and expect Pam to figure it out. She spends 8 to 12 hours per week filing, renaming, and organising. Even with her effort, 30 to 40% of jobs have documentation gaps.
The dispute numbers tell the story. Twelve to eighteen disputes per year require documentation: warranty claims, customer complaints, insurance adjuster requests. In the past 12 months, four were lost or settled because the documentation wasn't there when they needed it. Total avoidable cost: roughly $47,000.
Not for bad work. For un-provable work. There's a difference.

Why Every Fix Failed
The shared Google Drive works if everyone files consistently. They don't. Crews are on a ladder, not a desk. Pam spends hours cleaning up every week, and she's still behind.
The owners bought a project management tool with built-in photo tagging. Crews were supposed to log in, select the job, and tag each photo before taking it. It got used for about two weeks. Then crews went back to their phone cameras. "Too many steps when you're 30 feet up on a roof." Any process that adds friction to the actual work of roofing will lose to a process that doesn't.
Making crew leads responsible was the next attempt. The result: crew leads handed Pam a pile of unlabelled photos at the end of each week. They had no time on-site to organise. They took the photos, ran the job, moved on.
A three-page laminated SOP on photo standards got ignored. Nobody reads a laminated document while climbing a ladder.
Hiring a documentation coordinator was discussed. $40K-plus per year. And it would still depend on crews capturing the photos in the first place. Just moving the bottleneck from Pam to someone else.
Every approach assumed the crews would change their behavior. They didn't. They couldn't. Documentation had to happen without adding friction to the actual work.
What We Built
Four stages, designed around one rule: no new steps for the crews.
Stage 1: Frictionless capture
Crews text photos to a dedicated phone number. That's it. No app login. No tagging. No folder selection.
The agent receives the text, identifies the sender by phone number, and reads the photo metadata: timestamp and GPS coordinates when available. Every photo now has three pieces of information before a human touches it: who took it, when they took it, and where.
This sounds trivial. It isn't. Every previous attempt failed because it required the crew to do something extra. Texting a photo isn't extra. They're already doing it. The only change is which number they text it to.
Stage 2: Smart job matching
The agent cross-references the photo's timestamp and GPS location against the day's active job schedule. If the sender is scheduled at the Henderson job at that time and location, the photo gets assigned automatically. No human decision required.
For edge cases (no GPS, crew at multiple jobs that day, lunch at a location between two sites), the agent sends one clarifying text: "Is this for the Henderson job or the Martinez job?" The crew member replies with the job name. Takes three seconds. That's the full extent of filing work the crews do.
Stage 3: Structured documentation library
Every photo gets saved to the correct job folder with a standardised filename: [JobName]-[Date]-[PhotoNumber]-[CrewMember].jpg. The agent also categorises photos using image recognition: before shots, progress shots, after shots, damage documentation, material delivery, compliance sign-offs.
And it flags missing categories. "Henderson job has 12 progress shots but no 'after' shots yet. Reminder to crew lead?" This catches the most common documentation gap: crews who capture the work in progress but forget the final photos because by then they're moving gear to the next site.
Stage 4: Retrieval and evidence packages
When a dispute, warranty claim, or insurance request comes in, Pam pulls a complete evidence package for any job in 30 seconds. All photos in chronological order, categorised by type, with crew attribution and timestamps. Downloadable as a PDF or a shareable folder link.
The Henderson retrieval that took 40 minutes and produced six possibly-relevant photos? Under the new system, 30 seconds and 47 photos. Including the vent stack flashing, documented from three angles, with timestamps proving it was installed correctly on the day the crew was on-site.

What We Learned Building It
GPS metadata was less reliable than expected. iPhones strip GPS data when photos are sent via SMS in some cases. Android phones vary by manufacturer. We expected to match about 90% of photos automatically via GPS plus schedule. Actual rate: about 72%. The other 28% needed the clarifying text. Not a problem, but worth knowing. We added a fallback: if GPS is missing but the sender is only scheduled at one site that day, auto-assign without asking.
Image recognition for categories needed training. Generic image recognition can tell a roof from a ladder from a dumpster. It can't reliably tell a "before" shot from an "after" shot without context. We trained the categorisation on about 300 photos from the company's historical archive, labelled by Pam. After that, category accuracy hit 88%. Not perfect. Pam reviews the edge cases in her 30 minutes a week. Dramatically better than the 0% categorisation the old system offered.
Photo volume went up, not down. We expected efficiency gains. What we didn't expect was that crews would take more photos once they knew the photos would actually be useful. The pre-agent average was 18 photos per job. Post-agent: 34 photos per job. One crew lead said it plainly: "Before, taking photos felt pointless because nobody could find them anyway. Now I take more because I know they'll be there when we need them." Removing friction changed behavior in a way we didn't predict.
The first save happened in week three. A homeowner claimed the crew had damaged her landscaping. The agent pulled eight photos showing the landscaping before, during, and after the job. The photos actually supported the homeowner's claim. There was minor damage the crew had caused without realising it. But instead of a lawsuit or an angry dispute, the owner could say: "You're right, here's what happened, let us handle it." He paid for the landscaping repair. The homeowner left a positive review. The difference between a $600 repair and a $12,000 small claims case was the ability to see what had actually happened.
The Numbers
Metric | Before | After |
|---|---|---|
Photos per job (average) | 18 | 34 |
Documentation completeness | 60-70% | 94% |
Pam's filing time/week | 8-12 hrs | 30 min |
Retrieval time for disputes | 40+ min | 30 sec |
Disputes lost due to gaps (Q1) | Tracking pending | 0 so far |
Agent cost/month | N/A | $180 |
Estimated annual savings: $35,000 to $55,000. Avoided disputes, faster insurance processing, and Pam's recovered hours back on actual office management work instead of photo filing.
$180 per month against $35K to $55K in avoided costs. The payback is almost embarrassing.
But the owner said the real change wasn't on a spreadsheet. Insurance adjusters started specifically requesting photos from this company's jobs because they were consistently well-documented. Claims moved faster. A few adjusters began recommending them to other homeowners filing claims.
And something more personal: he stopped wincing when the phone rang. "When a homeowner called about a warranty issue, my first thought used to be 'please let us have the photos.' Now my first thought is 'let's see what actually happened.' That's a different way to run a business."

The Pattern
If you're running a field services business and your documentation depends on crews remembering to file things and an office person triaging the mess, you don't have a documentation system. You have a documentation hope.
Your disputes aren't decided by whose work was better. They're decided by who has better evidence six months later. The side with better evidence is usually the side with a system, not the side with the best crew.
Your crews aren't careless. They're working 30 feet in the air, holding power tools, running to meet a schedule. They don't have hands free to tag files. Any solution that asks them to do more filing will fail, and asking them anyway is asking them to either become worse at their actual job or give up on the filing entirely.
The agent doesn't ask crews to change anything. They take photos. They text them. Everything that used to happen in Pam's 8-12 hours a week happens automatically. When a dispute arrives, the evidence is there. When an insurance adjuster asks, the package is 30 seconds away.
The work doesn't change. The filing disappears. That's the difference between a system and a hope.
Want to see if your documentation process would hold up under a dispute? The AI Bottleneck Audit takes 5 minutes and shows you where your evidence gaps are hiding. No pitch.
Want to see 25 agent architectures across different industries? Download Unstuck. It includes blueprints for equipment tracking, subcontractor matching, intake, referrals, and more.
by TG
for the AdAI Ed. Team


