MCP server for career intelligence platform providing tools for resume analysis, job tracking, ATS scanning, interview preparation, and career path guidance
Career-Agents MCP server has 17 tools with basic schemas and descriptions, but significant quality gaps prevent production use. Tool names follow verb_noun convention (analyze_resume, track_application), which is good. However, descriptions are often generic (avg ~80 chars, well below the 194-char baseline for A+ tools). Most critically: NO input validation constraints (enums, ranges, patterns), NO output schemas documented, NO error handling guidance, and NO security considerations for file operations. The track_application tool accepts free-form 'status' strings instead of an enum. File-based tools (analyze_resume, parse_pdf_resume, export_resume) expose path parameters without sanitization, creating injection risks. No pagination support despite tools returning lists (list_companies, search_agents). Descriptions lack WHEN/WHY context that LLMs need for tool selection.
Analyzes a resume file for ATS compatibility, keyword matching, and provides improvement recommendations
Calculates overall career readiness score based on resume, skills, and experience
Exports resume to PDF, DOCX, or other formats
Finds the shortest career path between two roles using knowledge graph
Generates a customized cover letter based on job description and resume
Retrieves available career paths and progression routes
Retrieves company-specific interview preparation materials and hiring process
Retrieves interview questions for a specific company and role with difficulty levels
No input validation constraints (enums, ranges, patterns). track_application accepts free-form 'status' string instead of enum (Wishlist|Applied|OA|Phone Screen|Onsite|Offer|Rejected|Withdrawn). get_interview_questions 'difficulty' and 'type' should be enums. LLMs will hallucinate invalid values.
File path parameters (filePath in analyze_resume, parse_pdf_resume, export_resume, validate_registry) lack sanitization and traversal protection. No description warns against path injection. Agents could be tricked into reading/writing arbitrary files.
No output schemas documented. Tools return data but LLMs cannot plan downstream calls or extract fields reliably. E.g., get_interview_questions returns questions but schema is invisible, LLM cannot know if result includes difficulty, company, or role fields.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
Lists companies with hiring information and interview data
Loads and returns the career knowledge graph with nodes and edges
Matches resume against job description and calculates compatibility score
Parses PDF resume and extracts text content
Scans resume against ATS systems to identify parsing issues and compatibility problems
Searches the AI agents catalog by name, category, or capability
Searches the career agents search index for agents, workflows, and resources
Tracks job applications with status updates, notes, and timeline management
Validates registry JSON files for correct structure and content
List/search tools (list_companies, search_agents, search_index) lack pagination parameters (limit, offset, page_size). No indication of result count limits. Large result sets will blow context window and degrade LLM reasoning.
Descriptions are generic and lack WHEN/WHY context. E.g., 'Tracks job applications with status updates' does not explain when to call this vs get_company_intel or match_job_description. LLMs cannot disambiguate similar tools without explicit guidance.