Skip to content

pepuscz/recruitee-mcp-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Recruitee MCP Server

A Model Context Protocol (MCP) server for the Recruitee API that enables extraction of candidate profiles from recruitment pipelines. Features clean, purpose-built functions optimized for different use cases: basic overviews, LLM evaluation, and detailed analysis.

Features

  • LLM Evaluation Optimized: Clean, bias-free candidate data perfect for AI analysis
  • PDF Text Extraction: Automatic CV and cover letter extraction using pdfplumber
  • Screening Questions: Clean Q&A format for easy evaluation
  • Efficient Processing: CV text processing configurable for performance optimization
  • Advanced Search: Multi-criteria candidate filtering
  • Notes & Ratings: Separate access to evaluator feedback

Available Tools

Core Tools

  1. get_candidates_from_pipeline_for_evaluation - Recommended for LLM analysis - Clean evaluation data
  2. get_candidate_profile - Complete candidate profile with all administrative data
  3. search_candidates - Advanced candidate search with filtering
  4. get_candidate_notes - Access notes, ratings, and evaluator feedback
  5. list_jobs - List all available jobs/pipelines
  6. get_job_details - Get detailed job information

Tool Details

get_candidates_from_pipeline_for_evaluation(job_id, stage_filter=None, include_full_cv=False)Recommended

LLM evaluation optimized: Clean, bias-free data perfect for candidate analysis.

Parameters:

  • job_id: The job/pipeline ID (required)
  • stage_filter: Optional stage name filter
  • include_full_cv: Whether to include full CV text (default: False). Set to True to include full CV text - basic CV metadata always included.

Returns:

  • CV full text extraction (PDF → text) - optional based on include_full_cv parameter
  • Clean screening questions: [{"question": "...", "answer": "...", "question_type": "text"}]
  • Flattened skills array: ["JavaScript", "React", "Node.js"]
  • Structured experience: [{"company": "...", "title": "...", "description": "..."}]
  • Cover letter text
  • Basic facts only: has_degree, total_screening_questions, answered_questions

get_candidate_profile(candidate_id)

Complete candidate profile: All candidate data including contact info, CV, cover letter, experience, and all custom fields.

  • Returns: Full profile with contact info, CV/cover letter PDFs, custom fields, and full PDF text extraction
  • Use case: Individual detailed review, contact information access, complete administrative data
  • Performance: 🐌 Slow (comprehensive data + PDF processing)

search_candidates(job_ids=None, stage_names=None, status=None, has_cv=None, has_cover_letter=None, limit=50, offset=0)

Advanced search: Multi-criteria candidate filtering across all candidates.

  • Returns: Filtered candidate list with pagination support
  • Use case: Finding candidates by specific criteria, bulk operations
  • Performance: 🔄 Medium (client-side filtering)

get_candidate_notes(candidate_id)

Evaluator feedback: Access to ratings, notes, and comments.

  • Returns: Notes, ratings, comments from recruiters/interviewers
  • Use case: Review evaluator feedback and scoring

list_jobs() and get_job_details(job_id)

Job management: List available jobs and get detailed job information.

  • Returns: Job listings with metadata, stages, and requirements
  • Use case: Discovering available positions, understanding job requirements

Installation

# Install from source
git clone [repository-url]
cd recruitee-mcp-server
pip install -e .

Configuration

export RECRUITEE_API_TOKEN="your-api-token" 
export RECRUITEE_COMPANY_ID="your-company-id"

Usage

Recommended Workflow

# 1. Get clean evaluation data for LLM analysis (CV text excluded by default)
evaluation_data = get_candidates_from_pipeline_for_evaluation("job_id")

# 1a. For detailed analysis including CV text
evaluation_data = get_candidates_from_pipeline_for_evaluation("job_id", include_full_cv=True)

# 2. Get individual candidate details with full CV text (always included)
profile = get_candidate_profile("candidate_id")  # Complete administrative data

# 3. Review evaluator feedback separately  
notes = get_candidate_notes("candidate_id")

# 4. Get full administrative details only when needed (contact info, etc.)
full_profile = get_candidate_profile("candidate_id")  # Always returns full data

Function Comparison

Function Use Case Fields Performance
get_candidates_from_pipeline_for_evaluation() Pipeline LLM analysis 23 clean fields 🔄 Medium
get_candidate_profile() Complete administrative data 80+ raw fields 🐌 Slow
search_candidates() Advanced filtering Variable 🔄 Medium
get_candidate_notes() Evaluator feedback Notes & ratings ⚡ Fast
list_jobs() Job/pipeline listing Job metadata ⚡ Fast
get_job_details() Job information Complete job data ⚡ Fast

MCP Integration

{
  "mcpServers": {
    "recruitee": {
      "command": "python", 
      "args": ["-m", "recruitee_mcp.server"],
      "env": {
        "RECRUITEE_API_TOKEN": "your-token",
        "RECRUITEE_COMPANY_ID": "your-company-id"
      }
    }
  }
}

Performance Tips

  • Pipeline analysis: Use get_candidates_from_pipeline_for_evaluation() (clean, optimized data)
  • Large datasets: Keep include_full_cv=False (default) to skip CV text processing for better performance
  • Individual analysis: Use get_candidate_profile() for complete administrative data with contact info
  • Evaluator feedback: Use get_candidate_notes() for ratings/comments

License

MIT License


💼 Perfect for AI-powered recruitment tools and LLM candidate evaluation systems.

About

MCP server for Recruitee service for easy LLM evaluation

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages