API KEY
HR OPERATIONS
Breathe HR gives your agent HR operations for your Breathe account: read employee records and job history, approve or reject leave requests, record sickness and training, manage expenses and claims, and review salaries, bonuses, and benefits.
For more tools, view docs.
import { ScalekitClient } from "@scalekit-sdk/node";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
// Breathe HR tools scoped to this user
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["breathehr"], toolNames: [
"breathehr_leave_requests_list",
"breathehr_leave_request_approve",
"breathehr_absences_list"] },
pageSize: 100,
});
const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "List pending leave requests and approve Tom Hughes's holiday request" }] });import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const openai = new OpenAI();
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["breathehr"] }, pageSize: 100,
});
const res = await openai.chat.completions.create({
model: "gpt-5",
messages: [{ role: "user", content: "List pending leave requests and approve Tom Hughes's holiday request" }],
tools,
});
// Execute the tool call with the user's vaulted Breathe HR API key
await sk.tools.executeTool(res.choices[0].message.tool_calls[0], "user_123");import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const anthropic = new Anthropic();
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["breathehr"] }, pageSize: 100,
});
const msg = await anthropic.messages.create({
model: "claude-sonnet-5",
max_tokens: 1024,
messages: [{ role: "user", content: "List pending leave requests and approve Tom Hughes's holiday request" }],
tools,
});
// Tool call runs with the user's vaulted Breathe HR API key
await sk.tools.executeTool(msg.content, "user_123");import { Agent } from "@google/adk/agents";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["breathehr"] }, pageSize: 100,
});
const agent = new Agent({
name: "hr_agent",
model: "gemini-2.5-pro",
instruction: "Breathe HR tools scoped to this user",
tools,
});
await agent.run("List pending leave requests and approve Tom Hughes's holiday request");// shared key
audit → bot_service_account
// scalekit
audit → user_abc ✓