Metaviz AI
Construction Tech / AEC SaaS / AI ComplianceCase study

AI Building-Code Compliance & Permit-Review SaaS

GPT-4o + RAG - 200+ code checks across five disciplines, every finding cited to a real FBC/IBC/NFPA section. Days of manual review cut to supervised hours.

An AI-powered construction compliance platform that automates drawing reviews, verifies building codes, and generates audit-ready engineering reports with accurate citations.

Project Overview

GPT-4o + RAG - 200+ code checks across five disciplines, every finding cited to a real FBC/IBC/NFPA section. Days of manual review cut to supervised hours.

Permit review means reading hundreds of pages of construction drawings against hundreds of code rules by hand. For AEC firms and Florida code-engineering practices, that process takes days per project, requires deep discipline expertise across Architectural, Structural, Mechanical, Electrical, and Plumbing trades, and leaves no structured audit trail for the permit file.

This platform cuts that from days to hours - and, critically, makes the AI auditable. Every finding the system raises is grounded in a real code passage retrieved by ChromaDB vector search from indexed FBC, IBC, and NFPA standards. The AI cannot invent a rule: it cites, it does not guess. Reviewers verify reasoning instead of trusting a black box, and the output is a fully cited, permit-ready compliance report in both PDF and JSON.

Built on FastAPI + Celery + PostgreSQL backend, Next.js 15 frontend, and a six-stage transparent processing pipeline with live progress, per-stage cost display, and a hard billing ceiling per document. Live in production for a Florida building-code engineering firm.

The platform ingests construction PDF drawings, runs AWS Textract OCR and GPT-4o per-page extraction, retrieves the exact relevant code passage via ChromaDB vector search (RAG), and runs 200+ checks per discipline across five trades: Architectural, Structural, Mechanical, Electrical, and Plumbing, plus NFPA fire and life-safety codes (NFPA 1, 70, 72, 101).

Every finding links to a real citation - for example, FBC Plumbing 2023, Section 712.1 - so the AI cannot hallucinate a rule. It must reference an indexed passage from the FBC, IBC, or NFPA standards stored in ChromaDB. The output is a fully cited, audit-ready compliance report in PDF for the permit file and JSON for BIM/PM tooling, with every page traceable to the source drawing.

The system is cost-aware by design: page, OCR, and LLM cost is estimated up front with a hard ceiling per document to prevent runaway spend. Reviewers operate in a full human-in-the-loop workflow - they can edit any extracted field and re-run checks before accepting the final report.

— Relevant keywords —
AI Permit Review SaaSBuilding Code Compliance AIGPT-4o RAG ConstructionAWS Textract OCR PDFChromaDB Vector SearchFBC IBC NFPA Compliance
AEC AI PlatformFastAPI Celery BackendNext.js 15 TypeScriptMEP Structural Architectural ChecksAudit-Ready Compliance ReportZero-Hallucination AI
Challenge & Solution

Seven problems, seven pivots

Every challenge on the left became a shipped capability on the right.

Problem 01
Six-Stage Transparent Processing Pipeline

Manual permit review takes days per project - reading hundreds of pages of construction drawings against hundreds of code rules by hand is the standard process at AEC firms and code-engineering practices. A single project review can take two to five days of senior engineer time, with no structured tracking of which rules were checked or why a finding was raised.

Solution

Documents move through a fully visible pipeline: Queued → OCR (AWS Textract) → Schedule Detection → Table Extraction → Equipment Parsing → Ready-for-Verification. Each stage shows live progress and its own cost, so reviewers always know exactly where processing is and what it is costing.

Problem 02
Audit-Ready PDF + JSON Export

No audit trail for the permit file - traditional review produces a marked-up PDF or a handwritten checklist, neither of which gives the permit office a structured, traceable record of which code sections were checked, which passed, and which failed. When a drawing is revised, the review process starts from scratch with no reference to what was previously verified.

