RemoShift Remote Jobs
Search live remote jobs worldwide. Job search, remote salary bands, work-from-anywhere eligibility.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"jobs": {
"url": "https://remoshift.com/mcp"
}
}
}Remote endpoints
https://remoshift.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
🟢search_jobs(query, country, category, tag, source, ...)
Search 141,953+ live, scam-filtered remote jobs (updated hourly). Natural-language queries OK (hybrid semantic search). Returns title, company, location, salary when disclosed, posted date, an employer apply_url, and a canonical detail_url to link back to.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Keywords or a natural-language description, e.g. \"senior react engineer\""
},
"country": {
"type": "string",
"description": "ISO-2 country code the job must accept applicants from, e.g. \"US\", \"HK\", \"DE\""
},
"category": {
"type": "string",
"description": "Job category, e.g. \"developer\", \"design\", \"customer service\", \"sales\", \"marketing\""
},
"tag": {
"type": "string",
"description": "Skill tag, e.g. \"react\", \"python\", \"figma\""
},
"source": {
"type": "string",
"description": "Origin board/ATS name, e.g. \"Himalayas\", \"RemoteOK\", \"Greenhouse\""
},
"seniority": {
"type": "string",
"enum": [
"intern",
"junior",
"mid",
"senior",
"lead",
"executive"
]
},
"work_anywhere": {
"type": "boolean",
"description": "true = location-independent jobs only"
},
"has_salary": {
"type": "boolean",
"description": "true = only jobs that disclose salary"
},
"posted_within_days": {
"type": "number",
"description": "Only jobs posted in the last N days"
},
"sort": {
"type": "string",
"enum": [
"relevance",
"newest",
"salary"
],
"default": "relevance"
},
"limit": {
"type": "number",
"description": "Max results, 1-25 (default 10)"
}
}
}🟢get_job(id)
Fetch one job in full (description included) by the 8-hex id that appears at the end of a detail_url.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "6-16 char hex job id, e.g. \"c00584a5\""
}
},
"required": [
"id"
]
}⚪job_facets
Counts by source, category, country and tag across the live index — call this first to learn what filters are useful.
Input Schema
{
"type": "object",
"properties": {}
}🟢salary_bands(role, seniority)
Remote salary percentiles (p25 / median / p75, USD) per role, from jobs that disclosed pay in the live index, with an optional seniority breakdown. Use this to answer "what does a remote X earn?". Call with no arguments to list every role and its median.
Input Schema
{
"type": "object",
"properties": {
"role": {
"type": "string",
"description": "Role slug or title, e.g. \"data-engineer\" or \"Data Engineer\". Omit to list all roles."
},
"seniority": {
"type": "string",
"enum": [
"mid",
"senior",
"lead"
],
"description": "Optional: narrow to one seniority band"
}
}
}⚪work_anywhere_scope(country)
Answer "can I work remotely from <country>?" — returns how many live jobs accept applicants in that country and how many are location-independent (no country restriction). This is eligibility, not a hiring guarantee.
Input Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "ISO-2 country code, e.g. \"PT\", \"US\", \"DE\""
}
},
"required": [
"country"
]
}Community
Evidence