For Agents
Read and update PeopleForce employee records, compensation, leave requests and balances, assets, teams, tasks, and recruitment pipelines through the deprecated Company API v1.
Use for: List all employees hired since the start of the quarter, Show me the pending leave requests waiting for approval, I need to book three days of vacation for an employee next week, Retrieve the leave balances report for the engineering department
Not supported: Does not run payroll, process expense claims, or provide the newer Company API versions. Use for PeopleForce employee, leave, asset, and recruitment records through the deprecated Company API v1 only.
The PeopleForce API covers the PeopleForce HR platform's Company API v1: employee records with positions, compensation, salaries, employment statuses, documents, and leave balances, plus leave requests, holidays, assets, teams, tasks, and an in-app recruitment module with vacancies, candidates, and applications. It also exposes HR reports for leave balances and working hours and webhook subscriptions for HR events. PeopleForce marks Company API v1 as deprecated: it no longer receives changes and will stop being supported, so every operation in this spec is flagged deprecated and new integrations should plan to move to a newer Company API version.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the PeopleForce API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fpeopleforce.io%2Fpeopleforce" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fpeopleforce.io%2Fpeopleforce" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with PeopleForce API.
List employees filtered by hired_on, status, updated_at, or emails[], and create one with first_name, last_name, email, and hired_on
Terminate an employee with effective_from, termination_type_id, termination_reason_id, eligible_for_rehire, and a comment
Create leave requests with day-by-day leave_request_entries, list pending ones, and adjust an employee's leave balance
Record salaries, compensations, positions, and employment statuses on an employee's history
Assign company assets such as laptops to an employee with issued_on and returned_on dates
Add candidates, open vacancies, and move an application to a new pipeline_stage_id or disqualify it
Pull leave balance and working hours reports filtered by department, division, location, or employee
Patterns agents use PeopleForce API for, with concrete tasks.
★ HR assistant agent through Jentic
An HR assistant agent finds PeopleForce operations through Jentic by intent, for example 'list pending leave requests', and answers questions such as who is off next week or how much leave someone has left from GET /api/public/v1/leave_requests/pending and GET /api/public/v1/employees/{id}/leave_balances. Jentic injects the X-API-KEY header at call time. Because Company API v1 is deprecated, treat this as a bridge for existing PeopleForce accounts while a newer Company API version is adopted.
Call GET /api/public/v1/leave_requests/pending, then for each requester call GET /api/public/v1/employees/{id}/leave_balances and summarise who has enough balance
Leave booking
POST /api/public/v1/leave_requests books time off and requires employee_id, leave_type_id, starts_on, ends_on, a description, a leave_request_entries list with occurs_on and amount for each day, and skip_approval. GET /api/public/v1/leave_requests filters by state, employee, and date window to confirm the result.
POST /api/public/v1/leave_requests with employee_id, leave_type_id for vacation, starts_on '2026-11-16', ends_on '2026-11-18', description 'Family trip', leave_request_entries for each of the three days with amount '1', and skip_approval 'false'
Employee lifecycle records
New hires are created with POST /api/public/v1/employees, history entries go through the positions, salaries, compensations, and employment_statuses sub-resources under /employees/{employee_id}, and leavers are processed with POST /api/public/v1/employees/{id}/terminate, which requires effective_from, termination_type_id, termination_reason_id, eligible_for_rehire, and a comment. Asset assignments track equipment handed to each person.
POST /api/public/v1/employees with first_name 'Ana', last_name 'Silva', email 'ana@example.com', and hired_on '2026-12-01', then POST /api/public/v1/asset_assignments with her user_id, the laptop asset_id, and issued_on '2026-12-01'
In-app recruitment pipeline
PeopleForce's recruitment module is exposed under /api/public/v1/recruitment: create candidates with full_name and email, list vacancies and their applications, and advance an application with PUT /api/public/v1/recruitment/vacancies/{vacancy_id}/applications/{id}/move and a pipeline_stage_id, or disqualify it with a reason.
List GET /api/public/v1/recruitment/vacancies/{vacancy_id}/applications, then PUT /api/public/v1/recruitment/vacancies/{vacancy_id}/applications/{id}/move with pipeline_stage_id for the interview stage
163 endpoints — the peopleforce api covers the peopleforce hr platform's company api v1: employee records with positions, compensation, salaries, employment statuses, documents, and leave balances, plus leave requests, holidays, assets, teams, tasks, and an in-app recruitment module with vacancies, candidates, and applications.
METHOD
PATH
DESCRIPTION
/api/public/v1/employees
List employees (deprecated v1)
/api/public/v1/employees
Create an employee (deprecated v1)
/api/public/v1/employees/{id}/terminate
Terminate an employee (deprecated v1)
/api/public/v1/leave_requests
Create a leave request (deprecated v1)
/api/public/v1/leave_requests/pending
List pending leave requests (deprecated v1)
/api/public/v1/reports/hr/leave_balances
Leave balances report (deprecated v1)
/api/public/v1/recruitment/vacancies/{vacancy_id}/applications/{id}/move
Move an application to a pipeline stage (deprecated v1)
/api/public/v1/employees
List employees (deprecated v1)
/api/public/v1/employees
Create an employee (deprecated v1)
/api/public/v1/employees/{id}/terminate
Terminate an employee (deprecated v1)
/api/public/v1/leave_requests
Create a leave request (deprecated v1)
/api/public/v1/leave_requests/pending
List pending leave requests (deprecated v1)
/api/public/v1/reports/hr/leave_balances
Leave balances report (deprecated v1)
/api/public/v1/recruitment/vacancies/{vacancy_id}/applications/{id}/move
Move an application to a pipeline stage (deprecated v1)
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>What agents get from Jentic-routed access to this vendor.
Setup
Wiring PeopleForce by hand means getting a Company API key with the right permissions granted, sending it in the X-API-KEY header, encoding form-urlencoded request bodies, and paging list results yourself. Through Jentic you install once, import PeopleForce from the API Directory, store the key once, and your agent calls it.
Permission scoping
PeopleForce puts the employee id and vacancy id in the URL path (/api/public/v1/employees/{id}/... and /recruitment/vacancies/{vacancy_id}/...), so a rule can pin your agent to one employee's records or one vacancy's applications. You choose the operations it may call, so destructive ones like terminating an employee or deleting salaries are not included unless you add them.
Credential isolation
Your PeopleForce API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'list pending leave requests' or 'create an employee', and Jentic returns the matching PeopleForce operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using PeopleForce API through Jentic.
Is the PeopleForce Company API v1 deprecated?
Yes. The spec states that Company API v1 no longer receives changes and will stop being supported, and every operation in it is marked deprecated. It still describes the endpoints existing PeopleForce integrations call, but plan to move to a newer version of the Company API.
What authentication does the PeopleForce API use?
Per its OpenAPI spec, the PeopleForce API takes a Company API key in the `X-API-KEY` header. The spec notes that Service account keys and Career keys are refused with 401, and that each of a new key's four permissions defaults to None, so calls return 403 until permissions are granted. Through Jentic the key is stored encrypted by your own Jentic One instance and injected at call time.
How do I list pending leave requests through Jentic?
Search Jentic for 'list pending leave requests in PeopleForce', load the schema for GET /api/public/v1/leave_requests/pending, and page through the results with the page parameter. To run it on your own infrastructure, install Jentic One from its GitHub repo.
What are the rate limits for the PeopleForce API?
The OpenAPI spec does not specify rate limits. Check https://help.peopleforce.io for current limits.
Is there a PeopleForce MCP server?
You don't need an MCP server to give your agent the PeopleForce API. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent calls it. Operations are discovered on demand, so no extra tool definitions sit in the agent's context.
Can I limit what my agent is allowed to do with the PeopleForce API?
Yes. For example, write a rule that allows only GET /api/public/v1/leave_requests/pending, GET /api/public/v1/employees/{id}/leave_balances, and GET /api/public/v1/reports/hr/leave_balances, so a leave assistant can answer balance questions but cannot terminate employees, change salaries, or delete records. Every call it makes is logged by your Jentic One instance.
GET STARTED