Landed

Search AI-native jobs, inspect application forms, and fetch free interview-prep resources.

Should I use this

Quality & Safety

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

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,167Tokens (tool definitions)
~3.2 KBTypical response size
Moderate attention impact (0.91% 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": {
    "landed": {
      "url": "https://mcp.landed.jobs/mcp"
    }
  }
}

Remote endpoints

https://mcp.landed.jobs/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒search_jobs(query, role, seniority, skills, locations, ...)

Search Landed's live job corpus for AI-native roles and get a ranked, fit-scored shortlist. Fill the structured fields (role, skills, work mode, physical locations, remote-eligibility countries/regions, seniority, comp, industries…) from the user's request β€” they drive the ranking. Physical locations are resolved to stable places; use ISO country codes and canonical region codes when known. You may also pass a free-text "query"; it's parsed into the same filters and used as a semantic nudge. Free tier: up to a shared budget of jobs for anonymous callers (each returned job counts). Authenticated callers (Authorization: Bearer <API token>) get unlimited, brief-personalized results.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 400,
      "description": "Free-text description of the ideal job, in the user’s own words. Parsed server-side into structured filters; also used as a semantic nudge."
    },
    "role": {
      "type": "string",
      "maxLength": 120,
      "description": "Target role or title family, e.g. \"AI Engineer\", \"RAG Engineer\", \"Data Scientist\"."
    },
    "seniority": {
      "type": "string",
      "maxLength": 60,
      "description": "Seniority target, e.g. \"junior\", \"mid\", \"senior\", \"staff\", \"lead\"."
    },
    "skills": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 30,
      "description": "Core skills / technologies the role should involve, e.g. [\"RAG\", \"LangChain\", \"Python\"]."
    },
    "locations": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "description": "Preferred physical cities/countries as exact labels; include country for ambiguous cities, e.g. [\"Bengaluru, India\", \"London, UK\"]. Resolved server-side to stable place IDs."
    },
    "regions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "description": "Legacy human-readable remote eligibility regions/countries, e.g. [\"APAC\", \"India\"]. Prefer regionCodes/countryCodes when known."
    },
    "countryCodes": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Z]{2}$"
      },
      "maxItems": 20,
      "description": "ISO 3166-1 alpha-2 countries where the job may be based or remotely eligible, e.g. [\"IN\"]."
    },
    "regionCodes": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "apac",
          "emea",
          "americas"
        ]
      },
      "maxItems": 3,
      "description": "Canonical remote eligibility regions."
    },
    "workAuthorizationCountryCodes": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Z]{2}$"
      },
      "maxItems": 20,
      "description": "ISO country codes where the candidate is authorized to work."
    },
    "remote": {
      "type": "string",
      "enum": [
        "remote",
        "hybrid",
        "onsite"
      ],
      "description": "Work mode preference."
    },
    "minComp": {
      "type": "number",
      "description": "Minimum acceptable base compensation (numeric)."
    },
    "currency": {
      "type": "string",
      "maxLength": 8,
      "description": "Currency for minComp, e.g. \"USD\"."
    },
    "industries": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "description": "Preferred company industries / sectors."
    },
    "companyStages": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "description": "Preferred company stages, e.g. [\"seed\", \"series-a\", \"public\"]."
    },
    "avoid": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "description": "Companies or sectors to avoid."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "How many jobs to return."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒get_job_form(jobId)

Get the application form for a job (by the jobId returned from search_jobs), so you can prepare answers before the user applies. Fields are grouped: "standard" (auto-fillable from a candidate profile via mapsTo), "screening" (free-text questions to draft from the rΓ©sumΓ©/experience), and "eeo" (leave to the user). Always free β€” a job's form is only reachable once you've already found the job via search_jobs.

Input Schema

{
  "type": "object",
  "properties": {
    "jobId": {
      "type": "string",
      "minLength": 1,
      "description": "The jobId from a search_jobs result."
    }
  },
  "required": [
    "jobId"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟒get_learning_content(topic, role, category)

Get Landed's free learning content to help the user prepare β€” curated interview-prep repos (real questions, company guides, worked system designs), portfolio-project catalogs, and role roadmaps from the landedjobs GitHub org. Filter by topic, role, and/or category. Always free, for any caller.

Input Schema

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "maxLength": 120,
      "description": "Free-text topic, e.g. \"RAG\", \"system design\", \"evals\"."
    },
    "role": {
      "type": "string",
      "maxLength": 120,
      "description": "Target role, e.g. \"AI Engineer\", \"AI PM\", \"GTM Engineer\"."
    },
    "category": {
      "type": "string",
      "enum": [
        "interview-prep",
        "portfolio",
        "roadmap",
        "jobs"
      ],
      "description": "Restrict to one category of content."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
verifiedversion not recorded3 tools
verifiedversion not recorded3 tools