bamboohr-hello-world
Prove a BambooHR tenant connection with one minimal, low-sensitivity request and a redacted receipt. Use when starting an integration or isolating host, credential, and permission failures. Trigger with "BambooHR hello world", "test BambooHR connection", or "first BambooHR request".
Allowed Tools
Provided by Plugin
bamboohr-pack
Operator-grade BambooHR pack with 18 source-grounded skills for authentication, HR data pipelines, webhooks, security, reliability, and release governance.
Installation
This skill is included in the bamboohr-pack plugin:
/plugin install bamboohr-pack@claude-code-plugins-plus
Click to copy
Instructions
BambooHR Minimal Connection Proof
Overview
Verify routing, TLS, authentication, and basic permission with the smallest useful call. Do not begin with the employee directory: it contains personal data and is unnecessary for a connectivity test.
Prerequisites
- The target repository or integration path and the requested operator outcome.
- The tenant, identity, and data scope only when approved live work is in scope.
- The current evidence register plus customer-specific permissions and agreements.
Current Contract
Use the tenant-local host https://company-subdomain.bamboohr.com. The official OpenAPI operation GET /api/v1/company_information returns basic company profile information and supports OAuth or API-key authentication.
Authentication
Prefer a short-lived OAuth access token for partner integrations. For an internal API key, Basic auth uses the API key as username and x as password. Load secrets from the current process environment or an approved secret manager; never place a token directly in the command, URL, source file, or receipt.
Instructions
- Confirm the exact tenant subdomain and auth mode. Reject slashes, schemes, ports, and dots in the subdomain input.
- Inspect the project for an existing BambooHR client and reuse its timeout, user-agent, request-ID, and redaction controls.
- If an operator approves a direct API-key smoke test, run a body-discarding request:
curl --fail-with-body --silent --show-error \
--max-time 20 --output /dev/null --write-out '%{http_code}\n' \
--user "${BAMBOOHR_API_KEY}:x" \
"https://${BAMBOOHR_COMPANY_SUBDOMAIN}.bamboohr.com/api/v1/company_information"
- For OAuth, send
Authorization: Bearer …from the application's secret- aware HTTP client rather than echoing a token through shell history. - Record timestamp, tenant alias, auth mode, HTTP status, elapsed time, and a server request ID when available. Do not retain the response body.
- Only after the connection proof succeeds, request approval for an employee- scoped test with an explicitly minimized field list.
Tool Discipline
Use Read, Glob, and Grep to find current client and configuration conventions. Use Write/Edit only to add an approved example or test. Bash is restricted to curl; show the exact host and body-retention behavior before executing it.
Safety Justification
The optional live request can reach sensitive HR infrastructure. It is limited to HTTPS, one read-only company-information endpoint, a finite timeout, no body retention, and operator approval for the tenant and credential.
Approval Boundaries
Do not make a live request, access an employee endpoint, install a package, or write credentials without explicit approval. A successful 200 proves only this identity can perform this operation; it does not prove broader access.
Output
Return a PASS/FAIL receipt with tenant alias, endpoint class, auth mode, status, latency, request ID, redaction confirmation, and the next narrow test.
Error Handling
- DNS/TLS failure: verify the tenant subdomain and trust path.
401: validate credential type and freshness without printing it.403: the identity lacks the operation; do not escalate permissions silently.429,504, or598: report the transient condition and defer to the retry skill.
Examples
- "Test our BambooHR setup" produces a proposed body-discarding company-info check.
- "Dump the directory to prove it works" is narrowed to the connection proof.
Resources
Read official evidence before running the smoke test.