CareerProof MCP Server

AI-powered career intelligence and workforce analytics via the Model Context Protocol. Connect from Claude Desktop, Cursor, Windsurf, or any MCP-compatible client.

66Tools
44Free
22Paid
2Namespaces

Quick Start

Get connected in three steps. No SDK or local installation required — the MCP server runs on Cloudflare's edge.

Get your API token

Sign in at careerproof.ai and copy your API key from Config → Settings. API keys start with cpk_.

Choose your connection method

OAuth 2.0 at /mcp — interactive login (Claude Desktop, Windsurf).
Bearer token at /mcp/bearer — pass your API key directly (Cursor, programmatic).

Start using tools

Once connected, your AI client discovers all 66 tools automatically. Try: atlas_create_context (free) or ceevee_upload_cv (free) to get started.

🔒 Authentication

Two authentication methods are available. Choose based on your MCP client.

Recommended for interactive clients

OAuth 2.0

https://mcp.careerproof.ai/mcp

Full OAuth 2.0 authorization code flow with PKCE. Your MCP client handles the flow automatically — you just log in.

  • Automatic token refresh
  • Session persistence via KV
  • Supports email/password and API key login
Best for programmatic access

Bearer Token

https://mcp.careerproof.ai/mcp/bearer

Pass your API key or JWT directly in the Authorization header. No OAuth flow needed.

  • Header: Authorization: Bearer cpk_...
  • Or query param: ?token=cpk_...
  • Validates against the CareerProof backend
Tip: API keys (cpk_ prefix) also work on the OAuth /mcp endpoint via the resolveExternalToken fallback. Pass Bearer cpk_... in the Authorization header and it'll validate directly against the backend.

🔌 Connect Your Client

Step-by-step setup for popular MCP clients.

Claude Desktop

OAuth 2.0

Go to Claude.ai → Settings → Connectors. Add a new Custom Connector with the URL:

https://mcp.careerproof.ai/mcp

Claude handles OAuth automatically. You'll be prompted to log in on first use.

Cursor

Bearer Token

In Cursor settings, add a new MCP server:

"careerproof": { "url": "https://mcp.careerproof.ai/mcp/bearer", "headers": { "Authorization": "Bearer cpk_your_key_here" } }

🌊 Windsurf

OAuth 2.0

In Windsurf MCP settings, add a remote server:

"careerproof": { "serverUrl": "https://mcp.careerproof.ai/mcp" }

Windsurf supports OAuth — you'll be prompted to authorize.

🔍 MCP Inspector

OAuth 2.0 or Bearer

For testing and debugging:

# OAuth flow URL: https://mcp.careerproof.ai/mcp # Bearer (skip OAuth) URL: https://mcp.careerproof.ai/mcp/bearer Header: Authorization: Bearer cpk_...

🛠 Workflows

Two tool namespaces serve different users. All 66 tools are available through a single connection.

Atlas — Workforce Intelligence

For recruiters & TA teams

Upload candidates, create job descriptions, run competency analyses, batch rank against JDs, and generate research reports.

atlas_create_context atlas_upload_candidate atlas_create_jd atlas_start_gem_analysis atlas_start_fit_rank

CeeVee — Career Optimization

For professionals

Upload your CV, run market positioning analysis, choose a narrative lens, and get targeted optimization edits.

ceevee_upload_cv ceevee_analyze_positioning ceevee_get_opportunities ceevee_confirm_lens

Or use ceevee_full_review for a single-call autonomous review.

CeeVee — Career-Intel Reports

17 report types

Generate research-backed career intelligence reports: compensation benchmarks, role evolution, pivot feasibility, AI displacement risk, and more.

ceevee_list_report_types ceevee_generate_report ceevee_get_report ceevee_download_report

Poll ceevee_get_report every 30s, max 40 polls (20 min).

Async Pattern

Long-running tools (GEM analysis, batch jobs, reports) use an async pattern. Tools marked Async return a task_id immediately.

