naftiko: 1.0.0-alpha2 info: label: StackOne People Operations description: Unified workflow capability for HR and people operations using StackOne's unified APIs. Combines HRIS (employee data, time-off, employments) and ATS (candidates, jobs, applications) into a single people operations interface. Designed for HR teams, people analytics, and AI agents managing workforce data across multiple HR and recruitment platforms. tags: - Human Resources - HRIS - Recruitment - Unified API - People Operations created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: STACKONE_API_KEY: STACKONE_API_KEY capability: consumes: - type: http namespace: stackone baseUri: https://api.stackone.com description: StackOne unified integration platform API authentication: type: basic username: '{{STACKONE_API_KEY}}' password: '' resources: - name: accounts path: /accounts description: Manage linked integration accounts operations: - name: list-accounts method: GET description: List all linked integration accounts outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-account method: GET description: Get a specific linked account inputParameters: - name: id in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: delete-account method: DELETE description: Remove a linked account inputParameters: - name: id in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: connect-sessions path: /connect_sessions description: Manage integration connect sessions operations: - name: create-connect-session method: POST description: Create a connect session for onboarding body: type: json data: provider: '{{tools.provider}}' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: hris-employees path: /unified/hris/employees description: HRIS employee management operations: - name: list-employees method: GET description: List employees across HRIS systems inputParameters: - name: x-account-id in: header type: string required: true description: StackOne account ID for the HRIS integration - name: page in: query type: integer required: false - name: page_size in: query type: integer required: false outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-employee method: GET description: Get a specific employee inputParameters: - name: id in: path type: string required: true - name: x-account-id in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-employee method: POST description: Create a new employee inputParameters: - name: x-account-id in: header type: string required: true body: type: json data: first_name: '{{tools.first_name}}' last_name: '{{tools.last_name}}' email: '{{tools.email}}' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: update-employee method: PATCH description: Update an employee inputParameters: - name: id in: path type: string required: true - name: x-account-id in: header type: string required: true body: type: json data: fields: '{{tools.fields}}' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: hris-time-off path: /unified/hris/time_off description: HRIS time off request management operations: - name: list-time-off method: GET description: List time off requests inputParameters: - name: x-account-id in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-time-off method: POST description: Create a time off request inputParameters: - name: x-account-id in: header type: string required: true body: type: json data: employee_id: '{{tools.employee_id}}' type: '{{tools.type}}' start_date: '{{tools.start_date}}' end_date: '{{tools.end_date}}' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: ats-candidates path: /unified/ats/candidates description: ATS candidate management operations: - name: list-candidates method: GET description: List candidates across ATS systems inputParameters: - name: x-account-id in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-candidate method: GET description: Get a specific candidate inputParameters: - name: id in: path type: string required: true - name: x-account-id in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: ats-jobs path: /unified/ats/jobs description: ATS job management operations: - name: list-jobs method: GET description: List jobs across ATS systems inputParameters: - name: x-account-id in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-job method: GET description: Get a specific job inputParameters: - name: id in: path type: string required: true - name: x-account-id in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: ats-applications path: /unified/ats/applications description: ATS application tracking operations: - name: list-applications method: GET description: List job applications inputParameters: - name: x-account-id in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-application method: GET description: Get a specific application inputParameters: - name: id in: path type: string required: true - name: x-account-id in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: crm-contacts path: /unified/crm/contacts description: CRM contact management operations: - name: list-contacts method: GET description: List contacts across CRM systems inputParameters: - name: x-account-id in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-contact method: POST description: Create a new CRM contact inputParameters: - name: x-account-id in: header type: string required: true body: type: json data: first_name: '{{tools.first_name}}' last_name: '{{tools.last_name}}' email: '{{tools.email}}' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: marketing-campaigns path: /unified/marketing/campaigns description: Marketing campaign management operations: - name: list-campaigns method: GET description: List campaigns across marketing platforms inputParameters: - name: x-account-id in: header type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: proxy path: /unified/proxy description: Proxy requests to provider APIs operations: - name: proxy-request method: POST description: Forward a request directly to a provider API inputParameters: - name: x-account-id in: header type: string required: true body: type: json data: path: '{{tools.path}}' method: '{{tools.method}}' outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: stackone-people-api description: Unified REST API for people operations across HRIS and ATS platforms. resources: - path: /v1/employees name: employees description: Employee management across HRIS systems operations: - method: GET name: list-employees description: List all employees call: stackone.list-employees outputParameters: - type: object mapping: $. - method: POST name: create-employee description: Create a new employee call: stackone.create-employee outputParameters: - type: object mapping: $. - path: /v1/employees/{id} name: employee description: Single employee operations: - method: GET name: get-employee description: Get employee by ID call: stackone.get-employee with: id: rest.id outputParameters: - type: object mapping: $. - method: PATCH name: update-employee description: Update employee details call: stackone.update-employee with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/time-off name: time-off description: Time off requests operations: - method: GET name: list-time-off description: List time off requests call: stackone.list-time-off outputParameters: - type: object mapping: $. - method: POST name: create-time-off description: Submit a time off request call: stackone.create-time-off outputParameters: - type: object mapping: $. - path: /v1/candidates name: candidates description: Recruitment candidates operations: - method: GET name: list-candidates description: List candidates from ATS call: stackone.list-candidates outputParameters: - type: object mapping: $. - path: /v1/candidates/{id} name: candidate description: Single candidate operations: - method: GET name: get-candidate description: Get candidate details call: stackone.get-candidate with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/jobs name: jobs description: Open job positions operations: - method: GET name: list-jobs description: List open jobs call: stackone.list-jobs outputParameters: - type: object mapping: $. - path: /v1/applications name: applications description: Job applications operations: - method: GET name: list-applications description: List job applications call: stackone.list-applications outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: stackone-people-mcp transport: http description: MCP server for AI-assisted people operations across HRIS and ATS systems. tools: - name: list-employees description: List all employees from a connected HRIS system (BambooHR, Workday, etc.) hints: readOnly: true openWorld: true call: stackone.list-employees with: x-account-id: tools.account_id outputParameters: - type: object mapping: $. - name: get-employee description: Get detailed information for a specific employee hints: readOnly: true call: stackone.get-employee with: id: tools.employee_id x-account-id: tools.account_id outputParameters: - type: object mapping: $. - name: create-employee description: Create a new employee record in the connected HRIS system hints: readOnly: false call: stackone.create-employee with: x-account-id: tools.account_id outputParameters: - type: object mapping: $. - name: update-employee description: Update employee information in the connected HRIS system hints: readOnly: false idempotent: true call: stackone.update-employee with: id: tools.employee_id x-account-id: tools.account_id outputParameters: - type: object mapping: $. - name: list-time-off description: List time off requests from the connected HRIS system hints: readOnly: true call: stackone.list-time-off with: x-account-id: tools.account_id outputParameters: - type: object mapping: $. - name: create-time-off description: Submit a time off request for an employee hints: readOnly: false call: stackone.create-time-off with: x-account-id: tools.account_id outputParameters: - type: object mapping: $. - name: list-candidates description: List recruitment candidates from the connected ATS system hints: readOnly: true openWorld: true call: stackone.list-candidates with: x-account-id: tools.account_id outputParameters: - type: object mapping: $. - name: get-candidate description: Get full profile for a recruitment candidate hints: readOnly: true call: stackone.get-candidate with: id: tools.candidate_id x-account-id: tools.account_id outputParameters: - type: object mapping: $. - name: list-jobs description: List open job positions from the connected ATS system hints: readOnly: true call: stackone.list-jobs with: x-account-id: tools.account_id outputParameters: - type: object mapping: $. - name: list-applications description: List job applications across the connected ATS system hints: readOnly: true call: stackone.list-applications with: x-account-id: tools.account_id outputParameters: - type: object mapping: $.