Bid Intake · Agentic System

Bid intake for specialty subcontractors.

A crew of agents that turns inbound general contractor bid packages — emails, PDFs, drawings — into structured triage, scope checklists, and risk flags. Built with a commercial millwork shop. The same patterns extend to drywall, structural steel, mechanical, glazing, and other specialty trades.

Sunday on a bid. Lost it anyway.

Specialty subcontractors live or die by their bid volume and bid quality. Every general contractor inquiry is hours of work just to figure out whether to chase it: read the email, open the drawings, scan for scope, check the schedule, weigh the general contractor relationship, decide. Most of that time isn't estimating. It's sorting.

  • Bid packages arrive as a mix of PDFs, emails, .eml files, and scattered drawings. Sorting them eats the estimator's morning.
  • Half the packages aren't a fit — wrong trade, residential, outside service area, too small, too far. You don't know until you've already read them.
  • Risk signals (missing pages, vague scope, unrealistic schedule, payment red flags) hide until late in the read.
  • Sunday becomes the only time long enough to read a package end to end. Family becomes the cost.
  • The good bids don't get the time they deserve because the bad ones already took it.

The problem isn't your estimator. The problem is that nobody else has read the package by the time it hits their desk.

What the crew does before your estimator opens the file.

Every inbound bid package gets read first by the crew. Email body, attached PDFs, drawings, and any prior notes get parsed into a single intake record. Company rules — minimum project value, service area, prioritized trades, declined work types, risk patterns — apply automatically. By the time the estimator opens the file, the bad bids are already flagged and the good ones are pre-triaged.

Six agents, working before the estimator does.

01

Package ingestion

Email content, attached PDFs, .eml files, and image uploads parsed and normalized into a single intake record. Nothing gets missed in an inbox thread or buried attachment.

02

Scope extraction

Project type, location, trade scope, dates, and stated value extracted explicitly from source documents. No invented details, no hallucinated numbers — just what the general contractor actually wrote.

03

Drawings completeness check

Drawing sets parsed and checked against typical completeness expectations. Missing sheets, vague details, and ambiguous specs surfaced before you commit time.

04

Risk and fit tagging

Configurable risk signals (unrealistic schedule, vague scope, residential, outside service area, payment patterns) applied to every package. Bad bids flagged early.

05

Bid queue recommendation

Each package routed to a recommendation: estimator review, needs clarification, deprioritize, decline. Your estimator works the right packages first.

06

Optional estimate skeleton

On approved packages, a second pass produces a scope-by-area skeleton with stated measurements, an uncertainty register, and specialty flags. Not a takeoff, not a price — a head start.

Plugs into the inbox your estimator already lives in.

The crew watches the inbox or shared folder where general contractor bid packages arrive. Each new package gets ingested, parsed, and triaged within minutes. Results land back in your team's existing workflow — a shared workspace, a review UI, or whatever channel your estimator already uses. No new tools to learn. No data migrations.

Company rules are configurable per shop: name, description, service area, minimum project value, prioritized and deprioritized project types, declined work, and risk signals. The same crew, tuned differently per business.

What happens when a bid package lands.

A general contractor sends a bid invitation Tuesday afternoon. PDFs attached, schedule in the email body, .eml file with the full thread. Here's what happens before your estimator opens it Wednesday morning:

  1. Step 1

    Package ingested.

    Email body, attachments, and prior thread context parsed into a single intake record within minutes of receipt.

  2. Step 2

    Rules applied.

    Service area, project type, minimum value, and known general contractor patterns checked automatically.

  3. Step 3

    Drawings scanned.

    PDF pages parsed for scope, key dimensions, and obvious completeness gaps.

  4. Step 4

    Triage produced.

    Structured markdown with project summary, scope checklist, risk flags, drawings status, and a queue recommendation.

  5. Step 5

    Estimator opens the file.

    Already knowing it's a fit, what's missing, what's risky, and what to look at first.

Sunday stays yours.

Built in production with a commercial millwork shop.

The Bid Intake agentic system is a working full-stack application — multi-agent crews, PDF and email parsing, configurable per-company rules, a review UI, and persistent job state. It was built and tuned with a commercial millwork shop in the Baltimore/DC market with strong concentration in healthcare, education, and institutional work. The same patterns apply to any specialty subcontractor receiving general contractor bid packages: drywall, structural steel, mechanical, glazing, electrical, and adjacent trades.

Built for real bid packages

Multi-format intake: pasted email text, PDF drawings, .eml threads, image uploads. Not a toy.

Configurable per shop

Company rules drive how every package is judged. Same crew, your business logic.

Estimator-first design

Markdown output, review UI, estimator notes on documents, decision tracking. Built for the workflow that already exists.

Specialty subcontractors that receive general contractor bid packages.

This is for you if:

  • You're a specialty subcontractor — millwork, cabinets, drywall, structural steel, mechanical, glazing, electrical — receiving general contractor bid invitations
  • You're losing bid hours to sorting and reading rather than estimating
  • You've thought about hiring a junior estimator just to triage the inbox, and the math doesn't work
  • Your estimator's Sunday is spent reading packages instead of with family

This is not for you if:

  • You're a general contractor sending bid packages out (the system reads inbound, not outbound)
  • You want a full quantity takeoff or priced bid — that's still human work
  • Your bid volume is low enough that triage isn't a real bottleneck

How we work together.

Bid Intake is currently in a partner-engagement phase. We work with one or two specialty subcontractors at a time to tune the crew to your trade, your service area, your general contractor relationships, and your historical bid patterns. Engagements start with a paid pilot followed by a monthly retainer.

Included:

  • Initial discovery and bid-history review
  • Crew tuning to your trade vocabulary, general contractor patterns, and service area
  • Integration with your inbox or shared package folder
  • Review UI access for your estimator
  • Ongoing tuning as bid patterns evolve
  • Monthly outcomes review

Not included:

  • Full quantity takeoffs (still human estimator work)
  • Priced bids or final bid/no-bid decisions (still your call)
  • General contractor outbound bid-sending workflows

Book a 30-minute bid intake walkthrough.

We'll look at three recent bid packages your team triaged, show you what the crew would have produced, and discuss whether your trade and bid volume are a fit. No pitch, no obligation.

Common questions.

Q: Does the crew produce a final priced bid?

A: No. The crew handles triage and an optional scope skeleton — what's in the package, what's missing, what's risky, what's worth chasing. Pricing, quantity takeoffs, and the final bid number stay with your estimator. The crew gives them a head start, not a replacement.

Q: Will it work for trades other than millwork?

A: The crew was built and tuned with a commercial millwork shop, but the architecture is configurable per shop. Rules, project types, vocabulary, and risk signals adjust per trade. We've designed it to extend cleanly to drywall, structural steel, mechanical, glazing, and adjacent specialty trades. The first 2-4 weeks of any new-trade engagement is tuning the crew to that trade's specifics.

Q: What file types can it handle?

A: PDF drawings, .eml email files, pasted email text, image uploads, and inline email bodies with attachments. If you receive packages in a format we haven't seen yet, we'll add support.

Q: What if the crew misjudges a package?

A: Every triage output is a recommendation, not a decision. Your estimator opens every flagged package and confirms or overrides the recommendation. The crew gets better as you log decisions — over time it learns your business's actual judgment patterns.

Q: Where does the data live?

A: On infrastructure we operate, with per-customer isolation and encrypted credentials. Bid package contents are not used to train shared models and are not visible across customers.

Q: How long until we see results?

A: First triage outputs on real bid packages typically come within 2 weeks of kickoff. Crew tuning continues for 4-8 weeks as your estimator feeds back on which calls were right and which weren't.