Solution

Every report exports as a printable PDF for the permit file and a complete JSON record for BIM and PM tooling. Every finding links to its source drawing page, the extracted field, and the specific code citation - creating a full traceable chain from drawing to code section.

Problem 03
Zero-Hallucination RAG-Grounded AI

AI hallucination makes LLMs unusable for compliance without RAG - off-the-shelf LLMs cannot be trusted for code compliance because they generate plausible-sounding but unverified code citations. A building official cannot accept 'AI says this complies' without a reference to the actual code section. Without grounding every finding in a retrieved passage from an indexed code corpus, AI is a liability rather than an asset in permit review.

Solution

Every finding is grounded in a real code passage retrieved by ChromaDB vector search from indexed FBC, IBC, and NFPA standards. The AI cannot invent a rule; it must cite an indexed passage before raising any flag. This makes the output permit-ready and professionally defensible, not just a plausible LLM response.

Problem 04
200+ Discipline-Specific Code Checks Across Five Trades

Five disciplines require different expertise and rule sets - Architectural, Structural, Mechanical, Electrical, and Plumbing reviews each require a different body of knowledge, different sections of the FBC, IBC, and NFPA standards, and different extraction logic from construction drawings. A single generic AI cannot handle all five trades without discipline-specific prompts, rule sets, and structured output schemas.

Solution

Each discipline (Architectural, Structural, Mechanical, Electrical, Plumbing) gets its own prompts, extraction logic, rule set, and check library. Plumbing checks drainage slope, backflow prevention, and venting. Structural checks load paths, framing, and foundations. Electrical checks NEC compliance. Every check is traceable to a specific code section.

Problem 05
Streaming 500 MB Uploads with Deduplication

Large PDF processing is expensive and unpredictable - construction drawing sets can be hundreds of pages and hundreds of megabytes. Sending entire documents to an LLM is cost-prohibitive, technically unreliable, and produces unstructured outputs that cannot be audited. Without per-page processing, cost control, and structured JSON extraction, AI-assisted review is not viable at production scale.

Solution

Construction drawing PDFs are streamed to disk in 5 MB chunks with magic-byte validation and SHA-256 content hashing. Duplicate submissions are detected and rejected before any processing begins - preventing double-billing on resubmitted drawings and ensuring storage integrity.

Problem 06
Per-Page Structured GPT-4o Extraction with Confidence Scores

No human-in-the-loop means no professional accountability - code-compliance decisions carry professional and legal liability. A system that produces a report without allowing a licensed engineer to review, edit, and approve every extracted field and finding is not usable in a regulated permit-review workflow. Reviewers need to verify AI reasoning, not accept its output as final.

Solution

GPT-4o processes each page individually and outputs typed JSON with confidence scores for every extracted field. Reviewers can inspect, edit, and approve extraction results before checks run - full human-in-the-loop at the data layer, not just the output layer.

Problem 07
Cost-Aware Processing with Hard Ceilings

Billing surprises kill production AI tool adoption - AEC firms and code-engineering practices cannot adopt an AI tool that runs unpredictable LLM costs per document. Without up-front cost estimates, live per-stage cost display, and a hard ceiling per document, the tool is a financial risk rather than a productivity gain.

Solution

Page count, OCR cost, and LLM token cost are estimated up front before any processing begins. A hard cost ceiling per document prevents runaway spend. Live cost display per stage and per page gives practices complete financial visibility into every review job.

Ecosystem

The Platform Modules - Six-Stage Pipeline, Five Disciplines, Zero Hallucination

01
PDF Ingestion & Upload

Streaming upload handler for PDFs up to 500 MB. Files streamed to disk in 5 MB chunks with magic-byte validation, MIME sniffing, and SHA-256 content hashing for deduplication. Duplicate submissions rejected before any processing or billing begins.

FastAPIAWS S3Python hashlibCelery
02
OCR Engine (AWS Textract)