*_start tool → returns task_id → careerproof_task_status(task_id) → poll every 5-10s → careerproof_task_result(task_id)
// 1. Start the analysis result = atlas_start_gem_analysis({ context_id: 1, candidate_id: 5 }) // Returns: { task_id: "abc-123", analysis_id: 42 } // 2. Poll until complete status = careerproof_task_status({ task_id: "abc-123" }) // Returns: { status: "running", progress_pct: 65, current_stage: "Scoring competencies" } // 3. Fetch the result result = careerproof_task_result({ task_id: "abc-123", result_type: "analysis", resource_id: 42 })
Note: Your MCP client (Claude, Cursor) handles this loop automatically. The instructions field in the server manifest tells the AI to poll. You don't need to manage this yourself.

💰 Credits & Billing

Tools are metered with credits. CRUD and status tools are always free. Analysis, chat, and batch tools have credit costs shown in each tool's badge.

CategoryExample ToolsCost
CRUD & Statusatlas_create_context, ceevee_list_versions, careerproof_task_statusFree
Chatatlas_advisor_chat, ceevee_chat1-3 cr
Analysisceevee_analyze_positioning, atlas_start_jd_analysis5 cr
Deep Analysisatlas_start_gem_analysis (gem_full), ceevee_full_review10 cr
Matchingatlas_start_fit_match, atlas_generate_interview8 cr
Reportsatlas_start_report, ceevee_generate_report15+ cr
Batchatlas_start_batch_gem, atlas_start_jd_fit_batch3-10 cr/candidate
Credit-based billing. Each tool call deducts credits from your balance in real-time. Check your balance anytime with the careerproof://account resource.

Credit Plans

PlanRateValue
Individual1 SGD = 15 creditsBest for occasional use
Pro1 SGD = 20 creditsFor regular professionals
Pro+1 SGD = 25 creditsBest value for power users

📚 Tool Reference

All 66 tools with parameters, types, and credit costs. Click any tool name to copy its anchor link.

Universal 2

Async task polling — works with any async tool across Atlas and CeeVee.

careerproof_task_status

Free Sync

Check the status of any async task. Returns status (pending/running/completed/failed), progress percentage, and current stage.

ParameterTypeDescription
task_id string required Task ID returned by any async start tool

careerproof_task_result

Free Sync

Retrieve the full result of a completed async task. Supports analysis, batch_gem, jd_fit_batch, report, custom_eval_inference, custom_eval_batch, and dialogue_assessment result types.

ParameterTypeDescription
task_id string required Task ID of a completed async task
result_type enum: analysis | batch_gem | jd_fit_batch | report | custom_eval_inference | custom_eval_batch | dialogue_assessment required Type of result to fetch (determines backend endpoint)
resource_id number optional Resource-specific ID (analysis_id, job_id, report_id, etc.)
context_id number optional Context ID (required for jd_fit_batch)

Atlas — CRUD 9

Manage hiring contexts, candidates, and job descriptions. All free.

atlas_create_context

Free Sync

Create a new hiring context (company profile) for organizing candidates and JDs.

ParameterTypeDescription
company_name string required Company name (1-255 chars)
industry string optional Industry (max 100 chars)
company_size enum: startup | small | medium | large | enterprise optional Company size
location string optional Location (max 255 chars)
company_website string optional Website URL (max 500 chars)
hiring_context object optional Hiring details: open_roles, team_structure, budget_ranges, hiring_goals, hiring_timeline, key_requirements, competitor_context
is_default boolean optional Set as default context (default: false)

atlas_list_contexts

Free Sync

List all hiring contexts for the authenticated user.

ParameterTypeDescription
include_inactive boolean optional Include inactive contexts (default: false)

atlas_update_context

Free Sync

Update a hiring context's details (name, industry, size, hiring context).

ParameterTypeDescription
context_id number required Context ID
company_name string optional New company name
industry string optional New industry
company_size enum: startup | small | medium | large | enterprise optional New company size
location string optional New location
company_website string optional New website
hiring_context object optional Updated hiring details
is_default boolean optional Set as default
is_active boolean optional Activate/deactivate

