Schemas

Schemas

Database reference

Schema documentation

Complete data model for the HRMS platform: multi-tenant organizations, workforce records, payroll, billing, recruitment, and integrations. Use this reference when designing APIs, migrations, or reports.

Tables
34
Columns
428
Domains
8

How tables connect

  • organizations is the tenant root. Nearly every table includes organization_id.
  • users handle authentication; employees optionally link via user_id.
  • departments, designations, and locations structure the workforce; employees.manager_id forms a self-referential hierarchy.
  • Recruitment flows from job_descriptions jobs job_applications with pipeline_stages and history tables for audit.
  • Billing uses global billing_plans; each org has subscriptions and invoices.

Organization & access

Tenant boundary, company profile, and authenticated users who operate the HRMS.

organizations

Root tenant record. Every other business table is scoped by organization_id.

15 columns
ColumnType
id
PK

Auto-increment

int
name
varchar
email
varchar
phone
varchar
website
varchar
industry
varchar
company_size
varchar
street_address
varchar
city
varchar
state
varchar
country
varchar
postal_code
varchar
logo_url
varchar
created_at
datetime
updated_at
datetime

users

Login accounts and preferences. Linked to employees when a user is also staff.

17 columns1 FK
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
first_name
varchar
last_name
varchar
email
Unique
varchar
phone
varchar
password_hash
varchar
role
varchar
status
varchar
is_admin
boolean
email_notifications
boolean
marketing_opt_in
boolean
two_factor_enabled
boolean
last_login
datetime
preferences
json
created_at
datetime
updated_at
datetime

Workforce structure

Org units, physical sites, roles, teams, and the employee master record.

departments

Organizational units within a company.

7 columns2 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
name
varchar
description
text
manager_id
employees.id

Department head

int
created_at
datetime
updated_at
datetime

locations

Offices, branches, or remote hubs used for attendance and assignment.

11 columns1 FK
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
name
varchar
address
varchar
city
varchar
state
varchar
country
varchar
postal_code
varchar
type
varchar
created_at
datetime
updated_at
datetime

designations

Job titles or grades, optionally tied to a department.

7 columns2 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
name
varchar
description
text
department_id
departments.id
int
created_at
datetime
updated_at
datetime

teams

Cross-functional or project teams with an optional people manager.

7 columns2 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
name
varchar
manager_id
employees.id
int
description
text
created_at
datetime
updated_at
datetime

team_members

Many-to-many membership between teams and employees.

5 columns2 FKs
ColumnType
id
PK

Auto-increment

int
team_id
teams.id
int
employee_id
employees.id
int
role
varchar
joined_at
datetime

employees

Canonical HR record: personal, employment, payroll, and compliance fields.

43 columns6 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
user_id
users.id
int
employee_code
Unique
varchar
first_name
varchar
last_name
varchar
email
varchar
personal_email
varchar
phone
varchar
dob
date
gender
varchar
marital_status
varchar
blood_group
varchar
nationality
varchar
department_id
departments.id
int
designation_id
designations.id
int
employment_type
varchar
joining_date
date
work_location
varchar
location_id
locations.id
int
shift
varchar
branch
varchar
manager_id
employees.id

Self-referential reporting line

int
status
varchar
address
varchar
city
varchar
state
varchar
postal_code
varchar
pan_number
varchar
bank_name
varchar
account_number
varchar
ifsc_code
varchar
ctc
decimal
salary
decimal
emergency_contact_name
varchar
emergency_contact_relation
varchar
emergency_contact_phone
varchar
profile_photo_url
varchar
resume_url
varchar
pan_card_url
varchar
aadhaar_card_url
varchar
created_at
datetime
updated_at
datetime

employee_documents

Uploaded files and metadata attached to an employee profile.

7 columns2 FKs
ColumnType
id
PK

Auto-increment

int
employee_id
employees.id
int
type
varchar
url
varchar
description
text
uploaded_by
users.id
int
uploaded_at
datetime

Payroll

Monthly payroll runs and per-employee line items.

payroll_batches

A payroll cycle for a given month and year for the organization.

13 columns2 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
name
varchar
month
int
year
int
generated_on
datetime
pay_date
date
total_employees
int
total_amount
decimal
status
varchar
created_by
users.id
int
created_at
datetime
updated_at
datetime

