Skip to content
Agentmart
Submit a tool

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

IndexedMITLocal (stdio)
Write a review

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.

Book a call

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.

We use your email only for this newsletter. Privacy

About

Job search mechanics for an AI assistant: search, fetch postings, render CVs, lint, log.

No 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_posting
  • lint_cv
  • list_applications
  • search_jobs

Write 2 · Create, change, send or run things.

  • log_application
  • update_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 code
  • arbeitnow.com · found in code
  • developer.adzuna.com · found in code
  • github.com · found in code
  • glama.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_posting

    Fetches 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_cv

    Read-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_applications

    Read-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_application

    Mutates 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_pdf

    Renders 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_jobs

    Searches 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_status

    Mutates 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
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.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying MCP Job Search?

CallGet help
Cite this page

MCP Job Search. Agent Mart. https://agentmart.dev/connectors/michalper-mcp-job-search (last updated 2026-10-24)