Landed MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP port to listen on. | 8090 |
| CORS_ORIGINS | No | Comma-separated allowlist of origins, or '*'. | * |
| LANDED_API_BASE | Yes | Hosted Landed API base, including the /api/v1 prefix. | http://localhost:8000/api/v1 |
| RATE_LIMIT_PER_MIN | No | Per-IP first-line request cap. The API's freemium meter is the real economic cap. | 60 |
| LANDED_INTERNAL_SECRET | Yes | Shared secret authenticating this proxy to the API (must match the server's INTERNAL_SERVICE_SECRET). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_jobsA | 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 ) get unlimited, brief-personalized results. |
| get_job_formA | 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. |
| get_learning_contentA | 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| find_jobs | Search Landed for matching jobs and present a ranked, fit-scored shortlist, then offer to prep an application or pull learning resources. |
| prepare_application | Fetch a job’s application form and draft answers — auto-fill standard fields, draft screening answers from experience, leave EEO to the user. |
| prep_for_role | Pull Landed’s free interview-prep, portfolio, and roadmap resources for a target role and suggest a study order. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
Each tool targets a distinct stage of the job-search workflow: discovery (search_jobs), application preparation (get_job_form), and learning resources (get_learning_content). There is no meaningful overlap, and the dependency between search_jobs and get_job_form is explicitly documented.
All three names follow a consistent snake_case verb_noun convention (search_jobs, get_job_form, get_learning_content). The verb variation between search and get maps cleanly to distinct operations rather than inconsistency.
Three tools is on the thin side for a job platform, but each has a clear, non-redundant role within a focused prep-and-discovery scope. It reads as intentionally minimal rather than an incomplete afterthought.
The surface covers discovery, form inspection, and learning content, but stops short of core lifecycle operations like actually submitting an application, saving/bookmarking jobs, or managing a candidate profile. These gaps may force agents into dead ends when users want to act rather than just prepare.