Ashby · Capability

Ashby API — Candidate

Ashby API — Candidate. 19 operations. Lead operation: candidate.addEmailMessage. Self-contained Naftiko capability covering one Ashby business surface.

Run with Naftiko AshbyCandidate

What You Can Do

POST
Candidateaddemailmessage — candidate.addEmailMessage
/v1/candidate-addemailmessage
POST
Candidateaddproject — candidate.addProject
/v1/candidate-addproject
POST
Candidateaddtag — candidate.addTag
/v1/candidate-addtag
POST
Candidateanonymize — candidate.anonymize
/v1/candidate-anonymize
POST
Candidatecreate — candidate.create
/v1/candidate-create
POST
Candidatecreatenote — candidate.createNote
/v1/candidate-createnote
POST
Candidateinfo — candidate.info
/v1/candidate-info
POST
Candidatelist — candidate.list
/v1/candidate-list
POST
Candidatelistclientinfo — candidate.listClientInfo
/v1/candidate-listclientinfo
POST
Candidatelistfraudchecks — candidate.listFraudChecks
/v1/candidate-listfraudchecks
POST
Candidatelistnotes — candidate.listNotes
/v1/candidate-listnotes
POST
Candidatelistprojects — candidate.listProjects
/v1/candidate-listprojects
POST
Candidateremoveproject — candidate.removeProject
/v1/candidate-removeproject
POST
Candidateremovetag — candidate.removeTag
/v1/candidate-removetag
POST
Candidatesearch — candidate.search
/v1/candidate-search
POST
Candidatesetfraudstatus — candidate.setFraudStatus
/v1/candidate-setfraudstatus
POST
Candidateupdate — candidate.update
/v1/candidate-update
POST
Candidateuploadfile — candidate.uploadFile
/v1/candidate-uploadfile
POST
Candidateuploadresume — candidate.uploadResume
/v1/candidate-uploadresume

MCP Tools

candidate-addemailmessage

candidate.addEmailMessage

candidate-addproject

candidate.addProject

candidate-addtag

candidate.addTag

candidate-anonymize

candidate.anonymize

candidate-create

candidate.create

candidate-createnote

candidate.createNote

candidate-info

candidate.info

candidate-list

candidate.list

candidate-listclientinfo

candidate.listClientInfo

candidate-listfraudchecks

candidate.listFraudChecks

candidate-listnotes

candidate.listNotes

candidate-listprojects

candidate.listProjects

candidate-removeproject

candidate.removeProject

candidate-removetag

candidate.removeTag

candidate-search

candidate.search

read-only
candidate-setfraudstatus

candidate.setFraudStatus

candidate-update

candidate.update

candidate-uploadfile

candidate.uploadFile

candidate-uploadresume

candidate.uploadResume

Capability Spec

