ashby-mcp
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., "@ashby-mcpSearch for candidate Jonathan Howard"
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.
Ashby MCP Server
An MCP (Model Context Protocol) server for integrating with Ashby ATS. Use this with Claude Code or other MCP-compatible clients to search candidates, view applications, and submit interview feedback.
Features
Search candidates by name or email
Get candidate details including contact info and resume
List applications for a candidate
Submit interview feedback with ratings and notes
View feedback from other interviewers
List open jobs
View interview schedules
Related MCP server: MCP Ashby Connector
Installation
npm install -g ashby-mcpOr clone and build locally:
git clone https://github.com/antonber/ashby-mcp.git
cd ashby-mcp
npm install
npm run buildConfiguration
1. Get your Ashby API Key
Log into Ashby
Go to Settings → API Keys
Create a new API key with appropriate permissions
2. Configure Claude Code
Add to your Claude Code MCP settings (~/.claude/claude_desktop_config.json or project .mcp.json):
{
"mcpServers": {
"ashby": {
"command": "npx",
"args": ["ashby-mcp"],
"env": {
"ASHBY_API_KEY": "your-api-key-here"
}
}
}
}Or if installed locally:
{
"mcpServers": {
"ashby": {
"command": "node",
"args": ["/path/to/ashby-mcp/dist/index.js"],
"env": {
"ASHBY_API_KEY": "your-api-key-here"
}
}
}
}Available Tools
Tool | Description |
| Search for candidates by name or email |
| Get detailed candidate information |
| List all applications for a candidate |
| Get details about a specific application |
| Submit interview feedback with rating and notes |
| Get all feedback for an application |
| List jobs (filterable by status) |
| Get interview schedule for an application |
Usage Examples
Once configured, you can use natural language with Claude:
"Search for Jonathan Howard in Ashby"
"Get the applications for candidate abc123"
"Submit my interview feedback for Jonathan - Yes rating with these notes: ..."
"Pull the feedback other interviewers have submitted for this candidate"
Feedback Ratings
When submitting feedback, use one of these ratings:
strong_yes- Exceptional candidateyes- Good candidate, proceedlean_yes- Some positives, worth discussinglean_no- Some concerns, discuss with teamno- Does not meet barstrong_no- Clear no
Development
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run devLicense
MIT
Available Tools
9 toolsadd_candidate_noteB
Add a note to a candidate in Ashby
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | The note content (supports markdown) | |
| title | No | Optional title for the note | |
| candidateId | Yes | The Ashby candidate ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries full responsibility. It merely restates the tool name and does not disclose any behavioral traits such as whether the operation is additive, idempotent, requires permissions, or returns a result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no redundant information. It is appropriately concise for a simple mutation tool, though it sacrifices behavioral detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema and lack of output schema, the description is minimally adequate but leaves out important context like side effects, return values, and usage conditions. This is insufficient for an agent to safely invoke the tool without additional assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides comprehensive descriptions for all three parameters, with 100% coverage. The description adds no parameter-specific information, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and the resource ('a note to a candidate'), distinguishing it from sibling tools which focus on search/retrieval/feedback. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, when not to use it, or any prerequisites. The description only states the action without contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_applicationC
Get details about a specific job application
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | The Ashby application ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full responsibility for behavioral disclosure. It merely states 'Get details' without indicating whether this is a read-only operation, what specific data fields are returned, or any side effects. The lack of output schema further amplifies this gap, as the agent has no way to anticipate the response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence: 'Get details about a specific job application'. It is front-loaded with the verb and resource, contains no filler words, and every word contributes to the meaning. This is an example of efficient writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, the schema covers parameter semantics, but the description fails to provide usage context, behavioral expectations, or return value information. With no annotations and no output schema, the description is too sparse to fully equip an agent to use the tool correctly. It leaves important questions unanswered, such as what 'details' are included and how the application ID should be obtained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the sole parameter (applicationId) with 'The Ashby application ID', achieving 100% schema description coverage. Baseline is 3, and the description does not add any extra parameter semantics beyond what the schema provides. No compensation is needed, but no additional value is added either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: 'Get details about a specific job application' uses an active verb and specific resource. It implicitly distinguishes from sibling tools like list_candidate_applications (which lists multiple) and get_application_feedback (which focuses on feedback), though it doesn't explicitly call out these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or comparison to sibling tools like get_candidate or list_candidate_applications. This leaves the agent to infer usage context entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_application_feedbackA
Get all feedback submitted for an application
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | The Ashby application ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds scope by stating 'all feedback', but does not mention permissions, response structure, or any edge cases like empty results or partial feedback. This is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the full purpose without unnecessary words. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema, no annotations), and the description sufficiently clarifies what it does and what it returns. It does not detail return format, but that is not critical for this basic getter; the description is complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the single parameter applicationId with 'The Ashby application ID' (100% coverage). The description adds no additional parameter semantics or formatting details, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves all feedback for an application, using the verb 'get' and specifying the resource 'feedback'. It distinguishes itself from siblings like submit_feedback (which creates feedback) and get_application (which retrieves application details).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need feedback for a specific application, but it does not explicitly mention when to prefer this over alternatives like get_application or list_candidate_applications. No exclusion criteria or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_candidateB
Get detailed information about a candidate including their applications
| Name | Required | Description | Default |
|---|---|---|---|
| candidateId | Yes | The Ashby candidate ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies a read-only operation ('Get') and states the scope (candidate + applications), which adds context beyond the schema. However, it does not disclose any details about response format, field richness, or error behavior. For a simple read tool this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and key inclusion ('including their applications'). No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool, the description is minimal but adequate. 'Detailed information' is vague, and with no output schema, the agent cannot anticipate the exact fields returned. The mention of applications is helpful given sibling tools, but the description could still specify what 'detailed' means.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (candidateId described as 'The Ashby candidate ID'). The description adds no additional parameter context, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and resource ('candidate'), and adds scope ('detailed information' plus 'applications'). It is distinct from siblings like get_application (which focuses on a single application) and list_candidate_applications (which lists applications only), though it does not explicitly name these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any exclusions or when to prefer a sibling tool (e.g., list_candidate_applications for a simple application list).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_interview_scheduleC
Get interview schedule for an application
| Name | Required | Description | Default |
|---|---|---|---|
| applicationId | Yes | The Ashby application ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description alone must disclose behavioral traits. It only states 'Get interview schedule,' which implies a read operation but does not elaborate on return format, possible empty results, permissions required, or any side effects. This is a minimal disclosure that leaves significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly names the action and resource. There is no redundant information, and it is appropriately concise for the tool's simple parameter surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, yet the description does not clarify what the returned interview schedule looks like, whether it could be empty, or how it relates to other application data. Given the minimal context, the description is insufficient for an agent to fully anticipate tool behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents applicationId as 'The Ashby application ID' (100% coverage). The description adds no parameter-specific details beyond the schema, so it relies on the schema's existing clarity. This matches the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Get') and resource ('interview schedule for an application'), making the primary purpose easy to understand. However, it does not differentiate from sibling tools like get_application or list_candidate_applications, which might also surface interview-related data, so it misses the top mark for sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives, such as get_application or list_candidate_applications. There are no prerequisites, exclusions, or context cues beyond what the tool does, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_candidate_applicationsA
List all applications for a candidate
| Name | Required | Description | Default |
|---|---|---|---|
| candidateId | Yes | The Ashby candidate ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosure. It only states the basic action without mentioning any behavioral traits such as pagination, ordering, authorization requirements, or response format. This is a significant gap for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that front-loads the action and scope. No unnecessary words or repetition, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter list tool, the description captures the core purpose. However, with no output schema and no annotations, it would benefit from mentioning the return value structure or potential limitations like pagination, making it minimally adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the single parameter candidateId as 'The Ashby candidate ID' (100% coverage), so the description adds no extra meaning. Baseline 3 is appropriate when the schema handles the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'list' with the resource 'applications for a candidate', clearly distinguishing it from sibling tools like get_application (singular) and search_candidates. The scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: this tool is for retrieving all applications related to a specific candidate. However, it does not explicitly mention alternatives or when-not-to-use, such as 'use get_application for a single application', so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsB
List all open jobs
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by job status (default: open) | open |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states the basic listing action and does not mention pagination, sorting, response format, or additional operational behavior. This is insufficient for an agent to predict tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the verb and resource. Every word is meaningful and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and annotations, the description is too sparse. It does not disclose return values, pagination, or other context needed for an agent to fully understand the tool's behavior in a real-world scenario.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the 'status' parameter with enum values, default, and description. The tool description reinforces the default behavior of listing open jobs but adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as listing jobs, with 'open' as the default status. It distinguishes itself from sibling tools focused on candidates and applications. It could be more comprehensive by mentioning the status filter, but the schema provides that detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. However, as the only job-listing tool among siblings, the use case is implied. It lacks explicit exclusions or comparisons with other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_candidatesB
Search for candidates in Ashby by name or email
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default: 10) | |
| query | Yes | Search query (name or email) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It only states the basic search intent and does not mention what the response contains, pagination behavior, or any side effects. While 'search' implies a read-only operation, this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, front-loaded with the verb 'Search' and the resource. It is concise and directly to the point, with every word earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's simplicity, the lack of an output schema and annotations means the description should clarify what the search returns (e.g., a list of candidate objects). It also doesn't explain how the limit parameter affects results. These omissions leave the agent uncertain about the tool's outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes both parameters: query (name or email) and limit (with a default). The description's phrase 'by name or email' redundantly restates the schema's query description, adding no new meaning. Baseline of 3 applies because schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action (search), resource (candidates in Ashby), and scope (by name or email). This distinguishes it from related tools like get_candidate, which likely retrieves a single candidate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (searching candidates) but does not explicitly contrast it with alternatives or state when not to use it. Sibling tools like get_candidate and list_candidate_applications hint at different use cases, but no direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_feedbackB
Submit interview feedback/scorecard for an application
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | Interview notes and assessment | |
| rating | Yes | Overall recommendation rating | |
| applicationId | Yes | The Ashby application ID | |
| interviewStepId | No | The interview step ID (optional - uses current step if not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It only states the action without revealing whether it overwrites existing feedback, whether permissions are required, whether it is idempotent, or what side effects occur. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler, repetition, or unnecessary details. It earns its place by stating the core action and target efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context about the operation's return value, prerequisites, or side effects. It omits the role of the optional interviewStepId and any behavioral implications, making it incomplete for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all four parameters. The description adds no additional meaning beyond mapping 'feedback/scorecard' to rating and notes, which is already covered by the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Submit') and the resource ('interview feedback/scorecard') with a target ('for an application'), distinguishing this write operation from sibling read tool get_application_feedback and add_candidate_note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for submitting interview feedback in an application context, but it gives no explicit when-to-use guidance or alternatives. It does not mention that this tool should be used instead of add_candidate_note or get_application_feedback for specific scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v1.0.0- First observed
add_candidate_note - First observed
get_application - First observed
get_application_feedback - First observed
get_candidate - First observed
get_interview_schedule - First observed
list_candidate_applications - First observed
list_jobs - First observed
search_candidates - First observed
submit_feedback
TDQS
Scored across 9 tools
Each tool targets a distinct resource and action: searching candidates, getting candidate/application details, listing applications, submitting/retrieving feedback, listing jobs, getting interview schedules, and adding notes. No two tools have overlapping purposes, making selection unambiguous.
All tools follow a consistent verb_noun pattern in snake_case (e.g., search_candidates, get_candidate, list_jobs). Verbs like search, get, list, submit, and add are clearly differentiated and used predictably across the set.
Nine tools is well within the ideal 3-15 range for an ATS integration. The scope is tight and focused on recruiting workflows—searching, viewing, feedback, and scheduling—without unnecessary bloat or missing core actions.
The tool surface covers the main candidate and application lifecycle: search, retrieve, list, provide feedback, view interview schedule, and add notes. Minor gaps exist, such as no job detail retrieval or application status updates, but these are not critical for common recruiting tasks.
Maintenance
Related MCP Connectors
Ashby MCP Pack — wraps the Ashby ATS API
Ashby ATS job scraper pulls live postings via API with team filtering.
Connect to Atlassian Jira, Confluence, Loom, and more to search, create, and manage your work.
AI resume triage for recruiters. Query your candidate pool from Claude or ChatGPT.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA server implementation that enables LLMs to interact with Ashby's Applicant Tracking System, allowing management of candidates, jobs, applications, interviews, and analytics through the Model Context Protocol.16MIT
- AlicenseNot gradedqualityNot gradedmaintenanceAn MCP server that enables LLMs to interact with Ashby's Applicant Tracking System for managing candidates, jobs, applications, and interviews. It supports data operations, batch processing, and access to pipeline analytics and reporting.MIT
- AlicenseAqualityFmaintenanceConnects Claude to the Ashby ATS to manage the hiring pipeline through natural conversation. It enables users to browse jobs, manage candidate profiles, track applications, and coordinate interview stages.245MIT
- AlicenseNot gradedqualityDmaintenanceConnects your Ashby recruiting data to Claude, enabling natural language queries and management of candidates, applications, jobs, interviews, offers, and team information.19 npmMIT