Generate a BambooHR API key from the user menu in the BambooHR UI (click your name > API Keys); the BambooHR base URL is https://api.bamboohr.com/api/gateway.php/{companyDomain}/v1 where companyDomain is your BambooHR account subdomain
Authenticate using HTTP Basic Auth with your API key as the username and any string (e.g., 'x') as the password; include the Accept: application/json header to receive JSON responses
When a candidate is marked as hired in the ATS (via webhook or polling), extract the required new hire fields: first name, last name, hire date, job title, department, and email
Create the new employee record in BambooHR by sending POST /employees with a JSON body containing the mapped fields; the response returns the new employee ID
Update additional employee fields (manager, location, employment status, salary) via PUT /employees/{id} or POST /employees/{id}/tables/{tableName} for tabular data like compensation
Optionally trigger BambooHR's built-in onboarding workflows by setting the employee's hire date and ensuring the onboarding packet is configured in BambooHR settings — BambooHR sends the onboarding email to the new hire automatically based on the hire date
Known gotchas
The BambooHR base URL requires the company's exact subdomain, not a generic endpoint; your application must capture this subdomain from the customer during setup rather than hardcoding a single URL
Field IDs in BambooHR (e.g., for custom fields) are account-specific integers; retrieve the field list via GET /meta/fields to map field names to IDs before attempting to write data
BambooHR API rate limits are not publicly documented with exact numbers; implement exponential back-off on 429 responses and avoid bulk-creating employees in tight loops
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp