get_account_metadata
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_employee
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.
get_time_off_balances
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.
get_job_listings
Retrieve all job listings from BambooHR's applicant tracking system. Returns job summaries including titles, statuses, departments, and locations.
create_goal
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_goal
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.
get_employee_training_records
Retrieve training records for a specific employee. Optionally filter by training type. Returns completion dates, instructors, hours, credits, and notes.
get_application_details
Retrieve detailed information about a specific job application, including the applicant's name, contact information, resume, answers to screening questions, and current status.
get_company_report
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.
get_employee_directory
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.
get_goals
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.
delete_table_row
Delete a specific row from an employee's table data. Requires the employee ID, table name, and row ID.
delete_file
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_file
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_employee
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.
get_account_fields
Retrieve visible employee field definitions, including field IDs, names, types and aliases for employee reads, writes and reports.
update_application_status
Change the status of an exact job application. Use list_resources with resourceType=application_statuses to discover valid active status IDs.
upsert_table_row
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.
get_applications
Retrieve job applications from BambooHR's applicant tracking system. Filter by job ID, status, or new applications since a given date. Supports pagination.
update_time_off_request_status
Change the status of an existing time off request. Can approve, deny, or cancel a request. Optionally include a note explaining the status change.
add_training_record
Record a completed training for an employee. Specify the training type, completion date, and optionally the instructor, hours, credits, cost, and notes.
add_timesheet_entry
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.
get_benefits_overview
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
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.
get_timesheet_entries
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.
get_time_off_types
Retrieve all available time off types configured in BambooHR (e.g., vacation, sick leave, personal days). Returns type IDs, names, and policy details.
get_whos_out
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_in_out
Clock an employee in or out for time tracking. Supports adding notes and associating the entry with a project or task.
get_time_off_requests
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.
get_employee
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.
get_table_data
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.
get_training_types
Retrieve visible training types, including their IDs, names, assigned categories and required status.
create_time_off_request
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_custom_report
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.
list_resources
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.
get_current_user
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_file
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.