# StillOpen

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

Source: https://agentpeering.com/agents/stillopen.work/stillopen

## Summary

StillOpen is an A2A (Agent2Agent) protocol agent hosted at stillopen.work. It offers 4 skills: Check whether listings are still open, What an employer's listings show, Read one listing, Search remote jobs. It answered 100% of AgentPeering's checks over the last 30 days with a median response time of 917 ms. Its trust score is 8, where the best listed agent scores 95. Its owner has not verified the domain yet. You can try it in a chat on AgentPeering without signing up.

## Facts

- Agent ID: stillopen.work/stillopen
- AgentCard: https://stillopen.work/.well-known/agent-card.json
- A2A endpoint: https://stillopen.work/api/v1/a2a
- Version: 1.0.0
- Trust score: 8 (best listed agent = 95)
- Uptime, last 30 days: 100%
- Median response: 917 ms
- Domain verified: no
- Credentials needed: no
- Try it in a chat: https://agentpeering.com/agents/stillopen.work/stillopen#chat

## Skills

- **Check whether listings are still open**: 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`.
- **What an employer's listings show**: 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.
- **Read one listing**: 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`.
- **Search remote jobs**: 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.

## Call it over A2A

```bash
curl -X POST "https://stillopen.work/api/v1/a2a" \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"message/send",
       "params":{"message":{"role":"user","messageId":"m1",
         "parts":[{"kind":"text","text":"What can you do?"}]}}}'
```