atlas_upload_candidate

Free Sync

Upload a candidate CV (PDF/DOCX) to a hiring context. CV parsing starts asynchronously.

ParameterTypeDescription
context_id number required Hiring context ID
file string (base64) required CV file as base64 encoded string
candidate_name string optional Candidate name (max 255)
candidate_email string optional Candidate email (max 255)
filename string optional Original filename for content-type detection
tags string[] optional Tags for filtering (e.g. ['senior', 'engineering'])
notes string optional Notes about the candidate

atlas_list_candidates

Free Sync

List all candidates in a hiring context.

ParameterTypeDescription
context_id number required Context ID

atlas_get_candidate

Free Sync

Get full candidate detail including parsed CV content and parse status.

ParameterTypeDescription
context_id number required Context ID
candidate_id number required Candidate ID

atlas_create_jd

Free Sync

Create a job description from text within a hiring context.

ParameterTypeDescription
context_id number required Context ID
title string required JD title (1-255 chars)
content string required Full JD text (min 10 chars)

atlas_list_jds

Free Sync

List all job descriptions for a hiring context.

ParameterTypeDescription
context_id number required Context ID

atlas_get_analytics

Free Sync

Get comprehensive talent analytics dashboard data (candidate stats, analysis coverage, fit score distributions).

ParameterTypeDescription
context_id number required Context ID

Atlas — Analysis 4

AI-powered competency analysis and JD assessment.

atlas_start_gem_analysis

Async

Start an async GEM (10-factor competency) analysis on a candidate. Poll with careerproof_task_status, then fetch with atlas_get_analysis.

ParameterTypeDescription
context_id number required Context ID
candidate_id number required Candidate ID
analysis_type enum: gem_full | gem_lite | career_path optional Analysis depth (default: gem_full)

atlas_get_analysis

Free Sync

Retrieve a completed analysis result by analysis ID. Returns scores, competency breakdown, and recommendations.

ParameterTypeDescription
analysis_id number required Analysis ID

atlas_list_analyses

Free Sync

List all analyses for a candidate with optional type filtering.

ParameterTypeDescription
context_id number required Context ID
candidate_id number required Candidate ID
analysis_type enum: gem_full | gem_lite | career_path | jd_fit optional Filter by type

atlas_start_jd_analysis

Sync

Analyze a JD for market competitiveness, clarity, bias detection, salary benchmarking, and skills extraction. Synchronous.

ParameterTypeDescription
jd_text string required Full JD text (min 50 chars)
include_live_search boolean optional Include live web search for salary data (default: true)
industry_hint string optional Industry hint (max 100)
location_hint string optional Location hint (max 255)

Atlas — Batch & Reports 16

Bulk processing: batch GEM, JD-FIT batch, custom eval, reports, dialogue assessment.

atlas_start_batch_gem

Async

Start a batch GEM analysis across multiple candidates. Poll with atlas_get_batch_gem_status.

ParameterTypeDescription
context_id number required Context ID
candidate_ids number[] required Candidate IDs (min 1)
analysis_type enum: gem_full | gem_lite | career_path optional Analysis type (default: gem_full)

atlas_get_batch_gem_status

Free Sync

Check progress of a batch GEM job.

ParameterTypeDescription
job_id number required Batch job ID

atlas_get_batch_gem_results

Free Sync

Get all results from a completed batch GEM job.

ParameterTypeDescription
job_id number required Batch job ID

atlas_start_jd_fit_batch

Async

Match multiple candidates against a JD. Poll with atlas_get_jd_fit_batch_status.

ParameterTypeDescription
context_id number required Context ID
candidate_ids number[] required Candidate IDs (min 1)
jd_title string optional JD title (max 255)
jd_content string optional JD text (falls back to context active JD)
use_kb_enhancement boolean optional Use KB enhancement (default: true)

atlas_get_jd_fit_batch_status

Free Sync

Check progress of a JD-FIT batch job.

ParameterTypeDescription
context_id number required Context ID
batch_id number required Batch ID

