jobhunt_mcp

jobhunt_mcp

Turns Claude into a job-search operations manager: searches live job boards, tracks applications in Google Sheets, manages follow-ups and contacts, and assembles tailored resumes/cover letters saved to Google Drive, without auto-submitting.

Category
访问服务器

README

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)

  1. Go to https://console.cloud.google.com → create a project (e.g. jobhunt).
  2. Enable the Google Sheets API and Google Drive API (APIs & Services → Library).
  3. APIs & Services → Credentials → Create credentials → Service account. Any name is fine; skip optional steps.
  4. Open the service account → Keys → Add key → JSON. Save the file somewhere safe, e.g. ~/.config/jobhunt/service-account.json.
  5. 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)

  1. Create a blank Google Sheet named e.g. "Job Hunt Tracker".
  2. Share it with the service account email as Editor.
  3. 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

  1. Create a Drive folder e.g. "Job Applications"; share with the service account as Editor. Copy its folder ID from the URL.
  2. 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.txt

Copy 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.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json (use "python" for command and 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
GOOGLE_SERVICE_ACCOUNT_FILE ✅ Absolute path to your service account JSON key
JOBHUNT_SPREADSHEET_ID ✅ ID of the tracker Google Sheet (shared with the service account)
JOBHUNT_DRIVE_FOLDER_ID ✅ ID of the Drive folder for saved documents
JOBHUNT_MASTER_RESUME_FILE_ID ✅ ID of your master resume Google Doc
RAPIDAPI_KEY optional RapidAPI key for JSearch (jobhunt_search_all_boards)
ADZUNA_APP_ID optional Adzuna App ID for jobhunt_search_jobs
ADZUNA_APP_KEY optional Adzuna App Key for jobhunt_search_jobs
ADZUNA_COUNTRY optional Adzuna country code (default us)

6. Verify it works

Test the server standalone with the MCP Inspector any time (no Claude Desktop needed):

npx @modelcontextprotocol/inspector python3 server.py

Then 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
jobhunt_search_all_boards Aggregated search across LinkedIn/Indeed/ZipRecruiter/Glassdoor via JSearch (RapidAPI)
jobhunt_search_jobs Search live postings (Adzuna)
jobhunt_add_job Save a posting to the tracker (paste the full description!)
jobhunt_list_jobs / jobhunt_get_job Browse the pipeline / full record
jobhunt_update_job_status Move through discovered → preparing → applied → interviewing → offer
jobhunt_log_activity Log interviews, emails, notes; schedule follow-ups (+7 = 7 days)
jobhunt_get_followups_due Surface overdue and upcoming follow-ups
jobhunt_add_contact / jobhunt_list_contacts Networking CRM per company
jobhunt_get_master_resume Pull your master resume from Drive
jobhunt_save_document Save tailored resumes/cover letters to Drive as Google Docs
jobhunt_prepare_application_package 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.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选