
Ornelle is a comprehensive hiring platform built from the ground up for flexibility, speed, ease and AI-assisted workflows.
-
Multi-workspace Support: Manage multiple organizations or teams with isolated workspaces
-
Career Pages: Simple, customizable career and opening pages
-
Application Management: Track and process applications with customizable workflows
-
Candidate Communication: Send and receive messages to and from candidates
-
Saved Views & Entities | Custom Fields | Advanced Filtering | Messaging Templates | Form Builder
-
Modern UI | API-First Design | File Handling | Self-hosted
-
And much more...
- Node.js (v22 recommended)
- pnpm (v8 or later)
- PostgreSQL (v14 or later)
- Redis (v6 or later)
- Clone the repository
git clone https://github.com/ornellehq/ornelle.git
cd ornelle
- Install dependencies
pnpm install
- Run the interactive setup script
node setup.js
This script will:
- Copy .env.sample files to .env files for all packages
- Guide you through configuring key environment variables with an interactive UI
- Run database migrations
Alternatively, you can manually configure:
cp packages/server/.env.sample packages/server/.env
cp packages/webapp/.env.sample packages/webapp/.env
cp packages/webpages/.env.sample packages/webpages/.env
# Edit the .env files with your settings
# Run migrations manually
cd packages/isomorphic-blocs
pnpm migrate:apply
cd ../..
- Start development servers
pnpm dev
The application should now be running on:
- Web App: http://localhost:5173
- API Server: http://localhost:3001
- Public Pages: http://localhost:4321
Ornelle is built as a monorepo with the following packages:
- webapp: Vite-based React frontend application
- server: Fastify backend API server
- webpages: Astro-powered public career pages
- isomorphic-blocs: Shared business logic and database schemas
- sdks: Generated API clients
- lib: Shared utilities
- webui-library: Reusable UI components
Ornelle supports two storage providers:
- Local Storage: Files are stored on the local filesystem (default)
- AWS S3/CloudFront: Files are stored in S3 with CloudFront for content delivery
To configure AWS storage:
# In packages/server/.env
Storage={"provider":"aws","aws":{"Bucket": "your-bucket-name", "Region": "your-region", "S3AccessKey": "your-access-key", "S3SecretKey": "your-secret-key", "CloudFrontPrivateKey":"your-private-key", "CloudFrontKeyPairId":"your-key-pair-id", "CloudFrontDomain":"your-cloudfront-domain"}}
More detailed documentation is available in the docs directory.
- Developer Guide
- Architecture Overview
- Deployment Guide (WIP)
- API Documentation (WIP)
Ornelle ATS is licensed under the GNU Affero General Public License v3.0.
This license requires that:
- You give credit to the original authors
- You disclose your source code when distributing the software
- If you modify the software and offer it as a network service, you must make the modified source code available to users of that service
We are working on deployment guides. Until then, Open-source Ornelle is suitable for testing and evaluation purposes.
For production use, you can try out the fully-hosted version of Ornelle available at ornelle.co, which is production-ready and includes all features of the open-source version and more.
Made with ❤️ by the Ornelle team