MCP Server

getjobzi-mcp

io.github.getjobzi/getjobzi-mcp
Education Productivity Search & Research Public & reachable MCP 2025-11-25

What this MCP does

Searches UK jobs and supports resume analysis, job matching, cover letters, career planning, skill-gap analysis, and salary benchmarking.

analyze_resume
Analyse a CV/resume and return a 0-100 ATS-readiness score, word and keyword counts, the top extracted keywords, and specific notes on gaps or issues (missing contact details, missing section headers, length problems). Provide the resume as plain text via resumeText, or as a base64-encoded PDF via resumeBase64.
Input schema
{'type': 'object', 'required': [], 'properties': {'resumeText': {'type': 'string', 'description': 'Plain-text content of the resume/CV'}, 'resumeBase64': {'type': 'string', 'description': 'Base64-encoded PDF content of the resume'}}, 'additionalProperties': False}
career_health_check
Score the health of a job search across three factors — application volume, interview conversion, and interview-to-offer conversion — and give a short written diagnosis. Takes the caller's own counts; will not invent numbers.
Input schema
{'type': 'object', 'required': ['targetRole', 'applications', 'interviews', 'offers', 'months'], 'properties': {'months': {'type': 'integer', 'description': 'Months spent searching'}, 'offers': {'type': 'integer', 'description': 'Total offers received'}, 'interviews': {'type': 'integer', 'description': 'Total interviews received'}, 'targetRole': {'type': 'string', 'description': "Target role, e.g. 'Software Engineer'"}, 'applications': {'type': 'integer', 'description': 'Total applications submitted'}}, 'additionalProperties': False}
career_path_analysis
Analyse the realistic path from a current role to a target role: 4-6 ordered milestones, a realistic estimated timeline, the skills to acquire, and a short narrative covering trade-offs.
Input schema
{'type': 'object', 'required': ['currentRole', 'targetRole'], 'properties': {'targetRole': {'type': 'string', 'description': "The role they want to reach, e.g. 'Engineering Manager'"}, 'currentRole': {'type': 'string', 'description': "The role they're currently in, e.g. 'Software Engineer'"}, 'yearsExperience': {'type': 'integer', 'description': 'Optional years of experience'}}, 'additionalProperties': False}
career_strategy
Propose a 90-day job-search strategy for a specific target role, grounded in the candidate's resume: positioning, target segments, outreach approach, application cadence, and what to stop doing.
Input schema
{'type': 'object', 'required': ['targetRole'], 'properties': {'resumeText': {'type': 'string', 'description': 'Plain-text content of the resume/CV'}, 'targetRole': {'type': 'string', 'description': "Target role, e.g. 'Product Manager'"}, 'constraints': {'type': 'string', 'description': "Optional constraints, e.g. 'must stay in the UK'"}, 'resumeBase64': {'type': 'string', 'description': 'Base64-encoded PDF content of the resume'}}, 'additionalProperties': False}
create_job_search_plan
Create a practical, week-by-week job search plan for a target role, including weekly targets, sources and search strategies, and pitfalls to avoid.
Input schema
{'type': 'object', 'required': ['targetRole'], 'properties': {'location': {'type': 'string', 'description': "Optional location, e.g. 'Manchester'"}, 'situation': {'type': 'string', 'description': "Optional free-text description of the candidate's current situation"}, 'targetRole': {'type': 'string', 'description': "Target role, e.g. 'Data Engineer'"}, 'timeAvailable': {'type': 'string', 'description': "Optional time they can commit, e.g. '10 hours/week'"}}, 'additionalProperties': False}
diagnose_job_search
Diagnose why a job search isn't producing interviews, from caller-supplied application/interview counts. Returns interview conversion, likely issues, priority actions, and an optional short narrative (null if generation failed — never fabricated). This is a lightweight, stateless diagnostic — it does not use GetJobzi's account-level job search history and never states or implies a probability of being hired.
Input schema
{'type': 'object', 'required': ['targetRole', 'applications', 'interviews', 'months'], 'properties': {'months': {'type': 'integer', 'description': 'Months spent searching'}, 'interviews': {'type': 'integer', 'description': 'Total interviews received'}, 'resumeText': {'type': 'string', 'description': 'Optional plain-text resume for additional context'}, 'targetRole': {'type': 'string', 'description': "Target role, e.g. 'Software Engineer'"}, 'applications': {'type': 'integer', 'description': 'Total applications submitted'}}, 'additionalProperties': False}
find_matching_jobs
Find live UK job postings that match a candidate's resume. Extracts the top keywords from the resume, searches GetJobzi's aggregated postings, and ranks results by similarity between the resume text and each posting's description.
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'description': 'Max results 1-20, default 10'}, 'location': {'type': 'string', 'description': "Optional UK location filter, e.g. 'London' or 'M1'"}, 'resumeText': {'type': 'string', 'description': 'Plain-text content of the resume/CV'}, 'resumeBase64': {'type': 'string', 'description': 'Base64-encoded PDF content of the resume'}}, 'additionalProperties': False}
find_sponsored_jobs
Find NHS job postings — NHS trusts are licensed visa sponsors, so most roles at these trusts are eligible for Skilled Worker sponsorship where the salary meets the threshold. Filtered to NHS Jobs postings only. Returns the same shape as search_jobs, with the full job description included.
Input schema
{'type': 'object', 'required': ['keyword'], 'properties': {'limit': {'type': 'integer', 'description': 'Max results 1-20, default 10'}, 'keyword': {'type': 'string', 'description': "Keyword or job title, e.g. 'Nurse' or 'Radiographer'"}, 'location': {'type': 'string', 'description': 'Optional UK location filter'}}, 'additionalProperties': False}
generate_cover_letter
Generate a tailored, plain-text cover letter for a specific job, grounded in the candidate's resume. Does not invent experience. Provide the resume as plain text or base64 PDF, plus the job title and full job description.
Input schema
{'type': 'object', 'required': ['jobTitle', 'jobDescription'], 'properties': {'company': {'type': 'string', 'description': 'Optional company name'}, 'jobTitle': {'type': 'string', 'description': 'Job title being applied for'}, 'resumeText': {'type': 'string', 'description': 'Plain-text content of the resume/CV'}, 'resumeBase64': {'type': 'string', 'description': 'Base64-encoded PDF content of the resume'}, 'jobDescription': {'type': 'string', 'description': 'Full job description text'}}, 'additionalProperties': False}
generate_job_hunting_action_plan
Generate a personalised job hunting action plan for a job seeker targeting a specific role. Takes only the caller's own inputs (target role, resume, situation, goals).
Input schema
{'type': 'object', 'required': ['targetRole'], 'properties': {'goals': {'type': 'string', 'description': "Free-text description of what they're trying to achieve"}, 'situation': {'type': 'string', 'description': 'Free-text description of the current situation'}, 'resumeText': {'type': 'string', 'description': 'Plain-text resume content'}, 'targetRole': {'type': 'string', 'description': "The role the plan should be built around, e.g. 'Senior Data Analyst'"}, 'resumeBase64': {'type': 'string', 'description': 'Base64-encoded PDF resume'}}, 'additionalProperties': False}
get_job_details
Full details of one job posting by its GetJobzi job id (from search_jobs), including the complete job description text.
Input schema
{'type': 'object', 'required': ['jobId'], 'properties': {'jobId': {'type': 'integer', 'description': 'Job id from search_jobs results'}}, 'additionalProperties': False}
get_salary_benchmark
GetJobzi's UK salary benchmark: median advertised salary on each major UK job board, from GetJobzi's internal salary index. Answers questions like 'which job board has the best paid jobs' or 'is this advertised salary competitive'. Figures are advertised (not negotiated) salaries in GBP.
Input schema
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
identify_skill_gaps
Identify skills a candidate is missing for a target role. If a job description is supplied, uses that; otherwise aggregates GetJobzi's live postings for the target role as the market signal. Returns present skills, missing skills (ordered by market frequency), how many postings were analysed, and notes.
Input schema
{'type': 'object', 'required': ['targetRole'], 'properties': {'resumeText': {'type': 'string', 'description': 'Plain-text content of the resume/CV'}, 'targetRole': {'type': 'string', 'description': "Target role, e.g. 'Product Manager'"}, 'resumeBase64': {'type': 'string', 'description': 'Base64-encoded PDF content of the resume'}, 'jobDescription': {'type': 'string', 'description': 'Optional specific job description to scope the analysis'}}, 'additionalProperties': False}
linkedin_review
Review a resume and produce LinkedIn-optimised copy: a headline (max 220 chars), an About section (max 2600 chars, first-person), 10-15 top skills, and short review notes on what to improve. Grounded in the resume — will not invent experience.
Input schema
{'type': 'object', 'required': [], 'properties': {'resumeText': {'type': 'string', 'description': 'Plain-text content of the resume/CV'}, 'resumeBase64': {'type': 'string', 'description': 'Base64-encoded PDF content of the resume'}}, 'additionalProperties': False}
market_demand_analysis
Analyse live UK market demand for a role over the last N months (default 6): total postings, month-by-month trend, top hiring employers, and top locations. Deterministic — reads GetJobzi's aggregated posting data directly.
Input schema
{'type': 'object', 'required': ['role'], 'properties': {'role': {'type': 'string', 'description': "Role title to analyse, e.g. 'Data Engineer'"}, 'months': {'type': 'integer', 'description': 'Months of history, 1-24, default 6'}, 'location': {'type': 'string', 'description': 'Optional UK location filter'}}, 'additionalProperties': False}
resume_compare
Compare a resume against a specific job description. Returns a 0.0-1.0 keyword-coverage score, matched keywords, missing keywords (ordered by frequency in the job description), and short notes. Deterministic — no LLM involved, will not invent gaps.
Input schema
{'type': 'object', 'required': ['jobDescription'], 'properties': {'resumeText': {'type': 'string', 'description': 'Plain-text content of the resume/CV'}, 'resumeBase64': {'type': 'string', 'description': 'Base64-encoded PDF content of the resume'}, 'jobDescription': {'type': 'string', 'description': 'Full job description text to compare against'}}, 'additionalProperties': False}
search_jobs
Search live UK job postings aggregated by GetJobzi from major UK job boards (Indeed, Reed, CV-Library, TotalJobs, LinkedIn, Adzuna, NHS Jobs and others). Returns matching active jobs with title, company, location, advertised salary, source board and posting date.
Input schema
{'type': 'object', 'required': ['keyword'], 'properties': {'limit': {'type': 'integer', 'description': 'Max results 1-20, default 10'}, 'keyword': {'type': 'string', 'description': "Keyword or job title, e.g. 'Java Developer' or 'Nurse'"}, 'location': {'type': 'string', 'description': "Optional UK location filter, e.g. 'London' or 'M1'"}}, 'additionalProperties': False}
skill_development_plan
Build a structured development plan to close a set of skill gaps for a target role: what to learn, how to practice, a small deliverable per skill, and a week-by-week schedule. Pair with identify_skill_gaps — feed its missingSkills straight into this.
Input schema
{'type': 'object', 'required': ['skillGaps', 'targetRole'], 'properties': {'weeks': {'type': 'integer', 'description': 'Optional plan length in weeks, 2-52, default 12'}, 'skillGaps': {'type': 'array', 'items': {'type': 'string'}, 'description': 'List of skills to develop, e.g. from identify_skill_gaps'}, 'targetRole': {'type': 'string', 'description': 'Target role the plan is built around'}}, 'additionalProperties': False}
Added
career_health_check
Sept. 17, 2026, 12:42 p.m.
Added
search_jobs
Sept. 17, 2026, 12:42 p.m.
Added
generate_job_hunting_action_plan
Sept. 17, 2026, 12:42 p.m.
Added
resume_compare
Sept. 17, 2026, 12:42 p.m.
Added
identify_skill_gaps
Sept. 17, 2026, 12:42 p.m.
Added
get_salary_benchmark
Sept. 17, 2026, 12:42 p.m.
Added
find_matching_jobs
Sept. 17, 2026, 12:42 p.m.
Added
find_sponsored_jobs
Sept. 17, 2026, 12:42 p.m.
Added
get_job_details
Sept. 17, 2026, 12:42 p.m.
Added
diagnose_job_search
Sept. 17, 2026, 12:42 p.m.
Added
skill_development_plan
Sept. 17, 2026, 12:42 p.m.
Added
create_job_search_plan
Sept. 17, 2026, 12:42 p.m.
Added
career_path_analysis
Sept. 17, 2026, 12:42 p.m.
Added
analyze_resume
Sept. 17, 2026, 12:42 p.m.
Added
linkedin_review
Sept. 17, 2026, 12:42 p.m.
Added
generate_cover_letter
Sept. 17, 2026, 12:42 p.m.
Added
career_strategy
Sept. 17, 2026, 12:42 p.m.
Added
market_demand_analysis
Sept. 17, 2026, 12:42 p.m.