AWS Textract processes each page and returns structured blocks (lines, words, tables, key-value pairs). Output stored as JSONB in PostgreSQL per page for downstream extraction. Textract cost tracked and displayed per page in the pipeline UI.

AWS TextractPostgreSQL JSONBFastAPICelery
03
Schedule & Table Detection

Dedicated stage detects title blocks, revision schedules, and data tables in the OCR output. Schedule data is extracted into structured records for cross-referencing during code checks. Table rows are parsed into typed JSON for equipment and specification tables.

GPT-4oPydanticAIFastAPIPostgreSQL JSONB
04
Equipment Parser

Parses mechanical schedules, panel schedules, fixture schedules, and structural member tables into typed equipment records. Each record includes extracted values, confidence scores, and the source page reference for traceability.

GPT-4oPydanticAIPostgreSQLFastAPI
05
ChromaDB RAG Engine

Indexes FBC (Florida Building Code), IBC (International Building Code), and NFPA 1/70/72/101 standards as vector embeddings. At check time, the relevant code passage is retrieved before GPT-4o generates any finding - grounding every flag in a real cited text.

ChromaDBOpenAI EmbeddingsFastAPIPostgreSQL
06
Compliance Check Engine

Runs 200+ discipline-specific checks across Architectural, Structural, Mechanical, Electrical, and Plumbing trades. Each check retrieves its code passage from ChromaDB, runs GPT-4o against the extracted drawing data, and records the finding with citation, confidence, and source reference.

GPT-4oPydanticAIChromaDBFastAPICelery
07
Human-in-the-Loop Review

Reviewers inspect per-page extraction results, edit any field, override confidence scores, and approve or reject individual findings before the final report is generated. Every edit is logged with timestamp and reviewer identity for the audit trail.

Next.js 15TanStack QueryFastAPIPostgreSQL
08
Report Generator (PDF + JSON)

Generates a printable branded PDF compliance report for the permit file and a complete structured JSON export for BIM/PM tooling. Every finding links to its source page, extracted value, and cited code section. Built with ReportLab and FastAPI background tasks.

ReportLabFastAPICeleryPostgreSQLAWS S3
09
Cost Tracker & Billing Controls

Estimates page count, OCR cost, and LLM token cost before processing begins. Tracks actual spend per stage in real time and enforces a configurable hard ceiling per document. Live cost display on the pipeline progress UI prevents billing surprises.

FastAPIPostgreSQLOpenAI token countingCelery
10
Processing Pipeline UI

Six-stage pipeline progress view (Queued / OCR / Schedule Detection / Table Extraction / Equipment Parsing / Ready) with per-stage status, timing, and cost. Built on TanStack Query with polling for live updates during async Celery processing.

Next.js 15TanStack QueryFastAPIReact 19Tailwind
User Experience

The web console, end to end

Console features
Upload construction PDFs up to 500 MB with real-time streaming progress and immediate magic-byte validation
Six-stage pipeline progress view with per-stage status, timing, and live cost display
Per-page extraction review: inspect GPT-4o extracted fields, confidence scores, and edit any value before checks run
Discipline selector: choose which trades to check (Architectural, Structural, MEP, or all five)
Compliance findings view: filterable by discipline, severity, and citation source (FBC / IBC / NFPA)
Human-in-the-loop approval: accept, reject, or flag each finding with reviewer comments before finalising the report
Up-front cost estimate before processing starts, with live cost tracking and configurable hard ceiling
PDF compliance report download for the permit file, JSON export for BIM/PM tooling
Document history: all past submissions with processing status, cost totals, and report access
SHA-256 dedup alert: duplicate drawing submissions detected and shown before any processing charge
Key flows

Upload & Process Flow

  • Reviewer uploads drawing PDF
  • streaming validation runs
  • SHA-256 dedup check
  • cost estimate displayed
  • reviewer confirms
  • Celery job queued
  • Textract OCR runs per page
  • Schedule Detection
  • Table Extraction
  • Equipment Parsing
  • status shown live on pipeline UI