atlas_get_jd_fit_results

Free Sync

Get JD-FIT results for a context. Returns ranked candidates with fit scores.

ParameterTypeDescription
context_id number required Context ID

atlas_start_custom_eval_batch

Async

Batch evaluate candidates using a custom evaluation model. Poll with atlas_get_custom_eval_batch_status.

ParameterTypeDescription
custom_model_id number required Custom eval model ID
candidate_ids number[] required Candidate IDs (min 1)
context_id number required Context ID
detail_level enum: brief | standard | deep optional Detail level (default: standard)
template_id number optional Evaluation template ID

atlas_get_custom_eval_batch_status

Free Sync

Check progress of a custom evaluation batch.

ParameterTypeDescription
batch_id number required Batch ID

atlas_get_custom_eval_batch_results

Free Sync

Get results from a completed custom eval batch.

ParameterTypeDescription
batch_id number required Batch ID

atlas_start_report

Async

Generate a research report (market_research, competitor_analysis, or talent_landscape). Poll with careerproof_task_status.

ParameterTypeDescription
report_type string required Report type: market_research | competitor_analysis | talent_landscape
inputs object required Report-specific inputs (varies by report_type)

atlas_get_report

Free Sync

Get report status and metadata.

ParameterTypeDescription
report_id number required Report ID

atlas_download_report

Free Sync

Download a completed report as base64-encoded PDF.

ParameterTypeDescription
report_id number required Report ID

atlas_list_reports

Free Sync

List all generated reports with status and summary.

ParameterTypeDescription
No parameters

atlas_start_dialogue_assessment

Async

Assess dialogue/interview transcripts in a session. Poll with careerproof_task_status.

ParameterTypeDescription
session_id number required Dialogue session ID

atlas_get_dialogue_results

Free Sync

Get assessment results for a dialogue session.

ParameterTypeDescription
session_id number required Dialogue session ID

atlas_start_custom_eval_inference

Async

Auto-generate evaluation dimensions for a custom eval model. Poll with careerproof_task_status.

ParameterTypeDescription
model_id number required Custom eval model ID

Atlas — Custom Eval Models 12

Create and manage custom evaluation models: CRUD, artifacts, rubric inference, and overrides. All free.

atlas_create_custom_eval_model

Free Sync

Create a new custom evaluation model for a hiring context.

ParameterTypeDescription
client_context_id number required Client context ID
name string required Model name (1-255 chars)
description string optional Model description (max 2000)

atlas_list_custom_eval_models

Free Sync

List all custom evaluation models for the authenticated user.

ParameterTypeDescription
No parameters

atlas_get_custom_eval_model

Free Sync

Get full detail for a custom eval model including dimensions, weights, and rubric status.

ParameterTypeDescription
model_id number required Model ID

atlas_update_custom_eval_model

Free Sync

Update a custom eval model's metadata (name, description, dimensions, weights).

ParameterTypeDescription
model_id number required Model ID
name string optional Updated name
description string optional Updated description
inferred_dimensions array optional Updated dimensions
inferred_weights object optional Updated weights

atlas_delete_custom_eval_model

Free Sync

Delete a custom evaluation model and all its artifacts and rubrics.

ParameterTypeDescription
model_id number required Model ID

atlas_upload_custom_eval_artifact

Free Sync

Upload a file artifact (CV, JD, template) as base64 to teach the model.

ParameterTypeDescription
model_id number required Model ID
file string (base64) required File as base64 string (PDF/DOCX)
artifact_type enum: cv_with_notes | template | free_text | jd required Artifact type
filename string optional Original filename
notes string optional Notes about this artifact
label enum: strong | weak | mixed optional Quality label

atlas_add_custom_eval_text_artifact

Free Sync

Add a plain text artifact to teach the model (rubric notes, criteria, descriptions).

ParameterTypeDescription
model_id number required Model ID
artifact_type enum: cv_with_notes | template | free_text | jd required Artifact type
text_content string required Text content
notes string optional Notes about this artifact
label enum: strong | weak | mixed optional Quality label

