Jobless MCP
Enables searching and retrieving job listings from Greenhouse's job board.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Jobless MCPWhat are my best job matches today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Jobless MCP
Personalized job search inside Claude. Get ranked job matches based on your actual skills, not keywords. Works in Claude Code, Desktop, Cursor, Windsurf, VS Code, Gemini CLI, and more.
Get your API key | Documentation | Issues
Why Jobless MCP?
Without Jobless
Searching job boards manually with keyword filters
Getting irrelevant results because "Python" matches a snake handler job
No idea how well you actually match a role until you read the whole posting
Context-switching between your AI assistant and browser tabs
With Jobless
Ask Claude naturally and get jobs ranked against your actual resume:
What are my best job matches today?Claude calls get_best_matches and returns:
Top 5 matches personalized to your resume:
1. [94%] Staff AI Engineer - Anthropic
Remote | Python, PyTorch, Distributed Systems
role 92% | skills 95% | seniority 96%
2. [91%] Senior ML Engineer - Vercel
Remote | Go, Postgres, Kubernetes, LLM infra
role 88% | skills 93% | seniority 91%
3. [89%] Founding Engineer - Cursor
San Francisco | TypeScript, React, LLMs
role 92% | skills 88% | seniority 87%10,000+ jobs indexed across Greenhouse, Ashby, Lever, and more. Updated daily.
Quick Start
1. Get your API key
Visit jobless.dev/mcp -- drop your resume and get an API key instantly (no signup required for 10 matches/day).
2. Connect your client
Remote server URL:
https://mcp.jobless.dev/mcpclaude mcp add jobless --url https://mcp.jobless.dev/mcp --header "Authorization: Bearer YOUR_API_KEY"Jobless is available as a Claude Connector. Go to Settings > Connectors and search for Jobless.
Or add manually to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"jobless": {
"url": "https://mcp.jobless.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Restart Claude Desktop after saving.
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"jobless": {
"url": "https://mcp.jobless.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Add to .vscode/mcp.json:
{
"servers": {
"jobless": {
"type": "http",
"url": "https://mcp.jobless.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"jobless": {
"serverUrl": "https://mcp.jobless.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Add to Zed settings:
{
"context_servers": {
"jobless": {
"url": "https://mcp.jobless.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Add to ~/.gemini/settings.json:
{
"mcpServers": {
"jobless": {
"httpUrl": "https://mcp.jobless.dev/mcp"
}
}
}Add to opencode.json:
{
"mcp": {
"jobless": {
"type": "remote",
"url": "https://mcp.jobless.dev/mcp",
"enabled": true
}
}
}Settings > MCP Servers > Add MCP Server:
{
"jobless": {
"url": "https://mcp.jobless.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}Add to ~/.kiro/settings/mcp.json:
{
"mcpServers": {
"jobless": {
"url": "https://mcp.jobless.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Run the server locally as a subprocess. Your API key never touches mcp.jobless.dev:
pip install jobless-mcpThen in your client config:
{
"mcpServers": {
"jobless": {
"command": "jobless-mcp",
"env": {
"JOBLESS_API_KEY": "YOUR_API_KEY"
}
}
}
}If your client supports remote MCP servers:
{
"mcpServers": {
"jobless": {
"url": "https://mcp.jobless.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}If your client only supports stdio, use mcp-remote as a bridge:
{
"mcpServers": {
"jobless": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.jobless.dev/mcp", "--header", "Authorization: Bearer YOUR_API_KEY"]
}
}
}Tools
10 tools split into 6 reads and 4 grouped writes. Claude picks the right tool from the conversation.
Reads
Tool | Purpose | Tier |
| Top personalized job matches ranked by BM25 against your parsed resume and archetypes. Quickstart 10/day, Free 50/day, Pro unlimited. | All |
| Full detail for a job by UUID: description, tech stack, seniority fit, location, salary, application URL. With | All |
| Keyword and filter search across the public job index. Browse mode when you want to explore beyond your matches. Filters: location, remote scope, job type, recency, country, city, sort. | All |
| Full bookmark map: status (saved/applied/in_process), rating, notes, employer response, timestamps. | All |
| Tier, daily usage, has_resume, reset time. Useful at the start of a conversation or for quota checks. | All |
| The user's saved Q&A bank (autofill source for repeated questions: work auth, salary expectations, etc.). | All |
Writes
Tool | Purpose | Tier |
| Add, remove, or update the status of a job bookmark. | All |
| Generate a tailored resume or cover letter. | Pro |
| Download a generated document. | All |
| Prepare or submit an application. | Pro |
Example conversation (end-to-end)
User: Find me 3 senior Python remote roles in Europe.
-> get_best_matches with filters
User: Tell me more about #2.
-> get_job(job_id) # also returns application_form by default
User: Bookmark it and generate a tailored resume + cover letter.
-> manage_bookmark(job_id, action="add")
-> generate_document(kind="resume", job_id, resume_id)
-> generate_document(kind="cover_letter", job_id, resume_id)
User: Prefill the form and submit.
-> apply_to_job(job_id, action="prepare", resume_id, cover_letter_id)
-> apply_to_job(job_id, action="submit", answers, confirm=True)
User: Mark it as applied.
-> manage_bookmark(job_id, action="update_status", status="applied")Better with Playwright MCP
Some ATSes (Workday, BambooHR, custom careers pages) don't expose a clean POST endpoint, so submit_application returns:
{
"error": "browser_submission_required",
"ats_platform": "WORKDAY",
"apply_url": "https://acme.wd1.myworkdayjobs.com/...",
"prepared_data": { ...autofill answers, resume URL, cover letter URL... }
}Composed with Microsoft's Playwright MCP, Claude can finish the job in the browser:
jobless.apply_to_job(job_id, action="prepare", resume_id, cover_letter_id)
-> { prepared_data, apply_url }
playwright.browser_navigate(apply_url)
playwright.browser_fill_form(prepared_data.answers)
playwright.browser_file_upload(prepared_data.resume_pdf_url)
playwright.browser_click("Submit")
playwright.browser_snapshot() # confirmation screenshot
jobless.manage_bookmark(job_id, action="update_status", status="applied")No other career MCP composes like this because no other career MCP has both the profile bank and the prepared-payload contract.
Pricing
Quickstart | Free | Pro | |
Daily matches | 10 | 50 | Unlimited |
Signup required | No | Yes | Yes |
Ranking | Dual KNN | Dual KNN | ColBERT reranking |
Price | Free | Free | $19/mo |
Upgrade at jobless.dev/dashboard/premium
Architecture
This package is a thin wrapper (~150 LOC) around the Jobless REST API. Two modes:
Stdio (local): launched as a subprocess by your client. API key stays on your machine.
Streamable HTTP (hosted):
mcp.jobless.dev. No install needed. Bearer token in every request.
Both call the same closed-source Jobless backend (api.jobless.dev) which holds the OpenSearch index, Jina embeddings, and ranking models.
github.com/bendza/jobless-mcp
(MIT, ~150 LOC, this repo)
|
+------------+------------+
| |
Local stdio mode Hosted HTTP mode
(pip install) (mcp.jobless.dev)
| |
+------------+------------+
v
api.jobless.dev (Django)
v
OpenSearch + Postgres + RedisSelf-Hosting
pip install jobless-mcp
JOBLESS_MCP_TRANSPORT=http \
JOBLESS_API_BASE=https://your-api.example.com \
PORT=8100 \
jobless-mcpDevelopment
git clone https://github.com/bendza/jobless-mcp.git
cd jobless-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest -v13 tests covering the client layer. All tests mock the API with respx and run offline in <100ms.
Links
jobless.dev/mcp -- API key + install commands
jobless.dev -- the main product
Issues -- bug reports + feature requests
License
MIT -- see LICENSE.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bendza/jobless-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server