Review & Verify Flow

  • Processing complete
  • reviewer opens per-page extraction results
  • inspects GPT-4o fields and confidence scores
  • edits any incorrect value
  • approves extraction
  • compliance checks run against corrected data
  • findings displayed with ChromaDB-retrieved citations

Report Generation Flow

  • Reviewer approves findings
  • overrides any false positive or false negative
  • adds reviewer comments
  • generates final report
  • branded PDF rendered by ReportLab
  • JSON export created
  • both stored in S3 with signed URL download links for the permit file
Admin Dashboard

The office's command center

Everything back-office in one console — with role-based access drawn as a hard line, not a suggestion.

17 back-office capabilities
Upload construction PDFs up to 500 MB - streamed to disk in 5 MB chunks, with magic-byte validation before the file is trusted at all
SHA-256 content hashing catches a duplicate drawing before OCR runs, so nobody is billed twice for the same submission
A cost estimate - page count, Textract, LLM tokens - is shown and has to be acknowledged before a single Celery job is queued
A hard cost ceiling per document is enforced by the task queue: the pipeline halts and Sentry fires if spend reaches the threshold mid-run
Six-stage pipeline view - Queued, OCR, Schedule Detection, Table Extraction, Equipment Parsing, Ready - with per-stage timing and running cost
Per-page extraction review: every extracted field, its confidence score and the page it came from, all editable before any check runs
Low-confidence fields are flagged automatically and cannot be quietly skipped past
Findings filter by discipline, severity and citation source across FBC, IBC and NFPA 1, 70, 72 and 101
Accept, reject or flag each finding with reviewer comments - checks then re-run against the corrected data, not the raw model output
Reviewer corrections are stored apart from the raw AI output, so the audit trail always shows both versions
Every edit, approval and rejection is timestamped against a reviewer identity for the professional audit trail
A branded PDF compliance report for the permit file, plus a full JSON export for BIM and PM tooling
Reports are immutable - any change after approval creates a new version carrying its own audit record
Document history with processing status, cost totals, and signed-URL access to every past report
Nightly Celery Beat cost reconciliation across everything processed in the billing period
ChromaDB index management - re-embed the FBC, IBC and NFPA standards whenever a code cycle updates
Sentry error tracking and structlog JSON logs with per-request trace IDs across all six stages
AI Assistant · Embedded

Meet the AI Layer

An AI processing engine embedded in the platform's pipeline (not a conversational chatbot). Primary Model: OpenAI GPT-4o (vision + structured output). Structured Outputs: PydanticAI validates every GPT-4o response before any database write. RAG Engine: ChromaDB vector search over indexed FBC, IBC, and NFPA 1/70/72/101 standards. Embeddings: OpenAI text-embedding-3-small for ChromaDB indexing. OCR Layer: AWS Textract (per-page blocks, tables, key-value pairs). Hallucination Prevention: every finding requires a ChromaDB-retrieved citation before GPT-4o output is accepted. Human-in-the-Loop: per-page extraction review and per-finding approval before report generation.

  • Per-page structured extraction: GPT-4o outputs typed JSON with confidence scores for every field on every drawing page
  • RAG-grounded compliance checks: ChromaDB retrieves the exact code passage before GPT-4o generates any finding
  • 200+ discipline-specific checks across Architectural, Structural, Mechanical, Electrical, and Plumbing trades
  • NFPA fire and life-safety checks: NFPA 1 (Fire Code), NFPA 70 (NEC), NFPA 72 (Fire Alarm), NFPA 101 (Life Safety Code)
  • Schedule and table detection: identifies title blocks, revision schedules, and data tables in OCR output
  • Equipment parsing: extracts mechanical, panel, fixture, and structural member schedules into typed records
  • Confidence scoring on every extracted field - low-confidence fields flagged for mandatory human review
  • Human-in-the-loop edits: reviewers correct any extraction result and re-run checks against corrected data
  • Zero-hallucination guarantee: every finding must cite a ChromaDB-retrieved code passage - no citation, no finding
  • PydanticAI structured output validation on every GPT-4o response before database write
