How to connect BambooHR to Hermes Agent
Connect BambooHR to Hermes Agent with ClawLink: paste your BambooHR key once, 41 tools work from chat. The key stays server-side, never in a prompt or on your machine. 403 fixes for the literal BambooHR error text.


Manage employees, time-off, benefits, and hiring. Once connected, Hermes Agent can read and act on BambooHR from chat — pairing, token refresh, and tool wiring handled for you.
Most guides for giving Hermes Agent BambooHR access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical BambooHR setup: pair once in the browser and your always-on Hermes agent can act on BambooHR for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.
Copy this prompt into Hermes to install the plugin and pair your account.
Set up ClawLink for Hermes and tell me when it's ready.
1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin
3. I'll approve it in my browser, then reply "approved".
4. When I say approved, finish setup:
hermes clawlink finish
5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.Setup
It takes three steps to connect Hermes to BambooHR.
1Install and pair
Install the ClawLink plugin, then pair Hermes with a one-time browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable- 2
Connect BambooHR
Paste your API key in the dashboard.
- 3
Use it from chat
Ask Hermes Agent: "What can you do with BambooHR?"
Install by command
The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin # prints an approval link — open it and approve
hermes clawlink finish # after approving in the browser
hermes clawlink testThen connect BambooHR in the ClawLink dashboard — paste your BambooHR API key once.
Verify the connection by asking Hermes:
Call bamboohr_get_all_employees and summarize the headcount by department using the department values in the records. Do not quote full employee records; summarize names and counts only.
Using a different agent?
The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:
npx -y @useclawlink/cli loginlogin opens the same browser approval and stores a credential locally. Once BambooHR is connected in the dashboard, that agent calls the same 41 BambooHR tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
BambooHR MCP for Hermes
Looking for a BambooHR MCP server for Hermes Agent? ClawLink connects BambooHR to Hermes Agent and exposes 41 BambooHR tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw BambooHR integration runs on the same hosted BambooHR provider and the same 41 tools; OpenClaw installs ClawLink through a ClawHub skill instead of the Hermes pairing commands.
The advice every engine gives for connecting BambooHR to an AI agent contains a warning: never paste a personal employee API key into an external AI agent, and never create a broad HR admin credential for a tool. That is sound advice about the way the alternatives work, where a key lives in a config file or an environment variable on a machine you do not control and is handed to a model that might echo it. This page's setup differs in exactly that particular: you paste the key once into a hosted setup page, and it stays server-side. The agent never sees it, it is not written to any .env or config file on your machine, it never enters a prompt, and revoking it in BambooHR or from the dashboard kills access instantly. BambooHR authenticates with API keys rather than OAuth, so a key is the credential either way; what this flow removes is everything a key normally drags in. Two guidance points follow from the engines' own advice: connect with a BambooHR user whose permissions match what the agent should do rather than a broad admin, and treat employee data as the sensitive surface it is, draft before write.
What the Hermes Agent BambooHR integration can do
41 BambooHR tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 41.
30 of 41 BambooHR tools for Hermes
| Tool | What it does |
|---|---|
Ats create candidate bamboohr_ats_create_candidate | Create a candidate application |
Ats create job opening bamboohr_ats_create_job_opening | Create a new job opening in BambooHR ATS |
Company get information bamboohr_company_get_information | Get company information |
Create time off request bamboohr_create_time_off_request | Submit a new time off request |
Datasets list bamboohr_datasets_list | List available datasets via the Datasets API |
Employee create bamboohr_employee_create | Create a new employee record |
Ats get applications bamboohr_ats_get_applications | List job applications with optional filters |
Benefit get coverages bamboohr_benefit_get_coverages | Retrieve standard benefit coverage options |
Benefit get member events bamboohr_benefit_get_member_events | List member benefit events |
Company get eins bamboohr_company_get_eins | Retrieve company Employer Identification Numbers (EINs) |
Dependents get all bamboohr_dependents_get_all | Retrieve all employee dependents |
Employee get changed bamboohr_employee_get_changed | Get employees inserted, updated, or deleted since a given timestamp |
Files list bamboohr_files_list | List company file categories and their files |
Get all employees bamboohr_get_all_employees | Retrieves all employees from the BambooHR employee directory including their basic information |
Get applicant statuses bamboohr_get_applicant_statuses | Retrieve applicant statuses |
Get custom employee fields bamboohr_get_custom_employee_fields | Fetch custom employee field values |
Get custom reports bamboohr_get_custom_reports | Run a custom report by ID or ad-hoc fields |
Get employee bamboohr_get_employee | Retrieve detailed information for a specific employee |
Get employee photo bamboohr_get_employee_photo | Retrieve an employee's profile photo by size |
Get hiring leads bamboohr_get_hiring_leads | Retrieve potential hiring leads (employees who can manage job openings) for use in creating a |
Get job summaries bamboohr_get_job_summaries | Retrieve a list of ATS job summaries |
Get meta departments bamboohr_get_meta_departments | List department metadata |
Get meta divisions bamboohr_get_meta_divisions | List all division metadata |
Get meta employment statuses bamboohr_get_meta_employment_statuses | List all employment status metadata |
Get meta job titles bamboohr_get_meta_job_titles | Retrieve job title metadata |
Get meta locations bamboohr_get_meta_locations | List location metadata |
Get meta time off types bamboohr_get_meta_time_off_types | List time-off type metadata |
Get report bamboohr_get_report | Fetch a built-in or published report in JSON or other formats |
Get time off balances bamboohr_get_time_off_balances | Retrieve time-off balances for employees |
Get time off requests bamboohr_get_time_off_requests | List time-off requests within a date range |
Try it: find the BambooHR tool you need
Browse the 30 BambooHR tools
Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.
Example prompts
Call bamboohr_get_all_employees and summarize the headcount by department using the department values in the records. Do not quote full employee records; summarize names and counts only.
List time off requests with bamboohr_get_time_off_requests for the next 30 days and show me who is out, when, and the time off type. Then pull the balances for each with bamboohr_get_time_off_balances.
List my custom reports with bamboohr_get_custom_reports, then run the one named <name> with bamboohr_get_report and show me the result as a table.
Pull the departments, divisions, job titles, and locations meta lists with the bamboohr_get_meta_* tools and tell me which departments have no employees according to bamboohr_get_all_employees.
How the BambooHR tools behave
The shapes that decide whether a BambooHR prompt returns fast or walks into the rate limit, from the live schemas.
- Employees read both ways.
bamboohr_get_employeetakes one id andbamboohr_get_all_employeestakes the sweep;bamboohr_employee_get_changedanswers "what changed since" without a full walk. - Reports are the heavy read.
bamboohr_get_custom_reportslists what exists andbamboohr_get_reportruns one; a custom report does the join work an agent would otherwise do with many calls. - The meta lists are free reads. Departments, divisions, job titles, locations, employment statuses, and time off types are each one call, which is how an agent grounds itself before touching employee records.
- Employee data is sensitive by default. The prompts above ask for summaries rather than raw records for a reason; an agent that quotes full employee rows into chat is doing more than the question needs.
- Writes exist and are real.
bamboohr_employee_createandbamboohr_create_time_off_requestchange HR records; both deserve an explicit draft-and-approve step in the prompt. - ATS is a separate surface. Candidates, job openings, applications, and hiring leads have their own tools, so recruiting questions need the ATS tools named rather than the employee tools.
ClawLink vs. building it yourself
The alternative to ClawLink is usually manual API key setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want BambooHR working from chat.
| Manual | ClawLink | |
|---|---|---|
| Credential handling | Collect, validate, store, and rotate the BambooHR API key yourself, then make sure every tool call uses the right account. | Users complete the hosted ClawLink setup once and the connected BambooHR account becomes available to the agent without you building credential management. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for BambooHR. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| Agent usability | You still need to expose the right BambooHR actions to the runtime in a format your agent can reliably use. | 41 tools for BambooHR are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes BambooHR to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect BambooHR in the browser, and the 41 tools above work from chat. There is no SDK and no config file, and the BambooHR key you paste at setup is stored server-side rather than kept in your environment. Choosing between them? Read the full Composio alternatives comparison.
Troubleshooting
Hermes paired but still can't use BambooHR
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.
Connection succeeds but no tools appear
Reconnect BambooHR from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.
"Tool schema not loaded yet" error when calling BambooHR tools
BambooHR tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every BambooHR call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.
BambooHR returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.
"Your Account Does Not Have Sufficient Permissions to Fetch the Necessary Data From BambooHR"
This exact error string is BambooHR's own API message, and it is the one engines cite most for this provider's permission problems. It means the connected user lacks permission for the requested data, and the taught causes are: the user is not an admin of the account, the call targets the wrong account, or the token was issued before a permission change. Run the diagnosis in this order: confirm which user the connection acts as, reconnect from the dashboard if permissions changed after the connection was made (a fresh token picks up the new permissions), and check the arguments, because a placeholder employee or report id returns the same string when BambooHR hides what the account cannot see. A broad "the integration is broken" conclusion is wrong for this error; it is always a permissions or id question.
Ask the agent to diagnose it:
Call bamboohr_get_all_employees and bamboohr_get_meta_departments. Tell me which BambooHR account this connection acts as and how many employees it can see, then quote the exact error from the failed call. Do not retry it yet.BambooHR returns 429 or the agent stalls while enumerating employees
BambooHR rate-limits API usage and answers over-allowance calls with 429, and an agent walking every employee, department, and time off balance in sequence is the shape that meets it. The numbers vary by plan and are documented in BambooHR's API docs; the behavior that matters here is the shape of the work. Ask for one employee or one report rather than a full sweep, have the agent say what it intends to enumerate before it starts, and spread a large audit across turns. A 429 means wait for the window, not retry in a loop.
Ask the agent to diagnose it:
Tell me how many BambooHR calls you have made recently and what you were enumerating. Quote any 429 text from the last response. Do not call BambooHR again until I reply.BambooHR tools are missing, or one tool name is not found
Two different failures. If Hermes shows no BambooHR tools at all, the connection or the pairing is incomplete: confirm the plugin was installed with --enable, that both hermes clawlink begin and hermes clawlink finish ran, and that BambooHR shows as connected in the dashboard, then start a fresh chat. If most tools work and a single name fails, the name is wrong rather than missing, and the error lists the closest real ones. The search-result fix for this symptom, verifying an API key and domain in a local MCP server's config, is the self-hosted version of the same failure and does not apply here: the key was verified at setup. One timing case is unique to this setup: schemas load on demand, so the opening BambooHR call in a fresh session can arrive before the catalog and needs one retry.
Ask the agent to diagnose it:
List the BambooHR tools you actually have access to. If there are none, say so plainly. If there are, tell me which one reads an employee by id and use that exact name.API key setup works but results look incomplete
Double-check that the API key for BambooHR has the right scopes or account access. A valid key can still be too limited for some reads or writes.
FAQ
Is there a Hermes Agent BambooHR integration?
Yes. ClawLink is the fastest way to connect Hermes to BambooHR: link your BambooHR account once in the browser and Hermes Agent can call the BambooHR API through 41 ready-made tools — no custom code or token handling.
How do I connect BambooHR to Hermes with ClawLink?
Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect BambooHR in the dashboard and Hermes can use it from the next message — no config files, and the BambooHR key you paste is stored server-side instead of in your environment.
How long does it take to connect BambooHR to Hermes Agent?
About two minutes. Sign in, click Connect next to BambooHR in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.
Why use ClawLink instead of wiring BambooHR up myself?
The alternative to ClawLink is usually manual API key setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want BambooHR working from chat.
Is it safe to paste my BambooHR API key into ClawLink?
The engines' warning is about keys handed to an external agent in a way that can leak: pasted into prompts, stored in config files on machines you do not control, or shared broadly. Here the key is entered once into hosted storage, never shown to the agent, never written to your machine, and revocable at any moment from BambooHR itself or the dashboard. The remaining risk decisions are yours, and they are the same ones the warning cares about: use a BambooHR user whose permissions match the work rather than a broad admin credential, and keep employee data out of prompts by telling the agent to summarize rather than quote raw records.
What can the agent do with 41 tools?
The employee surface and the HR administration around it: employees (get one, get all, create, changed since), custom reports and the report runner, time off requests and balances, meta lists (departments, divisions, job titles, locations, employment statuses, time off types), files, benefits coverages and member events, company information and EINs, and the ATS side (candidates, job openings, applications, applicant statuses, hiring leads, job summaries). The writes to be deliberate about are employee creation and time off requests; the meta lists and reports are read-only and safe to let an agent explore.
Does this work without an API key, like "Ask BambooHR" does?
BambooHR's own "Ask BambooHR" chat works without an API key because it lives inside BambooHR, and the engines list it as the no-key option. This integration is the external-agent route, and BambooHR's API is key-based, so a key exists somewhere in every external route. The differentiator is where the key lives: server-side here, versus a config file or environment variable in the routes the engines teach. If what you want is a bot inside BambooHR, the native chat exists; if you want your agent working across apps, this is the route that connects it to HR data without holding the key on your machine.
Is it safe to connect BambooHR, of all apps, to an AI agent?
HR data is the most sensitive surface in this product, and the market's safety answers are least-privilege, human-in-the-loop approval, no model training, and audit trails. The mechanics of this connection cover the credential half: the key is stored server-side, the tool table on this page is the complete set of operations the agent can invoke, and revocation is immediate. The behavioral half is yours: connect a BambooHR user with the minimum permissions the work needs, have the agent draft before it creates or changes anything, and prefer the report and meta tools, which are read-only, for exploratory questions.
Why does a tool fail with "Your Account Does Not Have Sufficient Permissions"?
That literal string is BambooHR's own error, and it means the connected BambooHR user lacks permission for the data the tool asked for. The taught causes: the connected user is not an admin of the account, the call targets the wrong account entirely, or the token was issued before a permission change and the grant is stale. The fixes in order: check which BambooHR user the connection acts as, reconnect from the dashboard after a permission change so the token is re-issued, and before all of that, check the arguments, since an invented employee id or report id returns the same permission-shaped error because BambooHR hides what the account cannot see.
Hermes paired but still can't use BambooHR
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.