Build a custom Human Resource Management System (HRMS)


Ninox is a powerful platform that can be used to develop custom business applications. I specialize in the development of Ninox applications for Human Resources, CRM and Project / Process Management. In this article I am going to explore using Ninox as your HRMS (Human Resources Management System).

Before getting into the details, I thought it might be a good idea to go over the areas that are typically covered by this type of solution. The list below should give you an idea of the scope of a typical HRMS:

Scope of an HRMS

  • Personal and Organisational Details / Reporting Structures
  • Recruitment / Applicant Tracking
  • Benefits and Salary
  • Absence and Holiday Management / Requests and Approvals
  • Employee Development - Appraisals, Training Courses, bookings, reviews
  • Education / Qualifications and Skills
  • Alerting
  • Right To Work

As you can see, HR systems cover a wide range of subjects (and let’s not forget Payroll which some may also include)! In the following sections I’m going to cover some of the basic principles and show how this has been implemented in my own app, KasPer Pro for Ninox, which is available to download here to get you started.

Setting up Personal Details and Reporting Structures in Ninox

The starting point for an HR applications tend to be setting up a People (Employee, Team Member) table which contains all the details of the people in the organisation. Nothing wrong with this of course - but it is usually a mistake to include information about who a person reports to (i.e. a direct link to another People record) here.

Ninox Screenhot

Why, I hear you ask? It’s simple really, should a manager leave or change jobs, it’s likely that all their previous reports are now reporting to their replacement. This leads to you needing to update quite a few records (which is often forgotten) and your data can become out of date quickly.

So my first recommendation is to create a ‘Jobs’ table in your  database and configure reporting via Jobs - i.e. one Job reports to another Job. You can then use Ninox’s amazing formula fields to show a person’s manager on their records like this:

Job.'Reports To'.People.'Full Name (Natural)'

And your staff’s job related information might look something like the screenshot (above). With the Manager(s) field calculated using the formula above along with their department which is also calculated based on their Job.

Managing Absence with Ninox

This is often one of the most pressing needs people have for an HRMS solution - managing holidays and absence well can have a big impact for any business. However, whilst this sounds simple, there are some complexities which shouldn’t be underestimated:

  • Many businesses have more than one set of Leave rules / entitlements
  • Staff have differing working hours / patterns - often working different numbers of hours on different days of the week
  • Public holidays (or Bank Holidays) need to be considered
  • People may carry over some leave from one year to the next
  • Leave entitlement may be accrued over time
  • There needs to be a workflow for requesting and approving leave

From this, it’s clear that any solution will need somewhere to describe leave rules, a record of public holidays, a way to hold an employee’s working pattern and carry over etc. I also recommend that records are generated and maintained for each day of each period of leave - in other words, when we enter a period of leave with a start and end date, the system automatically generates a record for each day with the type of leave and number of hours. Without an Absence Days table, it’s very hard to answer questions such as ‘who is off today’ or determine the amount of leave taken between any two dates.

This all sounds very complex - and it is - but Ninox’s language makes it much simpler than any other platform that I have used over the years. In terms of the implementation of this in my KasPer Pro template, I use the following tables (in addition to the basic People table) for leave management:

  • Leave Request
  • Request Days
  • Absences
  • Absence Days
  • Leave Rules
  • Public Holiday Set (to allow for more than one jurisdiction)
  • Public Holiday Dates
  • Leave Accruals

The following screenshot is most of the Absence tab from the employee record within KasPer Pro:

In addition to the basics of absence calculations and reporting, there is also a need to implement a request process and I chose to do this by having a separate table for these in the database. The main reason for doing this is so that it’s possible to create an Employee user type and limit their access to the system - one of the things they can see is the Leave Requests - and only their own records. Their leave authoriser (usually their Manager) is then emailed and can log into the system to authorise the request.

Employee Development with Ninox

If you’re looking to streamline your Employee Development processes (generally Training and Appraisal), implementing this in Ninox can be fairly simple - perhaps just a simple table to hold details of the training people have had and another to record simple appraisal forms.

However, I have often found that companies have more than one type of appraisal - some where only a few general questions are asked, others where objectives may be set or reviewed etc. In KasPer Pro for Ninox, I have therefore implemented a facility for a user to create multiple types of appraisal and configure them using a set of parameters:

Ninox Screenhot

Users can create their own questions which can have ratings and/or text based responses as well as general manager and employee comments and objective setting. Dependent upon which options are selected, different elements of the screen will be displayed for any particular appraisal record:

Ninox Screenhot

Standardising Processes with Checklists

In our heavily regulated world, it’s increasingly important to use documented and standardised HR processes. A good way to do this is to use standard Checklists for things like new hires, leavers and other situations where adherence to legislation and policy are vital. Setting this up in Ninox proved to be relatively simple.

In KasPer Pro you are able to create standard process templates which can have any number of steps - each of which can have rules to allocate them and to determine the target date. Setting up a checklist process then creates tasks for relevant users and alerts them to the fact:

Ninox Screenhot

What about all the other areas?

HR applications cover a huge range of areas beyond what was covered above. The implementation of these areas can be streamlined and completed in a fraction of the time on the Ninox platform.

Purchase Ninox today and receive the premium KasPer Pro template (125€ value) via email.
Purchase Ninox


Ninox is a fantastic tool to build an HRMS - the ease with which you can build tables and forms together with the tremendous flexibility of the platform makes it ideal for this type of solution. The KasPer Pro HRMS template can help you hit the ground running, and can be easily modified to include your own unique requirements.

Already using Ninox? Download the basic version of KasPer Pro free
Download The Basic Version

About Ninox

Ninox is a collaborative, cloud-based platform for business teams. We empower users to build business applications and automate back office workflows with drag and drop tools.