Tender Scoring & Eligibility Extractor avatar

Tender Scoring & Eligibility Extractor

Pricing

$200.00 / 1,000 tender document deep-extracteds

Go to Apify Store
Tender Scoring & Eligibility Extractor

Tender Scoring & Eligibility Extractor

Extract award criteria weights, eligibility requirements, disqualification traps and deadlines from tender notices & PDFs (TED, SAM.gov). Every field carries a verbatim source quote re-verified against the document - no hallucinated compliance data. For bid/no-bid automation and AI agents.

Pricing

$200.00 / 1,000 tender document deep-extracteds

Rating

0.0

(0)

Developer

Derrick

Derrick

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Tender Deep-Field Extractor

Turn public tender notices (TED, SAM.gov, any English/EU tender PDF) into deep, per-lot structured JSON — the fields that decide whether a bid is worth writing and what gets it thrown out:

  • Eligibility requirements, itemized (financial / experience / certification / personnel), each with the verbatim source line
  • Award-criteria weight breakdown (price vs quality sub-criteria, percentage or points — exactly as published)
  • Disqualification triggers — language restrictions, e-signature mandates, "variants not allowed", "prices outside the pricing form are invalid" and other rejection traps buried in submission terms
  • Key dates normalized to ISO8601 with timezone (clarification deadline, submission deadline, opening, tender validity)
  • Change-notice awareness — amended deadlines are resolved from authoritative structured fields, with the change recorded separately
  • ✅ Multi-lot notices: every deep field extracted per lot, plus cross-lot constraints (e.g. max lots per tenderer)

Why this instead of a notice scraper?

Notice monitors and RFP scrapers give you discovery metadata: title, buyer, deadline, a link. This Actor reads the notice like a bid manager does and answers:

QuestionNotice scrapersThis Actor
Who is even allowed to bid?"eligibility mentioned"Itemized requirement list with quotes
How is the score computed?Weight table per criterion, percentage vs points
What gets my bid rejected?Explicit disqualification-trigger list with quotes
Was the deadline amended?SometimesResolved date + change record

Anti-hallucination by design

Every extracted value carries a source_quote — a verbatim substring of the document. A validation layer re-checks each quote against the source text: anything that cannot be located verbatim is dropped and reported in validation_warnings, never invented. Runs that fall below a 50% quote-verification ratio are not charged.

Fields genuinely absent from a notice come back as null with an explanatory warning (e.g. "selection criteria live in the procurement document") — that is the honest answer, not a gap in extraction.

Input

{
"sources": [
"https://ted.europa.eu/udl?uri=TED:NOTICE:341069-2026:PDF:EN:HTML",
"https://example.com/any-tender.pdf"
]
}

1–20 notice URLs or direct PDF links per run. Duplicate URLs are de-duplicated. Sources must be public http(s) URLs.

Output shape (annotated golden expectation for a real TED notice)

This block is the hand-annotated expected output used in the golden set, shown to illustrate the schema — a live run produces the same shape. Note that when a notice defers selection criteria to a separate procurement document (common on TED), eligibility.requirements is intentionally empty and eligibility.source is "procurement_document"; this Actor reads the notice you pass it and does not currently follow the link to fetch that separate document.

{
"lot_id": "LOT-0000",
"scoring": {
"type": "MEAT",
"weight_kind": "percentage",
"criteria": [
{ "name": "TK1 - Price", "type": "price", "weight": 50,
"source_quote": "Description: Total evaluation price (per annum)" },
{ "name": "TK 2 Quality - Environment", "type": "quality", "weight": 30,
"source_quote": "The share of available zero emission vehicles" },
{ "name": "TK 3 Quality - Scale-up plan", "type": "quality", "weight": 20,
"source_quote": "Plan for scaling up as regards real stand-by" }
],
"weights_sum": 100
},
"disqualification_triggers": [
{ "trigger": "Tender submitted in a language other than Norwegian",
"category": "format",
"source_quote": "Languages in which tenders or requests to participate may be submitted: Norwegian" },
{ "trigger": "Missing advanced/qualified electronic signature or seal",
"category": "signature",
"source_quote": "Advanced or qualified electronic signature or seal (as defined in Regulation (EU) No 910/2014) is required" }
],
"key_dates": {
"submission_deadline": "2026-06-26T10:00:00Z",
"tender_validity": "P4M"
}
}

Who uses this

  • Bid-tracking and procurement-intelligence tools that need qualification logic, not just listings
  • Bid/no-bid automation — feed the eligibility list and weight table straight into your scoring model
  • Agent workflows (MCP / LLM pipelines) that must not hallucinate compliance requirements

Accuracy

Validated against an annotated golden set of real TED notices (single-lot open procedures, two-stage negotiated procedures with change notices, multi-lot points-weighted notices, plus a held-out German-language notice): ≥90% field-level agreement across runs, 100% quote verification on passing runs. Reproduce it yourself with pnpm golden (needs a DeepSeek key).

Honest caveats:

  • Extraction of the disqualification-triggers list can vary run-to-run (the model occasionally under-recalls a trigger); the field is a strong signal, not a guaranteed-complete list.
  • The golden set is currently all TED notices. SAM.gov is supported by the same pipeline but is not yet covered by published golden evidence — treat SAM.gov results as beta until we add annotated samples.
  • Data sources & terms. TED notices are re-usable under CC BY 4.0. This Actor extracts from whatever tender URL/PDF you provide; it does not crawl or harvest any site on its own. For SAM.gov note that its Terms of Use prohibit "systematic access (electronic harvesting) or extraction of content … including the use of 'bots' or 'spiders'" — this Actor reads a page you paste, not the official feed, so keep SAM.gov use to occasional individual notices; for bulk/automated needs use the official free api.sam.gov Get Opportunities API instead.

Fair charging

Pay per successfully extracted document. Failed fetches, non-tender pages, low-verification extractions, and sources skipped after your run's charge limit is reached are all not charged. Every source_quote — across eligibility, scoring, disqualification triggers, two-stage clauses, cross-lot constraints and change records — is re-verified verbatim against the document before the run is billable.