Landed
Search AI-native jobs, inspect application forms, and fetch free interview-prep resources.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"landed": {
"url": "https://mcp.landed.jobs/mcp"
}
}
}원격 엔드포인트
https://mcp.landed.jobs/mcpstreamable-http할 수 있는 일
도구 목록
도구 (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.
입력 스키마
{
"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.
입력 스키마
{
"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.
입력 스키마
{
"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#"
}커뮤니티
증거