Construction & field services
Pitt Landscape
A field-service ERP for a general contractor, with the bank and ledger integration the category leaders leave out.
Compares to Aspire, ServiceTitan, LMN
The problem
Specialty contractors get quoted $500–$2,000 a month for field-service software that still can't tell them what a job actually earned. Estimates run on gut feel, crew scheduling lives in a spreadsheet, and the accounting system finds out about the work weeks later.
The approach
- Estimator built on real production rates, so bids reflect measured labor productivity rather than intuition.
- Crew scheduling generated from a master template and written into Microsoft Planner and Dataverse.
- Bank feeds via Plaid and payments via Stripe, reconciled against QuickBooks.
- Local SEO surface generated down to the neighborhood, with a Google Business Profile posting pipeline.
- Power BI semantic model on top, reading from the operational database rather than a separate export.
Details that matter
- Service-line revenue can never be summed across projects — each carries three to four services, so naive aggregation overcounts revenue three to four times. This is the single most common reason operators stop trusting their own dashboards.
- The Google Business Profile post ledger is append-only. Hard deletes caused a republish loop, because the duplicate gate has to read soft-deleted rows to know what already went out.
- Spanish-language operator guides shipped alongside the interface, because crew adoption is a language problem before it is a software problem.
Systems integrated
| Plaid | rails | Bank feeds beneath the ledger |
| Stripe | rails | Customer payments and maintenance billing |
| QuickBooks Online | ledger | Bidirectional contact and accounting sync |
| Microsoft Dataverse | operations | Project records written from the platform |
| Microsoft Planner | operations | Crew schedules generated from a master template |
| Microsoft Graph | operations | Mail and directory |
| CallRail | operations | Call tracking attributed to leads and contacts |
| Google Business Profile | operations | Automated posting with a duplicate gate |
| Google Search Console | analytics | Search performance ingestion |
| Power BI | analytics | Operations and sales semantic model |
| Azure Entra ID | identity | Staff SSO across five roles |
| WebAuthn / passkeys | identity | Passwordless authentication |
Scale
- ~104 portal routes and ~198 API routes
- Nine scheduled jobs running unattended
- ~450 completed projects tracked
Built with
Next.js 16Neon PostgresDrizzleVercelAzure Entra IDPower BI