The whole job, in the order it happens

Selling the roof and running the roof
are two different jobs.

The deal runs on one board. The work runs on another. The handoff between them is where the address gets retyped, the permit gets forgotten and the margin quietly goes missing. What follows is every step from a stranger's phone number to the last person paid — the part you already know, and the part that stops being somebody's afternoon.

The paperwork reads itselfA blocking requirement stops the boardNothing signs or pays without you
A stone-and-brick house at golden hour with the roof decking stripped bare, five crew working across it and torn shingles sliding down the slope against a deep blue sky.
One house, two jobs. Selling it is the chapter below. Running it is the one after.
Chapter one

Selling it

Between a stranger's phone number and a signed name there are five afternoons. Here's what each one costs you today.

Catching the lead

The lead that came in while you were on a roof.

The website form emails somebody. The phone rang at two o'clock. The canvasser sent a text. Your own inbox has one too. The lead you lose is always on the channel you weren't watching.

A submission on your own site becomes a contact on the pipeline and stage you chose, with nobody opening an email to make it happen — and if that number is already yours, it appends to that record instead of starting a second file. A missed call arrives as an event your automations can act on.

  • Form to contact, nobody keying — it lands on the pipeline and stage you picked, not in an inbox somebody has to notice.
  • Deduped on the phone number — raw digits, the national form and the 1-prefixed form all collide, so one homeowner stays one record.
  • The site is yours — your own subdomain, built and running ahead of launch, a $20/yr add-on.
summitridge.onerooflabs.com

Colorado's storm-ready roofing crew.

15-point roof inspection, insurance-claim help, and a crew that shows up when they say they will. Serving the Front Range since 2009.

GAF Master EliteLicensed & insured

Book your roof inspection

Full name
Phone number
Property address
Request inspection →
The shape of your process

Your insurance deals don't move like your retail deals.

So they get forced down one column list anyway — and then everybody works around it. A stage that means two different things. A note that says what really happened.

Contacts run a branching graph, not a straight funnel: New Lead → Opportunity → Appointment Set → Appointment Kept → Proposal Sent → Proposal Signed, with Appointment Canceled as an exit ramp and Opportunity Lost as the shared sink. Branch where your work branches. Create a contacts pipeline and it seeds itself.

  • A branching graph, not a list — an insurance detour is its own path instead of pretending to be the same line.
  • Somewhere honest to put a loss — Opportunity Lost takes deals from Appointment Kept, Appointment Canceled and Proposal Sent, so the dead ones stop padding the board.
  • Nothing moves behind your back — the pills are yours to click. A fresh lead is never quietly cascaded down the trunk.
app.onerooflabs.com/pipelines
EntryNew Lead
StageAppointment Set
StageProposal Sent
StageProposal Signed
Exit rampAppointment Canceled
Shared sinkOpportunity Lost
A branching graph — trunk, exit ramps and one honest place for a lost deal.
Where everyone actually stands

Half the board is dead and nobody can tell which half.

Lost deals sit in the same column as live ones, so every Monday somebody re-reads notes to work out what's still alive — and the pipeline number you quote yourself is a number you don't believe.

Every person sits on exactly one stage, so moving them is a click, not a migration. The property record is already on the card — estimated value, equity, last sold, year built — so nobody opens a second tab to look the house up.

  • One stage, one meaning — each node owns its entry stage, so a pill click just moves the contact.
  • Property data on the record — the house's own facts, not something a rep types in from memory.
  • Filter to the ones that are yours — owner avatars and search cut thousands of contacts down to your morning.
app.onerooflabs.com/contacts
Search contacts, phones, addresses…
RDKPDC+4
New Lead 12
Tomás Delgado
(720) 555-0142
Canvassing$14,900
Renata Whitfield
(303) 555-0188
Website$11,250
Opportunity 9
Ada Okonkwo
(720) 555-0119
Referral$16,700
Marcus Salas
(303) 555-0164
Referral$38,400
Appointment Set 7
Priya Hvillard
(720) 555-0173
Canvassing$18,900
Grant Brenner
(303) 555-0155
Website$21,300
Proposal Sent 5
Leah Okafor
(720) 555-0130
Referral$41,250
Sam Prentice
(303) 555-0109
Website$13,800
Proposal Signed 8
Kevin Nguyen
(720) 555-0177
Canvassing$16,700
Dana Callahan
(303) 555-0121
Referral$52,600
PH
Priya Hvillard
2841 Fenmore St · Aurora, CO · Canvassing
Deal value$18,900
Year built1998
Last sold2016
New Lead
Opportunity
Appointment Set
Proposal Sent
Proposal Signed
Measuring it, then pricing it

Somebody retypes the report into the estimate.

The report lands as a PDF in an email. Then a person types squares, pitch, ridge, hip, valley, eave and rake into a spreadsheet only one person can drive — and every retype is a chance to lose a square. The labor number in that spreadsheet was right eighteen months ago.

Upload the report you already have and it is read for you, onto the job and into the bill of materials. Or order an aerial report from the job you're already looking at. Set a labor rate per material and a markup once, and every estimate resolves from it — nothing is re-derived per job.

  • Order it or bring it — place an aerial order against the vendor's product catalog, or drop in the measurement PDF and have it read.
  • The consumables everybody forgets — coil, ridge and cap nails, cement, sealant, butyl tape, pipe boots and off-ridge vents sized off attic NFA, in the bill of materials before they're bought twice.
  • Priced at 2× the vendor's measurement quote — the multiple is published on the rate card before you order, so there is no markup to discover later.
Order measurement
Aerial report · priced at 2× the quote
Ready to order
2841 Fenmore St, Aurora, CO 80013 Locate ▸
Aerial report
Placed against the vendor's product catalog
Upload a report
Reads the PDF you already have
Either way, it lands on the job
Squares, pitch, waste, facets and every edge length
Report result
28.4 sqRoof area
6 / 12Predominant pitch
7Facets
15%Waste factor
176 ftRidge + hip
220 ftEaves
Working the list

The list gets called when somebody finds a spare hour.

Which is never the day the lead was warm. And the calling tool is a separate contract, a separate login and a separate bill nobody reconciles against the deals it produced.

The dialer is in the CRM — a $10 seat and published per-minute rates instead of a telephony contract. Reps dial from their own lists on a multi-line deck, and the two outcomes that mean real work make that work themselves, mid-call: Set Appt books the appointment, Schedule Callback creates the task.

  • One tap ends the call and the admin — Set Appt, Schedule Callback, Not interested, Bad/Wrong # or DNC, wired straight to the pipeline.
  • Set Appt opens the real calendar — the same scheduling screen the office books from, already filled in with the person on the line, and the call never drops. Schedule Callback writes an actual task due when you said, assigned to you unless you hand it to someone. Neither is a note somebody has to action later.
  • Multi-line power dialing — live, ringing and dialing lines side by side, so the rep isn't listening to a dial tone.
  • A missed call isn't a lost one — it arrives as an event your automations can act on.
Power DialerLive02:47
L1Live
L2Ringing…
L3Dialing…
RC
Ray Coleman
(720) 555-0198 · New Lead · Canvassing
On call
Set ApptSchedule CallbackNot interestedBad/Wrong #DNC
214Dials
38Contacts
6Appts
Getting the name on it

Two homeowners, a printer, and a week of chasing.

The proposal goes out as a PDF. They print it, sign it, photograph it badly on a kitchen counter, and then you spend a week chasing the second owner — and nobody can tell you whether it was ever opened.

Send it from the contact and the signature is requested from every homeowner on the deal, and from you. Your rep is not pinged when the first of two signs, because that notification is worth nothing; it comes when the last homeowner is done and the only thing left is your countersignature. Add it and the deal is executed — the finished PDF and its Certificate of Completion are pulled back, filed into that contact's Documents, and emailed to the homeowners.

  • One notification, at the moment it means something — "ready for you", never "one of two signed". The half-signed state is tracked and stays quiet.
  • You counter-sign it — homeowner signed, then ready to countersign, then completed. Nothing is executed until your name is on it too, and the link you get is yours, not a homeowner's.
  • The executed copy files itself — onto the contact, with its Certificate of Completion, and back out to the homeowners. Nobody has to remember to save a PDF out of an email.
  • Sent, signed and declined are all events — so "tell the office the second one comes back" is a rule you write once instead of a thing somebody watches for.
