SAM.gov RFP Compliance Matrix & Bid/No-Bid Analyzer avatar

SAM.gov RFP Compliance Matrix & Bid/No-Bid Analyzer

Pricing

from $2.00 / rfp analysis completed

Go to Apify Store
SAM.gov RFP Compliance Matrix & Bid/No-Bid Analyzer

SAM.gov RFP Compliance Matrix & Bid/No-Bid Analyzer

Turn SAM.gov opportunities or direct RFP attachments into a bid/no-bid brief, source-cited requirements, deadlines, risks, clarification questions, and an Excel-ready compliance matrix CSV.

Pricing

from $2.00 / rfp analysis completed

Rating

0.0

(0)

Developer

Cedric De Schaut

Cedric De Schaut

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

Categories

Share

SAM.gov RFP Analyzer cover

What does SAM.gov RFP Analyzer do?

SAM.gov RFP Analyzer turns public SAM.gov opportunities or direct RFP attachments into a source-cited bid/no-bid brief, compliance matrix CSV, deadlines, risks, clarification questions, and downloadable analysis files.

It is built for capture managers, proposal writers, GovCon consultants, and small business teams that need to triage solicitations before spending serious proposal time.

Use it as a lightweight SAM.gov RFP analysis API. Start with a quick free scan, then run a paid standard or deep analysis when the opportunity is worth proposal time. It does not generate a complete proposal and it does not replace legal, procurement, or contracting review.

Why use this SAM.gov RFP analysis Actor?

  • Extract source-cited requirements from PDF, DOCX, HTML, and TXT attachments.
  • Generate an Excel-ready compliance matrix with requirement IDs, sources, response flags, status, and risk level.
  • OCR scanned image-only PDFs when no embedded text is available.
  • Detect proposal deadlines, question deadlines, and other key date/time language.
  • Identify submission and compliance risks such as late-proposal rejection language.
  • Produce a human-readable bid/no-bid summary in SUMMARY.md.
  • Save machine-readable artifacts for downstream workflows, review, or automation.
  • Run from the Apify Console, API, schedules, integrations, or monitoring workflows.

What data does it produce?

Real compliance matrix output preview

OutputTypeDescription
VerdictstringBid/no-bid recommendation such as bid, consider, no_bid, or unknown.
Response deadlinestringDetected proposal due date when available.
RequirementstringSource-cited obligation extracted from the RFP documents.
SourcestringFilename and page number when available.
RiskobjectRisk ID, level, category, reason, and recommended action.
ArtifactsfilesSUMMARY.md, summary.json, compliance_matrix.csv, requirements.json, plus advanced debug detail in all_rows.json.

How to analyze a SAM.gov RFP

  1. Open the Actor input tab.
  2. Paste either a public SAM.gov opportunity URL, a SAM.gov notice ID, or one or more direct attachment URLs.
  3. Choose an analysis depth. quick is a quick free scan for triage; standard and deep run full paid analysis.
  4. Keep useLlm set to false for the lowest-cost deterministic run, or enable LLM enrichment if you have configured an OpenAI-compatible key.
  5. Start the Actor.
  6. Download compliance_matrix.csv for Excel or review SUMMARY.md for the decision brief.

Which analysis depth should I choose?

DepthBest forBilling behavior
quickFirst-pass triage, confirming that attachments are reachable, and checking whether the RFP has enough extractable requirements to continue.Free scan; capped document and page limits.
standardThe normal paid run for a full compliance matrix, bid/no-bid brief, requirements list, deadlines, and risk review.Charges one completed-analysis event.
deepLarger, scanned, or especially important RFPs where broader document/page limits matter.Charges one completed-analysis event.

Recommended workflow: run quick first, review SUMMARY.md, then rerun the same input with analysisDepth: "standard" if the opportunity looks real and proposal-worthy.

Input

You can use any of these input modes:

  • samOpportunityUrl: public SAM.gov opportunity page URL.
  • noticeId: SAM.gov notice or opportunity identifier.
  • attachmentUrls: direct public PDF, DOCX, HTML, or TXT files.
  • companyProfile: optional capabilities, certifications, NAICS codes, or past-performance context.
  • analysisDepth: quick, standard, or deep. Use quick for a quick free scan.
  • useLlm: set to false for deterministic extraction or true for optional enrichment.
  • enableOcr: turn OCR fallback on or off for scanned PDFs.
  • ocrMaxPages: maximum pages to OCR per scanned PDF.
  • maxAttachments, maxPagesPerDocument, and maxFileMb: controls for scope and cost.

