Search 195k open jobs from 2,831 company career sites. Read-only, no API key.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Which hiring platforms (ATS) are covered and whether they work: status (`live`, `blocked`, `no live deployments`, `no connector`, `no tenants`), career sites, open jobs and last successful crawl. Not for finding jobs; use search_jobs.
Only platforms with this status; omit for all platforms.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http jobsweep https://jobsweep.works/mcp
Which hiring platforms (ATS) are covered and whether they work: status (`live`, `blocked`, `no live deployments`, `no connector`, `no tenants`), career sites, open jobs and last successful crawl. Not for finding jobs; use search_jobs.
| Argument | Type | Description |
|---|---|---|
| status | any | Only platforms with this status; omit for all platforms. |
{
"type": "object",
"title": "get_coverageArguments",
"properties": {
"status": {
"anyOf": [
{
"enum": [
"live",
"no connector",
"no tenants",
"blocked",
"no live deployments"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Status",
"default": null,
"description": "Only platforms with this status; omit for all platforms."
}
}
}Get one job in full: plain-text description (truncated to 8000 characters), salary, every source posting it was merged from and their change history. Call after search_jobs with a job_id.
| Argument | Type | Description |
|---|---|---|
| job_id* | integer | Job `id` from search_jobs. |
{
"type": "object",
"title": "get_jobArguments",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "integer",
"title": "Job Id",
"description": "Job `id` from search_jobs."
}
}
}Size and freshness of the index: open jobs, postings, career sites, live platforms, last successful crawl and recent crawl success rate. Not for finding jobs; use search_jobs.
No arguments.
{
"type": "object",
"title": "index_statsArguments",
"properties": {}
}List the values accepted by the `remote` and `employment_type` filters of search_jobs with open job counts, plus top countries (ISO code, name) and companies. Call before search_jobs when you need valid filter values.
No arguments.
{
"type": "object",
"title": "list_filter_valuesArguments",
"properties": {}
}Find companies by name with their number of open jobs, largest first. Pass a returned name as `company` to search_jobs to list that company's jobs.
| Argument | Type | Description |
|---|---|---|
| q | any | Company name contains (case-insensitive). |
| limit | integer | Maximum companies to return, 1-50. |
{
"type": "object",
"title": "search_companiesArguments",
"properties": {
"q": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Q",
"default": null,
"description": "Company name contains (case-insensitive)."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Maximum companies to return, 1-50."
}
}
}Search open jobs across all indexed career sites (duplicates merged). Use list_filter_values for valid filter values and get_job for a job's full description. Returns `jobs` (id, title, company, location, remote, employment_type, salary, posted_at, first_seen_at, url, company_url, apply_url) newest or most relevant first, and `next_cursor`. For the next page repeat the call with the same filters and `cursor` set to `next_cursor`; null means the last page.
| Argument | Type | Description |
|---|---|---|
| q | any | Full-text query in web search syntax: quoted phrases, OR, -exclude. Omit to list the newest jobs. |
| limit | integer | Jobs per page, 1-50. |
| cursor | any | `next_cursor` from the previous call with the same filters. |
| remote | any | Work mode; see list_filter_values for counts. |
| company | any | Company name contains (case-insensitive). |
| location | any | Matches city, region or country text of the job location, e.g. `Berlin` or `Germany`. |
| posted_after | any | ISO 8601 timestamp with timezone; jobs posted or first seen after it. |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.
| employment_type |
| any |
| Employment type; see list_filter_values for counts. |
{
"type": "object",
"$defs": {
"Remote": {
"enum": [
"onsite",
"hybrid",
"remote"
],
"type": "string",
"title": "Remote"
},
"EmploymentType": {
"enum": [
"full_time",
"part_time",
"contract",
"temporary",
"internship",
"other"
],
"type": "string",
"title": "EmploymentType"
}
},
"title": "search_jobsArguments",
"properties": {
"q": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Q",
"default": null,
"description": "Full-text query in web search syntax: quoted phrases, OR, -exclude. Omit to list the newest jobs."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Jobs per page, 1-50."
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Cursor",
"default": null,
"description": "`next_cursor` from the previous call with the same filters."
},
"remote": {
"anyOf": [
{
"$ref": "#/$defs/Remote"
},
{
"type": "null"
}
],
"default": null,
"description": "Work mode; see list_filter_values for counts."
},
"company": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Company",
"default": null,
"description": "Company name contains (case-insensitive)."
},
"location": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Location",
"default": null,
"description": "Matches city, region or country text of the job location, e.g. `Berlin` or `Germany`."
},
"posted_after": {
"anyOf": [
{
"type": "string",
"format": "date-time"
},
{
"type": "null"
}
],
"title": "Posted After",
"default": null,
"description": "ISO 8601 timestamp with timezone; jobs posted or first seen after it."
},
"employment_type": {
"anyOf": [
{
"$ref": "#/$defs/EmploymentType"
},
{
"type": "null"
}
],
"default": null,
"description": "Employment type; see list_filter_values for counts."
}
}
}