Human resources in a small or growing business is one of those functions that starts in spreadsheets and stays there longer than it should. Employee records in one sheet, leave requests in another, onboarding checklists in a shared document that nobody remembers to update, performance reviews in email threads, training records nowhere in particular.
It works — until it does not. Until you need to answer a simple question like “how many employees are currently on leave this week” and it takes forty-five minutes to compile the answer. Until a new hire’s equipment request falls through the gap between three different tools. Until a performance review is due and nobody has the previous review on hand to reference.
A complete HR system in Notion solves these problems not by adding complexity, but by putting everything in one place and connecting it properly. This post builds that system database by database.
To follow along, you need a Notion workspace. Create your free account here. If you want to skip the build and start from a complete system, the HR Management, Recruitment and Onboarding template has everything below already configured.
Why HR Systems in Notion Fail — and Why They Do Not Have To
The HR Notion systems that fail usually fail for one of two reasons. Either they are too simple — a single database with employee names and start dates, useful as a directory but not as a system — or they are too ambitious, built with fifteen databases that nobody maintains because updating them requires too much effort relative to the benefit.
The right system has seven databases. Enough to cover every core HR function. Connected enough that answering cross-functional questions — which employees are in their first ninety days and have not completed onboarding — requires one filter rather than a cross-reference between multiple sources. Simple enough that an HR administrator or office manager can maintain it without becoming a Notion expert.
The Architecture: Seven Databases, One System
The seven databases are: Employee Directory, Applicant Tracker, Onboarding Checklists, Leave and Absence Tracker, Performance Reviews, Training and Development Tracker, and Benefits and Equipment Manager. The Employee Directory is the hub — every other database connects back to it through a Relation property, so you can open any employee record and see their full history across all HR functions from one page.
Database One: The Employee Directory
The Employee Directory is the foundation. Every employee is one row. Properties: Full Name (title), Department (Select), Role (text), Employment Type (Select: Full-time, Part-time, Contractor, Intern), Start Date, Manager (Relation — self-referential, pointing back to other employees in the same database), Status (Select: Active, On Leave, Probation, Terminated), and Personal Email and Phone.
Add calculated properties: a Tenure formula using floor(dateBetween(now(), prop("Start Date"), "years")) shows years of service automatically. A Probation End Date formula calculates ninety days from Start Date for employees on Probation status. An Anniversary formula checks whether the employee’s work anniversary is within the next thirty days — useful for recognition.
Views: Active Employees (filtered to Status = Active), By Department (grouped by Department), Probation (filtered to Status = Probation), and New Starters (filtered to Start Date within the last ninety days). These four views answer the four most common directory questions without any manual filtering.
Database Two: The Applicant Tracker
The Applicant Tracker is your ATS — Applicant Tracking System — built in Notion. One row per applicant. Properties: Applicant Name (title), Role Applied For (Relation to a Job Openings database or a simple Select), Stage (Select: Applied, Screening, Interview, Assessment, Offer, Hired, Rejected), Source (Select: LinkedIn, Referral, Job Board, Direct, Agency), Assigned Interviewer (Person), Application Date, and Notes.
The Board view grouped by Stage is the primary view — a visual hiring pipeline showing every candidate at their current stage. Move a card from Screening to Interview by dragging it. Open any applicant card to see their full notes, interview feedback, and assessment results. When an applicant is hired, change their Stage to Hired and create a linked record in the Employee Directory with one click.
Add a Source Rollup to track where your best candidates come from. Filter the Hired view by Source and you will know whether LinkedIn, employee referrals, or job boards are producing the most successful hires — without any manual analysis.
Database Three: Onboarding Checklists
The Onboarding Checklists database has one row per new hire. Each row is a full Notion page containing a structured onboarding checklist — the same checklist for every new employee, generated from a database item template. The template includes sections for Day One (access setup, introductions, workspace tour), Week One (team meetings, system walkthroughs, initial projects), and the Ninety-Day Review (performance check-in, feedback session, goals confirmed).
The database properties are minimal: Employee (Relation to the Employee Directory), Start Date, Department, Onboarding Status (Select: Not Started, In Progress, Complete), and Completed Percentage (a Rollup counting checked items if you use a sub-database for tasks, or a manual Number property updated as sections are completed).
Add a Rollup to the Employee Directory counting each employee’s Onboarding Status. Any employee showing Not Started thirty days after their start date is flagged without any manual audit. The system surfaces the gap automatically.
Database Four: Leave and Absence Tracker
One row per leave request. Properties: Employee (Relation to Directory), Leave Type (Select: Annual, Sick, Parental, Compassionate, Unpaid, Public Holiday), Start Date, End Date, Duration in Days (formula: dateBetween(prop("End Date"), prop("Start Date"), "days") + 1), Status (Select: Requested, Approved, Rejected), and Approved By (Person).
The Calendar view is the primary view for this database — leave requests appear as date-range blocks on a calendar, making it immediately visible which employees are out on any given day and whether team members’ absences overlap. Add a filter for Status = Approved to show only confirmed leave, not pending requests.
Add a Rollup to the Employee Directory summing total approved leave days per employee for the current year. This gives you an instant leave balance reference without maintaining a separate tracker. Filter for employees with more than a set threshold of leave days remaining as a reminder to encourage leave usage before year-end.
Database Five: Performance Reviews
One row per review cycle per employee. Properties: Employee (Relation), Review Period (Select: Q1, Q2, Q3, Q4, Annual, Probation), Review Date, Reviewer (Person), Rating (Select: Exceeds Expectations, Meets Expectations, Needs Improvement), Goals Set for Next Period (text), and Status (Select: Scheduled, In Progress, Complete).
Each review record is a full Notion page containing the actual review document — a structured template with sections for achievements, areas for development, manager feedback, employee self-assessment, and goals for the next period. Built from a database item template so every review starts with the same structure.
The Timeline view shows upcoming reviews plotted by Review Date — making it easy to see which reviews are due this quarter and plan review meetings accordingly. A Rollup on the Employee Directory showing each employee’s most recent rating surfaces your highest and lowest performers at a glance from the directory view.
Database Six: Training and Development Tracker
One row per training item per employee. Properties: Employee (Relation), Training Name (title), Type (Select: Mandatory, Role-Specific, Professional Development, Compliance), Deadline, Completed Date, Status (Select: Not Started, In Progress, Complete, Overdue), Provider, and Cost.
The Overdue view — filtered to Deadline before today and Status not Complete — is the most operationally important view in this database. It surfaces training items that have been missed without any manual checking. A Rollup on the Employee Directory counting each employee’s incomplete mandatory training creates an automatic compliance tracker across your entire organisation.
Database Seven: Benefits and Equipment Manager
Two related databases: Benefits (health insurance, pension, transport allowances, gym memberships — one row per benefit per employee with renewal dates and values) and Equipment (laptop, phone, access cards, software licences — one row per item per employee with serial numbers and assigned dates).
Both connect to the Employee Directory through Relation properties. When an employee leaves (Status changes to Terminated), filter Equipment by that employee to see exactly what needs to be returned before their last day. Filter Benefits to see what subscriptions need to be cancelled. Offboarding becomes a checklist generated directly from the data rather than a process recreated from memory each time.
The HR Dashboard
A home dashboard page pulls linked views from every database: Active headcount (Employee Directory filtered to Status = Active), New starters this month, Leave this week (Leave Tracker filtered to the current week), Reviews due this quarter, Overdue training items, and Open job applications by stage. The complete operational picture of your people function, on one page, always current.
Privacy and Access Control in an HR Notion Workspace
HR data is sensitive. Salary information, performance ratings, personal contact details, and leave records should not be visible to the whole company. Manage this through Notion’s permission system: keep the HR workspace in a private section of the sidebar accessible only to HR administrators and senior management. Share individual pages — the Employee Directory without salary columns, the Onboarding Checklist for a specific employee’s manager — rather than granting full workspace access.
For very sensitive data (compensation, disciplinary records), use a separate private Notion workspace accessible only to the HR lead and relevant executives. The operational HR system described above can be shared more broadly; the sensitive records workspace stays strictly controlled.
Who This System Is For
This system works well for companies with five to one hundred employees where HR is managed by one to three people without dedicated HR software. It replaces spreadsheets and email threads with a connected system that answers cross-functional questions without manual data gathering.
Beyond one hundred employees or when compliance requirements demand audit trails, approval workflows, and integration with payroll systems, dedicated HRIS software becomes necessary. Notion is an excellent HR tool within its limits — and its limits are generous enough for most small and mid-sized businesses.
The HR Management, Recruitment and Onboarding template has all seven databases described in this post already built, connected, and documented — with a full user manual inside the template explaining each section. If you want to start using a complete HR system today rather than building it over several weeks, this is the fastest path. It also includes visual analytics dashboards for headcount, turnover rate, and training completion across your organisation.
Disclosure: This post contains affiliate links. If you sign up for Notion through the links in this post, we may earn a small commission at no extra cost to you. All opinions are our own.

0 Comments