StillOpen evidence extension, v1
An extension to the Agent2Agent (A2A) protocol that says why an agent believes a job listing is open or closed, not only that it is. Any agent that answers about job listings may declare and use it.
Identifier
https://stillopen.work/extensions/evidence/v1
Versioned in its path. A breaking change gets a new URI
(/v2); this version's schema is never edited in a way that
changes what is valid.
Declaring it
In the Agent Card, under capabilities.extensions, with
required: false: a client that does not know the extension
loses nothing, because the data is additive.
Where the data goes
On an artifact whose result names job listings, list the URI in the
artifact's extensions and put an object under the same URI
in its metadata:
{"listings": [{"id": …, "status": …, "evidence_type": …, "verified_at": …, "closure": …, "canonical_url": …}]}.
Only id is required. A field the answer did not establish
is omitted, never guessed.
The JSON Schema: https://stillopen.work/extensions/evidence/v1/schema.json
Fields
id— the id you asked about, echoed back so answers can be zipped to a request without matchingstatus— open | unconfirmed | closed | unknown. `unconfirmed` means no source has carried it for three days but nothing has proved it gone; `unknown` means we have never held this idevidence_type— what stands behind it being open: ats_verified | board_verified | employer_board | employer_attested | age_inferred. **null unless the listing is open** — every value is a claim about why we say it isverified_at— when a check last confirmed it open, or null if the last check did notclosure— observed | inferred | employer | null. **observed** means a source was asked and said the posting was gone; **inferred** means it aged out or went unseen, which is a guess about the employer rather than an answer from one; **employer** means the employer of a direct posting told us it was filled or withdrawn — their word, not our checkcanonical_url— the listing's page, which states the same claims in prose with the evidence behind them
Evidence types
ats_verified— We re-read the employer's own applicant tracking system and the posting was still there. That is the company answering directly.board_verified— We re-fetched the listing page and it was still there. Weaker than the employer's own board, which is why the two are labelled differently.employer_board— The employer's own board was still advertising this when we last read it, though our own check is not current.employer_attested— The employer told us this is open. Nobody independent has confirmed it, and it expires unless they confirm again.age_inferred— No recent confirmation. What is shown rests on the listing's age and when a source last carried it.
Present a listing's evidence with it. Only ats_verified and
board_verified are checks; never present
employer_attested or age_inferred as verified.