j-hunt-mcp
Integrates with the Google Maps Geocoding API to resolve place names to coordinates and enable map-region job search via bounding boxes and radius.
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., "@j-hunt-mcpsearch for remote Python jobs"
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.
j-hunt-mcp
A local job-hunting MCP server built on the official Python SDK (mcp / FastMCP).
It runs over stdio for Claude Desktop / Claude Code and helps with the full loop:
Discover jobs across pluggable web sources — including geo / map-region search.
Track applications through a status lifecycle.
Store a profile & resume the assistant can reference.
Tailor resumes / cover letters via reusable prompts (the client LLM does the writing).
Architecture
Strict, one-directional layering keeps business logic out of the MCP glue:
tools/ • resources.py • prompts.py (thin MCP adapters — no logic)
│
▼
services/ (all business logic; constructor-injected deps)
│
┌────────┼─────────────┐
▼ ▼ ▼
repositories/ scraping/ geo.py (SQLite • job sources • Google Maps)
│
▼
models/ (pure Pydantic domain types, reused by every layer)Layer | Location | Responsibility |
Models |
| Pure Pydantic domain types (one file per domain) |
Repositories |
| SQLite persistence; map rows ↔ models (SQLAlchemy tables kept separate) |
Services |
| Business logic (search, tracking, profile, geo) |
Scraping |
| Pluggable |
Tools/Resources/Prompts |
| Thin MCP adapters over services |
Related MCP server: job-search
Setup
Requires Python ≥ 3.10 and uv.
uv sync # install deps
cp .env.example .env # optional: add GOOGLE_MAPS_API_KEY for geo search
uv run pytest # run the test suite (offline)Run / develop
uv run j-hunt-mcp # run the stdio server directly
uv run mcp dev src/jhunt_mcp/server.py # open the MCP Inspector (needs Node/npx)Register with Claude Desktop
uv run mcp install src/jhunt_mcp/server.py --name "Job Hunt" \
-v GOOGLE_MAPS_API_KEY=your_key_hereRestart Claude Desktop; the Job Hunt server's tools then appear.
Capabilities
Tools
Tool | Purpose |
| Keyword search; optional |
| Search inside a map-selected bounding box (NE/SW corners) |
| Resolve a place name → coordinates + formatted address |
| Persist and list jobs |
| Record an application (by saved |
| Move an application through its lifecycle (validated) |
| Set a follow-up reminder on an application |
| List applications, optionally filtered by status |
| Manage the stored profile & resume |
Resources: profile://me, resume://current, jobs://saved, applications://{status} (use all).
Prompts: tailor_resume, draft_cover_letter, application_followup_email.
Geo / map-region search
There is no map UI in the server itself — a client passes the result of a map
selection as parameters. Three shapes are supported, all requiring GOOGLE_MAPS_API_KEY:
a place string +
radius_km(search_jobs),a bounding box (
search_jobs_in_region) — what a map rectangle yields,(internally) a center + radius.
Geocoding results are cached in SQLite to conserve API quota. Without a key, plain keyword search still works; geo paths return a clear error.
Job sources & scraping note
Major boards (LinkedIn, Indeed) actively block scraping and forbid it in their ToS. v1 therefore ships sources that expose public JSON/RSS and are scraping-tolerant: RemoteOK, WeWorkRemotely, Hacker News "Who is hiring?". Requests are rate-limited per host. Add a board by implementing
scraping/base.py:JobSource.
Secrets
Never commit credentials. The only secret today is GOOGLE_MAPS_API_KEY, read from a
gitignored .env via pydantic-settings. When authenticated boards are added later,
use the OS keyring for passwords and the SQLite DB for session cookies — never JSON in
the repo. mcp install ... -v KEY=value injects env vars without writing them to source.
Data
The SQLite database lives at data/jhunt.db by default (override with JHUNT_DB_PATH).
The data/ directory is gitignored.
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 Servers
- Alicense-qualityAmaintenanceMCP server that exposes job search data from multiple boards, enabling clients to query and manage job listings via natural language.Last updated7MIT
- Alicense-qualityBmaintenanceA job-search MCP server that ranks roles, drafts cover letters, and rehearses Q&A answers using a candidate profile, with live listings from five public sources.Last updated68MIT
- Alicense-qualityBmaintenanceAn MCP server that enables AI-assisted job search workflows including job discovery, application tracking, resume evaluation, and cover letter generation, with support for multiple job sources and scheduled scraping.Last updated81AGPL 3.0
- Alicense-qualityCmaintenanceMCP server that aggregates job listings from Remotive and Arbeitnow, with local SQLite caching, application tracking, and saved searches.Last updated68MIT
Related MCP Connectors
GetJobzi MCP server for job search, application tracking, and career forecasting.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
MCP server for AI job search — find jobs, track applications, get alerts. Claude, ChatGPT, Cursor.
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/KaungHtunThant/j-hunt-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server