Built by Metorial, the integration platform for agentic AI.
Retrieve company-level metadata including list values (e.g., departments, locations, divisions), table definitions, and user accounts. Useful for discovering valid values for fields and understanding the data model.
Create a new employee record in BambooHR. At minimum, first name and last name are required. You can include additional fields like email, job title, department, hire date, and any other standard or custom fields.
Retrieve visible time off balances for an employee as of a date. Results depend on Time Off permissions and visible categories. A discretionary policy may have a zero balance while still allowing requests. Resolve caller ID 0 with get_current_user before using this tool.
Retrieve all job listings from BambooHR's applicant tracking system. Returns job summaries including titles, statuses, departments, and locations.
Create a simple goal for an employee. Supply title and dueDate. Sharing defaults to the owner and must include the owner if explicitly supplied. Progress must be an integer from 0 to 100.
Update an existing goal. Can change title, description, progress, due date, sharing, or close/reopen the goal. To close or reopen a goal, use the **action** field.
Add a comment to a job application. Useful for leaving notes during the recruitment review process.
Retrieve training records for a specific employee. Optionally filter by training type. Returns completion dates, instructors, hours, credits, and notes.
Retrieve detailed information about a specific job application, including the applicant's name, contact information, resume, answers to screening questions, and current status.
Run an exact saved custom report. Legacy report IDs use the documented deprecated endpoint and support JSON or downloadable CSV/PDF/XML. IDs from list_resources reports use reportSource=current and return one page of JSON with native pagination. Standard reports are not supported.
Retrieve employee directory entries visible under the company's directory sharing settings. This is a permission-limited directory, not a complete employee roster or headcount.
Retrieve up to 50 visible goals for an employee. all includes closed goals, open selects goals in progress, and closed selects closed goals. With no filter, BambooHR excludes closed goals. A full page is not proof of completeness.
Add a comment to an existing employee goal. Useful for providing feedback, status updates, or discussion on goal progress.
Delete a specific row from an employee's table data. Requires the employee ID, table name, and row ID.
Delete a file from an employee's file folder or the company file folder. Requires the file ID and optionally the employee ID (for employee files).
Upload a file to an employee's file folder or the company file folder. Requires a category ID, file name, and the file content as a string. Specify an employee ID for employee files, or omit it for company files.
Update one or more fields on an existing employee record. Pass the employee ID and the fields to update. Both standard fields (firstName, lastName, jobTitle, department, etc.) and custom fields are supported.
Retrieve visible employee field definitions, including field IDs, names, types and aliases for employee reads, writes and reports.
Change the status of an exact job application. Use list_resources with resourceType=application_statuses to discover valid active status IDs.
Add a new row or update an existing row in an employee's table data. If a rowId is provided, the existing row is updated; otherwise a new row is created. Tables include job history, compensation, education, and other structured data.
Retrieve job applications from BambooHR's applicant tracking system. Filter by job ID, status, or new applications since a given date. Supports pagination.
Change the status of an existing time off request. Can approve, deny, or cancel a request. Optionally include a note explaining the status change.
Record a completed training for an employee. Specify the training type, completion date, and optionally the instructor, hours, credits, cost, and notes.
Add a timesheet hour entry for an employee on a specific date. Can include hours worked, a note, and optionally associate with a project or task.
Retrieve visible company benefit plan summaries and deduction types. When employeeId is supplied, also retrieve company coverage levels and dependents for that exact employee. Company coverage levels are not proof of an employee's enrollment.
List files for an employee or the company. Returns file metadata organized by categories, including file IDs, names, sizes, and dates. Specify an employee ID for employee files, or omit it to list company-level files.
Retrieve timesheet entries and clock entries for a date range. Optionally filter by specific employee IDs. Returns both timesheet hour entries and clock-in/clock-out entries.
Retrieve all available time off types configured in BambooHR (e.g., vacation, sick leave, personal days). Returns type IDs, names, and policy details.
List visible time off occurrences and company holidays for a date range. With dates omitted, BambooHR uses today through 14 days out. Entries are not a count of unique employees.
Clock an employee in or out for time tracking. Supports adding notes and associating the entry with a project or task.
Retrieve time off requests within a date range. Optionally filter by employee, status, or time off type. Returns all matching requests with their details including dates, status, type, and notes.
Retrieve detailed information about a specific employee by their ID. Specify which fields to include in the response — common fields include name, email, job title, department, hire date, status, and more. Use the **Get Account Fields** tool to discover all available field names.
Retrieve tabular data for an employee. Tables include job history, compensation, education, and other structured data. Use the **Get Account Metadata** tool to discover available table names.
Retrieve visible training types, including their IDs, names, assigned categories and required status.
Submit a new time off request for an employee. Specify the employee, time off type, date range, and requested status. The request can be submitted as "requested" (pending approval) or "approved" (if you have admin permissions).
Generate an ad-hoc employee report using the documented deprecated report endpoint. It includes accessible active and inactive employees; onlyCurrent controls historical field values, not employment status. JSON returns structured data; CSV, PDF and XML produce a downloadable file. Use get_account_fields to discover field IDs.
Discover internal employee IDs, current saved report IDs, or active application status IDs. Returns one native page. Employee fields and counts are permission-sensitive; do not present a partial page or inaccessible values as complete company headcount. Current report IDs require reportSource=current in get_company_report; legacy IDs are a separate namespace.
Resolve the authenticated caller using employee ID 0, requesting only first and last name. An integration account without an employee record returns employeeId 0 and employeeBound=false; this does not identify an employee or grant access to employee-specific resources.
Download an exact existing employee or company file after checking that its ID appears in that folder. Use list_files to select an ID. Omit employeeId only for company files. Permission-limited or absent metadata is not proof that a file does not exist.