Okafor — 119 Crestline Ave
Proposal · signature ceremony
Ready to countersign

Signatures

Resend
Leah Okafor
Homeowner
Signed
Nadia Okafor
Homeowner
Signed
R. Diaz
Sender · countersignature
Waiting on you
Add countersignaturePreview

That's the selling half. The signature is where most software hands you back to yourself.

Create your account
Chapter two

Running it

A signed proposal doesn't advance a stage. It starts a job — and this is the half where the money is actually made or quietly lost.

Before anybody shows up

The permit never went in, and you find out on install day.

Everything that has to be true before a crew arrives lives in one person's memory, and that person is on a roof. Meanwhile the sold job gets re-keyed into whatever production runs on, and by Thursday the two systems disagree about the address.

Nobody re-keys anything: the job type carries the job onto the right board — Retail Replacement, Repair, Insurance Restoration. Permit, Materials and Crew requirements ride every job type, each set to track, warn or block, so the catch stops being somebody's memory.

  • A blocking requirement stops the board — the job cannot move on until the thing is actually true.
  • At risk alerts once, and never nags twice — its assignee and the job's assignee, one time each.
  • Each requirement's cost lands when it really lands — at booking, or the moment the thing is actually finished, whichever is true of that requirement. And it books exactly once: the permit fee stops being a number one person adds and another person adds again.
  • Put a subcontractor on it by rule — one person, round-robin a list, or round-robin a role's live membership, so the rotation follows the roster.
  • The board files jobs itself — a scheduled future job lands in Upcoming; a completed one lands in Completed.
app.onerooflabs.com/jobs
Jobs board
42 active · Retail Replacement & Insurance Restoration
Filter+ New job
Billed · 42 live$380,500
Collected$284,100
Outstanding$96,400
Lead 7
Delgado
1420 Poplar Grove Dr
INSURANCE RESTORATION
$14,900RD
Whitfield
88 Sable Ridge Ct
FULL ROOF REPLACEMENT - RETAIL
$11,250KP
Inspection 9
Okonkwo
3305 Marigold Ln
INSURANCE RESTORATION
$16,700DC
Salas
712 Harborview Way
FULL ROOF REPLACEMENT - RETAIL
$38,400RD
Adjuster 5
Hvillard
2841 Fenmore St
INSURANCE RESTORATION
$18,900DC
Brenner
150 Kestrel Pt
INSURANCE RESTORATION
$21,300KP
Permit 6
Okafor
119 Crestline Ave
FULL ROOF REPLACEMENT - RETAIL
$41,250RD
Prentice
64 Wren Hollow
FULL ROOF REPLACEMENT - RETAIL
$13,800DC
Upcoming 8
Bergstrom
77 Alder Ct
INSURANCE RESTORATION
$12,480KP
Ramirez
2210 Juniper Bend
INSURANCE RESTORATION
$17,950RD
Completed 7
Nguyen
5502 Birchwood Ln
FULL ROOF REPLACEMENT - RETAIL
$16,700DC
Callahan
39 Thornfield Rd
FULL ROOF REPLACEMENT - RETAIL
$52,600KP
When it's a claim

The adjuster's numbers are buried in a mail thread.

The ACV lands on a Tuesday. By the time it matters nobody can find which email said what, so somebody scrolls a thread looking for a figure and the supplement goes in late.

One policy per contact with the agent on it; a claim per storm with its own adjuster. When the adjuster writes in, the claim number, status, ACV, RCV, deductible and date of loss come out of the email and wait on the claim as accept-or-dismiss chips. You stop reading the thread to find a number.

  • Nothing is applied for you — every extracted field arrives as a suggestion you accept or dismiss.
  • It never invents a dollar amount — if the email doesn't say it, nothing is proposed.
  • Policy and claim are separate things — one policy with the agent, a claim per storm with its own adjuster, the way the work actually runs.
  • Supplementing is a status, not a sticky note — a claim sits on one of Filed, Adjuster assigned, Approved, Denied, Supplementing, Paid or Closed. The ones still in supplement are a list you can pull up, instead of a set of jobs you hope somebody is still thinking about.
