Skip to content
Agentmart
Submit a tool

Skillmatch MCP

Job search and ranking pipeline via MCP for Claude Desktop.

Connector by jarmstrong158 · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 2
Write a review

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/jarmstrong158-skillmatch-mcp

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 and ranking pipeline via MCP for Claude Desktop.

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 and install config. Checked Oct 25, 2026.

Tools
11 read · 5 write · 1 delete · 3 not yet classified
Secrets
None asked for
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 20

Read from the source code; the running server may list different tools.

Read 11 · Look things up without changing anything.

  • analyze_fit
  • get_application_patterns
  • get_applications
  • get_follow_ups
  • get_portfolio
  • get_profile
  • get_resume
  • get_scouted_jobs
  • list_resumes
  • parse_jd
  • read_repo

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

  • add_resume
  • mark_jobs_ranked
  • save_scouted_job
  • update_application
  • update_profile

Delete 1 · Delete, drop, revoke or wipe things.

  • purge_dead_listings

Not yet classified 3 · We could not tell from the name and description.

  • log_application
  • search_jobs
  • setup

Files it touches

  • Any path the agent passes to its tools

Tools (20)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_resume

    Add a resume VARIANT to the profile, so fit analysis can pick the right one automatically. Each variant declares the role_types it targets; analyze_fit detects a role_type from the job description and selects the matching variant without being asked. When to use this instead of the alternatives: add_resume registers a NEW variant. list_resumes shows what is already registered. get_resume reads back the stored text of one. update_profile changes other profile fields and does not touch resumes. Use this when the candidate has a genuinely different resume for a different kind of role, not to cor…

  • analyze_fit

    Gather all user data needed for job fit analysis. Accepts a job description, then internally fetches the user's portfolio (GitHub repos) and resume. Returns all three together in a structured bundle so Claude can reason about the fit. Does NOT perform the analysis itself.

  • get_application_patterns

    After 10+ applications, analyze the full history to find patterns: which role types get responses, which skills resonate, which red flags recur in silent roles, and recommended search adjustments. Uses Claude API internally.

  • get_applications

    Return all tracked job applications, ordered by most recent first. Optionally filter by status.

  • get_follow_ups

    Return all applications where follow_up_due_date is today or earlier and status is still applied or screening. Shows what needs attention.

  • get_portfolio

    Fetch public GitHub repos for the user. Returns repo name, description, language, topics, last updated, homepage, and README content for each repo. Pass deep=true to also run a Haiku-powered analysis of each README, extracting stack, what it does, complexity, and notable achievements. Omit deep (or pass false) for the free metadata+README fetch. Only use deep=true when you explicitly need structured analysis and the user has authorized API spend.

  • get_profile

    Read and return the saved user profile from data/profile.json.

  • get_resume

    Read the user's resume file. Reads resume_path from the saved profile and returns the raw text content. Supports .txt, .md, and .docx files.

  • get_scouted_jobs

    Read back job listings that were SCOUTED but not yet applied to. Scouted jobs are candidates found while searching; they live in data/scouted_jobs.json and are separate from applications. When to use this instead of the alternatives: get_scouted_jobs lists jobs the user has NOT applied to yet. get_applications lists ones they have. save_scouted_job adds to this list; mark_jobs_ranked clears the unranked flag after a ranking pass. The normal ranking loop is: call this with unranked_only=true, rank what comes back, present it, then call mark_jobs_ranked so the same jobs are not ranked again ne…

  • list_resumes

    Return all stored resume variants with their labels and target role types.

  • log_application

    Log a job application to the tracking database. Creates the database if it does not exist.

  • mark_jobs_ranked

    Mark all unranked scouted jobs as ranked. Returns the count of jobs marked.

  • parse_jd

    Parse a job description into structured signal: hard requirements, nice-to-haves, responsibilities, red flags, compensation signals, role type, experience level, and domain. Uses Claude API internally. Returns structured JSON for better fit reasoning.

  • purge_dead_listings

    Checks every scouted job URL for liveness and removes expired or unavailable postings from scouted_jobs.json. Detects dead listings via HTTP 404/410 status codes and known closure phrases in page content (e.g. 'no longer accepting applications'). Connection errors and 5xx responses are treated as 'keep' to avoid false positives. Pass dry_run=true to preview what would be removed without actually deleting anything.

  • read_repo

    Analyzes a local code repository and extracts structural information: detected languages, tech stack (frameworks/libraries from imports), entry points, key modules (classes and functions), and architecture shape. Returns raw structured JSON for Claude to interpret — no API calls, pure local analysis using AST for Python files and regex for JS/TS. Use this to understand a candidate's project before analyzing job fit, or to supplement get_portfolio with deeper technical signal from local repos.

Show 5 more tools
  • save_scouted_job

    Save a scouted job listing to the tracked scouted_jobs.json file. Validates the URL to ensure it is a DIRECT link to a specific job posting (e.g. indeed.com/viewjob?jk=..., greenhouse.io/.../jobs/...) and rejects search result page URLs (e.g. indeed.com/q-..., builtin.com/jobs/...). Also deduplicates against existing scouted jobs and applications. Returns {saved: true/false, reason: '...'} with clear feedback.

  • search_jobs

    Build an optimized job search query. Accepts a free-text query and combines it with the user's saved profile (target roles, salary floor, remote preference) to construct a search query string. Returns the query for Claude to use with web search tools. Does NOT perform the search itself.

  • setup

    Onboard the user by collecting their job search profile. Captures: name, current_role, target_roles (list), salary_floor (integer), remote_only (bool), location, dealbreakers (list), github_url, resume_path. If a profile already exists, the 'confirm_overwrite' parameter must be true to replace it.

  • update_application

    Update an application that is ALREADY tracked, by its numeric id. Use this as the user's situation moves: a recruiter replies, an interview is scheduled, an offer lands, or the role goes quiet. When to use this instead of the alternatives: update_application changes an EXISTING row and requires an id. log_application creates a new one and must be used for a job not tracked yet — this tool will not create anything, and an unknown id is an error rather than an insert. Get ids from get_applications or get_follow_ups. If the user re-applies to the same company for a DIFFERENT role, that is a new …

  • update_profile

    Update the user's profile with new or changed fields. Accepts any subset of profile fields and merges them into the existing profile.json without requiring a full re-setup. Useful for adding unlisted_skills, updating dealbreaker_detail, or changing any field.

Signals

Stars
2
Forks
1
Open issues
0
Weekly downloads
48
Last commit
Aug 2, 2026 (2 months ago)
Last release
Aug 2, 2026 (2 months ago)
Last package publish
Aug 2, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.jarmstrong158/skillmatch-mcp
Version
2.0.0
Auth
No auth
Packages
pypi skillmatch-mcp
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from jarmstrong158

Cite this page

Skillmatch MCP. Agent Mart. https://agentmart.dev/connectors/jarmstrong158-skillmatch-mcp (last updated 2026-10-24)