AI Layer
online · ready to draft
Embedded
Check this page against FBC Plumbing 2023 drainage requirements and cite the relevant section for each finding
Draft ready — grounded in similar past jobs:
Line item · materials— · —
Labour— · —
VATauto
Totalcomputed
Extract all mechanical equipment from this schedule page as typed JSON with model numbers, capacities, and efficiency ratings
Verify the structural member sizes on this framing plan against the IBC 2021 load requirements for the specified occupancyIdentify all egress path components on this floor plan and check them against NFPA 101 Section 7.1 minimum width requirementsParse the electrical panel schedule and check each circuit against NEC Article 210 branch circuit requirements
Architecture

How it all fits together

Three layers, read top to bottom — the applications people use, the services that power them, and the infrastructure they run on.

Layer 1
What people use
Web console
Next.js 15 · React 19
Live pipeline view
watch every stage + its cost
Audit-ready reports
printable PDF + JSON export
Layer 2
The brains
App server
FastAPI · Python 3.11
Document pipeline
Celery + Redis · six stages
Reads the drawings
AWS Textract OCR
Grounded AI
GPT-4o + ChromaDB RAG
Database
PostgreSQL + JSONB
Layer 3
Where it runs
Cloud hosting
Coolify on DigitalOcean
Secure & fast
Traefik · Cloudflare · TLS
Always watched
Sentry monitoring
Business Logic

The rulebook under the hood

Rules · the ledger
§1
Every compliance finding must have a ChromaDB-retrieved code citation before it is written to the database - no citation, no finding
§2
Document processing is gated on cost approval
the up-front estimate must be acknowledged before Celery jobs are queued
§3
A hard cost ceiling per document is enforced by the task queue
processing halts and alerts the reviewer if the ceiling is reached mid-pipeline
§4
SHA-256 content hash deduplication rejects any file already in the system before OCR begins, preventing double-billing on resubmitted drawings
§5
Per-page extraction results are locked after reviewer approval
re-running checks always uses the approved (human-corrected) data, not raw GPT-4o output
§6
All six pipeline stages must complete successfully before the report generation stage is unblocked
§7
Final reports are immutable once generated
any change to findings requires a new report version with a new audit record
§8
All reviewer edits, approvals, and rejections are logged with timestamp and user identity for the professional audit trail
Workflows · pipelines
Upload & Dedup Workflow7 steps
1File received25 MB chunk streaming to disk3magic-byte MIME validation4SHA-256 hash computed5duplicate check against database6if new: stored to S3 and processing record created7if duplicate: rejection response with original submission reference
Pipeline Processing Workflow9 steps
1Celery job queued2Textract OCR per page3JSONB blocks stored to PostgreSQL4Schedule Detection stage5Table Extraction stage6Equipment Parsing stage7all outputs stored as typed JSONB8status updated per stage9frontend polls via TanStack Query
Compliance Check Workflow8 steps
1Reviewer approves extraction2check engine runs per discipline3ChromaDB retrieves top-k code passages per check4GPT-4o runs check against extracted data + retrieved passages5PydanticAI validates output6findings written to database with citation7severity8source page
Report Generation Workflow8 steps
1Reviewer approves final findings2report generator triggered as Celery task3ReportLab renders branded PDF with all findings4citations5and source page references6JSON export created7both stored to S38signed download URLs returned to frontend
Automations · trigger → action
Celery Beat runs nightly cost reconciliation across all documents processed in the billing period
Textract completion webhook triggers the next pipeline stage automatically - no polling between stages
Low-confidence extraction fields are automatically flagged for mandatory reviewer attention before checks run
Cost ceiling alert fires a Sentry notification and halts the Celery pipeline if per-document spend reaches the configured threshold
S3 signed URL expiry is automatically renewed on reviewer access to prevent expired download links mid-session
pgvector embedding refresh runs on ChromaDB index updates to keep code-standard citations current after code cycle updates
Features