Coordinate agent & adjuster
Hvillard — 2841 Fenmore St · Claim in review
Policy of record Suggested — accept or dismiss
Carrier
State Farm
Policy #
HO-4471982
Deductible
$2,500
Dwelling coverage
$312,000
DO
Adjuster · D. Okafor
Meeting Tue 2:00 PM · on-site
$18,900
Scope approved
Getting paid, and knowing what it made

You find out the job lost money when the year closes.

Costs land in three places and get added up months later — by which point the next twenty jobs are priced the same wrong way. The deposit is a check you have to go get, and the balance is a phone call you don't want to make.

Split the job into an initial and a final payment, card or ACH. A succeeded payment applies itself against the invoice once, by PaymentIntent, so an invoice can't be double-credited. And the margin sits on the card while the job is still running — there's no report to run at the end of it.

  • Every line badged — an estimate off your rate card, or real money out. Nobody confuses the two again.
  • A payout in flight is not counted as spent — margin doesn't flatter itself while money is still moving.
  • Tell me the second a payment fails — a rule you write once, not a thing you remember to check.

Then there's paying everybody — that's its own page →

Okafor — 119 Crestline Ave
Full Roof Replacement - Retail · Assignee R. Diaz
Proposal Sent
Contract$41,250
Collected$18,500
Balance$22,750
Margin39%

Statement ledger

Export
Deposit received
Jun 28 · Stripe · Visa ••4471
+$18,500
Materials — paid direct
Counts in margin — no OneRoof cash moved, balance unchanged
−$14,200
Payout — install crew (sub labor)
Metal panel install · 22.5 sq
−$9,800
Dumpster — 20 yd
Tear-off haul-off
−$650
Permit — city of Aurora
Re-roof permit + inspection
−$320
Request paymentPayoutRefund
Monday morning

The first hour goes to finding out what's stuck.

A text to the PM. A call to the rep. A spreadsheet somebody exported on Friday that was already wrong by Saturday. By the time you know where the business is, half the morning is gone.

Open the app and the read is already done — revenue pacing, proposals signed, pipeline weight, and the handful of jobs that need a person today. No report to run, no tab to hunt for.

  • The jobs that need a human, surfaced before they cost you the deal — not buried in a board you have to read.
  • Lead-source mix, so you find out which channels are paying for themselves before you renew them.
  • Trended against last month — the number and whether it's moving, on the same line.
app.onerooflabs.com/dashboard
Good morning, Marcus
Tuesday, July 21 · 6 jobs scheduled · 8 appointments today
LiveMV
Open pipeline$1.24M12 open proposals
Won all-time$487,200▲ $62,400 this month
Win rate38%34 of 89 decided
New leads26▼ 3 vs last mo.

Revenue by month

Last 6 mo ▾
FebMarAprMayJunJul

Lead sources

41%
Canvassing · 41%
Referral · 27%
Website · 19%
Other · 13%

Jobs needing attention

View all 18
JobStageAssigneeValueNext step
Hvillard — 2841 Fenmore St
Insurance Restoration
Adjuster assignedD. Cho$18,900Today 2:00 PM
Okafor — 119 Crestline Ave
Retail Replacement
Proposal SentR. Diaz$41,250Follow-up call
Bergstrom — 77 Alder Ct
Insurance Restoration
UpcomingK. Patel$12,480Assign subcontractor

That's the running half — every step still happens, but the typing, the chasing and the looking-up mostly don't.

Create your account
The reason people quit their CRM

That was a lot of screens.
You don't have to learn any of them.

You don't have to learn it to use it — you can just ask for it. Type it the way you'd say it out loud, and the copilot either walks you to it or does it for you. Every action it takes on your behalf comes up as a confirmation card before anything is written.

“where do I set subcontractor pay rates?”

It walks you there in the app — and can click through the screens with you — instead of telling you where to click. Ask a question in the settings search bar and a sentence comes back.

“jobs waiting on a permit”

Type the sentence instead of learning the filters. The deterministic search runs it against your real rows, and escalates to the model only when you press for it — never on every keystroke.

Every step above still happens.
Most of them stop being yours.

Month-to-month · every price published · your data stays yours.