How a Brooklyn HPD emergency-repair contractor turned a hand-typed, stamp-and-sign bid package into a 30-second, attach-and-go workflow

At a glance

  • Customer: A Brooklyn-based MWBE general contractor on HPD’s Carpentry & Roofing pre-qualified lists (identity withheld)
  • What they do: Bids and performs NYC affordable-housing repairs as an HPD Emergency Repair Program (ERP) contractor
  • The document: HPD Division of Emergency Operations Invitation to Bid / Open Market Order (OMO) package — one 4-page flat PDF, issued per job
  • Who runs it: A lean team — accounting, project management, buildings coordination, and the owner — all sharing the bid workload; no dedicated paperwork staff
  • Engagement: Fully-managed onboarding: we build the template, company profile, signature/stamp setup, and fill instructions for them
    Outcome: Per-bid manual document assembly → attach the OMO + 3–4 lines of notes → filled, stamped, signed PDF in seconds

The company

A small, family-run general contractor in Brooklyn. Their core revenue line is winning and delivering HPD Emergency Repair Program work orders — the city’s program for urgent repairs in privately-owned buildings (doors, locks, hinges, carpentry, roofing, painting). They are listed on HPD’s published Pre-Qualified List for Carpentry and Roofing and hold MWBE status.

The business runs lean: the same handful of people handle every bid. There is no dedicated ops team to absorb paperwork — so paperwork is the bottleneck. They found Instafill on their own and uploaded HPD bid PDFs several times before they ever spoke to us. The pain was doing the work of finding a tool, not being sold one.

The challenge — “it’s the same form every time, and we fill it by hand”

HPD emails the contractor a bid package for each job — a flat PDF with no fillable fields. To submit a bid, someone on the team rebuilds the same document from scratch, every time:

  • Re-type all the company boilerplate — contractor name, address, phone, fax, owner, “% to be subcontracted: N/A” — on a form that never changes but can’t be saved.
  • Pull the bid price out of an Excel sheet and type it in.
  • Copy the scope of work off the government’s page and paste it back into the “Remarks” boxes — often the identical text twice, because HPD’s own staff duplicate lines by hand. Then shrink the font (9 → 8 → 6 pt) so the scope fits the box on long jobs.
  • Extract material names out of the prose — e.g. pull “vintage-style passage lock” out of the scope and drop it into the Materials column, with size and quantity.
  • Tick the same boxes every time — Trade = GC, Permit Required = No, Sidewalk Bridge = No.
  • Stamp two pages with the current date and sign in 2–3 places — by hand, on every bid.
  • Beat the clock. The date changes daily as bids are submitted; emergency work goes to whoever turns a clean bid around first.

Two extra constraints came straight from them:

  • Signature & stamp are sensitive. They wanted the signature/stamp asset stored but not visible to every user on the account — an access-control ask, not just a convenience one.
  • Human data stays human. They were explicit that they’d type the bid price and materials themselves rather than have AI guess them out of an Excel file — but everything derivable from the government PDF (the scope, the location) should be automatic.

It’s a textbook Instafill use case: highly repetitive structure, small variable payload, high volume, time-sensitive, flat PDF.

The form package

One package = 4 pages. Fields split cleanly into STATIC (same on every bid) and VARIABLE (changes per job):

  • Page 1 — Invitation to Bid Quotation Sheet: Bid Price VARIABLE, company boilerplate STATIC, Signature (stored image, restricted access), Date VARIABLE.
  • Pages 2–3 — Requisition / Purchase Order: Stamp required on both, with stamp date VARIABLE.
  • Page 4 — Work Description Form: Trade = GC STATIC, Apt(s)/Location(s) VARIABLE, Material(s)/Size/Quantity VARIABLE, Remarks — the OMO’s scope of work plus a fixed closing compliance line VARIABLE, Permit Required / Sidewalk Bridge = No STATIC, Signature and Date.

The point of that breakdown: most of the fields never change. Only Bid Price, Location, Materials, the scope text, and the date move.

What we built

We didn’t sell them a self-serve tool and walk away — we built their workflow for them during a two-call onboarding, then handed it over.

  1. Flat → fillable, once. We converted the HPD OMO package into a single reusable template — stripped the pre-populated sample data, added real fillable fields, wrote field descriptions, and set the formatting. They stop uploading a new PDF per job; they reuse one template forever.
  2. Company profile baked in and locked. All the STATIC fields are pre-filled and the AI never touches them. Editable by them any time, invisible work otherwise.
  3. Agent fill = attach + a few lines. To bid a job they open the fill link, start a New Package, attach the government OMO PDF, and drop a short structured note (bid price, location, procedures, materials).
  4. The AI does the tedious part. From the attached OMO it auto-summarizes the scope of work into Remarks, appends the mandatory compliance line, de-duplicates HPD’s repeated entries, and lifts the material name out of the scope prose into the Materials column.
  5. Auto-stamp. The stamp lands on both required pages with the current date, automatically.
  6. Stored, reusable signature. They upload their signature once; it’s embedded on every generated document, isolated to their workspace, and repositionable.
  7. Human in the loop. Every value is editable in the review screen before download, so the rare exception is a quick manual fix, not a re-do.

The human now supplies only what’s genuinely in their head — the price and the materials — and everything derivable from the government file or the company profile is automatic.

Before → after

Before (manual)After (Instafill)
Per-bid inputRebuild the whole 4-page PDFAttach OMO + ~4 lines of notes
Company dataRe-typed every timeLocked profile, never re-typed
Scope / remarksCopy-paste (sometimes twice), shrink fontAuto-summarized, de-duped, compliance line appended
MaterialsRead the prose, extract by handLifted into the Materials column by AI
Stamp & dateStamped both pages by handAuto-stamped, current date
SignatureSigned 2–3 places each timeStored once, embedded automatically
Time per bidMinutes of focused typingAbout 30 seconds

Results & status

  • Live and in production, running the contractor’s real OMO bids rather than test files.
  • Seconds per bid. A full 4-page package — up to 372 form fields — fills in roughly half a minute.
  • Support that closes loops. The one defect they hit — a signature rotating on a landscape page — we root-caused and fixed within days, then confirmed the fix with them. That responsiveness is part of what the managed service delivers.
  • Onboarding pattern that scales: discovery call → collect a few blank + completed samples → we build the template, profile, and instructions → a second call to nail edge cases → hand over. Total elapsed setup: about three weeks, most of it waiting on samples and polish, not heavy lifting.