naftiko: 1.0.0-alpha2 info: label: Greenhouse Harvest API — Jobs and Openings description: 'Greenhouse Harvest API — Jobs, Openings, Job Posts, Job Stages, and Hiring Teams.' tags: - Greenhouse - Harvest - Jobs - ATS created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: GREENHOUSE_HARVEST_API_KEY: GREENHOUSE_HARVEST_API_KEY capability: consumes: - type: http namespace: harvest-jobs baseUri: https://harvest.greenhouse.io/v1 description: Greenhouse Harvest jobs surface. resources: - name: jobs path: /jobs operations: - name: listjobs method: GET description: List Jobs outputRawFormat: json outputParameters: [ { name: result, type: object, value: $. } ] - name: createjob method: POST description: Create Job inputParameters: [ { name: body, in: body, type: object, required: true } ] outputRawFormat: json outputParameters: [ { name: result, type: object, value: $. } ] - name: jobs-id path: /jobs/{id} operations: - name: getjob method: GET description: Retrieve Job outputRawFormat: json outputParameters: [ { name: result, type: object, value: $. } ] - name: updatejob method: PATCH description: Update Job inputParameters: [ { name: body, in: body, type: object, required: true } ] outputRawFormat: json outputParameters: [ { name: result, type: object, value: $. } ] - name: openings path: /openings operations: - name: listopenings method: GET description: List Openings outputRawFormat: json outputParameters: [ { name: result, type: object, value: $. } ] - name: createopening method: POST description: Create Opening inputParameters: [ { name: body, in: body, type: object, required: true } ] outputRawFormat: json outputParameters: [ { name: result, type: object, value: $. } ] - name: job-posts path: /job_posts operations: - name: listjobposts method: GET description: List Job Posts outputRawFormat: json outputParameters: [ { name: result, type: object, value: $. } ] - name: job-stages path: /job_stages operations: - name: listjobstages method: GET description: List Job Stages outputRawFormat: json outputParameters: [ { name: result, type: object, value: $. } ] authentication: type: basic username: '{{env.GREENHOUSE_HARVEST_API_KEY}}' password: '' exposes: - type: mcp namespace: harvest-jobs-mcp port: 9090 transport: http tools: - name: greenhouse-list-jobs description: List Jobs hints: { readOnly: true, destructive: false, idempotent: true } call: harvest-jobs.listjobs outputParameters: [ { type: object, mapping: $. } ] - name: greenhouse-get-job description: Retrieve Job hints: { readOnly: true, destructive: false, idempotent: true } call: harvest-jobs.getjob outputParameters: [ { type: object, mapping: $. } ] - name: greenhouse-create-job description: Create Job hints: { readOnly: false, destructive: false, idempotent: false } call: harvest-jobs.createjob with: { body: tools.body } outputParameters: [ { type: object, mapping: $. } ] - name: greenhouse-update-job description: Update Job hints: { readOnly: false, destructive: false, idempotent: true } call: harvest-jobs.updatejob with: { body: tools.body } outputParameters: [ { type: object, mapping: $. } ] - name: greenhouse-list-openings description: List Openings hints: { readOnly: true, destructive: false, idempotent: true } call: harvest-jobs.listopenings outputParameters: [ { type: object, mapping: $. } ] - name: greenhouse-list-job-posts description: List Job Posts hints: { readOnly: true, destructive: false, idempotent: true } call: harvest-jobs.listjobposts outputParameters: [ { type: object, mapping: $. } ] - name: greenhouse-list-job-stages description: List Job Stages hints: { readOnly: true, destructive: false, idempotent: true } call: harvest-jobs.listjobstages outputParameters: [ { type: object, mapping: $. } ]