A photo, an hour, and a dollar are the same record.

A photo app, dispatch software, a texting tool and a punch clock are four half-copies of the same job, and somebody spends their week carrying data between them. Crewbound keeps one copy: document the job, bill it, get reviewed, run the hours into payroll.

one login, one bill
OfficeJobsFri 11:55 AM
Bell Heating & Air
16 jobs so far this week
Sample week
Photos
68
Hours
29:53
Invoiced
$10,294.74
Collected
$7,527.54
This week
  1. Mon: $1,492.40 invoiced, $1,327.40 collected
  2. Tue: $2,134.09 invoiced, $1,636.89 collected
  3. Wed: $3,397.50 invoiced, $3,397.50 collected
  4. Thu: $2,836.75 invoiced, $976.75 collected
  5. Fri: $434.00 invoiced, $189.00 collected
As the work lands
  1. Monday8:05 AM240 Foothill Dr#1036 · Furnace won’t ignitePaid
  2. 10:40 AM88 Cedar Hollow Ct#1037 · Annual maintenancePaid
  3. 1:15 PM615 Bonneville Way#1038 · Condenser fan motorPaid
  4. 3:30 PM12 Marley Ln#1039 · No cooling — diagnosticInvoiced
  5. Tuesday8:40 AM1418 Aspen Ridge Dr#1042 · No heat — diagnosticPaid
  6. 11:20 AM92 Larkspur Ln#1043 · Spring maintenancePaid
  7. 2:05 PM3390 Wasatch Blvd#1044 · Coil clean + refrigerantPaid
  8. 4:20 PM24 Sunnyside Ave#1045 · Blower wheelInvoiced
  9. Wednesday7:50 AM51 Emigration Way#1048 · Thermostat replacePaid
  10. 10:15 AM1207 Millcreek Rd#1049 · Furnace tune-upPaid
  11. 1:40 PM7 Quarry Rd#1050 · Condenser swapPaid
  12. Thursday8:20 AM44 Red Butte Cir#1053 · Ductwork leakPaid
  13. 11:45 AM902 Holladay Blvd#1054 · No heat — igniterPaid
  14. 3:10 PM18 Kearns Ave#1055 · Mini-split installInvoiced
  15. Friday8:00 AM330 Parleys Way#1058 · Maintenance plan visitPaid
  16. 10:30 AM76 Alta Vista Dr#1059 · Compressor diagnosticInvoiced

Every row above is one record — the photos, the hours, the invoice and the payment all sit on it.

One job, start to finish

This is one Tuesday at an eight-person shop. Watch what the record collects.

Four figures come out of a single job: the hours worked, the photos taken, the amount billed, and the amount collected. In most shops those live in four systems and get reconciled by a person on a Friday. Here they are one row, and each one fills below at the moment that produced it.

The record
Job #1042 — no heat, 1418 Aspen Ridge Dr
Bell Heating & AirRay O.One Tuesday
Sample job
Hours
2:48
Photos
6
Invoiced
$834.14
Collected
$834.14
7:12 AM
7:12 AM

The call nobody caught still becomes a customer.

The shop is on a roof. The phone rings out. Crewbound texts back from the shop's own number within seconds, opens a thread, and files the caller as a lead with the address they typed. By 8:40 the office has turned that thread into a booked job — customer, job, labor and trip charge off the price book, a draft estimate already on it, Ray assigned. Nothing was typed twice.

OfficeInbox
(801) 555‑0148
Missed call · 7:12 AM · 22 seconds
Unreturned
Hi — this is Bell Heating & Air. Sorry we missed you. What’s going on with your system? We can text right here.
Auto text‑backDelivered 7:12 AM
Furnace is running but the house won’t warm up. 1418 Aspen Ridge Dr. Any chance today?
7:14 AM
New lead created
1418 Aspen Ridge Dr
From missed call · no name yet · needs a callback
New
11:05 AM
11:05 AM

What Ray does on his phone lands on the record the office has open.

He clocks in against job #1042, shoots the cabinet before and after, reads the thermostat, and writes what he found. There is no upload step and no end-of-day paperwork, because the phone and the portal are looking at the same row.

Seats 2:48 and 6 photos into the ledger

Clock-in is live today. Geofencing it to the job site is on the list and isn't built, so the app doesn't pretend to check.

11:05Crewbound
On the clock · Job #1042
2:48
Started 11:05 AM · Ray O.
Photos · 6
Furnace cabinet opened for diagnosis
Before
Thermostat reading at the wall
Reading
Ductwork above the furnace
After
Note to office

Igniter cracked, flame sensor fouled. Replaced both, cycled three times — clean light‑off. Filter was 2" and filthy, left a spare.

OfficeJobs / #1042
Ray O. is on the clock
Started 11:05 AM · running 2:48 · against this job
Live
6 photos landed
2 before · 1 reading · 3 after — attached to the invoice
11:31
“Igniter cracked, flame sensor fouled.”
Tech note · the office can reply on the same record
11:48
1:20 PM
1:20 PM

Nobody builds the invoice. The hours and the parts already are it.

The clocked time becomes the labor line, the price-book items become the parts, the photos attach as the evidence behind them, and sales tax comes off the shop's own rate. It goes out as a branded PDF with a pay link on it.

Seats $834.14 into the ledger

OfficeInvoices / INV‑1042
LineQtyAmount
Diagnostic — residential
From the price book
1$129.00
Hot surface igniter
Part · photographed on site
1$186.00
Flame sensor
Part
1$64.00
Labor
2:48 clocked · billed to the nearest quarter hour, 2.75 hr × $145.00
2.75$398.75
Subtotal$777.75
Sales tax · 7.25%$56.39
Total due$834.14
Send invoice Download PDF 6 photos attached
1:52 PM
1:52 PM

They pay from the driveway, on the same thread.

The pay link is a text message. When the card clears, the payment posts to job #1042 and the receipt sends itself. The office finds out because the balance changed, not because someone remembered to say so.

Seats $834.14 collected into the ledger

OfficeInbox
Invoice for today’s repair is ready — $834.14. You can pay here: pay.crewbound.app/1042
Delivered 1:41 PM
Paid. Thanks for getting out today.
1:52 PM
Customerpay.crewbound.app/1042
Bell Heating & Air · Invoice 1042
$834.14
Paid 1:52 PM · Visa ending 4242
Receipt emailed
Payment posted to the job the moment it cleared
Friday 4:00 PM
Friday · 4:00 PM

On Friday, that same 2:48 is already part of a paycheck.

Nobody re-enters hours at the end of the week, because the hours were never anywhere else. Ray's week is the sum of the jobs he clocked against, the office approves it, and the period locks against the pay rate on his worker record.

Timesheets, approval, and dated pay rates are live. Pushing them into QuickBooks Payroll is not built yet — it is the next thing on the roadmap, and this page will not say otherwise until it ships.

OfficeTimesheets
DayJobsHours
Mon3 jobs8:12
Tue4 jobs · #10428:44
Wed2 jobs · 1 break7:36
Thu3 jobs8:03
Ray O. · pay period
Every hour traceable to the job that produced it
32:35
Approved & locked

We’d rather tell you what isn’t built than have you find out on day three.

Crewbound is pre-launch. Most of what you just watched runs today; two pieces don’t, and one runs against a stand-in so you can drive the whole flow before we’re through the integration queue. Here is the split, in full.

Running today

In the product, working end to end

  • Customers, leads and jobs
  • Scheduling and dispatch
  • Field app: clock, photos, notes
  • Estimates with options
  • Invoices, payments, branded PDFs
  • Two-way SMS on your own number
  • Voice, with real hold and routing
  • Missed-call text-back
  • Review requests and reminders
  • Price book and job templates
  • Custom job statuses
  • Timesheets, pay rates, reports

Works end to end, not yet talking to QuickBooks

You can drive it; the last hop is simulated

  • You can run the whole invoice flow today — build it, send it, take the payment. It just isn't posting into your books yet.
  • When a sync hasn't happened, the invoice says so. A faked integration never reports success as if it were real.

Not built yet

On the roadmap, and named here rather than omitted

  • QuickBooks Payroll: hours and rates through to paychecks
  • Live QuickBooks accounting sync against Intuit
  • Reading and replying to Google reviews in-app
  • Geofenced clock-in at the job site
  • Self-serve signup and subscription billing

Four subscriptions were doing four pieces of that one job.

Not one of them is a bad product. The problem is the seams between them — and you have just seen what each one was actually holding.

  • Job photos, tagged and organizedthe 6 photos on job #1042
  • Customers, jobs, dispatch, invoicesthe job, and the $834.14 on it
  • Customer texting and review requeststhe thread on the customer
  • Clock in/out and timesheetsthe 2:48 on the labor line
Crewbound

One record, one login, one bill.

The same job you just followed. Because the photo, the hour, the invoice and the payment were never separate objects, there is nothing to sync, nothing to reconcile, and no week spent carrying data across a seam.

Your books stay in QuickBooks. Crewbound is built to post to it, not to replace your accountant’s software — which is why it is four subscriptions here and not five.

Product names above are trademarks of their respective holders and are shown to describe the jobs Crewbound absorbs. We’ll put a like-for-like monthly cost comparison here once we’ve verified current list pricing for each — we’re not going to quote numbers we haven’t checked.

The owner reads this on a laptop in a truck cab. The tech reads it outdoors, in gloves, one-handed.

OfficeDashboard
Invoiced this month
$48,210
Across 61 jobs · 9 still waiting on payment
Money owed
$7,940
On the clock
4 techs
Unanswered
2 threads
Needs you next
3 calls never returned
Oldest rang in 2 days ago
5 jobs ready to invoice
Complete, photographed, unbilled
Office portal. One commanding figure you choose, live readouts, and the queue of things actually waiting on a decision.
7:58My jobs
1418 Aspen Ridge Dr
11:00 · No heat — diagnostic
92 Larkspur Ln
14:30 · Spring maintenance
7 Quarry Rd
Thu 09:00 · Condenser swap
Clock in
Field app. Four tabs. Today’s work, one obvious next action, and a clock that knows which job it is on.

Getting five years of history in

We do the import with you, on a call, and we use AI to read whatever your current system will export — a ServiceTitan dump, a stack of spreadsheets, a folder of PDFs — and map it onto customers, jobs, and history rather than making you re-key it.

Self-serve import tooling is not built. Today this is us, your export, and a shared screen — so bring a sample to the demo and we’ll tell you on the call exactly what we can take and what we can’t.

Your shop’s data cannot reach another

Every row in Crewbound carries a company id, and the database itself refuses to return a row that isn’t yours. That is enforced at the storage layer with row-level security, not by application code remembering to filter. There is no query, report, or export that can cross the line.

See it run against your own shop’s week.

Thirty minutes, screen shared, using the kind of jobs you actually run. We’ll show you the parts that work and be straight about the parts that don’t.

No card and no contract to look at a demo. We’re pre-launch and still taking founding shops.