Government ContractingAI Automation

From 40 solicitations a week by hand to an eight-step automated bid pipeline

Automated Government Bid Pipeline

The challenge

A five-person certified small-business reseller supplying office, janitorial and facilities products to state and local government agencies ran its entire bidding process manually — reviewing 20 to 40 solicitations per week by hand.

Every step was human. Pull solicitations from a subscription portal. Read each one to decide whether it was product-only, since any labour or installation component disqualifies the business completely. Score it. Create a folder, download attachments, read PDFs and spreadsheets to pull out line items. Price each item against at least three vendors. Build a pricing sheet, fill an internal purchase-order workbook, complete the agency's compliance forms, assemble a bid package, and track it all across a legacy tracker and a set of spreadsheets. Roughly half the target solicitations don't even carry their documents in the source portal, forcing a manual hop to the agency's own site.

What we built

We built a daily pipeline that takes a solicitation from just-posted to ready-for-a-human-to-sign, in eight steps.

It pulls newly posted product solicitations each morning and decides whether each is worth bidding — checking it is a pure product purchase with no labour, that it falls in the client's categories, that the deadline is far enough out and the value in range — then scores it 0–100 and files a card either way, including the rejects, each with a written reason.

For those that pass it creates a dated folder, downloads the agency's documents, and reads them to extract the actual shopping list — item numbers, descriptions, part numbers, quantities, units — whether that list sits in a PDF table, a spreadsheet, or buried in prose. Structured parsing runs first and the model is the fallback, so most extraction costs nothing.

It then prices every line item against live distributor data feeds, and where no part number is specified proposes the three best-fit products with a similarity rating each. Prices flow into two spreadsheets cloned from the client's own templates, with the profit margin left as an editable cell rather than baked into the formulas. Finally it generates a cover letter and company information page, auto-fills whatever agency forms are machine-fillable, flags those needing notarisation, merges everything into a single bid package PDF, and opens a tracker task with 32 populated fields that doubles as the bid cover sheet.

Submission stays deliberately manual — a person reviews and files.

What was delivered

20–40 / week8-step daily pipeline

solicitations, by hand vs automated

245

automated tests passing

74

line items extracted from one bid

structurally, with no model call

31,000

key cross-reference index

built to make a distributor API usable

  • 245 automated tests passing across 29 test modules
  • Live end-to-end runs against real solicitations recording zero errors
  • 74 line items extracted structurally from a single real bid, with no model call required
  • Ten integrations wired, including five live distributor data feeds
  • A self-built 31,000-key cross-reference index to make one distributor's bulk API usable
  • Rejected bids filed with written reasons rather than silently dropped, making the qualification rule auditable

Every figure above is taken from the delivered system itself. Where we don't have a client-verified business outcome, we report what was built and measured rather than estimating an improvement.

Tech stack

  • Python
  • Claude
  • Agent orchestration
  • pdfplumber
  • openpyxl
  • pypdf
  • reportlab
  • pytest

Related service

AI Workflow & Business Process Automation

Automate the work your team shouldn't be doing by hand.

Have a similar project?

Tell us your goal and we'll map the fastest path to results.

WhatsApp