Get your OpenATS development environment set up and create your first job posting in under 10 minutes.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/chamals3n4/OpenATS/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you begin, ensure you have the following installed:- Node.js (version 18 or higher) - Download here
- Git - Download here
- PostgreSQL database - We recommend Neon (free tier, no local install needed)
- Code editor - VS Code recommended
Installation
Clone the repository
Clone the OpenATS repository to your local machine:
Verify you’re in the OpenATS directory by running
ls - you should see api and web foldersInstall pnpm
OpenATS uses pnpm as its package manager. Install it globally:
Verify installation with
pnpm --versionInstall dependencies
Install dependencies for both the frontend and backend:Frontend (web):Backend (api):
Wait for all dependencies to install - this may take a few minutes
Configure environment variables
Set up environment variables for both applications.Frontend environment:Edit Edit
web/.env and configure your authentication settings (WSO2 Asgardeo).Backend environment:api/.env with your configuration:.env
Database URL Format:
- For Neon:
postgresql://user:password@host/database?sslmode=require - For local PostgreSQL:
postgresql://localhost:5432/openats
Ensure your DATABASE_URL is correctly configured - this is required for the next steps
Set up the database
Run database migrations and seed data from the Seed the database:This creates all necessary tables and inserts default hiring pipeline stages.
api directory:Generate and run migrations:Verify migrations completed successfully - you should see confirmation messages
Start the development servers
Run both the frontend and backend servers in separate terminal windows.Terminal 1 - Backend API:The API will start on The web app will start on
http://localhost:5000Terminal 2 - Frontend Web:http://localhost:3000Open
http://localhost:3000 in your browser - you should see the OpenATS interfaceCreating Your First Job Posting
Now that OpenATS is running, let’s create your first job posting.Access the application
Navigate to
http://localhost:3000 in your browser and sign in with your configured authentication provider.Fill in job details
Enter the following information:
- Job Title (e.g., “Senior Software Engineer”)
- Department (e.g., “Engineering”)
- Location (e.g., “Remote” or “San Francisco, CA”)
- Employment Type (Full-time, Part-time, Contract)
- Job Description (Responsibilities, requirements, etc.)
- Salary Range (Optional)
Configure hiring pipeline
The default hiring pipeline stages are automatically applied:
- Applied
- Screening
- Interview
- Offer
- Hired
Verification Steps
Ensure everything is working correctly:Backend API is running
Backend API is running
Visit
http://localhost:5000 - you should see an API response or Swagger documentation.Frontend is accessible
Frontend is accessible
Visit
http://localhost:3000 - you should see the OpenATS login page or dashboard.Database connection
Database connection
Check your terminal logs for the API server - there should be no database connection errors.
Job posting appears
Job posting appears
Navigate to the Jobs section and verify your newly created job posting is displayed.
Troubleshooting
Database connection failed
Database connection failed
Problem: Error connecting to PostgreSQL database.Solutions:
- Verify your
DATABASE_URLinapi/.envis correct - Ensure your database server is running
- For Neon, check that you’ve added
?sslmode=requireto the connection string - Test the connection using a PostgreSQL client
Port already in use
Port already in use
Problem: Error:
EADDRINUSE: address already in use :::3000 or :::5000Solutions:- Kill the process using the port:
- Or change the port in your configuration
Module not found errors
Module not found errors
Problem: Error:
Cannot find module 'X'Solutions:- Delete
node_modulesand reinstall: - Ensure you’re using the correct Node.js version (18+)
- Clear pnpm cache:
pnpm store prune
Migration errors
Migration errors
Problem: Database migration fails or tables not created.Solutions:
- Ensure your database is empty or drop existing tables
- Run migrations in order:
- Check database permissions - your user needs CREATE TABLE privileges
Authentication not working
Authentication not working
Problem: Cannot sign in or authentication redirects fail.Solutions:
- Verify WSO2 Asgardeo configuration in
web/.env - Check that callback URLs are correctly configured in your Asgardeo application
- Ensure your client ID and client secret are correct
- Clear browser cookies and try again
File upload errors
File upload errors
Problem: Cannot upload resumes or attachments.Solutions:
- Verify R2 configuration in
api/.env(if using Cloudflare R2) - Check that your R2 bucket exists and is accessible
- Verify access key credentials are correct
- Ensure your bucket has the correct CORS policy
Next Steps
Architecture
Understand the technical stack and system design
Creating Jobs
Learn how to create and manage job postings
API Reference
Explore the OpenATS API endpoints
Development Setup
Detailed development environment setup
Additional Resources
- Tech Stack: Next.js, Express.js, PostgreSQL, Drizzle ORM, TypeScript
- Authentication: WSO2 Asgardeo
- Storage: Cloudflare R2 (optional)
- Email: Resend (optional)