Skip to content
AI HR Bot

How we handle your HR data

Everything on this page is something you can verify in how the product works.

Slack tokens are encrypted at rest
Installation tokens are encrypted with AES-256-GCM before they touch the database.
Every Slack event we act on is signature-verified
Slack signs each request. Before an event reaches a handler we check that signature and its timestamp with a constant-time comparison, and reject anything that fails. The one exception is Slack’s endpoint-verification handshake, which we answer by echoing back the challenge value it sent us.
Workspaces are isolated
Every capability is scoped to a single Workspace. One Workspace cannot read another.
Privileged actions are logged
Configuration changes and approvals are written to an audit log.
Search embeddings stay in the product’s own database
Knowledge Base entries and Memory entries are embedded into pgvector columns in the product’s Postgres database. No separate vector-search service holds them.

The exact Slack permissions we request

Both install paths — the dashboard and the direct install link — build this request from the same list in one place, so they cannot drift apart. Compare it against the consent screen Slack shows you.

chat:write
Send replies and approval messages in the channels where it is used.
im:write
Open a direct message to greet an Employee and deliver approval decisions privately.
im:history
Read the direct-message thread it is part of, so a conversation keeps its context.
app_mentions:read
Know when someone mentions the bot in a channel so it can answer.
users:read
Match a Slack account to an Employee record and resolve their Lead and HR Contact.
users:read.emailadded later
Read a coworker’s email address, which is what a Google Calendar invitation has to be addressed to.
assistant:writeadded later
Use Slack’s own assistant pane: greet a new thread, offer starting prompts, show the status line while it works, and title the thread.
files:readadded later
Download the voice note an Employee sent it, so it can be transcribed.
files:writeadded later
Upload the spoken answer back into the conversation as an audio file.
reactions:writeadded later
Add the :eyes: reaction that acknowledges a direct message the moment it arrives.

The five marked permissions arrived with voice, meetings and the assistant pane. Slack fixes what an app may do at the moment you install it, so a Workspace installed before those shipped does not hold them until an HR Head re-authorizes — and until that happens the feature stays quiet rather than failing loudly. Re-authorizing widens what the bot may do and removes nothing.

Deleting data

An HR Head can delete an Employee’s data on demand
The Employee’s profile, Memory, and conversations are hard-deleted — removed, not flagged. Their Request records are kept for continuity, and can be anonymized separately.
Uninstalling removes everything
Removing the app from Slack cascade-deletes the Workspace and drops the stored token.

Who processes your data

Anthropic
Claude generates the assistant replies.Data shared: Conversation text, plus the Employee profile, Leave Balances, applicable Leave Policy, Memory entries, any Knowledge Base entries used to answer, and any company-wide directives your HR team has set
Google
Gemini creates embeddings for Knowledge Base and Memory search. Google Calendar books the meetings, through a connection each Employee makes themselves.Data shared: Knowledge Base entries, Memory entries, and the search text the assistant sends on the Employee’s behalf to look them up. For a booked meeting: its title, its start and end time, and the email addresses of the people invited — Google emails the invitation out
ElevenLabs
Scribe transcribes what an Employee says out loud; text-to-speech reads answers back.Data shared: The audio of a voice note an Employee sends, and the text of an answer being read back. Nothing goes to ElevenLabs unless somebody speaks to the bot or asks it to speak

The same three, with what each receives, are listed in our privacy notice.