Know of an official OpenAPI document? Contribute it →
For Agents
Read and write Hurma candidates, employees, departments, and job openings, and resolve HR dictionary values from an AI agent or backend pipeline.
Use for: Find an employee record by id in Hurma, I want to create a new candidate from an inbound application, List all open job openings in Hurma, Get the engineering department record
Not supported: Does not handle payroll runs, time-tracking, or benefits administration - use for candidate, employee, department, and job-opening management only.
Jentic publishes the only available OpenAPI specification for Hurma Public API, keeping it validated and agent-ready. Hurma is an HR management platform whose public API exposes 20 endpoints for managing candidates, employees, departments, and job openings, plus reference dictionaries for cooperation types, languages, and termination reasons. Authentication is performed with OAuth 2.0 authorisation flow or HTTP bearer tokens issued through /api/v3/oauth/token, and the API is rate limited to 240 requests per minute. The endpoints support pagination and dictionary lookups so external systems can keep employee records in sync.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Hurma Public 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%2Fhurma.work%2Fhurma" | 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%2Fhurma.work%2Fhurma" | 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 Hurma Public API.
List, create, and update candidates inside the Hurma recruitment pipeline
Read and update employee records including department and cooperation type
Manage departments and resolve their employee membership
Publish, edit, and close job openings with title, description, and status fields
Resolve dictionary values for cooperation types, languages, and termination reasons
Exchange OAuth credentials for an access token via /api/v3/oauth/token
Patterns agents use Hurma Public API for, with concrete tasks.
★ ATS to Hurma Sync
Mirror candidates from an external applicant tracking system into Hurma so that recruiters work in a single tool. POST new applications to /api/v3/candidates, PATCH on status changes, and reuse dictionary lookups for languages and cooperation types so the data conforms to Hurma's reference data. Useful for teams running a separate sourcing tool but standardising hiring data in Hurma.
POST /api/v3/candidates with the candidate first name, last name, email, and cooperation_type id.
Employee Directory Sync
Keep an internal directory or SSO group structure aligned with Hurma's employee and department data. The /api/v3/employees and /api/v3/departments endpoints support listing and updating, and dictionary endpoints provide stable ids for cooperation types and termination reasons. Run the sync nightly or on webhook triggers to keep downstream systems consistent.
GET /api/v3/employees with page=1 and reconcile against the local SSO directory.
Job Board Distribution
Pull active job openings from Hurma and republish them to a careers site, LinkedIn, or third-party job board. The /api/v3/job-openings endpoints expose title, description, and status fields, and OAuth bearer tokens scope access to the integration. Combined with a publishing API like Greenhouse or Workable's job board, the workflow is fully automated.
GET /api/v3/job-openings filtered to status=open and republish each to the careers site.
AI Agent HR Assistant
Give an HR assistant agent direct, scoped access to Hurma so it can answer questions like 'how many open roles do we have' or 'who is in the engineering department'. Through Jentic the agent searches for the operation, loads the input schema, and executes - the OAuth bearer token stays in your Jentic One instance so prompt injection cannot leak it.
Search Jentic for 'list open job openings', load the Hurma /api/v3/job-openings schema, and execute with status=open.
20 endpoints — jentic publishes the only available openapi specification for hurma public api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/api/v3/oauth/token
Exchange credentials for an access token
/api/v3/candidates
List candidates
/api/v3/employees
List employees
/api/v3/departments
List departments
/api/v3/job-openings
List job openings
/api/v3/dictionaries/cooperation-types
List cooperation types
/api/v3/dictionaries/languages
List languages
/api/v3/oauth/token
Exchange credentials for an access token
/api/v3/candidates
List candidates
/api/v3/employees
List employees
/api/v3/departments
List departments
/api/v3/job-openings
List job openings
/api/v3/dictionaries/cooperation-types
List cooperation types
/api/v3/dictionaries/languages
List languages
What agents get from Jentic-routed access to this vendor.
Setup
Wiring the Hurma Public API by hand means running its OAuth token exchange, targeting hurma.work, and paging candidate and employee reads yourself. Through Jentic you install once, import the Hurma Public API from the API Directory, store the credential once, and your agent calls it.
Permission scoping
This API serves reads through fixed collection endpoints with filters in the request parameters (/api/v3/candidates, /api/v3/employees), so limit the agent to the operations it needs, such as listing candidates or departments. You choose the operations it may call, so requesting an OAuth token directly is not included unless you add it.
Credential isolation
Your Hurma OAuth token 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 Hurma candidates' or 'list job openings', and Jentic returns the matching Hurma 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 Hurma Public API through Jentic.
Why is there no official OpenAPI spec for Hurma Public API?
Hurma does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Hurma API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.
What authentication does the Hurma Public API use?
The Hurma API uses OAuth 2.0 with /api/v3/oauth/authorize and /api/v3/oauth/token, plus HTTP bearer tokens for already-authenticated calls. Through Jentic the credentials sit in the credential vault and Jentic injects the Authorization header at execution time.
What are the rate limits for the Hurma Public API?
Hurma rate limits the public API to 240 requests per minute. Watch for HTTP 429 responses, batch reads where possible, and stagger writes during nightly syncs to stay within the budget.
Can I create a candidate through the Hurma API?
Yes. POST to /api/v3/candidates with first name, last name, email, and a cooperation_type id resolved from /api/v3/dictionaries/cooperation-types. The endpoint returns the created candidate id which you can use for subsequent PATCH calls.
How do I list open job openings through Jentic?
Search Jentic for 'list open job openings', load the schema for the Hurma GET /api/v3/job-openings operation, and execute with status=open. Install with pip install jentic and use the async search, load, and execute pattern.
How do I resolve dictionary values like cooperation type or language?
Call GET /api/v3/dictionaries/cooperation-types or /api/v3/dictionaries/languages to retrieve the canonical id and label list, then send the id when creating or updating candidates and employees. This avoids 422 validation errors from sending free-text values.
Can I limit what my agent is allowed to do with the Hurma Public API?
Yes. Because you run your own self-hosted Jentic One instance, your own rules decide which Hurma operations and credentials the agent may use, so you can grant only the reads it needs, such as listing candidates via GET /api/v3/candidates or employees via GET /api/v3/employees. The Hurma API serves these as fixed collection endpoints with filters passed in the request parameters, so scoping happens at the operation level rather than through per-record access. Sensitive operations like exchanging credentials at /api/v3/oauth/token stay excluded unless you deliberately add them, keeping the agent confined to the exact HR lookups you approve.
GET STARTED