Coverage and freshness
The initial adapters read official public procurement sources:
The Railway seeder runs hourly and stores a canonical snapshot at
economic:global-tenders:v1. Its TTL is three hours so the prior successful snapshot survives a missed run. If one adapter fails, healthy-source results remain available, that source’s last-good records are retained, and the response reports availability: "partial". If every adapter fails, the previous records remain available with availability: "stale".
availability has five meanings:
available: all configured adapters succeeded and returned one or more notices.empty: configured adapters succeeded but returned no notices.partial: at least one adapter is unavailable or failed while another succeeded.stale: all current source attempts failed, so retained last-good records are being served.unavailable: no fresh canonical snapshot is available.
/api/health. Unsupported country filters are never treated as a confirmed zero-result source.
Deployment configuration
Only the U.S. SAM.gov adapter needs a new credential:- Sign in to SAM.gov, open Account Details, and enter your account password to view the API-key controls.
- Request a Public API Key. SAM.gov displays the generated key on the Account Details page.
- Add it to the Railway service running
node scripts/seed-bundle-relay-backup.mjsasSAM_GOV_API_KEY. Do not expose it through aVITE_variable or commit it to the repository.
SAM_GOV_API_KEY is absent, only the SAM source reports unavailable; the other adapters continue normally.
Leaving SAM unconfigured is a supported state, not a degradation: /api/health reports that source as NOT_CONFIGURED (green, excluded from problems) rather than as an error, so a deployment that never obtains a GSA key still reports a clean health endpoint. Adding the key flips it to OK on the next seed run with no health-config change.
Australia: AusTender adapter is blocked
An official Australianaustender adapter cannot ship safely today, because no permitted machine-readable AusTender interface publishes the closing date that an open-opportunity record requires. Evidence, current as of 2026-07-13:
- The official AusTender current-ATM RSS feed (
https://www.tenders.gov.au/public_data/rss/rss.xml, registered on data.gov.au by the Department of Finance) publishes only a notice title, official link, free-text description, and publish date. It carries no closing date, buyer, or category fields. - The official AusTender OCDS API exposes awarded contract notices from 2013 onward, not open Approaches to Market.
- data.gov.au’s machine-readable open-ATM exports ended in June 2014.
- Closing dates are published only on per-notice HTML pages; harvesting them would mean scraping the AusTender website, which is not a documented machine-readable reuse interface and is excluded by this feed’s non-goals.
country=AU keeps the standard countryCoverage: "unknown" semantics for unobserved countries. If AusTender begins publishing closing dates through a machine-readable channel, the adapter can ship without pipeline changes.
API
GET /api/economic/v1/list-global-tenders is Pro-gated, deliberately paginated, and is not part of the bootstrap payload. It supports country, repeated countries, region, source, status, buyer, published_from, published_to, deadline_from, deadline_to, min_value, max_value, currency, category, query, min_automation_score, page_size, cursor, and sort.
Supported sorts are newest, closing_soon, estimated_value, and relevance. page_size is bounded to 100. The response includes applied filters, a cursor, snapshot time, availability, and source-health summaries.
Every record contains a stable WorldMonitor ID (source:sourceNoticeId), its official notice URL, source notice ID, typed money fields when supplied, source timestamps, category data, and a provenance-preserving source name. Missing upstream fields remain absent rather than being inferred.
MCP tool
get_procurement_opportunities exposes this same canonical route to authenticated MCP clients; it never reads economic:global-tenders:v1 directly. Its intentional context budget is 10 compact opportunities by default, 25 maximum. It exposes country, repeated countries, source, query, buyer, deadline_from, deadline_to, sort, min_automation_score, page_size, and cursor.
The compact projection omits description text, eligibility requirements, and submission URLs while retaining each opportunity’s official URL, source, title, buyer, dates, money, categories, sectors, participationMode, and compact automationFit. It also retains cursor pagination, total, appliedFilters, countryCoverage, availability, snapshot time, and source-health summaries. The 25-record MCP maximum is deliberately tighter than the REST route’s 100-record maximum.
The MCP tool is Pro-gated exactly like the HTTP route and is not part of bootstrap. An unfiltered tool call preserves all open opportunities; min_automation_score remains opt-in. See the MCP tool reference for the complete parameter contract.
Technology relevance
automationFit is a transparent keyword-based relevance signal for software, AI, data, cybersecurity, automation, cloud, and related terms. It contains a score, classification version, match reasons, and text evidence. It is not a legal or procurement-eligibility determination: participationMode remains unknown unless an upstream source explicitly supports it.
The optional min_automation_score query parameter (an integer from 1–100; larger values are clamped and non-integer values are ignored) returns only opportunities whose automationFit.score meets the threshold. It is disabled by default, so existing callers keep receiving every matching open opportunity, and when active it appears in the response’s appliedFilters. The dedicated panel exposes it as a Technology relevant only checkbox. Both the filter and the per-record match reasons express keyword relevance evidence only — they never assert that an AI system, agent, or vendor is eligible to bid.
The dashboard renders official notice links only after URL sanitization and exposes the relevance reason alongside the source-provided opportunity details.