runbookify
← All plans
Payroll & Timekeeping / Time & Attendance

Geofenced Mobile Punch: Hours Tied to the Job Site, Not a Text Message

Build a phone-friendly clock-in/out app that ties every punch to a real job site with a GPS check and an optional photo — supervisors review the out-of-zone and missing-photo punches and approve the day's hours per job before anything hits payroll.

IntermediateA weekendBuilds onNext.jsSupabaseResend
What you'll build

A mobile web tool where field crews clock in and out at the job site with a captured GPS location and optional photo, out-of-zone and missing-photo punches get flagged (never blocked), a supervisor reviews and approves the day's hours per job, and the tool exports a clean hours-by-job CSV for payroll and job costing.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.

Before you start

  • A Supabase account (free)
  • A Vercel account (free)
  • A Resend account (free)
  • A list of your job sites (name, address, approximate lat/long, radius)
  • Your employee / crew roster
  • Claude Code or any AI coding agent

The problem this kills

Right now, you find out when your crew started work from a text message. "On site at 7." "Wrapped at 4:30." Maybe it's true. Maybe they rolled up at 7:25 and rounded down, or sat in the truck for twenty minutes, or were at a different address entirely. You can't tell, and at the end of the week you're paying for hours you have no way to verify — and billing them to a job whose costs you can't trust.

Then there's the paper trail. Hand-written timesheets that arrive Friday afternoon, half-legible, with no way to tie an hour to a specific site. When a customer disputes a bill, or you want to know whether the Maple Street job actually came in on the labor you quoted, you've got nothing but somebody's memory.

You don't need a $200-a-month enterprise time system with a year-long rollout to fix this. You need a simple thing your crews can open on their phones that says: here's where you are, here's the job, you're clocked in — and a way for a supervisor to glance at the weird ones and sign off before it becomes payroll. You can build that yourself this weekend with an AI coding agent, even if you've never written a line of code.

What you'll build

A phone-friendly web app with two sides:

  • The crew side — a worker opens it on their phone, picks (or is auto-suggested) the job site they're at, taps Clock In, and the app captures their GPS location and an optional photo. Same for Clock Out. If they're inside the job site's zone, it just works. If they're a block off, or signal is weak, it still lets them punch — it just quietly marks the punch for a human to look at.
  • The supervisor side — a review screen that surfaces exactly the punches that need a human: out-of-zone, missing photo, location unverified (low signal), or odd hours. The supervisor approves the day's hours per job, and only approved hours flow into the export.

Out the other end comes a clean hours-by-job CSV — the exact columns your payroll or job-costing system expects — so you can run payroll and finally see true labor cost per site.

What's inside the Implementation Plan

The plan is a single markdown file you paste into your AI coding agent. It walks the agent through building the whole tool, step by step, with a ready-to-copy prompt at the end of each step.

Crucially, it opens by interviewing you about your business — not building from a generic template. Before it writes a line of code, the agent asks how your crews work today, what your job sites and roster actually look like, how big your geofence radius should be, what your overtime and rounding rules are, and which messy cases you hit (split shifts, multiple jobs in a day, a phone with no signal in a basement). It reflects a short tailored spec back to you, you give a thumbs-up, and then it builds the tool to fit your operation — your site names, your crew, your payroll columns.

Inside you'll find: the discovery interview, the data model for job sites / crew / punches, the GPS geofence check (flag, don't block), photo capture stored securely, the supervisor review-and-approve flow, and the hours-by-job CSV export — plus a no-integration fallback so you can run it today even if you have no API into your payroll system.

The governance it includes (this is the point)

This isn't a toy that anyone on the internet can poke at. The plan builds in the controls that make it safe to actually run payroll from:

  • Login, so only your team can open the tool.
  • Row-level security, so a worker only ever sees their own punches and a supervisor only sees their own company's data.
  • A complete audit trail — every punch, edit, and approval recorded with who and when.
  • A hard human-in-the-loop approval gate — flagged punches and the day's hours are reviewed and approved by a supervisor before anything is exported to payroll. The app flags; a person decides.
  • Duplicate guards — the same worker can't accidentally double-punch the same job at the same moment.

And because GPS can be off by a block, the design rule throughout is flag, don't block: a borderline punch is never rejected, it's just routed to a human. Nobody gets locked out of getting paid because their phone guessed wrong.

Who it's for

Ops managers in construction, landscaping, cleaning, home services, and field service — anyone paying mobile crews who show up at multiple sites and currently track time by text, paper, or trust. If you've ever paid for hours you couldn't verify or billed a job on labor numbers you didn't fully believe, this is for you.

You've got this — paste the first prompt and let the interview tailor it to your crews.

Gated download

Enter your email — the plan downloads instantly and a copy lands in your inbox.

By submitting your email you'll also receive the weekly runbookify newsletter. You can unsubscribe at any time.