Field-rep PWA · built in a day

Precision Field

A mobile app that turns roofing field reps into a clean, synced lead pipeline. Built solo in one working session, paired with an AI agent.

Live demoInstallable PWASolo + AI
Roofing field rep with the app
The problem

Two systems that never talk

  • The marketing CRM and the operations platform are two systems that do not sync.
  • No rep opens either one while standing on a lawn.
  • So double entry never happens, and the data is always stale.
  • Stale follow-ups are lost revenue.
The phone connecting the systems
The solution

One app, the bridge

  • A rep captures a lead or appointment in about 10 seconds.
  • It fans out instantly to the marketing CRM, the operations platform, and reminders.
  • The bridge between two systems never built to talk.
  • Two modes: new lead and existing customer.
The app as a bridge
The stack

A lean, modern stack

  • Frontend: vanilla HTML, CSS, JS. Installable PWA with a service worker.
  • Backend: Python standard library only, one serverless function.
  • Integrations: two platform APIs, rooftop geocoding, and gpt-4o vision.
  • Zero heavy dependencies. It just works.
The tech stack
Feature

Smart capture

  • One-tap GPS or address autocomplete drops a rooftop-accurate pin.
  • Required-field guards stop half-saved leads.
  • Appointments carry the right per-market time offset, so they never land 6 hours off.
Smart location capture
The showpiece

Screenshot scanner

  • Reps snap a screenshot from a prospecting tool and upload it.
  • Read by gpt-4o vision, returned as JSON: owner, best phone, email, subject-property address, time, notes.
  • The form auto-fills.
  • Retyping a lead goes from two minutes to two seconds.
Screenshot scanner
Communication

Reminders, both sides

  • The marketing CRM is the communication hub: it books the appointment and sends the reminders.
  • Reminders reach the customer and the rep, at 24 hours and 1 hour before.
  • By SMS and email.
Reminders to customer and rep
War stories

The interesting engineering

  • The cross-origin iframe wall: editors locked behind a frame that blocks automation, so I mapped API vs UI-only and routed around it.
  • Notes onto the calendar: the synced event uses a fixed template, so field notes ride in the event title, the only field that survives.
  • Vision OCR pipeline: client-side resize, vision call, JSON parse, form hydrate, with graceful fallback.
Engineering war stories
Roadmap & close

What's next

  • Storm-data integration: hail maps feeding the lead list.
  • A per-rep storm-findings tab.
  • Real data there surfaces the trends and sharpens our marketing.
  • It is live, it is in reps' hands, and it took a day.
Roadmap and what is next