atlas_list_custom_eval_artifacts

Free Sync

List all artifacts uploaded to a custom eval model.

ParameterTypeDescription
model_id number required Model ID

atlas_infer_custom_eval_rubric

Free Sync

AI infers evaluation rubric from artifacts. Sync call, may take 30-60 seconds.

ParameterTypeDescription
model_id number required Model ID

atlas_get_custom_eval_rubric

Free Sync

Get the current rubric including dimensions, scoring criteria, and any overrides.

ParameterTypeDescription
model_id number required Model ID

atlas_set_custom_eval_rubric_overrides

Free Sync

Set rubric overrides to customize AI-inferred rubric (adjust weights, rename dimensions).

ParameterTypeDescription
model_id number required Model ID
overrides object required Override configs keyed by dimension name

atlas_clear_custom_eval_rubric_overrides

Free Sync

Clear all rubric overrides, reverting to AI-inferred rubric.

ParameterTypeDescription
model_id number required Model ID

Atlas — Chat 2

Conversational AI for workforce intelligence and hiring strategy.

atlas_chat

SSE

Full-featured Atlas AI assistant with live tool use (salary benchmarks, talent supply/demand, competitor intel). May take 2-3 min for complex queries.

ParameterTypeDescription
message string required User message
conversation_id number optional Continue existing thread (omit to start new)
context_id number optional Hiring context for context-aware responses

atlas_advisor_chat

SSE

Lightweight hiring advice — faster and cheaper than atlas_chat, no tool use.

ParameterTypeDescription
message string required User message
conversation_id number optional Continue existing thread (omit to start new)

Atlas — Utilities 5

Real-time matching, ranking, and interview question generation.

atlas_start_fit_match

Async

Start async fit match for a single candidate against a JD. Returns task_id and analysis_id.

ParameterTypeDescription
context_id number required Context ID
candidate_id number required Candidate ID
jd_text string required JD text to match against

atlas_fit_match_enhanced

Sync

Enhanced FIT match with knowledge base augmentation for deeper analysis and market context.

ParameterTypeDescription
context_id number required Context ID
candidate_id number required Candidate ID
jd_text string required JD text to match against

atlas_start_fit_rank

Async

Start async fit rank for multiple candidates against a JD. Returns task_id and analysis_id.

ParameterTypeDescription
context_id number required Context ID
candidate_ids number[] required Candidate IDs (min 2)
jd_text string required JD text to rank against

atlas_generate_interview

Sync

Generate interview questions tailored to a candidate's profile. Supports pressure levels.

ParameterTypeDescription
context_id number required Context ID
candidate_id number required Candidate ID
jd_text string optional Optional JD text for role-targeted questions
pressure_level enum: supportive | standard | aggressive optional Pressure level (default: standard)
num_questions number (1-15) optional Number of questions (default: 5)

atlas_interview_followup

Sync

Generate a follow-up probing question based on a candidate's answer.

ParameterTypeDescription
context_id number required Context ID
candidate_id number required Candidate ID
original_question string required The original interview question
candidate_answer string required The candidate's answer
pressure_level enum: supportive | standard | aggressive optional Pressure level (default: standard)

CeeVee — CRUD 5

CV upload, version management, and positioning session retrieval. All free.

ceevee_upload_cv

Free Sync

Upload a CV file (PDF/DOCX). Parses the document and creates a CV version with structured sections.

ParameterTypeDescription
file string (base64) required CV file as base64 encoded string
filename string optional Original filename for content-type detection

ceevee_list_versions

Free Sync

List all CV versions for the authenticated user.

ParameterTypeDescription
No parameters

ceevee_get_version

Free Sync

Get detailed CV version including structured content, sections, word count, and audience profile.

ParameterTypeDescription
cv_version_id number required CV version ID

ceevee_list_positioning_sessions

Free Sync

List all positioning sessions (market analysis through lens selection to targeted edits).

ParameterTypeDescription
No parameters

ceevee_get_positioning_session

Free Sync

