PeopleForce · Capability

PeopleForce API

PeopleForce is an HR platform offering a REST API for managing employees, candidates, leave requests, departments, divisions, positions, and other HR-related entities.

Run with Naftiko PeopleforceAPI

What You Can Do

GET
Get employees — List employees
/employees
POST
Post employees — Create an employee
/employees
GET
Get employees id — Get an employee
/employees/{id}
PATCH
Patch employees id — Update an employee
/employees/{id}
GET
Get candidates — List candidates
/candidates
POST
Post candidates — Create a candidate
/candidates
GET
Get candidates id — Get a candidate
/candidates/{id}
GET
Get vacancies — List vacancies
/vacancies
GET
Get vacancies id — Get a vacancy
/vacancies/{id}
GET
Get leave requests — List leave requests
/leave_requests
POST
Post leave requests — Create a leave request
/leave_requests
GET
Get leave requests id — Get a leave request
/leave_requests/{id}
GET
Get departments — List departments
/departments
GET
Get divisions — List divisions
/divisions
GET
Get positions — List positions
/positions

MCP Tools

get-employees

List employees

read-only idempotent
post-employees

Create an employee

get-employees-id

Get an employee

read-only idempotent
patch-employees-id

Update an employee

get-candidates

List candidates

read-only idempotent
post-candidates

Create a candidate

get-candidates-id

Get a candidate

read-only idempotent
get-vacancies

List vacancies

read-only idempotent
get-vacancies-id

Get a vacancy

read-only idempotent
get-leave-requests

List leave requests

read-only idempotent
post-leave-requests

Create a leave request

get-leave-requests-id

Get a leave request

read-only idempotent
get-departments

List departments

read-only idempotent
get-divisions

List divisions

read-only idempotent
get-positions

List positions

read-only idempotent

Capability Spec

