When you search SAM.gov, you are searching notice metadata: the title, the agency, the NAICS code, a short synopsis. The parts of a solicitation that decide whether you bid, the award method, the clearance level, the period of performance, the incumbent, the compliance bars, are almost never in that metadata. They are inside the attached files: the solicitation PDF, the statement of work, the price schedule, the wage determination, the industry-day slide deck. A title that reads "Locksmith Services" does not mention that page 8 of the attached statement of work requires an active Secret clearance.
This is a technical account of what those attachments actually contain, measured across a full-text index of every document attached to a federal opportunity. All figures are as of July 16, 2026, and were produced by reading the extracted text, not by sampling.
content= filter.A procurement fact is useful only if you can find every opportunity that carries it. The facts below decide whether a contract is worth your time, and none of them is a SAM notice field. Each count is the number of distinct opportunities whose attached documents contain that exact phrase, as of July 16, 2026.
| Requirement (phrase in the documents) | Opportunities |
|---|---|
| period of performance | 107,078 |
| Buy American | 75,252 |
| wage determination | 56,707 |
| small business subcontracting plan | 56,342 |
| best value | 39,791 |
| lowest price technically acceptable (LPTA) | 24,154 |
| security clearance | 22,790 |
| FedRAMP | 9,872 |
| Section 508 | 8,708 |
| incumbent contractor | 7,255 |
| CMMC | 5,312 |
| TS/SCI | 1,423 |
The award method is the clearest example. Whether a contract is awarded lowest-price-technically-acceptable or on best-value trade-off changes your entire bid strategy, and it is stated in the solicitation text, never in a structured field. 24,154 opportunities name LPTA in their documents; 39,791 name best value. A metadata search cannot separate them because the distinction was never captured as data.
19AQMM26R0244.pdf and Attachment B- Statement of Work.pdf), not in anything a title or keyword search reads. If you staff cleared personnel, these are your opportunities, and they are invisible to every search that stops at the notice.SAM lists the files a notice attaches. It does not list what is inside them. A meaningful share of federal solicitations attach a ZIP, and that ZIP frequently contains more ZIPs. To index the actual documents, each archive has to be opened, and the archives it contains opened in turn, until only real files remain.
Doing that recovered 57,527 documents that do not appear in SAM's attachment list at all, distributed by nesting depth:
| Nesting depth | What it means | Documents recovered |
|---|---|---|
| 1 | a file inside an attached archive | 51,209 |
| 2 | a file inside an archive inside an archive | 5,451 |
| 3 | three archives deep | 622 |
| 4 | four archives deep | 169 |
| 5 | five archives deep | 76 |
The deepest are not contrived. One real five-level path, from a systems-engineering solicitation, runs:
(U) 02 iHub - ATS GRA.mdzip
└ BINARY-0891ea1f-...
└ stc-risk-tools-installer/22/stcRiskTools.rdzip
└ (the extracted document)The outer file is a MagicDraw systems model (.mdzip, itself a ZIP), which embeds binary payloads, one of which is a tool installer (.rdzip, also a ZIP), which contains the document. The "(U)" prefix is the Unclassified marking the contracting office applied to the file. A tool that reads only the top-level attachment list sees one .mdzip and stops. The requirements were three archives further down.
.zip is often the entire solicitation package rather than a supplement. Depth is not an edge case to skip; it is where the full RFP frequently lives.Not every attached PDF has a text layer. Contracting offices routinely scan a signed SF-1449, a wage determination, or a hand-annotated drawing and attach the image. To a normal text extractor those pages are blank. 41,764 documents in the index carried no extractable text and were read with optical character recognition instead.
These are not marginal files. A scanned wage determination sets the labor-cost floor for the bid. A scanned amendment can change the response date. Leaving them as images drops exactly the documents that carry binding terms. The recovered text is searchable alongside the rest, so a query for "wage determination" reaches the 56,707 opportunities that mention it whether the mention was typed or scanned.
The index covers every common document format a contracting office attaches, extracted with the right tool for each. The breakdown of the 506,382 documents as of July 16, 2026:
| Format | Documents |
|---|---|
| PDF (with a text layer) | 327,917 |
| Word (.docx) | 92,875 |
| Scanned pages (OCR) | 41,764 |
| Excel (.xlsx) | 28,559 |
| Plain text | 10,104 |
| Legacy Word / Excel (.doc, .xls) | 3,931 |
| PowerPoint (.pptx) | 880 |
| Rich text (.rtf) | 352 |
Excel matters more than its count suggests: price schedules and CLIN structures live in spreadsheets, and PowerPoint is where industry-day briefings state requirements that never make it into the formal solicitation. Both are indexed cell-by-cell and slide-by-slide.
The full text is queryable through the opportunities search API as a content= filter. It searches inside the documents; the existing keywords= filter searches the notice title, agency, and synopsis. They are different layers, and for bid-deciding requirements the document layer is the one that carries the answer.
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://govconapi.com/api/v1/opportunities/search?content=CMMC&naics=541512"
Multiple words match documents containing all of them (content=CMMC Level 2); a quoted string matches the exact phrase (content="active secret clearance"). The filter combines with every other search parameter, so you can scope a document search to a NAICS, an agency, a date range, or open notices only. Content search is a Pro-plan feature and runs at the standard 1,000 requests/hour, not a capped preview.
Full search-endpoint documentation → | Pricing →
Hit a data issue or a document type we did not cover? Press Ctrl+Enter to share, it helps the next developer.