payroll_entries

Computed pay for one employee within a batch.

15 columns2 FKs
ColumnType
id
PK

Auto-increment

int
payroll_batch_id
payroll_batches.id
int
employee_id
employees.id
int
attendance_days
int
overtime_hours
decimal
leaves
int
base_salary
decimal
deductions
decimal
bonus
decimal
custom_fields
json
net_salary
decimal
status
varchar
notes
text
created_at
datetime
updated_at
datetime

Finance & expenses

Company spend tracking with hierarchical categories.

expense_categories

Nested chart of expense types per organization.

7 columns2 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
name
varchar
description
text
parent_category_id
expense_categories.id

Self-referential parent

int
created_at
datetime
updated_at
datetime

expenses

Individual expense claims or company purchases.

16 columns3 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
category_id
expense_categories.id
int
title
varchar
description
text
amount
decimal
currency
varchar
expense_date
date
status
varchar
added_by
users.id
int
vendor
varchar
payment_method
varchar
receipt_url
varchar
approval_date
date
created_at
datetime
updated_at
datetime

Billing & subscriptions

SaaS plans, tenant subscriptions, invoices, and stored payment methods.

billing_plans

Global catalog of subscription tiers and feature flags.

10 columns
ColumnType
id
PK

Auto-increment

int
name
varchar
description
text
cycle
varchar
price
decimal
currency
varchar
status
varchar
features
json
created_at
datetime
updated_at
datetime

subscriptions

Active or historical plan assignment for an organization.

13 columns3 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
plan_id
billing_plans.id
int
start_date
date
end_date
date
next_billing_date
date
amount
decimal
currency
varchar
status
varchar
billing_email
varchar
payment_method_id
payment_methods.id
int
created_at
datetime
updated_at
datetime

invoices

Billing documents generated from subscriptions.

13 columns2 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
subscription_id
subscriptions.id
int
invoice_number
varchar
invoice_date
date
due_date
date
amount
decimal
currency
varchar
status
varchar
payment_method
varchar
transaction_reference
varchar
created_at
datetime
updated_at
datetime

payment_methods

Tokenized cards or wallets saved for billing.

12 columns2 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
user_id
users.id
int
provider
varchar
card_brand
varchar
card_last4
varchar
expiration_month
int
expiration_year
int
billing_address
varchar
status
varchar
created_at
datetime
updated_at
datetime

Operations

In-app messaging, leave management, and calendar events.

inbox_messages

Internal notifications and messages tied to users or employees.

13 columns3 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
sender_name
varchar
sender_email
varchar
recipient_user_id
users.id
int
subject
varchar
body
text
type
varchar
status
varchar
unread
boolean
related_employee_id
employees.id
int
created_at
datetime
updated_at
datetime

leave_requests

Time-off requests with approval workflow.

14 columns3 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
employee_id
employees.id
int
leave_type
varchar
start_date
date
end_date
date
total_days
int
status
varchar
reason
text
manager_id
employees.id
int
requested_at
datetime
approved_at
datetime
created_at
datetime
updated_at
datetime

meeting_events

Scheduled meetings with participants stored as JSON.

13 columns2 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
title
varchar
description
text
start_time
datetime
end_time
datetime
organizer_id
users.id
int
participants
json
location
varchar
meeting_link
varchar
status
varchar
created_at
datetime
updated_at
datetime

Recruitment & ATS

Job descriptions, postings, candidates, applications, pipelines, and interviews.

job_descriptions

Authoring workspace for JD content before publishing as a job.

31 columns3 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
creator_id
users.id
int
title
varchar
department_id
departments.id
int
experience_level
varchar
employment_type
varchar
work_mode
varchar
role_focus
varchar
role_level
varchar
company_stage
varchar
jd_style
varchar
location
varchar
salary_range
varchar
openings
int
notice_period
varchar
education
varchar
industry
varchar
reporting_to
varchar
interview_process
varchar
experience_years
varchar
hiring_priority
varchar
shift_timing
varchar
skills
json
technical_stack
json
benefits
json
manual_description
text
published
boolean
published_at
datetime
created_at
datetime
updated_at
datetime

