Ocean of Jobs

MCP Server

The Ocean of Jobs MCP server lets AI assistants search job listings, read job descriptions, and look up companies directly from Ocean of Jobs.

Server URL: https://oceanofjobs.com/mcp

The server uses Streamable HTTP and requires no API key. All tools are read-only and use the same public data as the website.

Connect a client

Claude Code

Run this in your terminal:

claude mcp add --transport http oceanofjobs https://oceanofjobs.com/mcp

Start Claude Code and ask it to search for jobs. To check the connection, run /mcp inside a session.

Claude

In Claude, open Customize, then Connectors, then Add custom connector. Name it Ocean of Jobs and paste the server URL:

https://oceanofjobs.com/mcp

The server needs no sign-in, so leave the advanced settings empty. Turn the connector on in a chat from the tools menu.

ChatGPT

In ChatGPT, open Settings, then Apps & Connectors. Turn on Developer mode, then choose Create and paste the server URL:

https://oceanofjobs.com/mcp

Choose no authentication. In a new chat, pick the connector from the tools menu.

Cursor

Add to Cursor opens Cursor with the server filled in, and you confirm there. To add it by hand, put this in ~/.cursor/mcp.json:

{
  "mcpServers": {
    "oceanofjobs": {
      "url": "https://oceanofjobs.com/mcp"
    }
  }
}

VS Code

Add to VS Code opens VS Code with the server filled in, and you confirm there. From a terminal instead:

code --add-mcp '{"name":"oceanofjobs","type":"http","url":"https://oceanofjobs.com/mcp"}'

Then start it: run MCP: List Servers from the Command Palette, pick oceanofjobs and choose Start Server. The tools work in Copilot Chat in Agent mode. Check that search_jobs, get_job and get_company are ticked under the tools button.

Gemini CLI

gemini mcp add -s user --transport http oceanofjobs https://oceanofjobs.com/mcp

-s user adds it for every folder. Without it, Gemini adds it to the current project only. Gemini loads MCP servers only in folders you have trusted, so gemini mcp list shows the server as disabled until you trust the folder.

Codex

codex mcp add oceanofjobs --url https://oceanofjobs.com/mcp

codex mcp list shows it as enabled.

Hermes Agent

hermes mcp add oceanofjobs --url https://oceanofjobs.com/mcp

Hermes asks whether the server needs authentication. Answer no. It then connects, lists the three tools and asks which to enable. Run hermes mcp test oceanofjobs to check the connection, and start a new session to use the tools.

Kimi Code

In Kimi Code, run /mcp-config, or edit its mcp.json, and add:

{
  "mcpServers": {
    "oceanofjobs": {
      "url": "https://oceanofjobs.com/mcp"
    }
  }
}

An entry with a url and no transport is an HTTP server. The older kimi-cli is no longer maintained, and its kimi mcp add command no longer saves anything.

Other MCP clients

For clients that accept a JSON configuration, add the following entry:

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

If your client only supports locally running MCP servers, you can connect through mcp-remote instead:

{
  "mcpServers": {
    "oceanofjobs": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://oceanofjobs.com/mcp"]
    }
  }
}

Available tools

The server exposes three read-only tools.

search_jobs

Search for open jobs by keyword, company, location, seniority, workplace type, posting age, or minimum salary.

At least one of query, company, city, or country is required. Results are ranked by relevance when a query is provided, and by posting recency otherwise.

ArgumentTypeDescription
querystringSearch job titles, company names, locations, and descriptions. Every word must match, so one or two keywords usually work best. Use quotes to keep a phrase together.
companystringCompany name or domain, such as wix.com.
citystringCity name, such as Tel Aviv.
countrystringTwo-letter country code, such as IL or US.
senioritystringintern, junior, mid, senior, staff, principal, lead, manager, director, or exec.
workplacestringremote, hybrid, or onsite.
max_age_daysintegerOnly return jobs posted within the specified number of days.
salary_minintegerMinimum monthly gross salary in shekels.
limitintegerResults per call, from 1 to 25. Defaults to 10.
offsetintegerPagination offset, from 0 to 200. Defaults to 0.

Duplicate listings for the same posting are combined into one result. The duplicates_folded field reports how many duplicates were removed.

get_job

Fetch a job by its ID, returned by search_jobs or get_company.

The response includes the job description as plain text, up to 6,000 characters. Check description_truncated to see whether any text was cut off.

The confidence field indicates where the listing data came from:

  • verified - retrieved from the employer's applicant tracking system (ATS) API.
  • best_effort - extracted from the employer's careers page.

get_company

Look up a company by name or domain.

The response includes its current open-job count, jobs added this week, how long it has been tracked, its newest listings, and its Ocean of Jobs page.

If the name matches multiple companies, other_matches lists the alternatives.

Job data and history

Each job includes two URLs:

  • url - the listing on Ocean of Jobs.
  • apply_url - the employer's application page.

Job records also include fields that describe how the listing has changed over time.

FieldDescription
first_seenWhen Ocean of Jobs first discovered the listing on the employer's ATS.
last_seenThe last time a read of the board returned the listing with a change. An unchanged response still confirms the board was checked, even if this timestamp doesn't advance.
closed_atWhen a successful check no longer found the listing. null means it was still present at the most recent check.
reappeared_atWhen the same ATS listing ID returned after being absent from our reads for at least two days. This field has been recorded since October 19, 2026.
posted_atThe employer's original posting date, when provided by the ATS.
days_listedHow long the listing has been tracked as listed.
statusWhether the listing is open or closed.
summaryA one-sentence description of the listing and its status.

A reappearance doesn't necessarily mean the employer reposted the job. A temporary failure when checking the employer's board can also make a listing appear to disappear and return. Likewise, an old first_seen date doesn't prove a job was reposted; it means Ocean of Jobs has been tracking that listing for that long.

Limits and caching

  • Each call returns at most 25 results.
  • Pagination is limited to an offset of 200. Use the REST API for larger result sets.
  • Responses may be cached at the edge for up to five minutes, so repeated calls can return the same data.
  • If the server reaches its daily capacity, it returns a JSON-RPC error. Capacity resets at 00:00 UTC.

REST API

You can also access Ocean of Jobs data directly through the public REST API. It returns JSON over HTTPS and requires no API key or account.

Use the REST API when you need larger result sets or more direct control over your requests.

On this page