AP
← The AltaML Chapter

General Contracting

Targeting an 80% Reduction in RFP Time

For every new bid, estimators reviewed extensive project documents, identified which work should be subcontracted, and manually created a tailored RFP for each trade. We built an agentic AI product that turns a client bid package into reviewable, source-backed RFPs, while keeping the estimator in control.

Users

Construction estimators

Before

~3 hrs per RFP

→

Target

~30 min per RFP

The problem

When a general contractor received a new bid opportunity, estimators had to read more than 100 pages of scopes, specifications, drawings, and contractual requirements.

From those documents, they had to determine which work would be done internally, which services required subcontractors, what requirements applied to each trade, what information belonged in each vendor's RFP, and which source documents needed to accompany it. The estimator then repeated the process for every subcontractor, often spending 2 to 4 hours on each RFP.

The same bid package had to be interpreted again and again, once for every subcontractor.

The product

The estimator uploads the client's bid documents. The product analyzes the scope, proposes a work breakdown, and generates a tailored RFP for every confirmed subcontracted service. Each RFP follows the contractor's existing ten-section template and connects generated content back to the original source documents.

01

Upload the bid package

The client's scope of work, specifications, and supporting project documents.

02

Confirm the work breakdown

The system recommends self-perform, subcontract, or partial for each service. The estimator corrects and adds context.

03

Generate trade-specific RFPs

For each subcontracted service, the system extracts requirements and drafts an RFP from the standard template.

04

Review against the source

The estimator reviews the draft beside the original documents and validates the evidence.

05

Export to Word

The final RFP exports as a formatted .docx, ready for the vendor distribution package.

Key product decisions

01

Optimize for missed scope

Missing a subcontracted service could mean an RFP never gets created. We prioritized recall, and made it easy to add, remove, or reclassify services before generation.

02

Evidence beside the draft

Every generated section links back to its supporting source passage, so estimators can verify content without searching the entire bid package.

03

Ask instead of invent

When information like internally supplied materials isn't in the client documents, the system marks the section Needs Input instead of generating an assumption.

Measuring What Worked

We evaluated more than whether an RFP was generated successfully. The system was designed to measure service recall, grounding, coverage, acceptance rate, rewrite rate, and whether review was actually faster than writing from scratch.

  • Service recall: did it identify every subcontracted service?
  • Grounding: could every generated claim be traced to the source?
  • Coverage: did it capture the requirements relevant to that trade?
  • Acceptance rate: how much content was accepted without changes?
  • Rewrite rate: did the estimator need to start over?
  • Review time: was reviewing the draft genuinely faster than writing it?

If estimators rewrote the draft from scratch, the product hadn't automated the work. It had only added another review step.

What I owned

  • Mapped the end-to-end RFP workflow with construction estimators
  • Defined and prioritized the MVP
  • Translated a ten-section RFP process into an agentic AI experience
  • Designed the source-validation and human-review workflow
  • Defined the evaluation framework and partnered with engineering through testing

The outcome

  • Built an end-to-end workflow from bid-package upload to Word export
  • Generated a work breakdown with self-perform and subcontract recommendations
  • Created separate, source-backed RFP drafts for each subcontracted trade
  • Enabled section-level review, editing, and source validation
  • Designed toward reducing average RFP creation time from about three hours to 30 minutes