Everything inside

8 capability groups, laid out as an uneven mosaic — not a wall of identical cards.

01Document Ingestion & Deduplication
Streaming upload handler for PDFs up to 500 MB - 5 MB chunk streaming to disk
Magic-byte MIME type validation - rejects non-PDF files regardless of extension
SHA-256 content hash deduplication - duplicate submissions rejected before any processing or billing
S3 storage with signed URL access control - no public document access
Cost estimate displayed and acknowledged before any Celery job is queued
02OCR Pipeline (AWS Textract)
Per-page Textract processing returning structured blocks: lines, words, tables, key-value pairs
Block output stored as JSONB in PostgreSQL per page for downstream extraction stages
Textract cost tracked per page and accumulated against the per-document hard ceiling
Schedule and title block detection identifies drawing metadata for cross-referencing
Table rows parsed into typed JSON for equipment schedules and specification tables
03AI Extraction (GPT-4o + PydanticAI)
Per-page structured extraction: typed JSON output with confidence scores for every field
Discipline-specific prompts for Architectural, Structural, Mechanical, Electrical, and Plumbing pages
Equipment parsing: mechanical schedules, panel schedules, fixture schedules, structural member tables
PydanticAI validates every GPT-4o output before database write - no unstructured LLM responses stored
Low-confidence fields automatically flagged for mandatory reviewer correction
04RAG-Grounded Compliance Checks (ChromaDB)
FBC, IBC, and NFPA 1/70/72/101 standards indexed as OpenAI vector embeddings in ChromaDB
Top-k code passage retrieval before every GPT-4o compliance check - grounds every finding
200+ discipline-specific checks: Architectural (occupancy, egress, accessibility), Structural (loads, framing, foundations), Mechanical (HVAC, ventilation), Electrical (NEC panels, circuits), Plumbing (drainage, backflow, venting)
NFPA fire and life-safety checks: NFPA 1 (Fire Code), NFPA 70 (NEC), NFPA 72 (Fire Alarm), NFPA 101 (Life Safety Code)
Every finding includes: code citation, retrieved passage excerpt, extracted drawing value, severity, and source page
05Human-in-the-Loop Review
Per-page extraction review UI: inspect and edit any GPT-4o extracted field before checks run
Per-finding approval: accept, reject, or flag each compliance finding with reviewer comments
Reviewer corrections stored separately from raw AI output - checks always run against approved data
Full audit log: every edit, approval, and rejection timestamped with reviewer identity
Re-run checks on any corrected extraction without reprocessing the full pipeline
06Cost Control & Observability
Up-front cost estimate (page count + Textract + LLM tokens) before processing begins
Live per-stage cost display on the pipeline progress UI
Configurable hard cost ceiling per document - enforced by Celery task gating
Cost ceiling alert via Sentry notification if threshold is reached mid-pipeline
Sentry error tracking + structlog JSON logs with per-request trace IDs across all pipeline stages
07Report Generation (PDF + JSON)
Branded PDF compliance report rendered by ReportLab for the permit file
Every finding links to: source drawing page, extracted field value, retrieved code citation, reviewer approval
Complete JSON export for BIM and PM tooling with full finding metadata
Both outputs stored to S3 with signed URL download links
Immutable report versions: any post-approval change creates a new versioned report record
08Processing Pipeline UI
Six-stage progress view: Queued / OCR / Schedule Detection / Table Extraction / Equipment Parsing / Ready
Per-stage status indicators with timing and cumulative cost display
TanStack Query polling for live async Celery pipeline updates without page refresh
Document history view: all past submissions with processing status, cost totals, and report access
Duplicate submission alert: shows original submission date and cost if SHA-256 match detected
Tech Stack Implementation

