MCP Job Search
Job search mechanics for an AI assistant: search, fetch postings, render CVs, lint, log.
Connector by michalper · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying MCP Job Search?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/michalper-mcp-job-search
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 4 read · 2 write · 0 delete · 1 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 7
Read from the source code; the running server may list different tools.
Read 4 · Look things up without changing anything.
fetch_job_postinglint_cvlist_applicationssearch_jobs
Write 2 · Create, change, send or run things.
log_applicationupdate_application_status
Not yet classified 1 · We could not tell from the name and description.
render_pdf
Network hosts it talks to 5
api.adzuna.com· found in codearbeitnow.com· found in codedeveloper.adzuna.com· found in codegithub.com· found in codeglama.ai· found in code
Files it touches
- Your home directory (~)
~/applications.md- Any path the agent passes to its tools
Tools (7)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
fetch_job_postingFetches ONE job-posting URL you already found (any job board, including ones with no public API) and extracts its readable text generically. This is for a single posting a human found manually — never call it in a loop to enumerate a site's listings.
lint_cvRead-only — never modifies html_path, pdf_path, or any other file. Lints a CV/cover-letter HTML file against YOUR OWN configurable rule set (banned phrases, skills-section bans, achievement-weight overclaims, title/GDPR/link checks, page-count limits), read from LINT_RULES_PATH (an env var, not a parameter here; defaults to a bundled generic example). Mechanical matching only — cannot catch semantic fabrication (two true facts combined into a false-sounding one), which still needs a human or independent review. Call before render_pdf while iterating on a draft (cheap, no Chrome, HTML-only chec…
list_applicationsRead-only — never modifies the registry file. Returns rows from your application registry, optionally filtered by portal (exact, case-insensitive section heading) and/or company (case-insensitive substring match). Call this before log_application to check whether you've already applied to a company — the registry's own '## <portal>' structure and column layout are returned as-is via each entry's `fields` dict, so this also works against registries with custom/non-English column names.
log_applicationMutates the registry file — appends one new row, it does not check for an existing one first. Call list_applications(company=...) beforehand if you need to avoid logging a duplicate. Target file and column layout come from REGISTRY_CONFIG_PATH (default: the bundled generic example). Never invents text for free-text fields — only places exactly what you pass. Use dry_run to preview the row and insertion point without writing. To change an existing row's status later, use update_application_status instead of calling this again.
render_pdfRenders one CV/cover-letter HTML file to PDF via headless Chrome, using the exact flags known not to hang or silently drop output. Checks both the exit code and the actual PDF page count — call this once per file, never in a batch loop on the same Chrome profile.
search_jobsSearches real job-board APIs (Arbeitnow — free, always on; Adzuna and JSearch — only if their API keys are configured via environment variables). Returns normalized jobs plus a list of source errors (e.g. a source skipped because its key isn't set) — never raises on a single source's failure. Results are cached by query for SEARCH_CACHE_TTL_SECONDS (default 6h) to protect JSearch's free quota; pass use_cache=False to force a fresh query. This does NOT scrape or search sites without a public API (e.g. NoFluffJobs, JustJoin.it, Pracuj.pl) — use fetch_job_posting for a specific URL on those inste…
update_application_statusMutates the registry file — rewrites one row's status cell in place, leaving every other cell and the file's row order untouched. Finds the row by portal (exact) + company (case- insensitive substring); if more than one row matches, nothing is written and the error lists the matching line numbers — pass role to disambiguate instead of guessing which one was meant. Use dry_run to preview old_row/new_row without writing. Call list_applications first if you're not sure a row exists.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 326
- Last commit
- Oct 20, 2026 (11 days ago)
- Last release
- Oct 20, 2026 (11 days ago)
- Last package publish
- Oct 19, 2026 (12 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.michalper/mcp-job-search- Version
- 0.2.0
- Auth
- No auth
- Packages
- pypi mcp-job-search-mp
- License
- MIT
- Repository
- github.com/michalper/mcp-job-search
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from michalper
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get MCP Job Search running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
MCP Job Search. Agent Mart. https://agentmart.dev/connectors/michalper-mcp-job-search (last updated 2026-10-24)