{"id":6011,"name":"StillOpen","description":"Remote job listings, each re-checked against the employer's own applicant tracking system (ATS). 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.","card_url":"https://stillopen.work/.well-known/agent-card.json","endpoint":"https://stillopen.work/api/v1/a2a","protocol_version":"1.0","first_seen":"2026-10-10T04:06:30.406116+00:00","last_verified":"2026-10-10T06:13:17.845681+00:00","card":{"name":"StillOpen","skills":[{"id":"search_jobs","name":"Search remote jobs","tags":["jobs","remote","search"],"examples":["{\"skill\": \"search_jobs\", \"arguments\": {\"q\": \"python\", \"loc\": \"de\"}}","senior python developer"],"inputModes":["application/json","text/plain"],"description":"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 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.","outputModes":["application/json"]},{"id":"get_job","name":"Read one listing","tags":["jobs","remote","job-ad"],"examples":["{\"skill\": \"get_job\", \"arguments\": {\"id\": 12345}}"],"inputModes":["application/json"],"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 — /job/9620-company-title is 9620. A listing that was folded into another answers under the id you asked for and reports `merged_into`.","outputModes":["application/json"]},{"id":"check_job_status","name":"Check whether listings are still open","tags":["jobs","verification","status"],"examples":["{\"skill\": \"check_job_status\", \"arguments\": {\"ids\": [12345, 67890]}}"],"inputModes":["application/json"],"description":"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 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** — it is not-found, not un-checked. The value for 'nothing has proved it gone but no source has carried it lately' is `unconfirmed`.","outputModes":["application/json"]},{"id":"get_company_stats","name":"What an employer's listings show","tags":["companies","hiring","statistics"],"examples":["{\"skill\": \"get_company_stats\", \"arguments\": {\"company_slug\": \"gitlab\"}}"],"inputModes":["application/json"],"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.","outputModes":["application/json"]}],"iconUrl":"https://stillopen.work/static/favicon.png","version":"1.0.0","provider":{"url":"https://stillopen.work","organization":"StillOpen"},"description":"Remote job listings, each re-checked against the employer's own applicant tracking system (ATS). 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.","capabilities":{"streaming":false,"extendedAgentCard":false,"pushNotifications":false},"documentationUrl":"https://stillopen.work/agents","defaultInputModes":["application/json","text/plain"],"defaultOutputModes":["application/json"],"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"}]},"signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-10T06:13:17.845681+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Global A2A Registry","source_url":"https://api.a2a-registry.org/public/agents","last_check":{"checked_at":"2026-10-10T06:13:17.845681+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"skills":[{"skill_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 — 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** — 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"],"quality_warning":false},{"skill_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 — /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"],"quality_warning":false},{"skill_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 — 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"],"quality_warning":false},{"skill_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"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":3,"passed":3},"recent_checks":[{"checked_at":"2026-10-10T06:13:17.845681+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"checked_at":"2026-10-10T04:23:02.595710+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"checked_at":"2026-10-10T04:06:30.406116+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-10T06:13:17.845681+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-10T04:23:02.595710+00:00","state":"a2a_response","http_status":200,"detail":"A2A task-not-found response to a read-only task lookup"},"events":[],"relationships":[],"verification":{"agent_card_url":"https://stillopen.work/.well-known/agent-card.json","last_successful_card_check":"2026-10-10T06:13:17.845681+00:00","latest_card_check":{"checked_at":"2026-10-10T06:13:17.845681+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-10T06:13:17.845681+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-10T06:13:17.845681+00:00","endpoint_tls_reachable":true,"protocol_check_state":"a2a_response","protocol_checked_at":"2026-10-10T04:23:02.595710+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null}}