Products · In production since 2025
XBuilder
An AI takeoff platform for construction estimating. It reads a PDF floor plan and returns structured quantities — rooms with areas and perimeters, openings with widths and heights, dimension chains and building sections — which an estimator exports as CSV or JSON and bids from, instead of measuring the drawing by hand.
What was technically hard
A language model returns plausible JSON, not a schema. Plans name their levels inconsistently, quote dimensions in whatever the drafter used, and omit fields entirely, so nothing from the model is trusted directly: every number is coerced before it becomes a row, levels are derived from the floor map rather than read off the labels, and every room and opening carries its own confidence score. An estimator prices a bid off these figures, so a wrong number that looks certain is far worse than one marked uncertain.
How it's built
Django and DRF on PostgreSQL, with Celery running the extraction and Redis behind the queue. The PDF goes to OpenAI as a file and the response is parsed against a prompt template chosen per model, with three retries and exponential backoff. Progress is written to the plan row and pushed to the browser over Centrifugo, so a long extraction shows movement rather than a spinner. Every plan is scoped to an organisation at the queryset and permission layer.
One decision we made, and why
We send the PDF to the model as a file rather than rasterising it first. Converting to images would have given us control over resolution, but every conversion step costs detail a drawing depends on — hairlines, dimension text, hatching — and those are precisely what the extraction has to read.
Building something in Dev Tech?
The same failure modes, and what we do about them in your domain.
$ tell us what you're building and where it's stuck
Book a 30-min discovery call
We reply within one business day.