ashby-candidate.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Ashby API — Candidate
  description: 'Ashby API — Candidate. 19 operations. Lead operation: candidate.addEmailMessage. Self-contained Naftiko capability
    covering one Ashby business surface.'
  tags:
  - Ashby
  - Candidate
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ASHBY_API_KEY: ASHBY_API_KEY
capability:
  consumes:
  - type: http
    namespace: ashby-candidate
    baseUri: https://api.ashbyhq.com
    description: Ashby API — Candidate business capability. Self-contained, no shared references.
    resources:
    - name: candidate.addEmailMessage
      path: /candidate.addEmailMessage
      operations:
      - name: candidateaddemailmessage
        method: POST
        description: candidate.addEmailMessage
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: candidate.addProject
      path: /candidate.addProject
      operations:
      - name: candidateaddproject
        method: POST
        description: candidate.addProject
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: candidate.addTag
      path: /candidate.addTag
      operations:
      - name: candidateaddtag
        method: POST
        description: candidate.addTag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: candidate.anonymize
      path: /candidate.anonymize
      operations:
      - name: candidateanonymize
        method: POST
        description: candidate.anonymize
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: candidate.create
      path: /candidate.create
      operations:
      - name: candidatecreate
        method: POST
        description: candidate.create
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: candidate.createNote
      path: /candidate.createNote
      operations:
      - name: candidatecreatenote
        method: POST
        description: candidate.createNote
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: candidate.info
      path: /candidate.info
      operations:
      - name: candidateinfo
        method: POST
        description: candidate.info
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: candidate.list
      path: /candidate.list
      operations:
      - name: candidatelist
        method: POST
        description: candidate.list
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: candidate.listClientInfo
      path: /candidate.listClientInfo
      operations:
      - name: candidatelistclientinfo
        method: POST
        description: candidate.listClientInfo
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: candidate.listFraudChecks
      path: /candidate.listFraudChecks
      operations:
      - name: candidatelistfraudchecks
        method: POST
        description: candidate.listFraudChecks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: candidate.listNotes
      path: /candidate.listNotes
      operations:
      - name: candidatelistnotes
        method: POST
        description: candidate.listNotes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: candidate.listProjects
      path: /candidate.listProjects
      operations:
      - name: candidatelistprojects
        method: POST
        description: candidate.listProjects
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: candidate.removeProject
      path: /candidate.removeProject
      operations:
      - name: candidateremoveproject
        method: POST
        description: candidate.removeProject
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: candidate.removeTag
      path: /candidate.removeTag
      operations:
      - name: candidateremovetag
        method: POST
        description: candidate.removeTag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: candidate.search
      path: /candidate.search
      operations:
      - name: candidatesearch
        method: POST
        description: candidate.search
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: candidate.setFraudStatus
      path: /candidate.setFraudStatus
      operations:
      - name: candidatesetfraudstatus
        method: POST
        description: candidate.setFraudStatus
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: candidate.update
      path: /candidate.update
      operations:
      - name: candidateupdate
        method: POST
        description: candidate.update
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: candidate.uploadFile
      path: /candidate.uploadFile
      operations:
      - name: candidateuploadfile
        method: POST
        description: candidate.uploadFile
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: candidate.uploadResume
      path: /candidate.uploadResume
      operations:
      - name: candidateuploadresume
        method: POST
        description: candidate.uploadResume
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: apikey
      key: Ashby-Signature
      value: '{{env.ASHBY_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: ashby-candidate-rest
    port: 8080
    description: REST adapter for Ashby API — Candidate. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/candidate-addemailmessage
      name: candidate-addemailmessage
      description: REST surface for candidate.addEmailMessage.
      operations:
      - method: POST
        name: candidateaddemailmessage
        description: candidate.addEmailMessage
        call: ashby-candidate.candidateaddemailmessage
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/candidate-addproject
      name: candidate-addproject
      description: REST surface for candidate.addProject.
      operations:
      - method: POST
        name: candidateaddproject
        description: candidate.addProject
        call: ashby-candidate.candidateaddproject
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/candidate-addtag
      name: candidate-addtag
      description: REST surface for candidate.addTag.
      operations:
      - method: POST
        name: candidateaddtag
        description: candidate.addTag
        call: ashby-candidate.candidateaddtag
        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: candidateanonymize
        description: candidate.anonymize
        call: ashby-candidate.candidateanonymize
        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: candidatecreate
        description: candidate.create
        call: ashby-candidate.candidatecreate
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/candidate-createnote
      name: candidate-createnote
      description: REST surface for candidate.createNote.
      operations:
      - method: POST
        name: candidatecreatenote
        description: candidate.createNote
        call: ashby-candidate.candidatecreatenote
        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: candidateinfo
        description: candidate.info
        call: ashby-candidate.candidateinfo
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/candidate-list
      name: candidate-list
      description: REST surface for candidate.list.
      operations:
      - method: POST
        name: candidatelist
        description: candidate.list
        call: ashby-candidate.candidatelist
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/candidate-listclientinfo
      name: candidate-listclientinfo
      description: REST surface for candidate.listClientInfo.
      operations:
      - method: POST
        name: candidatelistclientinfo
        description: candidate.listClientInfo
        call: ashby-candidate.candidatelistclientinfo
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/candidate-listfraudchecks
      name: candidate-listfraudchecks
      description: REST surface for candidate.listFraudChecks.
      operations:
      - method: POST
        name: candidatelistfraudchecks
        description: candidate.listFraudChecks
        call: ashby-candidate.candidatelistfraudchecks
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/candidate-listnotes
      name: candidate-listnotes
      description: REST surface for candidate.listNotes.
      operations:
      - method: POST
        name: candidatelistnotes
        description: candidate.listNotes
        call: ashby-candidate.candidatelistnotes
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/candidate-listprojects
      name: candidate-listprojects
      description: REST surface for candidate.listProjects.
      operations:
      - method: POST
        name: candidatelistprojects
        description: candidate.listProjects
        call: ashby-candidate.candidatelistprojects
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/candidate-removeproject
      name: candidate-removeproject
      description: REST surface for candidate.removeProject.
      operations:
      - method: POST
        name: candidateremoveproject
        description: candidate.removeProject
        call: ashby-candidate.candidateremoveproject
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/candidate-removetag
      name: candidate-removetag
      description: REST surface for candidate.removeTag.
      operations:
      - method: POST
        name: candidateremovetag
        description: candidate.removeTag
        call: ashby-candidate.candidateremovetag
        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: candidatesearch
        description: candidate.search
        call: ashby-candidate.candidatesearch
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/candidate-setfraudstatus
      name: candidate-setfraudstatus
      description: REST surface for candidate.setFraudStatus.
      operations:
      - method: POST
        name: candidatesetfraudstatus
        description: candidate.setFraudStatus
        call: ashby-candidate.candidatesetfraudstatus
        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: candidateupdate
        description: candidate.update
        call: ashby-candidate.candidateupdate
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/candidate-uploadfile
      name: candidate-uploadfile
      description: REST surface for candidate.uploadFile.
      operations:
      - method: POST
        name: candidateuploadfile
        description: candidate.uploadFile
        call: ashby-candidate.candidateuploadfile
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/candidate-uploadresume
      name: candidate-uploadresume
      description: REST surface for candidate.uploadResume.
      operations:
      - method: POST
        name: candidateuploadresume
        description: candidate.uploadResume
        call: ashby-candidate.candidateuploadresume
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: ashby-candidate-mcp
    port: 9090
    transport: http
    description: MCP adapter for Ashby API — Candidate. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: candidate-addemailmessage
      description: candidate.addEmailMessage
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidateaddemailmessage
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-addproject
      description: candidate.addProject
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidateaddproject
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-addtag
      description: candidate.addTag
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidateaddtag
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-anonymize
      description: candidate.anonymize
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidateanonymize
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-create
      description: candidate.create
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidatecreate
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-createnote
      description: candidate.createNote
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidatecreatenote
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-info
      description: candidate.info
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidateinfo
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-list
      description: candidate.list
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidatelist
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-listclientinfo
      description: candidate.listClientInfo
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidatelistclientinfo
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-listfraudchecks
      description: candidate.listFraudChecks
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidatelistfraudchecks
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-listnotes
      description: candidate.listNotes
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidatelistnotes
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-listprojects
      description: candidate.listProjects
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidatelistprojects
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-removeproject
      description: candidate.removeProject
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidateremoveproject
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-removetag
      description: candidate.removeTag
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidateremovetag
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-search
      description: candidate.search
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: ashby-candidate.candidatesearch
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-setfraudstatus
      description: candidate.setFraudStatus
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidatesetfraudstatus
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-update
      description: candidate.update
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidateupdate
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-uploadfile
      description: candidate.uploadFile
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidateuploadfile
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: candidate-uploadresume
      description: candidate.uploadResume
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: ashby-candidate.candidateuploadresume
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.