Every document project begins with a folder somebody is slightly embarrassed by. A shared drive grown over a decade, a scanner that names everything SKM_C224e, three generations of a price book, and one manufacturer bulletin that exists only as photographs taken in a truck cab. Getting that pile into a system an AI can answer from is most of the work, and it is the part that never appears in the demo.
What the pile actually looks like
A mechanical contractor's real corpus is not one kind of thing. There are native PDFs of manufacturer specs downloaded last year, which extract to text almost perfectly. There are Word documents of standard procedures, edited by four people across five years, each with their own idea of formatting. There is an Excel price book with merged cells and a color code only the estimator understands. There are scanned operation and maintenance manuals from 2009, a filing cabinet of signed change orders, and email threads where the actual decision lives three replies deep. Each of these is a different engineering problem, and treating them as one problem is how projects fail politely, weeks later, one wrong answer at a time.
Sorting scans from natives, and both from garbage
The first pass is triage, and it is mostly about the scanned material. A clean office scan of a typed page runs through optical character recognition well. A photograph of a coffee-stained bulletin, a fax of a fax, a carbon copy, or a page with handwriting crawling up the margin may come out as something between fragmentary and fictional — and the failure is silent. A page that reads "1/2 inch" and extracts as "12 inch" does not announce itself. It waits in the index until someone asks the question it answers wrongly.
So scanned pages get sorted into three bins before anything else happens: pages that extract cleanly, pages that extract but get spot-checked against the original, and problem pages that are quarantined until a person has either re-scanned them, retyped them, or decided they are not worth saving. Nothing from the third bin is trusted until a human has looked at it. This is tedious. It is also the reason the answers can be trusted later, and there is no version of this work where the tedium is optional — only versions where it is skipped and paid for afterward.
Tables are the highest-stakes pages in the building
The most dangerous page in the corpus is not a smudged scan. It is the price book table that extracts as an undifferentiated wall of numbers. A table stripped of its header row still contains every figure it always did, in order, and a retrieval system will happily hand those figures to a model, which will happily attach them to the wrong columns. The result is a confidently stated price that no document ever contained. Ingestion done properly keeps tables intact as tables, preserves header rows and units, and carries a label on each extracted row saying which table and which document it came from — so that when the model quotes a price, it is reading a row under its own header, not reassembling soup.
The two-versions problem
Here is the failure that convinces most owners this step matters. A fabrication shop's lockout-tagout procedure exists on the drive twice: version 3 from 2019, saved as LOTO_procedure_FINAL.doc, and version 7 from 2025, saved as LOTO 2025 use this one.docx. Both were swept into the index, because the sweep took everything. A question about the procedure now retrieves strong-matching paragraphs from each — the isolation steps from one, the verification steps from the other — and the system stitches them into a single fluent answer describing a procedure that is not version 3, is not version 7, and was never in force in any year. Nobody wrote that procedure. The retrieval step assembled it, and it reads exactly as confident as everything else the system says.
The fix is a deduplication pass before indexing: identify families of documents that are versions of one another, put the current one in the index, and move the rest to an archive. The archive is not deleted — sometimes you genuinely need to know what the 2019 procedure said — but archived versions are only searched when someone asks for history on purpose, never blended into answers about the present.
Effective dates ride with every chunk
Version conflicts are the acute form of a chronic disease, and the chronic treatment is metadata. Every document entering the index gets an effective date, and where one document replaces another, a note of what it supersedes. Every chunk cut from that document carries the date with it, so retrieval can prefer current material by default and an answer can say "per the March 2026 price book" instead of implying timelessness. A document with no discoverable date is itself a finding: someone at the company has to decide whether it is current, and that decision gets written down as the date. Six months from now, nobody will remember deciding — which is the point of writing it down.
What gets left out on purpose
An ingest pipeline needs an exclusion list as much as an inclusion list. Draft proposals, superseded quotes, one job's negotiated pricing that would poison every general pricing answer, and personal working notes all match searches beautifully and mislead reliably. Deciding what stays out is an owner-level conversation, not a technical one, and it takes an hour that repays itself every week the system runs.
Week one is cleanup, and you should distrust anyone who says otherwise
The honest schedule for a document project produces no visible AI at all in its first stretch. It produces a sorted corpus, a quarantine folder, a deduplicated document tree, and a list of undated files with a name next to each one for chasing the date down. Vendors who skip this stage are not faster; they are answering from the pile as it was found, version conflicts and headless tables included. One limit worth stating just as plainly: ingestion cannot fix documents that are wrong. If the handbook says one thing and the shop floor does another, the system will faithfully repeat the handbook, and correcting that is an editing job for the owner, not an engineering job for us.
Where to start
Pick the one document set you would most want answered correctly — the price book and the safety procedures are the usual answers — and gather every version of it into a single folder, marking which one is current. That takes an afternoon, requires no software, and it is the genuine first step of the pipeline whether or not the rest ever gets built.