Skip to main content
CompanyFlow is a robust Human Resource Management System (HRMS) and Enterprise Resource Planning (ERP) backend designed to streamline organizational operations. Built with Go, it provides a powerful, scalable multi-tenant architecture to manage companies, employees, departments, roles, leave requests, memos, and approval workflows.

What is CompanyFlow?

CompanyFlow offers a complete suite of tools for managing your organization’s human resources and operational workflows. Whether you’re managing a single company or multiple tenants, CompanyFlow provides the flexibility and security you need.

Quick Start

Get up and running with CompanyFlow in minutes

Installation

Set up your development environment and run the server

API Reference

Explore all available endpoints and their parameters

Authentication

Learn how to secure your API requests with JWT

Key Features

Multi-Tenant Architecture

Support for multiple companies (tenants) within a single instance, ensuring complete data isolation and security

Employee Management

Full CRUD operations for employee records, including bulk upload capabilities for efficient onboarding

Role-Based Access Control

Flexible role and permission system to manage user access and maintain security across your organization

Organization Structure

Manage departments, designations, and employee levels to reflect your organizational hierarchy

Leave Management

Comprehensive system for requesting, approving, and tracking employee leaves

Memo & Approvals

Internal communication via memos with integrated approval workflows

Audit Logging

Track system activities for compliance, monitoring, and security audits

RESTful API

Clean and documented API endpoints with interactive Swagger documentation

Technology Stack

CompanyFlow is built with modern, production-ready technologies:
  • Language: Go 1.24.0
  • Database: PostgreSQL with pgx/v5 driver
  • Router: Gorilla Mux
  • Authentication: JWT (JSON Web Tokens) with golang-jwt/jwt/v5
  • Documentation: Swagger/OpenAPI with swaggo
  • Configuration: Environment-based with godotenv
  • Password Security: bcrypt hashing with golang.org/x/crypto
CompanyFlow automatically runs database migrations on startup, ensuring your schema is always up to date.

Core Capabilities

Multi-Tenant Support

CompanyFlow is designed from the ground up to support multiple companies in a single deployment. Each tenant’s data is completely isolated, providing security and compliance for organizations managing multiple entities.

Security First

  • JWT-based authentication for all protected routes
  • Bcrypt password hashing for employee credentials
  • Configurable CORS middleware for trusted origins
  • Role-based access control (RBAC) for granular permissions

Developer Experience

  • Interactive Swagger documentation at /swagger/index.html
  • Consistent RESTful API design
  • Comprehensive error responses
  • Built-in pagination for list endpoints
  • Health check endpoint for monitoring

Getting Started

1

Install Prerequisites

Ensure you have Go 1.24+, PostgreSQL 14+, and Git installed on your system.
2

Set Up Environment

Clone the repository and configure your environment variables.
3

Run the Server

Start the CompanyFlow server and access the API documentation.
4

Make Your First Request

Authenticate and start interacting with the API.
Ready to get started? Head over to the Quick Start guide to make your first API call.

Support & Resources

Build docs developers (and LLMs) love