candidate-eval-api
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@candidate-eval-apiEvaluate candidate C001 for job J100 and show the result"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Candidate Eval API
A lightweight backend service for evaluating candidates against job requirements using FastAPI, asynchronous Python, and MCP (Model Context Protocol).
The project demonstrates how to build a production-style AI/backend service where the same evaluation capabilities can be accessed through both REST APIs and MCP tools.
π― Project Overview
Candidate Eval API simulates an AI-powered candidate evaluation system.
A client can submit a candidate and job information, trigger an evaluation, and retrieve the evaluation result through REST APIs.
An AI agent can perform similar operations through MCP tools.
ββββββββββββββββββββ
β Client β
ββββββββββ¬ββββββββββ
β
βΌ
ββββββββββββββββββββ
β FastAPI β
β REST APIs β
ββββββββββ¬ββββββββββ
β
βΌ
ββββββββββββββββββββ
β Evaluation β
β Service β
β β
β Async Processing β
ββββββββββ¬ββββββββββ
β²
β
ββββββββββ΄ββββββββββ
β MCP Server β
β β
β MCP Tools β
ββββββββββββββββββββRelated MCP server: MCP-Powered-AI-Job-Recommendation-Engine
β¨ Key Features
REST APIs built with FastAPI
Asynchronous request processing using asyncio
Concurrent execution using
asyncio.gather()Custom FastAPI middleware
Request ID and processing-time tracking
Pydantic request/response validation
In-memory evaluation storage
MCP server with evaluation tools
Shared business logic between REST APIs and MCP
Basic automated testing with pytest
π οΈ Tech Stack
Technology | Purpose |
Python | Application development |
FastAPI | REST API framework |
Pydantic | Data validation |
asyncio | Asynchronous/concurrent processing |
MCP | AI-agent tool interface |
pytest | Testing |
HTTPX | API testing |
π Repository Structure
candidate-eval-api/
β
βββ app/
β βββ __init__.py
β βββ main.py # FastAPI application and REST endpoints
β βββ models.py # Pydantic models
β βββ service.py # Evaluation business logic
β βββ middleware.py # Request middleware
β βββ mcp_server.py # MCP server and tools
β
βββ tests/
β βββ __init__.py # Test package
β
βββ requirements.txt
βββ README.md
βββ .gitignoreThe application follows a simple separation of concerns:
API Layer
β
Service Layer
β
Data / StorageBoth FastAPI and MCP are intended to use the same service layer rather than duplicating business logic.
π Getting Started
1. Clone the repository
git clone <repository-url>
cd candidate-eval-api2. Create a virtual environment
Windows
python -m venv .venv
.venv\Scripts\activateLinux / macOS
python -m venv .venv
source .venv/bin/activate3. Install dependencies
pip install -r requirements.txt4. Start the FastAPI application
uvicorn app.main:app --reloadThe API will be available at:
http://127.0.0.1:8000Interactive API documentation:
http://127.0.0.1:8000/docsπ REST API
The application exposes endpoints for managing candidate evaluations.
Create Evaluation
POST /evaluationsExample request:
{
"candidate_id": "C001",
"job_id": "J100",
"skills": [
"python",
"fastapi",
"aws"
]
}Get Evaluation
GET /evaluations/{evaluation_id}Run Evaluation
POST /evaluations/{evaluation_id}/runRun Batch Evaluation
POST /evaluations/{evaluation_id}/run-batchAPI behavior and implementation are intentionally evolving as the project is developed.
π€ MCP Interface
The project also exposes candidate evaluation functionality through MCP.
Planned tools include:
evaluate_candidate
Evaluates a candidate against a job and returns an evaluation result.
get_evaluation
Retrieves an existing candidate evaluation.
The MCP interface allows an AI agent to interact with the evaluation service using structured tools rather than directly calling REST endpoints.
β‘ Async Processing
The evaluation workflow demonstrates asynchronous processing.
Independent evaluation operations such as:
Skill Analysis
Resume Analysis
Experience Analysiscan execute concurrently using:
asyncio.gather()This allows independent I/O-bound operations to execute concurrently instead of sequentially.
π§© Middleware
Custom middleware is used to provide request-level observability.
Each response can include:
X-Request-ID
X-Process-TimeExample log:
GET /evaluations/E001 - 200 - 0.023sThis provides a foundation for request tracing and performance monitoring.
π§ͺ Testing
Tests are implemented using pytest.
Run the test suite with:
pytestπΊοΈ Future Improvements
Potential extensions include:
Persistent database storage
Authentication and authorization
Redis-based caching
Background task processing
Evaluation queues
Retry and timeout handling
Structured logging
Docker containerization
CI/CD pipeline
More comprehensive test coverage
Real LLM-based candidate evaluation
Additional MCP resources and tools
π Project Status
π§ Work in Progress
This project is being developed incrementally to demonstrate practical backend engineering, asynchronous Python, FastAPI, and MCP integration patterns.
This server cannot be deployed
Maintenance
Related MCP Connectors
Query InterviewFlowAI candidate and interview data from MCP-compatible AI assistants.
CareerProof MCP gives AI agents direct access to a professional-grade career and workforce intelligence platform. Two namespaces: atlas_* for HR/TA teams (candidate evaluation, batch shortlisting, competency scoring, interview generation, JD analysis, custom eval frameworks, research reports) and ceevee_* for professionals (CV optimization, career positioning, salary intelligence, market reports). Backed by RAG knowledge from 50+ premium research sources (McKinsey, BCG, HBR, Gartner, WEF)
Query professional profiles, search candidates, and get AI-powered summaries and job fit analysis.
WorkorAI talent marketplace MCP: candidate job search and employer hiring with explainable matching
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search, score, and track job applications from ATS boards via MCP, with explainable matching and an append-only application history.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to recommend jobs, parse candidate profiles, compute semantic skill match scores, and filter opportunities by location through standardized MCP tools.-
- AlicenseNot gradedqualityBmaintenanceEnables AI clients to serve as a personal career analyst by searching, matching, and explaining job recommendations, managing job applications, and syncing public job boards through standardized MCP tools.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to access document processing tools for extracting text, generating summaries, and identifying skills via MCP.-