Slack Automation

Slack Bot for HR: Onboarding, PTO Requests, Policy Q&A

May 2026 · 9 min read

HR teams spend most of their week on three repetitive tasks: walking new hires through onboarding checklists, processing PTO requests, and answering the same five policy questions over and over. Each of these maps cleanly onto a Slack bot. Build cost: around 3,500 euro. Time saved at a 30-person company: 4 hours per week per HR person, or roughly 200 hours per year.

The three features that justify the build

1. Onboarding checklist in Slack DM

When a new hire is added to the workspace, the bot DMs them a structured onboarding checklist. Each item is a clickable button: "Mark as done." Progress is visible to the HR manager in a private channel. No more chasing people via email.

Implementation: a Slack app subscribed to the team_join event. When a user joins, the bot sends an ephemeral message with a Block Kit checklist of 8-12 items (sign contract, set up laptop, book intro calls, complete tax forms, read handbook). Each button click updates a Postgres row. A daily Slack message to HR shows who's stuck on which step.

2. PTO request flow

Employee runs /pto in Slack. A modal pops up with date pickers, PTO type (vacation, sick, personal), and optional notes. On submit, the bot DMs the manager with Approve / Deny buttons. Manager clicks Approve, employee gets a confirmation DM, PTO balance in the bot's Postgres drops accordingly, and a calendar event is created via Google Calendar API.

Why this beats email: managers get a button to click, not a thread to read. PTO balance is always in the same place. The HR person doesn't see any of it unless something is escalated.

3. Policy Q&A with embeddings

Upload the employee handbook as a PDF. The bot chunks it, generates embeddings via OpenAI's text-embedding-3-small, and stores them in pgvector. When someone DMs the bot a question — "what's the parental leave policy?" — it does a similarity search, pulls the top 3 relevant chunks, and asks GPT-4o-mini to synthesize an answer with citations.

Cost per query: about 0.001 euro. A team of 30 typically generates 50-100 questions per week. Total monthly OpenAI bill: under 10 euro.

Build sequence — what we actually do in three weeks

Week 1. Set up the Slack app in api.slack.com. Configure OAuth scopes (chat:write, im:write, users:read, channels:read). Build the onboarding flow: team_join event subscription, Block Kit checklist message, button handler, Postgres schema for tracking.

Week 2. Build PTO. /pto slash command opens a modal. View submission handler validates dates and writes to a pto_requests table. Manager gets DM with action buttons. Approve handler updates status, sends confirmation, posts to Google Calendar via service account.

Week 3. Policy Q&A. Set up pgvector. Write a one-shot script to chunk the handbook (paragraphs of 200-400 tokens), generate embeddings, store them. Build the DM handler: on incoming message, embed the question, do a cosine similarity search (top k=3), call GPT-4o-mini with the chunks as context, return the answer.

Buffer: 2-3 days of testing with the HR team, then go live.

What it costs to run

Total: 55-60 euro per month for the runtime. Render Standard (25 euro) + Postgres with pgvector (20 euro) + OpenAI usage (10-15 euro) + Sentry free tier.

What we deliberately do NOT build

  • Payroll integration. Leave that to ADP, Personio, or whatever HRIS the company already uses. The bot is a Slack front door, not a system of record for sensitive data.
  • Performance review workflows. Too company-specific. Build that on top later if it's worth it.
  • Org chart sync. If your HRIS has an API, point the bot at it for manager lookup. Don't build a parallel org chart.
  • GDPR-compliant document storage. The bot stores PTO state, not employment contracts. Contracts stay in DocuSign or BambooHR.

Real ROI math

An HR person at a 30-person company typically spends:

  • 2 hours per week chasing onboarding tasks
  • 1 hour per week processing PTO requests
  • 1 hour per week answering repeat policy questions

That's 4 hours per week saved. At an HR salary of 45,000 euro per year (about 23 euro per hour including overhead), the bot saves 4,784 euro per year. Build cost is 3,500 euro plus ~700 euro per year hosting. Payback in 13 months. After that it's free money.

Comparison

Approach Setup cost Monthly Slack-native? Custom logic?
Custom Slack bot (this guide) 3,500 euro 60 euro Yes Yes
BambooHR + Slack app 0 6 euro/employee = 180 euro for 30 Partial No
Personio + Slack integration 0 100-180 euro for 30 employees Partial No
Workday (enterprise) 50,000 euro+ 10,000 euro+ No Yes (slow)
Manual via email + spreadsheet 0 0 No n/a

FAQ

How much does an HR Slack bot cost?
A scoped HR Slack bot covering onboarding checklist, PTO requests, and policy Q&A costs around 3,500 euro to build and roughly 60 euro per month to run.

How long does it take to build?
Two to three weeks of focused engineering work. Week 1 onboarding flow, week 2 PTO, week 3 policy search.

Do we need a separate database?
Yes — PTO balances and onboarding state need persistence. A managed Postgres on Render or Supabase at 15-25 euro per month is enough for teams up to 200 people.

Can it replace BambooHR or Personio?
For lightweight HR needs under 50 employees, yes. For payroll, GDPR-compliant records, and performance reviews, keep your HRIS and use the bot as a Slack-native front door.

Want this built for your team?

Three-week build, fixed price, deployed to your Slack workspace. Book a 20-minute discovery call to scope it.

Book a discovery call

Related Posts

Custom Slack Bot Cost Slack Bot for Customer Support
← All blog posts

Three weeks from kickoff to live in your workspace

Fixed price, weekly demos, no surprises. We've shipped 20+ Slack bots for European teams.

Book a discovery call