naftiko: 1.0.0-alpha2 info: label: Indeed Employer API — Jobs description: 'Indeed Employer API — Jobs. 5 operations. Lead operation: Indeed List Job Postings for an Employer. Self-contained Naftiko capability covering one Indeed business surface.' tags: - Indeed - Jobs created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: INDEED_API_KEY: INDEED_API_KEY capability: consumes: - type: http namespace: employer-jobs baseUri: https://apis.indeed.com description: Indeed Employer API — Jobs business capability. Self-contained, no shared references. resources: - name: v1-employers-employerId-jobs path: /v1/employers/{employerId}/jobs operations: - name: listemployerjobpostings method: GET description: Indeed List Job Postings for an Employer outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: employerId in: path type: string description: The unique identifier of the employer. required: true - name: status in: query type: string description: Filter job postings by status. - name: after in: query type: string description: Cursor for forward pagination. - name: first in: query type: integer description: Number of job postings to return (max 100). - name: v1-jobs path: /v1/jobs operations: - name: createjobpostings method: POST description: Indeed Create Job Postings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-jobs-jobPostingId path: /v1/jobs/{jobPostingId} operations: - name: getjobposting method: GET description: Indeed Retrieve a Job Posting outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: jobPostingId in: path type: string description: The unique identifier of the job posting. required: true - name: sourceName in: query type: string description: The source name to scope the job posting lookup. Required when job posting IDs are not globally unique. - name: updatejobposting method: PUT description: Indeed Update a Job Posting outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: jobPostingId in: path type: string description: The unique identifier of the job posting to update. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: expirejobposting method: DELETE description: Indeed Expire a Job Posting outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: jobPostingId in: path type: string description: The unique identifier of the job posting to expire. required: true - name: sourceName in: query type: string description: The source name used when the job posting was created. required: true authentication: type: bearer token: '{{env.INDEED_API_KEY}}' exposes: - type: rest namespace: employer-jobs-rest port: 8080 description: REST adapter for Indeed Employer API — Jobs. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/employers/{employerid}/jobs name: v1-employers-employerid-jobs description: REST surface for v1-employers-employerId-jobs. operations: - method: GET name: listemployerjobpostings description: Indeed List Job Postings for an Employer call: employer-jobs.listemployerjobpostings with: employerId: rest.employerId status: rest.status after: rest.after first: rest.first outputParameters: - type: object mapping: $. - path: /v1/v1/jobs name: v1-jobs description: REST surface for v1-jobs. operations: - method: POST name: createjobpostings description: Indeed Create Job Postings call: employer-jobs.createjobpostings with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/jobs/{jobpostingid} name: v1-jobs-jobpostingid description: REST surface for v1-jobs-jobPostingId. operations: - method: GET name: getjobposting description: Indeed Retrieve a Job Posting call: employer-jobs.getjobposting with: jobPostingId: rest.jobPostingId sourceName: rest.sourceName outputParameters: - type: object mapping: $. - method: PUT name: updatejobposting description: Indeed Update a Job Posting call: employer-jobs.updatejobposting with: jobPostingId: rest.jobPostingId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: expirejobposting description: Indeed Expire a Job Posting call: employer-jobs.expirejobposting with: jobPostingId: rest.jobPostingId sourceName: rest.sourceName outputParameters: - type: object mapping: $. - type: mcp namespace: employer-jobs-mcp port: 9090 transport: http description: MCP adapter for Indeed Employer API — Jobs. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: indeed-list-job-postings-employer description: Indeed List Job Postings for an Employer hints: readOnly: true destructive: false idempotent: true call: employer-jobs.listemployerjobpostings with: employerId: tools.employerId status: tools.status after: tools.after first: tools.first outputParameters: - type: object mapping: $. - name: indeed-create-job-postings description: Indeed Create Job Postings hints: readOnly: false destructive: false idempotent: false call: employer-jobs.createjobpostings with: body: tools.body outputParameters: - type: object mapping: $. - name: indeed-retrieve-job-posting description: Indeed Retrieve a Job Posting hints: readOnly: true destructive: false idempotent: true call: employer-jobs.getjobposting with: jobPostingId: tools.jobPostingId sourceName: tools.sourceName outputParameters: - type: object mapping: $. - name: indeed-update-job-posting description: Indeed Update a Job Posting hints: readOnly: false destructive: false idempotent: true call: employer-jobs.updatejobposting with: jobPostingId: tools.jobPostingId body: tools.body outputParameters: - type: object mapping: $. - name: indeed-expire-job-posting description: Indeed Expire a Job Posting hints: readOnly: false destructive: true idempotent: true call: employer-jobs.expirejobposting with: jobPostingId: tools.jobPostingId sourceName: tools.sourceName outputParameters: - type: object mapping: $.