Get full positioning session detail including analysis, lens, opportunities, targeted edits, and PDF URLs.

ParameterTypeDescription
session_id number required Session ID

CeeVee — Analysis 4

Market positioning pipeline and CV optimization tools.

ceevee_analyze_positioning

Sync

Step 1/3 — Run market positioning analysis. Returns snapshot, detected lens, recruiter inference, and session_id.

ParameterTypeDescription
cv_version_id number required CV version ID
session_id number optional Resume existing session

ceevee_get_opportunities

Sync

Step 2/3 — Get career pivot opportunities based on a selected narrative lens.

ParameterTypeDescription
cv_version_id number required CV version ID
lens string required Narrative lens from step 1 (e.g. 'Technical Leader')
session_id number optional Session ID from step 1

ceevee_confirm_lens

Sync

Step 3/3 — Confirm lens and generate targeted CV edits with trade-offs and optional PDF output.

ParameterTypeDescription
cv_version_id number required CV version ID
confirmed_lens string required Confirmed narrative lens
custom_positioning string optional Custom positioning description
session_id number optional Session ID from step 1
positioning_snapshot object optional Snapshot from step 1
detected_lens_full object optional Lens data from step 1
recruiter_inference object optional Recruiter inference from step 1
selected_opportunities object[] optional Opportunities from step 2

ceevee_full_review

Sync

Autonomous full CV review in one call: positioning + lens + edits + optional opportunities. Alternative to the 3-step pipeline.

ParameterTypeDescription
cv_version_id number required CV version ID
requested_lens string optional Specific lens (null = auto-infer)
jd_text string optional Optional JD for targeted optimization
include_opportunities boolean optional Include opportunity analysis (default: false)
session_id number optional Session ID

CeeVee — Reports 5

Career-intel report generation, polling, and download. 17 report types across compensation, skills, transitions, and job search.

ceevee_list_report_types

Free Sync

List all available career-intel report types with descriptions, required/optional inputs, and credit costs. Call before ceevee_generate_report.

ParameterTypeDescription
No parameters

ceevee_generate_report

Async

Queue async career-intel report generation. Poll with ceevee_get_report every 30s (max 40 polls / 20 min). Report types: Compensation Benchmark, Role Evolution, Offer Comparison, AI Displacement Risk, Pivot Feasibility, Credential ROI, Skill Decay Risk, Rate Card, Career Gap Narrative, Interview Prep, Employer Red Flag, Industry Switch, Relocation Impact, Startup vs Corporate, Learning Path, Board Readiness, Fractional Leadership.

ParameterTypeDescription
report_type string required Report type from ceevee_list_report_types (e.g. 'ceevee_comp_benchmark')
cv_version_id number optional CV version ID for CV-aware reports
inputs object optional Report-specific inputs (role_title, location, industry, etc.)

ceevee_list_reports

Free Sync

List user's generated reports with pagination and optional status filter.

ParameterTypeDescription
status string optional Filter: pending, processing, completed, or failed
limit number optional Max reports (default 20)
offset number optional Pagination offset

ceevee_get_report

Free Sync

Get report status and metadata (without PDF). Use to poll after ceevee_generate_report — every 30s, max 40 polls.

ParameterTypeDescription
report_id number required Report ID from ceevee_generate_report or ceevee_list_reports

ceevee_download_report

Free Sync

Download a completed report as PDF (base64). Only call after ceevee_get_report confirms status='completed'.

ParameterTypeDescription
report_id number required Report ID

CeeVee — Chat 2

Conversational CV optimization assistant with edit explanations.

ceevee_chat

SSE

CV optimization guidance with context-aware conversations linked to a CV version.

ParameterTypeDescription
message string required User message
cv_version_id number required CV version ID from ceevee_upload_cv or ceevee_list_versions
conversation_id number optional Continue existing thread (omit to start new)

ceevee_explain_change

Sync

Detailed explanation of a specific edit from a positioning review.

ParameterTypeDescription
cv_version_id number required CV version ID
change_id string required Edit ID from ceevee_confirm_lens or ceevee_full_review output