RemoShift Remote Jobs

Search live remote jobs worldwide. Job search, remote salary bands, work-from-anywhere eligibility.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
81%
Naming quality
88%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~724Tokens (tool definitions)
~1.0 KBTypical response size
Moderate attention impact (0.57% of 128k context)

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

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools