Issue 01 · answerd.it

AI tools for industries that run on expert work.

answerd.it builds AI for the parts of the economy that still run on spreadsheets, phone calls, and thirty years of a person's judgment. We do not make horizontal chatbots. We ship one deep tool at a time, aimed at one trade at a time. Currently: construction estimating.

I. Currently shipping · TakeoffAI
The Product

A takeoff in thirty seconds.
A scorecard after every job.

Describe a construction project in plain English. TakeoffAI returns a full line-item takeoff with regional unit costs, a bid strategy with three scenarios and their win probabilities, and a graded history of every bid it has ever written for you. It is a local install. Bid data never leaves the building.

i

Estimate in thirty seconds

Describe the project in plain English — "9,200 sq ft retail TI, demo the old build-out, new framing, electrical rough-in, HVAC revisions". TakeoffAI parses the scope, pulls regional unit costs, applies your overhead and margin, and returns a full line-item takeoff. No templates, no RSMeans subscription.

ii

Bid to win, not just to submit

Once the estimate is on the table, BidToWin reads the RFP and hands back three scenarios with win probabilities attached, a list of scope gaps the owner is going to ask about on the walk-through, and a range of where competitors are likely to come in. You still make the call. You just make it with the rest of the board visible.

iii

Thirty parallel opinions, not one

Every estimate runs as a tournament: five estimator personalities (conservative, balanced, aggressive, historical_match, market_beater) across three temperatures, sampled twice each. Thirty calls in parallel. The grid collapses to one consensus bid per personality — the one closest to the median — and those five are what you see. Disagreement between them is itself a signal.

iv

It keeps score on itself

When a job closes, TakeoffAI records what each personality predicted against what the job actually cost, and tracks a rolling Brier score for its win-probability calls. Any personality that drifts past 5% average deviation over its last five closed jobs gets red-flagged and sidelined from your next tournament. Accuracy is a measurement, not a claim.

v

It learns your company specifically

Upload your old bids — won and lost. Every closed job becomes a page in a local Obsidian vault, and the historical_match personality pulls comparable jobs from your own history into the prompt for the next bid in the same trade. After the fiftieth bid it sounds less like a generic estimator and more like the person who trained it.

vi

The system rewrites itself

Still experimental, still the most interesting piece: if one personality starts winning more than 60% of your tournaments, the harness evolver takes the trace logs, reasons about why the others are losing, and rewrites their prompts in place. A dry-run mode shows you the diff before anything ships. Rollback is git revert.

BidToWin · retail TI, 9,200 sq ft 3 scenarios
Scenario Bid Win prob
Conservative margin $358,200 41%
Aggressive $329,400 82%
Competitor range $312k – $371k n=4
Scope gaps flagged 11
  • RFP silent on after-hours access; assume premium crew rate?
  • Existing electrical panel capacity not verified on walk-through
  • Demo scope excludes asbestos testing — owner liability unclear
  • Finish schedule references "Landlord Standard" but no exhibit attached
Why balanced

Historical match flags three comparable retail TIs you won between $332k–$351k, all with 11–13% markup. Aggressive gets the job 82% of the time but loses money on a third of those runs based on your last twelve closed jobs. Balanced is the one your company has actually won with.

How it learns

The loop, in six steps.

  1. One project description and an RFP.
  2. Tournament: five personalities × three temperatures × two samples equals thirty parallel calls.
  3. Consensus collapse. You see five bids, not thirty.
  4. Job closes. Deviations logged, Brier score updated, drifted agents red-flagged.
  5. Next estimate pulls comparable closed jobs from your Obsidian vault automatically.
  6. If one personality dominates past 60%, the harness evolver rewrites the others.

Every closed job is a graded prediction. The ones that drift get benched.

The stack

What it is built on.

A short answer to the question every contractor's IT person asks before a tool gets on their machine.

  • FastAPI + SQLite, local Docker deploy. Bid data never leaves the building.
  • Tournament grid — five personalities × three temperatures × n samples per estimate, collapsed to one consensus bid per personality.
  • Per-client profile — ELO scores, win rates, calibration state, and excluded agents live in backend/data/client_profiles/<client_id>.json. Every contractor grows their own.
  • Obsidian vault — every closed job becomes a markdown page under wiki/jobs/, automatically enriched and linked.
  • Nightly price audit — an APScheduler cron at 02:00 checks material costs against web sources and flags drift.

Currently in field testing with GCs in Central Texas.