Open source · MIT

Rubby HRMS

HR system for any business: multi-company, RBAC, dynamic dictionaries, 22 AI agents

Ruby on Rails 8PostgreSQLHotwireSidekiqDevisePunditTailwind CSS
Rubby HRMS

Why another HRMS?

Most HR systems hardcode a single industry's vocabulary. Hiring means 'developer', leave means 'annual'. Real companies are more complex: a septic service needs ADR permits, a clinic needs license numbers, a startup needs GitHub links.

HRMS adapts to the company, not the other way around. Every entity supports Custom Fields via dictionaries. HR defines the schema once — forms, validation, AI parsing, and audit pick it up automatically.

What's inside

Universal

Custom Fields for every entity, configurable dictionaries. AI Bootstrap — describe your company in plain text, AI suggests the full schema.

24 AI agents

OpenAI / Anthropic / Ollama / vLLM. Per-task model selection, hard budget cap, full audit log.

Documents

PDF + OCR + Vision API. Auto-parse, review, apply. Expiry notifications.

Apple-HIG design

System colors, spring animations. iOS-style dashboard with widgets. Full dark theme.

Security

2FA, GDPR Article 15+17, Pundit RBAC, audit log with revert.

Integrations

Slack, Telegram bot, REST API (15 endpoints, Swagger UI), CalDAV.

Live UI

Turbo Streams + ActionCable — KPI, applications, AI results stream without page reloads.

Multi-tenant

Subdomain resolution out of the box. Single-tenant works the same — switch when you grow.

Docker

One-command install. Auto-generated secrets, healthcheck, zero-downtime update.

AI Agents

Each agent is a standalone service. Multi-provider, per-task model override and hard budget cap built in.

Recruitment

Full cycle from screening to offer

analyze_resume — scoring + red flags

generate_assignment — tailored test task

questions_for — per interview type

summarize_interview — TL;DR from transcript

compare_candidates — side-by-side

recommend — hire / pass + reasoning

offer_letter — in candidate's language

Retention

Early risk detection

burnout_brief — risk by KPI + leave

suggest_leave_window — best dates

kpi_brief — performance summary

meeting_agenda — context-aware 1-on-1

compensation_review — market data

exit_risk_brief — early warning signal

Onboarding

From day 1 to end of probation

onboarding_plan — 90-day milestones

welcome_letter — day 1 greeting

mentor_match — by skills + tenure

probation_review — evaluation

knowledge_transfer_plan

replacement_brief — auto job opening

Documents

OCR + Vision + smart summaries

document_summary — TL;DR of contracts

document_extract_assist — Vision API

dictionary_seed — populate from prompt

company_bootstrap — chat-based schema design

Screenshots

Recruitment kanban — drag-drop pipeline with AI scoring
Recruitment kanban — drag-drop pipeline with AI scoring
KPI Dashboard — assignments + trend + AI brief
KPI Dashboard — assignments + trend + AI brief
Interview calendar — FullCalendar 6
Interview calendar — FullCalendar 6
Conversion funnel + recruiter performance
Conversion funnel + recruiter performance
Slack webhook + one-click Telegram
Slack webhook + one-click Telegram
AI provider — 7 presets + custom
AI provider — 7 presets + custom

Install in 2 minutes

One bash command. Generates secrets, builds the image, spins up db+app+worker.

git clone https://github.com/dripips/rubby-hrms.git cd rubby-hrms ./scripts/install.sh

Production

docker compose -f docker-compose.prod.yml up -d

Development

bundle install && bin/rails db:setup && bin/dev

Have a project or idea?

Write to me — let's discuss the task and find the best solution.