# Ocean of Jobs

> Search 1.2M+ open jobs from 22k companies, read full listings and look up employers.

- name: io.github.guyvolvo/oceanofjobs
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 97/100
- quality: 85/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.guyvolvo%2Foceanofjobs
- tools: https://api.protogrid.dev/v1/servers/io.github.guyvolvo%2Foceanofjobs/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "oceanofjobs": {
      "type": "http",
      "url": "https://oceanofjobs.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-0d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 9 of 9 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,651 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 0 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 9, about 1,651 tokens to load them all
- tool set hash: 122da42d332d98a8057580ac339ffdbf
- tools last changed: 2026-10-20T14:49:58.530Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.guyvolvo/oceanofjobs.svg)](https://protogrid.dev/servers/io.github.guyvolvo/oceanofjobs)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-20 `remove_from_auto_apply_queue` added
  - Take a job out of the user's auto apply queue before the extension applies to it. Needs the user's personal access token.
- 2026-10-20 `list_auto_apply_queue` added
  - The jobs waiting in the user's auto apply queue, oldest first, with the same fields as search results and when each was queued. A job leaves the queue once the extension has tried it. Needs the user's personal access token.
- 2026-10-20 `queue_for_auto_apply` added
  - Queue a job for the Ocean of Jobs Chrome extension to apply to with the user's profile and CV. The extension applies to queued jobs on its next check, every 15 minutes, so the user needs the extension installed and connected. The user must also turn on "Jobs queued by my AI assistant through MCP" in their auto apply settings. For now the extension fills Greenhouse forms only (an apply_url on boards.greenhouse.io or job-boards.greenhouse.io); a job on any other site is refused, so pick Greenhouse jobs. This sends a real application, so queue a job only when the user asks for it. Needs the user's personal access token. Queueing the same job twice is harmless.
- 2026-10-20 `remove_saved_job` added
  - Take a job off the user's saved list. Needs the user's personal access token.
- 2026-10-20 `list_saved_jobs` added
  - The jobs saved on the user's Ocean of Jobs account, newest saved first, with the same fields as search results and when each was saved. Needs the user's personal access token.
- 2026-10-20 `save_job` added
  - Save a job to the user's Ocean of Jobs account, where it shows under Saved jobs on every device. Needs the user's personal access token. Saving the same job twice is harmless.

Full history: https://api.protogrid.dev/v1/servers/io.github.guyvolvo%2Foceanofjobs/changes

## Remotes

- https://oceanofjobs.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (9)

- `get_company`: A company on Ocean of Jobs by name or domain: how many jobs it has open, how many are new this week, how long it has been tracked, its newest jobs, and its Ocean of Jobs page.
- `get_job`: One job on Ocean of Jobs by its id (from search_jobs or get_company): the description as plain text, its lifetime, whether its data is verified against the employer's ATS, and both links, the Ocean of Jobs page first.
- `list_auto_apply_queue`: The jobs waiting in the user's auto apply queue, oldest first, with the same fields as search results and when each was queued. A job leaves the queue once the extension has tried it. Needs the user's personal access token.
- `list_saved_jobs`: The jobs saved on the user's Ocean of Jobs account, newest saved first, with the same fields as search results and when each was saved. Needs the user's personal access token.
- `queue_for_auto_apply`: Queue a job for the Ocean of Jobs Chrome extension to apply to with the user's profile and CV. The extension applies to queued jobs on its next check, every 15 minutes, so the user needs the extension installed and connected. The user must also turn on "Jobs queued by my AI assistant through MCP" in their auto apply settings. For now the extension fills Greenhouse forms only (an apply_url on boards.greenhouse.io or job-boards.greenhouse.io); a job on any other site is refused, so pick Greenhouse jobs. This sends a real application, so queue a job only when the user asks for it. Needs the user's personal access token. Queueing the same job twice is harmless.
- `remove_from_auto_apply_queue`: Take a job out of the user's auto apply queue before the extension applies to it. Needs the user's personal access token.
- `remove_saved_job`: Take a job off the user's saved list. Needs the user's personal access token.
- `save_job`: Save a job to the user's Ocean of Jobs account, where it shows under Saved jobs on every device. Needs the user's personal access token. Saving the same job twice is harmless.
- `search_jobs`: Search open jobs on Ocean of Jobs. Give at least one of query, company, city or country (IL for Israel; most listings are in the US). Returns up to 25 jobs per call, best match first when there is a query, newest first otherwise, with the total number of matches. Every job includes its lifetime (days listed, first and last seen) and two links: url, the Ocean of Jobs page, to show first, and apply_url, the employer's page.

How to search well:
- Put one or two core title or skill words in query, such as "backend", "python" or "devops", and use the filters for place, seniority and dates. Every word in query must match, so a long description of the person returns little or nothing.
- Search once. If that gives relevant candidates, do not search again for synonyms. If it gives nothing useful, change or broaden query once, keeping the same filters.
- Across searches, treat the same id or the same apply_url as one job.
- Open only the strongest few candidates with get_job, and read their descriptions for seniority, required skills and where the job can be done from before ranking them.
- Give the number of recommendations asked for when enough jobs fit, and say so when fewer do.
- Never call a listing reposted because of its age. Use lifetime.reappeared_at, and say when the tracked history is too short to tell.
