{"authentication":{"authorizationServers":["https://profound-candle-26.authkit.app"],"resourceMetadataUrl":"https://api.shortlistapp.co/.well-known/oauth-protected-resource/mcp","type":"oauth2"},"capabilities":{"tools":{"listChanged":false}},"description":"Apply to jobs from your AI assistant. Shortlist searches a live job board read from employers' own career sites, then — on the person's explicit confirmation — opens the employer's real application form, fills it from their profile and CV, answers its questions and submits. One credit per application, never the same job twice, replies land in the person's inbox.","documentationUrl":"https://shortlistapp.co/mcp/","instructions":"Call get_account first. Before send_application, show the person the job and ask; it refuses without confirm:true. Answers to employer questions must come from the person, never guessed.","name":"co.shortlistapp/shortlist","protocolVersion":"2026-07-28","remotes":[{"authentication":{"authorizationServers":["https://profound-candle-26.authkit.app"],"resourceMetadataUrl":"https://api.shortlistapp.co/.well-known/oauth-protected-resource/mcp","type":"oauth2"},"type":"streamable-http","url":"https://api.shortlistapp.co/mcp"}],"serverInfo":{"name":"shortlist","title":"Shortlist — the AI agent that applies to jobs for you","version":"0.1.0"},"supportedProtocolVersions":["2026-07-28","2025-11-25","2025-06-18","2025-03-26","2024-11-05"],"title":"Shortlist","tools":[{"annotations":{"destructiveHint":false,"idempotentHint":true,"readOnlyHint":false},"description":"Answer the questions a needs_input application stopped on, then re-run it. Keys are the question labels exactly as get_applications shows them. Answers must come from the person — never guess a salary, notice period, visa status or anything else about them. Answers are remembered, so the same question is never asked twice across applications.","inputSchema":{"additionalProperties":false,"properties":{"answers":{"additionalProperties":{"type":"string"},"description":"question label → the person's answer, labels exactly as get_applications shows them; answers must come from the person, never guessed","type":"object"},"application_id":{"description":"the needs_input application's id","type":"string"}},"required":["application_id","answers"],"type":"object"},"name":"answer_questions","outputSchema":{"additionalProperties":false,"properties":{"status":{"type":"string"}},"required":["status"],"type":"object"}},{"annotations":{"idempotentHint":false,"readOnlyHint":true},"description":"Check a job posting URL before applying: whether Shortlist can apply there, which application system the employer uses, and whether this account has already applied (Shortlist never applies to the same job twice). Free — no application credit is used. Use it on any job link, including ones found outside search_jobs.","inputSchema":{"additionalProperties":false,"properties":{"job_url":{"description":"the job posting's URL — the employer's page or a job-board link","type":"string"}},"required":["job_url"],"type":"object"},"name":"check_job","outputSchema":{"additionalProperties":false,"properties":{"can_apply":{"type":"boolean"},"existing_application_id":{"type":"string"},"existing_status":{"type":"string"},"portal":{"type":"string"}},"required":["can_apply"],"type":"object"}},{"annotations":{"idempotentHint":false,"readOnlyHint":true},"description":"The connected Shortlist account: plan, applications left, and whether onboarding (CV + a few answers) is finished. Call this first in a session — if onboarding is unfinished, applying will not work yet and the answer includes the exact link to finish it (about two minutes).","inputSchema":{"additionalProperties":false,"type":"object"},"name":"get_account","outputSchema":{"additionalProperties":false,"properties":{"applications_left":{"type":"integer"},"next_step":{"type":"string"},"onboarding_done":{"type":"boolean"},"plan":{"type":"string"}},"required":["applications_left","onboarding_done"],"type":"object"}},{"annotations":{"idempotentHint":false,"readOnlyHint":true},"description":"This account's applications, newest first (or one, by application_id, with the questions it is waiting on). Statuses are the engine's own: queued/filling/submitting (running), applied (sent — the employer has it), needs_input (waiting on answers from the person — use answer_questions), failed. Replies from employers land in the person's Shortlist inbox and email, not here.","inputSchema":{"additionalProperties":false,"properties":{"application_id":{"description":"one application's id, for its full detail and pending questions","type":"string"},"limit":{"description":"rows to return, 1-25, default 10","type":"integer"},"status":{"description":"filter the list: applied, needs_input, queued, failed","type":"string"}},"type":"object"},"name":"get_applications","outputSchema":{"additionalProperties":false,"properties":{"applications":{"items":{"additionalProperties":false,"properties":{"company":{"type":"string"},"id":{"type":"string"},"questions":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"},"title":{"type":"string"}},"required":["id","status"],"type":"object"},"type":["null","array"]}},"required":["applications"],"type":"object"}},{"annotations":{"idempotentHint":false,"readOnlyHint":true},"description":"Search Shortlist's live job board: postings read from employers' own career sites (Greenhouse, Ashby, Workable and more), refreshed every six hours, many with the employer's posted salary. Returns compact rows with a job_url that send_application accepts. The total tells you whether to narrow; prefer several narrow searches over one broad one.","inputSchema":{"additionalProperties":false,"properties":{"country":{"description":"two-letter country code the job hires in, e.g. IN, US, CA","type":"string"},"limit":{"description":"rows to return, 1-20, default 8","type":"integer"},"query":{"description":"words from the role or skills, e.g. 'backend engineer'","type":"string"},"remote":{"description":"only remote roles","type":"boolean"},"with_salary":{"description":"only roles where the employer posted the pay","type":"boolean"}},"type":"object"},"name":"search_jobs","outputSchema":{"additionalProperties":false,"properties":{"jobs":{"items":{"additionalProperties":false,"properties":{"company":{"type":"string"},"job_url":{"type":"string"},"place":{"type":"string"},"salary":{"type":"string"},"title":{"type":"string"}},"required":["title","company","job_url"],"type":"object"},"type":["null","array"]},"total_matches":{"type":"integer"}},"required":["total_matches","jobs"],"type":"object"}},{"annotations":{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false},"description":"Apply to a job: Shortlist's engine opens the employer's real application form, fills it from the person's profile and CV, answers its questions, and submits. Uses 1 application credit. REQUIRES confirm:true — always show the person the job and ask before calling; never invent a confirmation. If the posting is a stretch for the person's profile, the reasons come back instead and nothing is sent or charged until they acknowledge. Safe against doubles: the same job is never applied to twice, even if called again. If questions come back, the application is waiting — answer with answer_questions.","inputSchema":{"additionalProperties":false,"properties":{"acknowledged":{"description":"true only after the person has seen why this posting is a stretch for their profile and wants it anyway","type":"boolean"},"confirm":{"description":"must be true, and only after the person has seen the job and said to apply — this uses 1 application credit","type":"boolean"},"job_url":{"description":"the job posting's URL","type":"string"}},"required":["job_url"],"type":"object"},"name":"send_application","outputSchema":{"additionalProperties":false,"properties":{"application_id":{"type":"string"},"questions":{"items":{"type":"string"},"type":["null","array"]},"status":{"type":"string"}},"type":"object"}}],"transport":{"endpoint":"/mcp","type":"streamable-http"},"version":"0.1.0","websiteUrl":"https://shortlistapp.co/mcp/"}