Factorial ATS Ops Control Plane
Server Details
Ask Factorial ATS the recruiting-ops questions dashboards miss by connecting applications, phases, candidates, sources, feedback, evaluation forms, job postings, messages, questions, answers, and rejection reasons. Find applications aging in phase, feedback debt by role and posting, source-quality gaps, rejected-candidate hygiene, incomplete application data, hiring-stage bottlenecks, and owner queues. No dashboard build. No SQL.
Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 39 tools
Each get/list tool targets a distinct entity (answers, applications, candidates, etc.), and the generic api_request is clearly an escape hatch for undocumented endpoints rather than an overlapping tool. The singular/plural lists are unambiguous.
Tools predominantly follow a consistent verb_noun snake_case pattern (create_x, get_x, list_xs, update_x, delete_x). Two outliers exist: api_request (noun_noun) and get_control_plane_capabilities (not a resource CRUD), but they are minor.
At 39 tools, the server is heavily over-populated. Nearly every entity has both a get and list tool, and many CRUD combinations exist, but the count exceeds what is typically needed for an MCP server and could overwhelm agents.
The read surface is comprehensive with get/list for 13 entities, and write coverage for core resources (candidates, applications, feedback, job postings, webhooks). Missing delete operations and some create/update limits are acceptable for an ops control plane, though a direct update_application_phase would fill a gap.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
38 tool updates
- Changed
api_request1 field changed- added
Input schema / properties / confirmAdded value: +{ + "default": false, + "description": "Set true to run a live (non-GET) change. Ignored for GET and when dry_run=true.", + "type": "boolean" +}
- Changed
create_application1 field changed- added
Input schema / properties / confirmAdded value: +{ + "default": false, + "description": "Set true to run this live change. Ignored when dry_run=true.", + "type": "boolean" +}
- Changed
create_candidate1 field changed- added
Input schema / properties / confirmAdded value: +{ + "default": false, + "description": "Set true to run this live change. Ignored when dry_run=true.", + "type": "boolean" +}
- Changed
create_feedback1 field changed- added
Input schema / properties / confirmAdded value: +{ + "default": false, + "description": "Set true to run this live change. Ignored when dry_run=true.", + "type": "boolean" +}
- Changed
create_job_posting1 field changed- added
Input schema / properties / confirmAdded value: +{ + "default": false, + "description": "Set true to run this live change. Ignored when dry_run=true.", + "type": "boolean" +}
- Added
create_webhook_subscription - Added
delete_webhook_subscription - Changed
get_answer3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
get_application3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
get_application_phase3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
get_candidate3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
get_candidate_source3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
get_evaluation_form3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
get_feedback3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
get_hiring_stage3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
get_job_posting3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
get_message3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
get_question3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
get_rejection_reason3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Added
get_webhook_subscription - Changed
list_answers3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
list_application_phases3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
list_applications3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
list_candidate_sources3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
list_candidates3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
list_evaluation_forms3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
list_feedbacks3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
list_hiring_stages3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
list_job_postings3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
list_messages3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
list_questions3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Changed
list_rejection_reasons3 fields changed- changed
Input schema / properties / detail_profile / defaultPrevious value: -"full"New value: +"operational" - changed
Input schema / properties / detail_profile / descriptionPrevious value: -"full returns raw API payload; operational returns a compact recruiting-ops projection."New value: +"operational (default) returns a compact recruiting-ops projection with names, prose, and other personal fields omitted; pass full to include the raw API payload with those fields." - removed
Input schema / properties / reasonRemoved value: -{ - "description": "Required when detail_profile=full.", - "maxLength": 500, - "minLength": 12, - "type": "string" -}
- Added
list_webhook_subscriptions - Changed
update_application1 field changed- added
Input schema / properties / confirmAdded value: +{ + "default": false, + "description": "Set true to run this live change. Ignored when dry_run=true.", + "type": "boolean" +}
- Changed
update_candidate1 field changed- added
Input schema / properties / confirmAdded value: +{ + "default": false, + "description": "Set true to run this live change. Ignored when dry_run=true.", + "type": "boolean" +}
- Changed
update_feedback1 field changed- added
Input schema / properties / confirmAdded value: +{ + "default": false, + "description": "Set true to run this live change. Ignored when dry_run=true.", + "type": "boolean" +}
- Changed
update_job_posting1 field changed- added
Input schema / properties / confirmAdded value: +{ + "default": false, + "description": "Set true to run this live change. Ignored when dry_run=true.", + "type": "boolean" +}
- Added
update_webhook_subscription
34 tool updates
- First observed
api_request - First observed
create_application - First observed
create_candidate - First observed
create_feedback - First observed
create_job_posting - First observed
get_answer - First observed
get_application - First observed
get_application_phase - First observed
get_candidate - First observed
get_candidate_source - First observed
get_control_plane_capabilities - First observed
get_evaluation_form - First observed
get_feedback - First observed
get_hiring_stage - First observed
get_job_posting - First observed
get_message - First observed
get_question - First observed
get_rejection_reason - First observed
list_answers - First observed
list_application_phases - First observed
list_applications - First observed
list_candidate_sources - First observed
list_candidates - First observed
list_evaluation_forms - First observed
list_feedbacks - First observed
list_hiring_stages - First observed
list_job_postings - First observed
list_messages - First observed
list_questions - First observed
list_rejection_reasons - First observed
update_application - First observed
update_candidate - First observed
update_feedback - First observed
update_job_posting
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.169 npm1MIT
- AlicenseCqualityAmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npm107 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceEnables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.