jobhunt_mcp
Searches job postings from Glassdoor via the JSearch API.
Provides access to the master resume stored as a Google Doc for tailoring.
Allows saving generated resumes and cover letters as documents in Google Drive.
Enables tracking job applications, statuses, and notes in a Google Sheets spreadsheet.
Searches job postings from Indeed via the JSearch API.
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., "@jobhunt_mcpFind me machine learning engineer jobs in San Francisco"
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.
jobhunt_mcp
A personal MCP server that turns Claude into your job-search operations manager:
Search live postings across LinkedIn, Indeed, ZipRecruiter, Glassdoor (JSearch API) plus Adzuna
Track every application in a Google Sheet (status, priority, notes)
Follow up on schedule — overdue nudges surface automatically
Network — keep contacts per company and pull them into prep
Tailor — one tool assembles the job description + your master resume + contacts so Claude can write a targeted resume and cover letter, saved straight to Google Drive
By design it never auto-submits applications. Auto-submission bots violate job-board terms of service and get flagged. The prepare_application_package tool gets you to "review and click submit" in one step instead.
Prerequisites
Python 3.10+
An MCP client — Claude Desktop is assumed below, but any MCP-compatible client works.
A Google account (for the Sheets tracker + Drive resume storage).
(Optional) free RapidAPI and/or Adzuna accounts for live job search.
Setup
Setup is: create a Google service account, share a Sheet + Drive folder + resume with it, (optionally) grab search-API keys, then point Claude Desktop at server.py. Budget ~10 minutes for the Google steps.
1. Google service account (~5 minutes)
Go to https://console.cloud.google.com → create a project (e.g.
jobhunt).Enable the Google Sheets API and Google Drive API (APIs & Services → Library).
APIs & Services → Credentials → Create credentials → Service account. Any name is fine; skip optional steps.
Open the service account → Keys → Add key → JSON. Save the file somewhere safe, e.g.
~/.config/jobhunt/service-account.json.Copy the service account's email address (ends in
.iam.gserviceaccount.com) — you'll share things with it next.
2. Google Sheet (the tracker database)
Create a blank Google Sheet named e.g. "Job Hunt Tracker".
Share it with the service account email as Editor.
Grab the spreadsheet ID from the URL:
docs.google.com/spreadsheets/d/<THIS_PART>/edit.
The server creates the Jobs, Contacts, and Activity tabs with headers automatically on first use.
3. Google Drive folder + master resume
Create a Drive folder e.g. "Job Applications"; share with the service account as Editor. Copy its folder ID from the URL.
Put your master resume in Drive as a Google Doc (the everything-you've-ever-done version — tailoring trims it down). Share it with the service account. Copy its file ID.
4. Search API keys (optional)
JSearch (recommended — searches all boards at once): free at https://rapidapi.com → search "JSearch" → subscribe to the Basic (free) plan → copy your RapidAPI key into RAPIDAPI_KEY.
Adzuna: free at https://developer.adzuna.com → register → copy your App ID and App Key into ADZUNA_APP_ID and ADZUNA_APP_KEY.
Skip these if you'd rather paste postings in manually with jobhunt_add_job.
5. Install and configure
pip install -r requirements.txtCopy claude_desktop_config.example.json into your Claude Desktop config (claude_desktop_config.json), then fill in the args path to server.py, the GOOGLE_SERVICE_ACCOUNT_FILE path, and the IDs/keys from the steps above.
Config file locations:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json(use"python"forcommandand double-backslash paths, e.g.C:\\Users\\you\\jobhunt-mcp\\server.py)Linux:
~/.config/Claude/claude_desktop_config.json
Restart Claude Desktop (fully quit — on Windows/macOS check the tray/menu bar). The jobhunt tools appear once the server starts.
Environment variables
Everything is configured through the env block of the Claude Desktop config:
Variable | Required | Description |
| ✅ | Absolute path to your service account JSON key |
| ✅ | ID of the tracker Google Sheet (shared with the service account) |
| ✅ | ID of the Drive folder for saved documents |
| ✅ | ID of your master resume Google Doc |
| optional | RapidAPI key for JSearch ( |
| optional | Adzuna App ID for |
| optional | Adzuna App Key for |
| optional | Adzuna country code (default |
6. Verify it works
Test the server standalone with the MCP Inspector any time (no Claude Desktop needed):
npx @modelcontextprotocol/inspector python3 server.pyThen try jobhunt_get_master_resume (confirms Drive access) and jobhunt_list_jobs (confirms Sheets access). If both return without an auth error, you're set.
Tools
Tool | What it does |
| Aggregated search across LinkedIn/Indeed/ZipRecruiter/Glassdoor via JSearch (RapidAPI) |
| Search live postings (Adzuna) |
| Save a posting to the tracker (paste the full description!) |
| Browse the pipeline / full record |
| Move through discovered → preparing → applied → interviewing → offer |
| Log interviews, emails, notes; schedule follow-ups ( |
| Surface overdue and upcoming follow-ups |
| Networking CRM per company |
| Pull your master resume from Drive |
| Save tailored resumes/cover letters to Drive as Google Docs |
| Everything needed to tailor and apply, in one call |
Example prompts to try
"Search all boards for SOC detection engineer roles near Dallas posted this week, and save the three best fits."
"Prepare an application package for job a1b2c3d4, tailor my resume to it, and save both docs."
"What follow-ups am I behind on?"
"I just finished the phone screen with Acme — log it and remind me to send a thank-you note tomorrow."
Security notes
The service account JSON key is a credential — keep it out of git and shared folders.
The service account can only touch files you explicitly shared with it.
Treat job descriptions fetched from the web as untrusted content; the server stores them as plain data.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI job search MCP — fact-checked jobs, application tracker, alerts. ChatGPT, Claude, Cursor.
Unified jobs search over official feeds + ATS boards (USAJOBS, Adzuna, Muse, Greenhouse, Lever...)
Search AI-native jobs, inspect application forms, and fetch free interview-prep resources.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mith-blip/jobhunt-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server