peopleforce-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: PeopleForce API
  description: PeopleForce is an HR platform offering a REST API for managing employees, candidates, leave requests, departments,
    divisions, positions, and other HR-related entities.
  tags:
  - Peopleforce
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: peopleforce
    baseUri: https://app.peopleforce.io/api/public/v2
    description: PeopleForce API HTTP API.
    authentication:
      type: bearer
      token: '{{PEOPLEFORCE_TOKEN}}'
    resources:
    - name: employees
      path: /employees
      operations:
      - name: get-employees
        method: GET
        description: List employees
        inputParameters:
        - name: page
          in: query
          type: integer
        - name: per_page
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: post-employees
        method: POST
        description: Create an employee
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: employees-id
      path: /employees/{id}
      operations:
      - name: get-employees-id
        method: GET
        description: Get an employee
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: patch-employees-id
        method: PATCH
        description: Update an employee
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: candidates
      path: /candidates
      operations:
      - name: get-candidates
        method: GET
        description: List candidates
        inputParameters:
        - name: page
          in: query
          type: integer
        - name: per_page
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: post-candidates
        method: POST
        description: Create a candidate
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: candidates-id
      path: /candidates/{id}
      operations:
      - name: get-candidates-id
        method: GET
        description: Get a candidate
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vacancies
      path: /vacancies
      operations:
      - name: get-vacancies
        method: GET
        description: List vacancies
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vacancies-id
      path: /vacancies/{id}
      operations:
      - name: get-vacancies-id
        method: GET
        description: Get a vacancy
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: leave-requests
      path: /leave_requests
      operations:
      - name: get-leave-requests
        method: GET
        description: List leave requests
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: post-leave-requests
        method: POST
        description: Create a leave request
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: leave-requests-id
      path: /leave_requests/{id}
      operations:
      - name: get-leave-requests-id
        method: GET
        description: Get a leave request
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: departments
      path: /departments
      operations:
      - name: get-departments
        method: GET
        description: List departments
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: divisions
      path: /divisions
      operations:
      - name: get-divisions
        method: GET
        description: List divisions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: positions
      path: /positions
      operations:
      - name: get-positions
        method: GET
        description: List positions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: peopleforce-rest
    description: REST adapter for PeopleForce API.
    resources:
    - path: /employees
      name: get-employees
      operations:
      - method: GET
        name: get-employees
        description: List employees
        call: peopleforce.get-employees
        outputParameters:
        - type: object
          mapping: $.
    - path: /employees
      name: post-employees
      operations:
      - method: POST
        name: post-employees
        description: Create an employee
        call: peopleforce.post-employees
        outputParameters:
        - type: object
          mapping: $.
    - path: /employees/{id}
      name: get-employees-id
      operations:
      - method: GET
        name: get-employees-id
        description: Get an employee
        call: peopleforce.get-employees-id
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /employees/{id}
      name: patch-employees-id
      operations:
      - method: PATCH
        name: patch-employees-id
        description: Update an employee
        call: peopleforce.patch-employees-id
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /candidates
      name: get-candidates
      operations:
      - method: GET
        name: get-candidates
        description: List candidates
        call: peopleforce.get-candidates
        outputParameters:
        - type: object
          mapping: $.
    - path: /candidates
      name: post-candidates
      operations:
      - method: POST
        name: post-candidates
        description: Create a candidate
        call: peopleforce.post-candidates
        outputParameters:
        - type: object
          mapping: $.
    - path: /candidates/{id}
      name: get-candidates-id
      operations:
      - method: GET
        name: get-candidates-id
        description: Get a candidate
        call: peopleforce.get-candidates-id
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /vacancies
      name: get-vacancies
      operations:
      - method: GET
        name: get-vacancies
        description: List vacancies
        call: peopleforce.get-vacancies
        outputParameters:
        - type: object
          mapping: $.
    - path: /vacancies/{id}
      name: get-vacancies-id
      operations:
      - method: GET
        name: get-vacancies-id
        description: Get a vacancy
        call: peopleforce.get-vacancies-id
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /leave_requests
      name: get-leave-requests
      operations:
      - method: GET
        name: get-leave-requests
        description: List leave requests
        call: peopleforce.get-leave-requests
        outputParameters:
        - type: object
          mapping: $.
    - path: /leave_requests
      name: post-leave-requests
      operations:
      - method: POST
        name: post-leave-requests
        description: Create a leave request
        call: peopleforce.post-leave-requests
        outputParameters:
        - type: object
          mapping: $.
    - path: /leave_requests/{id}
      name: get-leave-requests-id
      operations:
      - method: GET
        name: get-leave-requests-id
        description: Get a leave request
        call: peopleforce.get-leave-requests-id
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /departments
      name: get-departments
      operations:
      - method: GET
        name: get-departments
        description: List departments
        call: peopleforce.get-departments
        outputParameters:
        - type: object
          mapping: $.
    - path: /divisions
      name: get-divisions
      operations:
      - method: GET
        name: get-divisions
        description: List divisions
        call: peopleforce.get-divisions
        outputParameters:
        - type: object
          mapping: $.
    - path: /positions
      name: get-positions
      operations:
      - method: GET
        name: get-positions
        description: List positions
        call: peopleforce.get-positions
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: peopleforce-mcp
    transport: http
    description: MCP adapter for PeopleForce API for AI agent use.
    tools:
    - name: get-employees
      description: List employees
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: peopleforce.get-employees
      with:
        page: tools.page
        per_page: tools.per_page
      inputParameters:
      - name: page
        type: integer
        description: page
      - name: per_page
        type: integer
        description: per_page
      outputParameters:
      - type: object
        mapping: $.
    - name: post-employees
      description: Create an employee
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: peopleforce.post-employees
      outputParameters:
      - type: object
        mapping: $.
    - name: get-employees-id
      description: Get an employee
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: peopleforce.get-employees-id
      with:
        id: tools.id
      inputParameters:
      - name: id
        type: string
        description: id
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: patch-employees-id
      description: Update an employee
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: peopleforce.patch-employees-id
      with:
        id: tools.id
      inputParameters:
      - name: id
        type: string
        description: id
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: get-candidates
      description: List candidates
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: peopleforce.get-candidates
      with:
        page: tools.page
        per_page: tools.per_page
      inputParameters:
      - name: page
        type: integer
        description: page
      - name: per_page
        type: integer
        description: per_page
      outputParameters:
      - type: object
        mapping: $.
    - name: post-candidates
      description: Create a candidate
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: peopleforce.post-candidates
      outputParameters:
      - type: object
        mapping: $.
    - name: get-candidates-id
      description: Get a candidate
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: peopleforce.get-candidates-id
      with:
        id: tools.id
      inputParameters:
      - name: id
        type: string
        description: id
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: get-vacancies
      description: List vacancies
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: peopleforce.get-vacancies
      outputParameters:
      - type: object
        mapping: $.
    - name: get-vacancies-id
      description: Get a vacancy
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: peopleforce.get-vacancies-id
      with:
        id: tools.id
      inputParameters:
      - name: id
        type: string
        description: id
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: get-leave-requests
      description: List leave requests
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: peopleforce.get-leave-requests
      outputParameters:
      - type: object
        mapping: $.
    - name: post-leave-requests
      description: Create a leave request
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: peopleforce.post-leave-requests
      outputParameters:
      - type: object
        mapping: $.
    - name: get-leave-requests-id
      description: Get a leave request
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: peopleforce.get-leave-requests-id
      with:
        id: tools.id
      inputParameters:
      - name: id
        type: string
        description: id
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: get-departments
      description: List departments
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: peopleforce.get-departments
      outputParameters:
      - type: object
        mapping: $.
    - name: get-divisions
      description: List divisions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: peopleforce.get-divisions
      outputParameters:
      - type: object
        mapping: $.
    - name: get-positions
      description: List positions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: peopleforce.get-positions
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    PEOPLEFORCE_TOKEN: PEOPLEFORCE_TOKEN