Case studies

Construction

Construction – Multi-Location GC (Southeast U.S.): Estimating-to-Field Dispatch AI System

Timeline: Build phase: weeks 1–10 (integrations, agents, pilot branch). Deployment: weeks 11–13 (read-only shadow, then cutover). Optimization: weeks 14–21 (dispatch model tuning, RFI quality).

Business overview

Industry: commercial and residential GC work. Company size: 340 employees across 6 branches. Operational complexity: shared estimators, union and non-union crews, bonded municipal jobs, and mixed ERP maturity. Existing systems: Salesforce Opportunities, Procore projects, legacy Excel macros, and SMS threads outside audit trails.

Common pain points

Manual processes: coordinators triaged inbound leads from five channels, re-keyed scope into templates, and chased photos and site notes in chat. Bottlenecks appeared at estimating handoff (missing measurements), dispatch (who was actually free), and payroll (hours didn’t match dispatched tasks). At scale, duplicate bids, missed callbacks, and Friday overtime spikes broke margin assumptions.

Full AI automation system (PrimeAxiom solution)

PrimeAxiom built a unified automation fabric—not a chatbot. Inbound triggers create a canonical Job Intent Record (JIR) with extracted scope, geo, and risk flags. Estimating receives structured packets plus AI-summarized site constraints. Dispatch uses an Operations Agent that reads crew skills, drive-time, and contract SLAs, proposing slots; humans approve exceptions only. Field techs confirm via mobile; hours and tasks sync to Procore and payroll staging. Reporting rolls up margin risk and backlog daily.

Automation workflow (detailed system flow)

1. Trigger: web form, email, or voicemail transcription → Intake Worker.
2. AI intake: LLM extracts trades, timeline, bond requirements; validates service territory.
3. Data structuring: JIR written to PostgreSQL; attachments OCR’d to searchable fields.
4. Decision logic: rules engine scores job size; model suggests estimator assignment; compliance checks for municipal paperwork.
5. Actions: CRM stage updates; estimating tasks with deadlines; SMS to site super if walkthrough needed; calendar holds for bid review.
6. Human interaction: estimators adjust pricing; ops managers override dispatch in edge cases (logged).
7. Feedback loop: actual vs. estimated hours feed retraining features for dispatch model; win/loss reasons improve intake prompts.

AI agents & logic

Lead Intake Agent: normalizes multi-channel submissions, resolves duplicates, flags incomplete scopes. Estimating Liaison Agent: packages drawings and notes, drafts RFI lists for PMs. Dispatch & Routing Agent: optimizes crew assignment with constraint solving + LLM explanations for overrides. Field Confirmation Agent: parses SMS replies, updates status, opens incidents when SLAs slip. Reporting Agent: generates daily ops briefs for executives.

Technical architecture

Frontend: React admin for exception queues and dispatch board. Backend: Node.js services on Cloud Run with event bus (Pub/Sub). Database: PostgreSQL (jobs, agents, audit). Integrations: Salesforce REST, Procore webhooks, Twilio SMS, Gmail API, DocuSign for subs. AI layer: OpenAI for extraction/summarization; smaller classifier for intake triage; deterministic rules in OPA-style policy JSON. Observability: structured logs + trace IDs per JIR.

Tools & integrations

Salesforce, Procore API, Twilio, Gmail API, PostgreSQL, OpenAI, custom Node orchestration

Results

Efficiency: 62% reduction in manual coordinator steps per active job. Conversions: win rate on qualified bids +18% (faster response). Manual work: 380+ hours/month saved org-wide. Revenue: margin on rush overtime down 2.1 points; recognized revenue timing improved with fewer stalled starts.

Timeline

Build phase: weeks 1–10 (integrations, agents, pilot branch). Deployment: weeks 11–13 (read-only shadow, then cutover). Optimization: weeks 14–21 (dispatch model tuning, RFI quality).