StillOpen
stillopen.work
· StillOpen
Remote job listings read from employers' own applicant tracking systems (ATS), each carrying the evidence for its status: most re-checked against the ATS, some resting on weaker evidence that is labelled as such. Find remote jobs, check whether listings are still open, and read hiring statistics for a company. Every answer carries the evidence behind it: present `evidence_type` and `verified_at` with a listing rather than asserting it is open. Send a `data` part {"skill": <id>, "arguments": {...}}, or plain text for a keyword search. Read-only, no key.
stillopen.work via a single DNS TXT record to add the
verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Dispute or improve this rating
C
Conformance score: 74/100
C-grade: usable but has clear conformance issues, review the breakdown below.
click to expand breakdown
click to collapse breakdown
Activity (audit trail)
last 24h · 0 invocations Public aggregate · no PII recordedNothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.
Card history
1 snapshot Every change toagent-card.json
| Captured | Hash | Snapshot |
|---|---|---|
| 2026-10-29 22:08:27 current | 2a7cdb53237d… |
view → |
Try it
Send a message to this agent live. Your prompt is proxied through Agenstry.
Endpoints
| Agent card | https://stillopen.work/.well-known/agent-card.json |
| Provider | https://stillopen.work |
| Docs | https://stillopen.work/agents |
Skills · 5 declared by this agent
These skills are declared by the agent. A taxonomy link appears only when we can classify a skill confidently.
Find fully-remote job listings, each re-checked against the employer's own job board. Returns a summary record per role — no job descriptions, because twenty ad…
One listing in full, including the employer's own ad. Use it after `search_jobs` rather than instead of it: this returns thousands of characters of advertisemen…
Whether each of up to 100 listings is still open, and on what evidence — in one call. The most useful tool here: given a link to a role somebody is about to app…
What one employer's listings on this site add up to: how many roles are open, where they hire, what they hire for, and what their listings disclose about pay. T…
Check another agent before calling it. Given a domain, returns the open-source a2a-agent-checker's verdict on its A2A Agent Card (`/.well-known/agent-card.json`…
Health · last 2 probes
Similar agents embedding-nearest
Embed your Agenstry badge
Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.
Markdown / HTML snippets
[](https://agenstry.com/agents/stillopen.work) [](https://agenstry.com/agents/stillopen.work) [](https://agenstry.com/agents/stillopen.work) [](https://agenstry.com/agents/stillopen.work)
Audit-grade evidence bundle
JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against
our JWKS. See the methodology.
Raw agent card JSON
{
"name": "StillOpen",
"description": "Remote job listings read from employers' own applicant tracking systems (ATS), each carrying the evidence for its status: most re-checked against the ATS, some resting on weaker evidence that is labelled as such. Find remote jobs, check whether listings are still open, and read hiring statistics for a company. Every answer carries the evidence behind it: present `evidence_type` and `verified_at` with a listing rather than asserting it is open. Send a `data` part {\"skill\": <id>, \"arguments\": {...}}, or plain text for a keyword search. Read-only, no key.",
"supportedInterfaces": [
{
"url": "https://stillopen.work/api/v1/a2a",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
},
{
"url": "https://stillopen.work/api/v1/a2a/rest",
"protocolBinding": "HTTP+JSON",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "StillOpen",
"url": "https://stillopen.work"
},
"version": "1.0.0",
"documentationUrl": "https://stillopen.work/agents",
"iconUrl": "https://stillopen.work/static/favicon.png",
"capabilities": {
"streaming": false,
"pushNotifications": false,
"extendedAgentCard": false,
"extensions": [
{
"uri": "https://stillopen.work/extensions/evidence/v1",
"required": false,
"description": "Evidence behind each job listing's status: what kind of check stands behind it being open, when it last passed, and how a closure was established. Carried in artifact metadata under this URI."
}
]
},
"defaultInputModes": [
"application/json",
"text/plain"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "search_jobs",
"name": "Search remote jobs",
"description": "Find fully-remote job listings, each re-checked against the employer's own job board. Returns a summary record per role \u2014 no job descriptions, because twenty ads would fill your context with roles the reader did not choose. Call `get_job` for the ad once one looks worth reading. Every record carries `evidence_type` and `verified_at`: present those with the listing rather than asserting it is open.",
"tags": [
"jobs",
"remote",
"search"
],
"examples": [
"{\"skill\": \"search_jobs\", \"arguments\": {\"q\": \"python\", \"loc\": \"de\"}}",
"senior python developer"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json"
]
},
{
"id": "get_job",
"name": "Read one listing",
"description": "One listing in full, including the employer's own ad. Use it after `search_jobs` rather than instead of it: this returns thousands of characters of advertisement. The id is the number in a listing URL \u2014 /job/9620-company-title is 9620. A listing that was folded into another answers under the id you asked for and reports `merged_into`.",
"tags": [
"jobs",
"remote",
"job-ad"
],
"examples": [
"{\"skill\": \"get_job\", \"arguments\": {\"id\": 12345}}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "check_job_status",
"name": "Check whether listings are still open",
"description": "Whether each of up to 100 listings is still open, and on what evidence \u2014 in one call. The most useful tool here: given a link to a role somebody is about to apply for, this is what separates a live posting from a filled one, with a date and a kind of evidence attached. A closed listing reports whether the closure was **observed** (a source was asked and said the posting was gone) or **inferred** (it aged out, which is a guess about the employer rather than an answer from one). This reads evidence already stored: it reports the result of our most recent check, and does not perform a live check against the employer's board at the moment you call it. Two dates come back and they answer different questions: **`verified_at`** is when we last asked the employer's system and it said yes, and it is the one to show a reader; `last_seen_at` is when a source last carried the posting, which happens far more often and is normally the newer of the two. `last_seen_at` being newer is ordinary, not a contradiction. **`status: unknown` means we have never held this id** \u2014 it is not-found, not un-checked. The value for 'nothing has proved it gone but no source has carried it lately' is `unconfirmed`.",
"tags": [
"jobs",
"verification",
"status"
],
"examples": [
"{\"skill\": \"check_job_status\", \"arguments\": {\"ids\": [12345, 67890]}}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "get_company_stats",
"name": "What an employer's listings show",
"description": "What one employer's listings on this site add up to: how many roles are open, where they hire, what they hire for, and what their listings disclose about pay. Takes a `company_slug` from any search record. Answers only for employers whose board identity we have confirmed, because a page asserting one company's vacancies under another company's name is the failure this gate exists to prevent.",
"tags": [
"companies",
"hiring",
"statistics"
],
"examples": [
"{\"skill\": \"get_company_stats\", \"arguments\": {\"company_slug\": \"gitlab\"}}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
},
{
"id": "check_agent",
"name": "Is this A2A agent real and working?",
"description": "Check another agent before calling it. Given a domain, returns the open-source a2a-agent-checker's verdict on its A2A Agent Card (`/.well-known/agent-card.json`) and whether its endpoint answers a GetTask probe correctly, plus how many of the last 30 days it was reachable. Agents we already watch are answered from our daily log (`source: watch_log`); otherwise one live check is made (`source: live`): one card fetch and at most one GetTask per binding on the card's own host. It never sends the agent a message. A `fail` verdict means the card or endpoint breaks the A2A v1.0 spec, which includes agents still on the older 0.3 format.",
"tags": [
"a2a",
"agents",
"verification",
"trust"
],
"examples": [
"{\"skill\": \"check_agent\", \"arguments\": {\"domain\": \"stillopen.work\"}}"
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json"
]
}
],
"signatures": [
{
"protected": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpPU0UiLCJraWQiOiIyMDI2LTEwIiwiamt1IjoiaHR0cHM6Ly9zdGlsbG9wZW4ud29yay8ud2VsbC1rbm93bi9qd2tzLmpzb24ifQ",
"signature": "in-LdR8bgZKwF18Bse9NEmzxuHcdn9cia1lu7mcGtOYlya-CdWpnZ9vFWdcTS375e0PdCZ5ZC8uHzPjB06lCCw"
}
]
}