Limited Reality

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

PlaidrailsBank feeds beneath the ledger
StriperailsCustomer payments and maintenance billing
QuickBooks OnlineledgerBidirectional contact and accounting sync
Microsoft DataverseoperationsProject records written from the platform
Microsoft PlanneroperationsCrew schedules generated from a master template
Microsoft GraphoperationsMail and directory
CallRailoperationsCall tracking attributed to leads and contacts
Google Business ProfileoperationsAutomated posting with a duplicate gate
Google Search ConsoleanalyticsSearch performance ingestion
Power BIanalyticsOperations and sales semantic model
Azure Entra IDidentityStaff SSO across five roles
WebAuthn / passkeysidentityPasswordless 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