Skip to content

Documentation navigation

HR & People Ops

Workday, BambooHR, Rippling, Gusto, Greenhouse, Lever, and Deel toolsets.

#HR & people ops

HRIS, payroll, and applicant-tracking connectors. Every connector follows the standard @toolset / @toolify shape and the agent-ready toolset pattern (compact summaries by default, opt-in raw IDs, tolerant write inputs).

#Agent-ready behavior (overview)

All list tools across this category return compact summaries with response-local display refs (worker_ref, employee_ref, candidate_ref, job_ref, opportunity_ref, contract_ref, user_ref). Raw provider IDs (Workday WIDs, BambooHR numeric IDs, Rippling employee UUIDs, Gusto employee UUIDs, Greenhouse numeric job/candidate IDs, Lever opportunity IDs, Deel person IDs) are hidden by default and exposed via include_ids=True when a follow-up tool needs them. Default page size is 25 unless otherwise noted.

Write tools that take an identifier (get_worker, get_employee, update_employee, advance_application, reject_application, update_opportunity_stage, archive_opportunity, create_time_off_request, etc.) accept a raw ID string or the dict from the corresponding list tool.

Destructive tools across this group (require user confirmation): reject_application (Greenhouse), archive_opportunity (Lever).

#WorkdayToolSet

Python
from maivn_tools import WorkdayToolSet

connector = WorkdayToolSet(
    tenant_url="https://wd2-impl-services1.workday.com/ccx",
    tenant="acme",
    access_token=token,
)

OAuth exchange against Workday Identity is left to the caller. Tools: list_workers, get_worker, list_organizations, list_job_changes, list_time_off_balances, submit_time_off, list_positions, list_job_postings, list_candidates.

Agent-ready behavior

  • list_workers: summary with worker_ref, name, primary email, job title, manager name, hire date, status. Raw WID hidden; opt in with include_ids=True (needed by get_worker, list_time_off_balances, submit_time_off).
  • list_job_postings: summary with job_ref, title, location, department, posted date. Opt in for the raw posting ID.
  • list_candidates: summary with candidate_ref, name, email, stage, posting title. Opt in for the raw candidate ID.
Python
workers = connector.list_workers(include_ids=True)
balance = connector.list_time_off_balances(workers["workers"][0]["worker_id"])

#BambooHRToolSet

Python
from maivn_tools import BambooHRToolSet

connector = BambooHRToolSet(
    subdomain="acme",
    api_key=secrets["BAMBOOHR_KEY"],
)

Tools: list_employees, get_employee, create_employee, update_employee, get_who_is_out, list_time_off_requests, create_time_off_request, get_custom_report, list_meta_fields, list_meta_time_off_types.

Agent-ready behavior

  • list_employees: summary with employee_ref, name, work email, job title, department, status, location. Raw numeric employee IDs hidden; opt in with include_ids=True (needed by get_employee, update_employee, create_time_off_request).
  • Tolerant inputs: get_employee and update_employee accept a numeric employee ID or the employee dict from list_employees(include_ids=True).

#RipplingToolSet

Python
from maivn_tools import RipplingToolSet

connector = RipplingToolSet(access_token=secrets["RIPPLING_TOKEN"])

Tools: get_current_company, list_employees, get_employee, list_departments, list_work_locations, list_groups, list_leave_requests, list_compensations, list_teams.

Agent-ready behavior

  • list_employees: summary with employee_ref, name, work email, job title, manager name, hire date, status. Rippling employee UUIDs hidden; opt in with include_ids=True (needed by get_employee).

#GustoToolSet

Python
from maivn_tools import GustoToolSet

connector = GustoToolSet(access_token=secrets["GUSTO_TOKEN"])

For Gusto Demo, override base_url="https://api.gusto-demo.com". Tools: list_companies, get_company, list_employees, get_employee, create_employee, list_payrolls, get_payroll, list_pay_schedules, list_time_off_requests, list_jobs.

Agent-ready behavior

  • list_employees: summary with employee_ref, name, work email, job title, department, terminated state. Raw Gusto employee UUIDs hidden; opt in with include_ids=True (needed by get_employee, list_jobs). per controls per-page size and pagination is forwarded as standard Gusto headers.

#GreenhouseToolSet

Python
from maivn_tools import GreenhouseToolSet

connector = GreenhouseToolSet(
    api_key=secrets["GREENHOUSE_KEY"],
    on_behalf_of="123",   # required for writes
)

Tools: list_jobs, get_job, list_candidates, get_candidate, create_candidate, list_applications, advance_application, reject_application (destructive), list_scorecards, list_offers.

Agent-ready behavior

  • list_jobs: summary with job_ref, name, status, office, opened date. Raw numeric job IDs hidden; opt in with include_ids=True (needed by get_job).
  • list_candidates: summary with candidate_ref, name, primary email, last activity, source. Opt in for candidate_id.
  • Destructive: reject_application. Confirm with the user before invoking (rejection emails the candidate and closes the application).

#LeverToolSet

Python
from maivn_tools import LeverToolSet

connector = LeverToolSet(api_key=secrets["LEVER_KEY"])

Pass sandbox=True to target the Lever sandbox. Tools: list_opportunities, get_opportunity, create_opportunity, update_opportunity_stage, list_postings, get_posting, list_stages, list_users, list_feedback, archive_opportunity (destructive).

Agent-ready behavior

  • list_opportunities: summary with candidate_ref, name, headline, stage, owner, last interaction. Raw opportunity IDs hidden; opt in with include_ids=True (needed by get_opportunity, update_opportunity_stage, archive_opportunity).
  • list_postings: summary with job_ref, text, state, team, location. Opt in for posting_id.
  • list_users: summary with user_ref, name, email, access role. Opt in for user_id.
  • Destructive: archive_opportunity. Confirm with the user before invoking.

#DeelToolSet

Python
from maivn_tools import DeelToolSet

connector = DeelToolSet(api_token=secrets["DEEL_TOKEN"])

Tools: list_people, get_person, list_contracts, get_contract, create_invoice_adjustment, list_invoice_adjustments, list_time_off, review_time_off, list_payroll_events, list_legal_entities.

Agent-ready behavior

  • list_people: summary with employee_ref, name, work email, hiring status, employment type, country. Raw Deel person IDs hidden; opt in with include_ids=True (needed by get_person).
  • list_contracts: summary with contract_ref, title, status, type, worker name, start date. Opt in for contract_id (needed by get_contract, create_invoice_adjustment).