Shortlist MCP Server
Enables users to search for jobs, prefill applications using AI, and automate submissions across major platforms like Lever and Ashby directly from Claude or Cursor. It provides a full suite of tools for managing job queues, profile data, and resumes within a chat interface.
README
Shortlist MCP Server
Apply to hundreds of jobs from Claude in minutes.
Shortlist connects to Claude Code, Claude Desktop, or Cursor and lets you search for jobs, fill out applications with AI, and submit them automatically — without leaving your terminal.
<!-- TODO: Add demo GIF showing full workflow: search → queue → prefill → apply --> <!-- Record with: search "senior frontend engineer remote" → add 3 URLs → prefill → approve → start applying → show progress -->
How it works
1. Connect
Add the MCP server and log in — takes 30 seconds.
claude mcp add shortlist --transport http https://shortlist.jobs/mcp
Restart Claude Code, then type /mcp and select shortlist. A browser window opens — sign in with your Shortlist account and you're connected.
<details> <summary>Claude Desktop setup (macOS)</summary>
Add this to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"shortlist": {
"transport": "http",
"url": "https://shortlist.jobs/mcp"
}
}
}
Restart Claude Desktop. You'll be prompted to authenticate on first use.
</details>
<details> <summary>Claude Desktop setup (Windows)</summary>
Add this to %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"shortlist": {
"transport": "http",
"url": "https://shortlist.jobs/mcp"
}
}
}
Restart Claude Desktop. You'll be prompted to authenticate on first use.
</details>
2. Search and queue jobs
Find jobs by role, location, or company. Or paste URLs directly from any supported job board.
You: Find me remote senior frontend engineer jobs
You: Add these to my queue:
https://jobs.ashbyhq.com/stripe/senior-frontend
https://jobs.lever.co/figma/senior-fe-engineer
https://boards.greenhouse.io/vercel/jobs/frontend-eng
3. Apply
Shortlist scrapes each application form, fills in answers from your profile, and submits. You review before anything goes out.
You: Prefill and approve all jobs, then start applying
The bot handles the rest — form fields, dropdowns, file uploads, the works. All AI-generated text is humanized and reads identical to human writing — no "passionate team player" filler that gets your application filtered out.
Example session
Here's what a real workflow looks like in Claude Code:
You: Search for senior software engineer jobs in San Francisco, posted this week
Claude: Found 47 jobs. Showing 20:
1. Senior Software Engineer at Stripe
Location: San Francisco, CA
Posted: 2 days ago
URL: https://jobs.lever.co/stripe/abc123
2. Senior Backend Engineer at Figma
Location: San Francisco, CA (Hybrid)
Posted: 1 day ago
URL: https://boards.greenhouse.io/figma/jobs/def456
3. Staff Software Engineer at Vercel
...
You: Add the Stripe and Figma jobs to my queue
Claude: Added 2 job(s) to queue:
+ Senior Software Engineer at Stripe (lever)
+ Senior Backend Engineer at Figma (greenhouse)
You: Prefill both applications
Claude: Application Form Scraped Successfully
Job: Senior Software Engineer at Stripe
Form Fields (12):
- First Name (text, required)
- Last Name (text, required)
- Email (email, required)
- Resume (file, required)
- LinkedIn URL (url, optional)
- Why are you interested in Stripe? (textarea, required)
...
I've filled all 12 fields using your profile. Here's what I wrote for
"Why are you interested in Stripe?":
"I've spent the last four years building payment infrastructure at scale.
At my current role I reduced checkout latency by 40% across 12M monthly
transactions. Stripe's API design is something I've admired as a user —
I'd like to work on the other side of it."
Ready to submit?
You: Looks good. Approve both and start applying.
Claude: Approved 2 job(s). Bot started!
Use get_application_progress to check status.
You: How's it going?
Claude: Application Progress
Done: 2 (2 success, 0 failed) | Remaining: 0
Status: Batch complete
Last: Senior Backend Engineer at Figma — success
Two applications, start to finish, without opening a browser.
Supported platforms
Works with 6 major applicant tracking systems, covering thousands of companies from startups to Fortune 500:
| Platform | Domain | Notable companies |
|---|---|---|
| Ashby | ashbyhq.com | Notion, Figma, Ramp |
| Lever | lever.co | Netflix, Stripe, Shopify |
| SmartRecruiters | smartrecruiters.com | Visa, McDonald's, Skechers |
| Workable | workable.com | Miro, Samsara, Deel |
| Greenhouse | coming soon | Airbnb, DoorDash, HubSpot |
| Workday | coming soon | Amazon, Salesforce, Adobe |
+8 more coming soon
More platforms coming. Request one on Discord or open an issue.
Works with
| Client | Status |
|---|---|
| Claude Code | Fully supported |
| Claude Desktop | Fully supported |
| Cursor | Supported (MCP compatible) |
| Any MCP client | Should work — let us know |
Privacy and security
- Source code is public. This repo contains the full MCP tool definitions and HTTP client so you can see what each tool does before you use it.
- Your credentials stay local. OAuth tokens are stored in your Claude config on your machine. We never see them.
- No chat data is stored. Your conversations with Claude are between you and Anthropic. Shortlist only receives the specific API calls you trigger (search queries, profile updates, job submissions).
- Applications run on Shortlist's servers. The bot needs a browser to fill out forms and submit them — that runs on our infrastructure, not your machine. Your profile data is used to fill applications and is stored in your Shortlist account.
- Delete anytime. You can delete your account and all associated data from the Shortlist dashboard.
Pricing
Free for as long as we can support it. Join the Discord for updates.
<details> <summary>FAQ</summary>
Do I need a paid Claude plan?
No. The MCP server works with any Claude plan, including free. However, free Claude accounts have message limits that may interrupt longer sessions.
Which job boards are supported?
Shortlist works with jobs posted on Ashby, Lever, SmartRecruiters, Workable, Greenhouse, and Workday. These cover thousands of companies. Indeed, LinkedIn, and other boards are not yet supported — request them on Discord.
Can it apply without my approval?
No. Every job goes through your queue. You can review prefilled answers, edit them, and explicitly approve before anything is submitted. The bot only submits jobs you've approved.
Is my resume shared with anyone besides the companies I apply to?
No. Your resume is stored in your Shortlist account and only sent to companies as part of job applications you've approved.
What happens if the bot fails on a job?
Failed applications are logged with the reason (e.g., "required field not found", "CAPTCHA detected"). Nothing is submitted partially — it either completes the full application or reports the error. Failed jobs are automatically reviewed by another agent within 24–48 hours, which will diagnose the issue and attempt to resubmit. You can also view failures with get_applied_jobs and retry manually.
Can I use this with my own MCP client?
Yes. Any client that supports the MCP HTTP transport should work. The server is a standard MCP endpoint at https://shortlist.jobs/mcp.
</details>
<details> <summary>Full tool reference (33 tools)</summary>
Search
| Tool | Description |
|---|---|
search_jobs |
Search for jobs by title, location, and filters |
Queue Management
| Tool | Description |
|---|---|
add_to_queue |
Add jobs by URL (auto-detects title, company, ATS) |
get_queue |
View your application queue |
remove_from_queue |
Remove a job from the queue |
clear_queue |
Clear all jobs from the queue |
approve_job |
Approve a job for submission (with optional form answers) |
approve_all |
Approve all pending jobs |
Application Forms
| Tool | Description |
|---|---|
get_job_details |
Get full job details, form fields, and answers |
prefill_job |
Scrape application form and prepare answers |
Bot Control
| Tool | Description |
|---|---|
start_applying |
Start the bot to submit approved applications |
stop_applying |
Stop the bot |
Profile
| Tool | Description |
|---|---|
get_profile |
View your full profile |
update_personal_details |
Update name, email, phone, address |
add_skills / remove_skills |
Manage skills |
add_languages / remove_languages |
Manage languages |
add_work_experience |
Add work experience or project |
update_work_experience |
Update existing work experience |
delete_work_experience |
Delete work experience |
add_education |
Add degree, certification, or clearance |
update_education |
Update existing education entry |
delete_education |
Delete education entry |
update_application_questions |
Update salary, sponsorship, work auth, etc. |
Resumes
| Tool | Description |
|---|---|
list_resumes |
List uploaded resumes (max 5) |
upload_resume |
Upload a resume (PDF, DOC, DOCX) |
set_default_resume |
Set a resume as default |
delete_resume |
Delete a resume |
Progress & History
| Tool | Description |
|---|---|
get_applied_jobs |
View application history with filters |
get_applied_jobs_count |
Get total application count |
get_application_summary |
Detailed summary with match analysis |
get_application_progress |
Check current batch progress |
</details>
<details> <summary>Architecture</summary>
┌──────────────┐ MCP Protocol ┌──────────────────┐
│ Claude Code │ ◄──────────────────── │ Shortlist MCP │
│ (or any │ │ Server │
│ MCP client)│ │ (this repo) │
└──────────────┘ └────────┬─────────┘
│ HTTPS
┌────────▼─────────┐
│ Shortlist API │
│ (hosted) │
│ │
│ - Job search │
│ - Form scraping │
│ - Bot automation│
│ - Profile mgmt │
└──────────────────┘
This repo contains the MCP interface layer — tool definitions and the HTTP client that talks to Shortlist's API. The form scraping, browser automation, and AI form filling all run on Shortlist's infrastructure.
</details>
Support
- Discord — Fastest way to get help, request features, and report bugs
- GitHub Issues — Bug reports and feature requests
- X / Twitter — Updates and announcements
Development
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.