← Blog

Reference design

Agent-run mobile detailing: a ZenSched reference design

• ZenSched Team

The client texts at 9:40. “Nobody came.” Sam is on the next driveway. The camera roll has before-and-afters from three cars, and Square still does not know which stock numbers on the Honda row got done. What if an AI assistant could put Sam on Hale’s Model Y every other Tuesday, GPS-check the van in at the driveway, capture package, add-ons, and before/after photos on a Job Report, and answer “how many of the Honda row are done” — without putting gate codes or package prices into a vendor cloud, and without pretending to be Jobber, Square, or a certified paint-thickness report?

This reference design shows how a 1–5 van mobile detailing shop can deploy an AI agent using ZenSched as the live schedule of record (with a Job Report on the phone) and a local SQLite database for clients, vehicles, packages, fleet schedules, and invoices.

Honest framing: proof of the car, not a booking till

Read this before you clone the kit.

  • The Job Report is an ops record, not a customer sign-off and not a paint certificate. paint_meter is a number the detailer typed from their own gauge. ZenSched does not calibrate it, and this kit does not produce a coating warranty or a condition certificate.
  • It is not Jobber, Square, DetailPilot, or DetailerDrive. No online booking page, no deposits, no tap-to-pay, no “on my way” map, no ceramic lead engine. Keep Square as the till if that is how you get paid.
  • Gate codes, hose notes, and client prices stay only in local SQLite (sites.access_notes). ZenSched locations are a site label and street — not the gate code, not the package price.
  • There is no signature field on purpose. On ZenSched a signature replaces Submit — submitting the form must not look like the client signed the job.
  • Android on Google Play; iOS on the App Store.

The kit’s SKILL.md makes that split a hard rule the AI will refuse to break.

The problem: “nobody came” and a camera roll

Solo vans and 2–5 tech shops already have a stack: Instagram DMs, Google Calendar, Square or Venmo, before/afters in WhatsApp. When a driveway client or a fleet manager asks for proof, the evidence is a text thread.

The week looks the same whether you detail the cars or dispatch two techs:

  1. Was Sam at Hale’s driveway, and which cars on the lot got done?
  2. What package, what add-ons, and can you show before and after?
  3. Recurring Tuesday versus a one-off fleet row — same form, one pin for the lot.
  4. Paying techs per car without reconstructing Friday from memory.
  5. Coverage when a van is down mid-week.

Not on that list: Instagram growth, buying ceramic leads, or a public booking widget.

The solution: split responsibility between ZenSched and local data

This architecture divides work cleanly:

  • ZenSched: Live pin per driveway or fleet lot, GPS-verified check-in and check-out (geofence enforced via policy, not per site), detailer app + push, one Job Report per car (package, optional paint-meter reading, before/after photos, add-ons, on-site upsell). A fleet lot is one location and one rolling event; each car is a shift.
  • Local SQLite database: Clients, vehicles, packages, recurring fleet masks, job amounts, invoices, contractor payouts. Links to ZenSched location, event, and shift IDs. After one metered form read, punches and Job Report summaries are cached locally.

The agent orchestrates both: it expands this week’s due fleet rows, creates shifts on ZenSched, and writes verified arrival plus Job Report answers back into SQLite for the invoice.

Split responsibility architecture for mobile detailing: ZenSched holds the live job and GPS punches, local SQLite holds clients, packages, and invoices

Privacy: gate codes never cross

Access notes and parking notes stay in sites.access_notes. ZenSched receives the site label and street address for the pin, plus the Job Report answers — never a gate code in a location title. If you ask the agent to put a code into ZenSched, it should refuse.

Day-to-day workflow

  1. You to agent: “Put Sam on Hale’s Model Y every other Tuesday 8–10.”
  2. Agent reads SQLite: Client, vehicle, package, and fleet_due_this_week for lot work.
  3. Agent creates shifts on ZenSched: One location_create per new driveway or lot ($0.03), a rolling event for fleet sites (≤60 days) or a one-day event for a one-off, form_create once for the Job Report, form_assign, shift_create per car. Sam gets a push.
  4. The detailer does the work: GPS check-in at the pin, Job Report (package, photos, add-ons), check-out.
  5. Operations: “Is Sam at Hale’s?” “How many of the Honda row are done?” Agent answers after one metered read.
  6. Money: Invoices and per-car payouts from local job rows. Square still takes the card.

Mobile detailing workflow from the week's due cars through GPS check-in, Job Report, and invoice

Job Report on the phone

  • Package performed
  • Paint-meter reading (optional — a field note, not a certificate)
  • Before and after photos
  • Add-ons and any on-site upsell
  • Notes

After photos are required. A four-before / four-after card still bills once.

Setup summary

About 15 minutes:

  1. Install an MCP client: Claude Desktop, Cursor, or Muse Code.
  2. Connect ZenSched MCP at https://mcp.zensched.com/mcp.
  3. Point easy-sqlite-mcp at a local detailing database on an encrypted, backed-up folder.
  4. Paste the zensched-detailing-kit skill and load schema.sql one statement at a time.
  5. zensched_guide, then account_create for a zsc_ key. Invite detailers at $0.25 each.
  6. Fund when needed. The $5 activation deposit is credited to the balance.

Apartment garages and villa compounds need a wider policy radius (policy_update), not org-wide remote_checkin. Fleet lots reuse one pin. One-off driveways get a single-day event.

Worker app: Android on Google Play and iOS on the App Store.

See the ZenSched quickstart and the detailing kit.

Metering

See pricing: GPS $0.10 per punch, geocode $0.03 per new site, invite $0.25, form reads $0.05 basic / $0.15 with photos (once ever).

Worked example: 2 techs × 6 cars/day × 21 days = 252 jobs with before/after photos → about $88/month, or ~$0.35 per car. A solo book at ~105 jobs is about $37/month. GPS-only proof is about $0.20 per car.

Read the comparison honestly. At 252 photo-logged jobs ZenSched is above Square Appointments Plus ($49) and under Jobber Connect ($149–$199). It is never cheaper than Square Free. Jobber and Square include quotes, booking, and card payments. The sell is enforced GPS plus a Job Report, not a discount versus the till. Do not call the paint-meter field a certificate.

What you get

  • Geofenced check-in at the driveway or fleet lot
  • A Job Report: package, photos, add-ons, optional paint-meter note
  • “How many of the Honda row are done?” in plain English
  • Per-car invoices and contractor payouts from local rows
  • About 15 minutes to stand up

What you don’t get

  • No booking page, deposits, or tap-to-pay
  • No route optimizer or customer portal
  • No ceramic lead gen
  • No certified paint-thickness report
  • Not a replacement for Jobber or Square if quoting and cards are the daily work

Who this is for

Ideal for: solo vans and 2–5 tech shops on DMs and a camera roll, recurring driveway plans, and small fleet or dealership make-ready rows. Operators who already talk to Claude, Cursor, or Muse.

Not for: bay studios whose product is the waiting room, or shops that need Jobber’s client hub as the system of record. Keep Square if it is the till.

Get started

Ready to build your own workflow?

Clone the reference kit and connect ZenSched to your AI agent.