naftiko: 1.0.0-alpha2 info: label: "Ashby \u2014 Candidates" description: 'Ashby Candidates CRM capability. Core candidate lifecycle: create, info, list, update, search, anonymize, plus notes, projects, tags, file uploads, and referrals.' tags: - Ashby - Recruiting - ATS - Candidates created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: ASHBY_API_KEY: ASHBY_API_KEY capability: consumes: - type: http namespace: candidates-candidates baseUri: https://api.ashbyhq.com description: 'Ashby Candidates CRM capability. Core candidate lifecycle: create, info, list, update, search, anonymize, plus notes, projects, tags, file uploads, and referrals. Backed by the Ashby public REST API.' resources: - name: candidate-list path: /candidate.list operations: - name: candidate-list method: POST description: List candidates outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). See https://developers.ashbyhq.com/reference for the schema of each operation. required: false headers: - name: Accept value: application/json; version=1 - name: Content-Type value: application/json - name: candidate-info path: /candidate.info operations: - name: candidate-info method: POST description: Get candidate info outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). See https://developers.ashbyhq.com/reference for the schema of each operation. required: false headers: - name: Accept value: application/json; version=1 - name: Content-Type value: application/json - name: candidate-create path: /candidate.create operations: - name: candidate-create method: POST description: Create a candidate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). See https://developers.ashbyhq.com/reference for the schema of each operation. required: false headers: - name: Accept value: application/json; version=1 - name: Content-Type value: application/json - name: candidate-update path: /candidate.update operations: - name: candidate-update method: POST description: Update a candidate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). See https://developers.ashbyhq.com/reference for the schema of each operation. required: false headers: - name: Accept value: application/json; version=1 - name: Content-Type value: application/json - name: candidate-search path: /candidate.search operations: - name: candidate-search method: POST description: Search candidates outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). See https://developers.ashbyhq.com/reference for the schema of each operation. required: false headers: - name: Accept value: application/json; version=1 - name: Content-Type value: application/json - name: candidate-anonymize path: /candidate.anonymize operations: - name: candidate-anonymize method: POST description: Anonymize a candidate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). See https://developers.ashbyhq.com/reference for the schema of each operation. required: false headers: - name: Accept value: application/json; version=1 - name: Content-Type value: application/json - name: candidate-add-tag path: /candidate.addTag operations: - name: candidate-add-tag method: POST description: Add a tag to a candidate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). See https://developers.ashbyhq.com/reference for the schema of each operation. required: false headers: - name: Accept value: application/json; version=1 - name: Content-Type value: application/json - name: candidate-add-project path: /candidate.addProject operations: - name: candidate-add-project method: POST description: Add a candidate to a project outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). See https://developers.ashbyhq.com/reference for the schema of each operation. required: false headers: - name: Accept value: application/json; version=1 - name: Content-Type value: application/json - name: candidate-create-note path: /candidate.createNote operations: - name: candidate-create-note method: POST description: Add a note to a candidate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). See https://developers.ashbyhq.com/reference for the schema of each operation. required: false headers: - name: Accept value: application/json; version=1 - name: Content-Type value: application/json - name: candidate-upload-resume path: /candidate.uploadResume operations: - name: candidate-upload-resume method: POST description: Upload a candidate resume outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). See https://developers.ashbyhq.com/reference for the schema of each operation. required: false headers: - name: Accept value: application/json; version=1 - name: Content-Type value: application/json - name: candidate-upload-file path: /candidate.uploadFile operations: - name: candidate-upload-file method: POST description: Upload an arbitrary file to a candidate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). See https://developers.ashbyhq.com/reference for the schema of each operation. required: false headers: - name: Accept value: application/json; version=1 - name: Content-Type value: application/json authentication: type: basic username: '{{env.ASHBY_API_KEY}}' password: '' description: 'HTTP Basic Auth: Ashby API key as username, blank password.' exposes: - type: rest namespace: candidates-candidates-rest port: 8080 description: "REST adapter for Ashby \u2014 Candidates. One Spectral-compliant resource per consumed operation, prefixed with /v1." resources: - path: /v1/candidate.list name: candidate-list description: REST surface for candidate-list. operations: - method: POST name: candidate-list description: List candidates call: candidates-candidates.candidate-list with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/candidate.info name: candidate-info description: REST surface for candidate-info. operations: - method: POST name: candidate-info description: Get candidate info call: candidates-candidates.candidate-info with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/candidate.create name: candidate-create description: REST surface for candidate-create. operations: - method: POST name: candidate-create description: Create a candidate call: candidates-candidates.candidate-create with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/candidate.update name: candidate-update description: REST surface for candidate-update. operations: - method: POST name: candidate-update description: Update a candidate call: candidates-candidates.candidate-update with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/candidate.search name: candidate-search description: REST surface for candidate-search. operations: - method: POST name: candidate-search description: Search candidates call: candidates-candidates.candidate-search with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/candidate.anonymize name: candidate-anonymize description: REST surface for candidate-anonymize. operations: - method: POST name: candidate-anonymize description: Anonymize a candidate call: candidates-candidates.candidate-anonymize with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/candidate.addTag name: candidate-add-tag description: REST surface for candidate-add-tag. operations: - method: POST name: candidate-add-tag description: Add a tag to a candidate call: candidates-candidates.candidate-add-tag with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/candidate.addProject name: candidate-add-project description: REST surface for candidate-add-project. operations: - method: POST name: candidate-add-project description: Add a candidate to a project call: candidates-candidates.candidate-add-project with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/candidate.createNote name: candidate-create-note description: REST surface for candidate-create-note. operations: - method: POST name: candidate-create-note description: Add a note to a candidate call: candidates-candidates.candidate-create-note with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/candidate.uploadResume name: candidate-upload-resume description: REST surface for candidate-upload-resume. operations: - method: POST name: candidate-upload-resume description: Upload a candidate resume call: candidates-candidates.candidate-upload-resume with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/candidate.uploadFile name: candidate-upload-file description: REST surface for candidate-upload-file. operations: - method: POST name: candidate-upload-file description: Upload an arbitrary file to a candidate call: candidates-candidates.candidate-upload-file with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: candidates-candidates-mcp port: 9090 transport: http description: "MCP adapter for Ashby \u2014 Candidates. One tool per consumed operation, routed inline through this capability's consumes block." tools: - name: ashby-candidate-list description: List candidates hints: readOnly: true destructive: false idempotent: true call: candidates-candidates.candidate-list with: body: tools.body outputParameters: - type: object mapping: $. - name: ashby-candidate-info description: Get candidate info hints: readOnly: true destructive: false idempotent: true call: candidates-candidates.candidate-info with: body: tools.body outputParameters: - type: object mapping: $. - name: ashby-candidate-create description: Create a candidate hints: readOnly: false destructive: false idempotent: false call: candidates-candidates.candidate-create with: body: tools.body outputParameters: - type: object mapping: $. - name: ashby-candidate-update description: Update a candidate hints: readOnly: false destructive: false idempotent: true call: candidates-candidates.candidate-update with: body: tools.body outputParameters: - type: object mapping: $. - name: ashby-candidate-search description: Search candidates hints: readOnly: true destructive: false idempotent: true call: candidates-candidates.candidate-search with: body: tools.body outputParameters: - type: object mapping: $. - name: ashby-candidate-anonymize description: Anonymize a candidate hints: readOnly: false destructive: true idempotent: false call: candidates-candidates.candidate-anonymize with: body: tools.body outputParameters: - type: object mapping: $. - name: ashby-candidate-add-tag description: Add a tag to a candidate hints: readOnly: false destructive: false idempotent: false call: candidates-candidates.candidate-add-tag with: body: tools.body outputParameters: - type: object mapping: $. - name: ashby-candidate-add-project description: Add a candidate to a project hints: readOnly: false destructive: false idempotent: false call: candidates-candidates.candidate-add-project with: body: tools.body outputParameters: - type: object mapping: $. - name: ashby-candidate-create-note description: Add a note to a candidate hints: readOnly: false destructive: false idempotent: false call: candidates-candidates.candidate-create-note with: body: tools.body outputParameters: - type: object mapping: $. - name: ashby-candidate-upload-resume description: Upload a candidate resume hints: readOnly: false destructive: false idempotent: false call: candidates-candidates.candidate-upload-resume with: body: tools.body outputParameters: - type: object mapping: $. - name: ashby-candidate-upload-file description: Upload an arbitrary file to a candidate hints: readOnly: false destructive: false idempotent: false call: candidates-candidates.candidate-upload-file with: body: tools.body outputParameters: - type: object mapping: $.