CRM App Starter · Industry version
A CRM built around bids, job sites, and GC relationships — generated into a codebase your firm owns.
Construction sales isn't a funnel of demos — it's bids against deadlines, relationships with GCs who tender again next quarter, and jobs won on estimates that took a week to build. This starter shapes the CRM around that motion and hands you the code.
01 · The problem
In construction the deal is a bid, and a bid has structure a generic deal record can't hold: a tender deadline, an estimate revision history, a bid-bond requirement, a margin that moves as takeoffs firm up. Tracking that in a notes field means the pipeline report is fiction by the time it matters.
The relationship model is different too. You sell to general contractors and developers repeatedly — losing one bid barely dents the relationship, and the real asset is your win rate and pricing history with that GC across years. A CRM that treats every opportunity as a fresh conquest throws that history away.
And the work has a place. Jobs happen at sites, crews and estimators are assigned by geography, and follow-up happens around site visits. A construction-shaped schema makes the site a first-class object instead of an address line on a company.
02 · Data model
Everything in the base CRM starter —
companiescontactsleadsdealspipelinesactivities— plus the entities this industry actually runs on:
| table | what it holds |
|---|---|
bids | Tenders with deadline, estimate amount, revision history, margin, and outcome — the construction shape of a deal. |
job_sites | Physical locations linked to companies and bids, carrying address, site contacts, and visit notes. |
estimate_items | Line-level scope behind each bid — labor, materials, subs — so revisions are tracked, not overwritten. |
03 · Screens
Stages follow the tender lifecycle — invited, takeoff, estimating, submitted, shortlisted, won or lost — and every card shows its deadline. The board doubles as the estimating team's workload view, because a bid stuck in estimating is the thing that loses tenders.
Scoring weights repeat tendering: win rate with each GC, average margin, and how often they invite you back. The queue surfaces the relationships that pay, not just the newest inbound lead.
Reports read from bids, not generic deals — hit rate by GC, by trade, by estimator; margin won versus margin bid; where in the pipeline tenders die. The numbers estimators argue about at Friday review, straight from the live tables.
04 · In practice
Log the invite, and the bid starts with its deadline on the board. Takeoff and estimate revisions accrue as estimate items; the submitted amount and date freeze on the record when it goes out the door.
A won bid carries its estimate, site, and contacts — the project team picks up a record, not a forwarded email chain. If you run a separate project tool, the handoff is an export from tables you own.
Every quarter, the GC report ranks relationships by invitations, wins, and margin. The ones that tender you into third place to check a box become visible — and stop getting your best estimator's week.
No — it's the sales side: bids, estimates, GC relationships, and job sites. For project execution (RFIs, change orders, daily logs) there's a dedicated construction management starter; the two share the same data conventions so a won bid hands off cleanly.
Yes, both are first-class: bids carry deadlines that surface on the pipeline board, and estimate line items keep revision history so you can see how scope and margin moved between versions instead of overwriting your own record.
That's the primary motion it models — repeat tendering relationships with general contractors, win-rate history per GC, and invitation tracking. It works for GC-to-owner sales too; rename the entities in your copy of the code to match your side of the table.
The board reads like a tender list — deadline, stage, amount — and the estimate items are the takeoff structure they already think in. Because it's your codebase, anything that confuses your team can be renamed or removed rather than tolerated.
Dual7 App Starters
A CRM built around bids, job sites, and GC relationships — generated into a codebase your firm owns. Describe your version to start — the output is a project you own.