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

3 months 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.