For Agents
Read and update HR records — timesheets, expense reports, leaves, performance reviews, goals, training, and recruiting — across a BizMerlin (ClayHR) tenant so agents can automate everyday HR operations.
Get started with Expense Reports in minutes using your preferred integration method.
# Add to your MCP client config (Claude Desktop, Cursor, Windsurf)
{
"jentic": {
"url": "https://api.jentic.com/mcp",
"auth": "oauth"
}
}
# Then ask your agent:
"submit an expense report"
# → Jentic returns the GET /events tool with parameter schema, agent executes.What an agent can do with Expense Reports API.
Submit and approve expense reports across the employee lifecycle
Read and update timesheets and timecards for a given user
Manage leave requests, balances, and approvals
Track candidates through the recruiting pipeline including detail and list views
Run performance review cycles and read goal data per employee
GET STARTED
Use for: I want to submit an expense report for a team member, List all pending leave requests for my reports, Retrieve a candidate's detail by id during a hiring review, Update goals on an employee's performance review
Not supported: Does not handle payroll runs, benefits enrollment, or single sign-on configuration — use for HR data operations (expenses, leaves, time, recruiting, performance, training, surveys) on the BizMerlin tenant only.
Jentic publishes the only available OpenAPI document for Expense Reports, keeping it validated and agent-ready.
Jentic publishes the only available OpenAPI specification for this BizMerlin HR (ClayHR) tenant API, keeping it validated and agent-ready. The API spans 143 endpoints across employee management areas including timesheets, timecards, expense reports, leaves, candidates, custom fields, goals, performance reviews, projects, surveys, announcements, and trainings. Authentication uses two API key headers: x-api-key and userid, scoping requests to a tenant user. The base URL is the customer's BizMerlin subdomain at acmecompany.bizmerlin.net.
Create and manage announcements, surveys, and training assignments
Read and write custom field values on people and project records
Patterns agents use Expense Reports API for, with concrete tasks.
★ Automated Expense Report Submission from Receipts
An expense capture tool extracts receipt data externally and pushes the result into BizMerlin as an expense report via the expense endpoints. Reviewers approve in BizMerlin while employees never re-enter values. Token plus userid headers identify the submitting employee, and custom fields capture project allocation. This compresses end-of-month expense cycles.
Create an expense report with three line items for a given employee userid, attach the receipt references, and submit for approval
Manager Leave Approval Dashboard
A manager-facing dashboard pulls pending leave requests via the leaves endpoints, presents them with employee context from the people endpoints, and writes the approval back. Managers approve from one screen instead of clicking into BizMerlin per request, and the system audit trail stays in the HR system of record.
List all pending leave requests for the manager's reports, sort by submitted date, and approve the oldest five
Recruiting Pipeline Sync to External ATS
A recruiting tool keeps candidate stages in sync between an external ATS and BizMerlin by polling /list and /detail/{recruitid} on the candidates surface. Hiring managers see the same pipeline stage in BizMerlin that recruiters see in their ATS, and offer-letter triggers can flow back into BizMerlin onboarding. This avoids duplicate data entry across the two systems.
List candidates updated in the last day and pull each candidate's full detail to compare with the ATS record
Training Rollout via an HR Assistant Bot
An HR assistant bot in Slack assigns mandatory trainings, posts announcements, and follows up on missing surveys. It calls the trainings, announcements, and survey endpoints through Jentic. Employees interact with the bot, the bot calls BizMerlin on their behalf, and the API key plus userid headers stay encrypted in the vault.
Through Jentic, search 'assign a training to employees', load the trainings endpoint schema, and assign a security-awareness training to a list of userids
143 endpoints — jentic publishes the only available openapi specification for this bizmerlin hr (clayhr) tenant api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/api/token
Obtain a tenant API token
/list
List candidate records
/detail/{recruitid}
Retrieve candidate detail by id
/api/announcement/create
Create a company announcement
/api/announcement/{annId}
Retrieve an announcement
/api/announcement/edit
Edit an existing announcement
/customfield
Read custom field values
/api/token
Obtain a tenant API token
/list
List candidate records
/detail/{recruitid}
Retrieve candidate detail by id
/api/announcement/create
Create a company announcement
/api/announcement/{annId}
Retrieve an announcement
Three things that make agents converge on Jentic-routed access.
Credential isolation
BizMerlin x-api-key and userid header values are stored encrypted in the Jentic vault. Jentic injects both headers at execution time so the raw values never enter agent context.
Intent-based discovery
Agents search by intent — for example, 'submit an expense report' — and Jentic returns the relevant BizMerlin endpoint with its schema and the required header parameters.
Time to first call
Direct integration: 1-2 weeks given 143 endpoints, dual-header auth, and tenant-specific custom fields. Through Jentic: under 1 hour for the first working call against the tenant.
Alternatives and complements available in the Jentic catalogue.
BambooHR API
HR information system API for SMB people, time off, and reporting.
Choose BambooHR for SMB-focused HR with a smaller, well-documented API surface. Choose BizMerlin when you need broader modules including performance, surveys, and training in one tenant.
Gusto API
US-focused payroll, benefits, and HR API.
Choose Gusto when payroll is the core need. Choose BizMerlin for broader HR operations beyond payroll.
Greenhouse API
Dedicated ATS that complements BizMerlin's recruiting pipeline.
Use Greenhouse for the recruiting pipeline, then sync hires into BizMerlin for ongoing HR management of those employees.
Specific to using Expense Reports API through Jentic.
Why is there no official OpenAPI spec for Expense Reports?
BizMerlin (ClayHR) does not publish a public OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Expense Reports via structured tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the BizMerlin (ClayHR) API use?
Two API key headers — x-api-key for the tenant key and userid for the acting employee — on every request. Through Jentic, both values are stored encrypted in the vault and injected per call so the raw values stay out of agent context.
Can I submit and approve expense reports through this API?
Yes. The API exposes endpoints across the expense report lifecycle — creation, submission, and approval — keyed by the userid header. Pair these with the announcement and custom field endpoints to thread expense submission into broader HR workflows.
What are the rate limits for the BizMerlin API?
The OpenAPI spec does not document explicit rate limits. BizMerlin tenants typically share per-tenant capacity; treat large bulk operations as best-effort and back off on HTTP 429. For high-volume sync, batch reads through /list endpoints rather than re-querying detail per record.
How do I assign a training to employees through Jentic?
Run pip install jentic, then search 'assign a training to employees'. Jentic returns the relevant trainings endpoint with its input schema, you supply the training id and a list of userids, and execute. The x-api-key and userid headers are injected by Jentic at execution time.
Does this API cover payroll and benefits?
The endpoints in this spec focus on time, expenses, leaves, recruiting, performance, training, and announcements. Payroll and benefits are typically administered through BizMerlin's broader product surface and may not be present in this OpenAPI cut. Check the BizMerlin developer documentation for those modules.
/api/announcement/edit
Edit an existing announcement
/customfield
Read custom field values