jobs

Published requisitions candidates can apply to.

32 columns4 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
job_description_id
job_descriptions.id
int
title
varchar
company_name
varchar
department_id
departments.id
int
location
varchar
job_type
varchar
salary_range
varchar
openings
int
views_count
int
applicants_count
int
match_score
int
status
varchar
description
text
responsibilities
text
requirements
text
benefits
text
experience_level
varchar
education
varchar
industry
varchar
notice_period
varchar
interview_process
varchar
hiring_priority
varchar
work_mode
varchar
employment_type
varchar
reporting_to
varchar
created_by
users.id
int
published_at
datetime
closed_at
datetime
created_at
datetime
updated_at
datetime

job_skills

Required or preferred skills for a job posting.

4 columns1 FK
ColumnType
id
PK

Auto-increment

int
job_id
jobs.id
int
name
varchar
proficiency
varchar

job_benefits

Benefit lines associated with a job.

3 columns1 FK
ColumnType
id
PK

Auto-increment

int
job_id
jobs.id
int
benefit
varchar

candidates

Talent pool records independent of a specific application.

15 columns1 FK
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
first_name
varchar
last_name
varchar
email
varchar
phone
varchar
location
varchar
current_company
varchar
current_ctc
decimal
expected_ctc
decimal
experience_years
decimal
resume_url
varchar
profile_summary
text
created_at
datetime
updated_at
datetime

candidate_skills

Skills extracted or entered for a candidate.

4 columns1 FK
ColumnType
id
PK

Auto-increment

int
candidate_id
candidates.id
int
skill
varchar
proficiency
varchar

job_applications

Links a candidate to a job with pipeline stage and score.

13 columns4 FKs
ColumnType
id
PK

Auto-increment

int
job_id
jobs.id
int
candidate_id
candidates.id
int
assigned_recruiter_id
users.id
int
stage_id
pipeline_stages.id
int
status
varchar
score
int
source
varchar
applied_at
datetime
last_updated
datetime
resume_url
varchar
cover_letter
text
notes
text

pipeline_stages

Reusable stage definitions for hiring workflows.

10 columns1 FK
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
name
varchar
description
text
default_steps
json
order_index
int
stage_type
varchar
is_active
boolean
created_at
datetime
updated_at
datetime

hiring_pipelines

Pipeline instance bound to a specific job requisition.

8 columns3 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
name
varchar
job_id
jobs.id
int
created_by
users.id
int
status
varchar
created_at
datetime
updated_at
datetime

pipeline_stage_assignments

Ordered stages within a hiring pipeline.

6 columns2 FKs
ColumnType
id
PK

Auto-increment

int
pipeline_id
hiring_pipelines.id
int
stage_id
pipeline_stages.id
int
sequence
int
custom_steps
json
is_custom
boolean

candidate_stage_history

Audit trail when an application moves between stages.

8 columns3 FKs
ColumnType
id
PK

Auto-increment

int
application_id
job_applications.id
int
stage_id
pipeline_stages.id
int
changed_by
users.id
int
from_status
varchar
to_status
varchar
note
text
changed_at
datetime

interview_schedules

Interview slots linking candidates, jobs, and interviewers.

14 columns5 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
candidate_id
candidates.id
int
job_application_id
job_applications.id
int
interviewer_id
employees.id
int
scheduled_at
datetime
duration_minutes
int
mode
varchar
meeting_link
varchar
status
varchar
notes
text
created_by
users.id
int
created_at
datetime
updated_at
datetime

Integrations & automation

Third-party connections and workflow automations.

integrations

Connected external systems with sync metadata.

10 columns1 FK
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
name
varchar
category
varchar
status
varchar
connection_metadata
json
last_sync_at
datetime
automations_count
int
created_at
datetime
updated_at
datetime

automation_workflows

Trigger/action rules driven by integration events.

12 columns2 FKs
ColumnType
id
PK

Auto-increment

int
organization_id
organizations.id
int
integration_id
integrations.id
int
name
varchar
trigger_event
varchar
actions
json
status
varchar
success_rate
decimal
pending_actions
int
last_run_at
datetime
created_at
datetime
updated_at
datetime