At least one of samOpportunityUrl, noticeId, or attachmentUrls is required. A run with only the default limit settings will fail because there is no RFP to analyze.

Example input:

{
"attachmentUrls": [
"https://media.bpca.ny.gov/wp-content/uploads/2026/04/24142435/Municipal-Advisory-Services-RFP_Final-RFP_v2.pdf"
],
"analysisDepth": "quick",
"useLlm": false,
"enableOcr": true,
"ocrMaxPages": 10,
"maxAttachments": 10,
"maxPagesPerDocument": 150,
"maxFileMb": 25
}

Output

The default dataset is optimized for Apify table views and exports. Each dataset row is one compliance matrix row. Run-level summary fields such as verdict, deadline, counts, risks, and generated file names are stored in summary.json and SUMMARY.md to keep dataset exports clean.

Simplified example:

{
"itemType": "compliance_matrix_row",
"requirementId": "REQ-001",
"requirement": "Proposer must have the ability to provide the services described in this RFP within New York City, including the ability to attend in-person meetings at BPCA offices as requested.",
"source": "Municipal-Advisory-Services-RFP_Final-RFP_v2.pdf: page 5",
"responseNeeded": "yes",
"owner": "",
"status": "not_started",
"evidenceNote": "EVID-001",
"riskLevel": "low"
}

The key-value store also contains:

  • SUMMARY.md: human-readable bid/no-bid brief.
  • summary.json: machine-readable run summary.
  • compliance_matrix.csv: Excel-ready compliance matrix.
  • requirements.json: extracted source-cited requirements.
  • all_rows.json: advanced debug detail. This intentionally mixes summary, opportunity, document, requirement, compliance, deadline, risk, and clarification records for troubleshooting.

How much does it cost?

This Actor uses pay-per-event pricing for completed standard and deep analyses, plus Apify platform usage. analysisDepth: "quick" is a quick free scan that skips the completed-analysis event while still respecting Apify platform usage.

To control cost, start with analysisDepth: "quick" and useLlm: false. For paid full runs, keep practical limits for maxAttachments, maxPagesPerDocument, ocrMaxPages, and maxFileMb.

Best practices

  • Use direct attachmentUrls when you already have the RFP documents; this usually gives the cleanest run.
  • Use samOpportunityUrl or noticeId when you want the Actor to discover public opportunity context.
  • Start with a quick free scan before paying for a standard or deep analysis.
  • Start with useLlm: false for predictable, low-cost extraction.
  • Download compliance_matrix.csv and assign owners/statuses in your proposal workflow.
  • Review SUMMARY.md before spending time on a full proposal.
  • Review the original source documents before submitting anything to an agency.

Limitations

  • OCR is available for scanned PDFs, but OCR is slower and capped by ocrMaxPages.
  • Password-protected, private, expired, or blocked attachments may not be accessible.
  • The Actor extracts and structures planning intelligence; it does not write a complete proposal.
  • The output is analysis support, not legal, procurement, or contracting advice.
  • Source citations depend on the quality of the underlying document text.

FAQ

Can I analyze direct RFP attachment URLs instead of a SAM.gov page?

Yes. Use attachmentUrls when you have public document links. This is often the fastest and most reliable input mode.

Does it work with scanned PDFs?

Yes, if enableOcr is true. The Actor first tries embedded PDF text, then OCRs up to ocrMaxPages pages when no embedded text is found.

Does it generate a complete proposal?

No. It produces a bid/no-bid brief, compliance matrix, deadlines, risks, and planning artifacts. Proposal writing remains a separate workflow.

Can I call this Actor by API?

Yes. Use the API tab on the Actor page to run it from your own app, workflow, CRM, or proposal automation tool.

Why does all_rows.json contain many different row types?

all_rows.json is a developer/debug artifact. It intentionally includes the run summary, opportunity metadata, documents, raw requirements, compliance rows, deadlines, risks, and clarification questions. For normal proposal work, use SUMMARY.md, summary.json, compliance_matrix.csv, or the default dataset.

Support

If a public RFP does not parse correctly, open an Actor issue with the run ID, the input JSON, and a short description of what you expected to see. Do not include private proposal material or credentials in public issues.