Built with a grounded AI stack

Web Console (Next.js)
  • Next.js 15 + React 19 - reviewer console
  • TypeScript - end-to-end type safety
  • Tailwind CSS - styling
  • TanStack Query - live pipeline polling
  • Sentry - client-side error tracking
Backend (FastAPI)
  • FastAPI on Python 3.11 - async API with uvicorn + gunicorn
  • Pydantic v2 - typed schemas and validation
  • PydanticAI - structured LLM outputs
  • async SQLAlchemy + asyncpg + Alembic - ORM and migrations
Processing Pipeline
  • Celery - six-stage document pipeline as task chains
  • Redis - broker and result backend
  • Horizontal Celery scaling - throughput on demand
  • Per-stage progress and cost tracking
OCR & Extraction
  • AWS Textract - per-page OCR blocks, tables and key-value pairs
  • Per-page JSONB storage in PostgreSQL
  • Structured extraction with confidence scores
AI Engine
  • OpenAI GPT-4o - vision and structured output per page
  • PydanticAI - model routing and output validation
  • OpenAI text-embedding-3-small - embeddings for retrieval
RAG & Vector Store
  • ChromaDB - FBC, IBC and NFPA 1/70/72/101 embeddings
  • OpenAI Embeddings - code-passage indexing
  • Top-k retrieval per compliance check - every finding cited
Database
  • PostgreSQL - primary store
  • JSONB columns - OCR blocks, extractions and findings
  • asyncpg + Alembic - async driver and migrations
Storage & Security
  • AWS S3 - PDFs, OCR outputs and reports
  • Pre-signed multipart upload - 500 MB streaming
  • Signed-URL access control with configurable expiry
  • Per-reviewer audit logging
Observability & Reporting
  • Sentry - error tracking across backend and frontend
  • structlog - JSON logs with trace IDs
  • Per-stage cost logging to PostgreSQL
  • ReportLab - branded compliance report PDFs
DevOps & Infrastructure
  • Docker - containerised builds
  • GitHub Actions - CI/CD
  • Coolify on DigitalOcean - managed Docker Compose
  • Traefik - reverse proxy
  • Cloudflare + Let’s Encrypt - DNS and TLS
Results & Value

What actually changed

01
Days → Hours on Every Project
02
🔒
Zero-Hallucination, Permit-Ready Output
03
📐
200+ Checks Across Five Disciplines in One Platform
04
💰
No Billing Surprises, Ever
05
📈
Production-Grade at Scale
06
🤝
Human Accountability at Every Step
07
📄
Audit-Ready Permit File Output
Key achievements

Engineering outcomes beneath the headline numbers.

A1Delivered a production AI permit-review platform (Next.js 15 SPA, FastAPI backend, six-stage Celery pipeline) for a live Florida code-engineering firm
A2Zero-hallucination compliance findings: ChromaDB RAG retrieves real FBC/IBC/NFPA citations before every GPT-4o check - the AI cites, it does not guess
A3200+ discipline-specific checks across Architectural, Structural, MEP (Mechanical, Electrical, Plumbing), and NFPA fire/life-safety codes in one codebase
A4Full human-in-the-loop workflow: per-page extraction review, per-finding approval, and immutable report versioning for professional accountability
A5Cost-aware architecture: up-front estimates, live per-stage tracking, and configurable hard ceilings prevent billing surprises at production document volumes
A6Streaming 500 MB upload with SHA-256 dedup and signed S3 URLs - production-grade data handling for large construction drawing sets
A7End-to-end observability: Sentry + structlog across backend and frontend with per-request trace IDs and per-stage cost logging to PostgreSQL
A8Horizontal Celery scaling with zero code changes - worker replicas add capacity without architectural changes