Landed
Search AI-native jobs, inspect application forms, and fetch free interview-prep resources.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"landed": {
"url": "https://mcp.landed.jobs/mcp"
}
}
}Puntos de conexión remotos
https://mcp.landed.jobs/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (3)
🟢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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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#"
}Comunidad
Evidencia