Developer Setup
Getting Job-Easy running locally with its required services.
1. Prerequisites
- Node.js: v22.x (LTS)
- Database: PostgreSQL 16+ (running locally or via Docker)
- Package Manager: npm (v10+)
2. Environment Variables
Copy the template and fill in the secrets:
bash
cp .env.example .envCryptographic Keys Required
You must generate a secure 32-byte string for both
TOKEN_ENCRYPTION_KEY (AES-256-GCM for OAuth) and SESSION_SECRET. Use openssl rand -hex 32 to generate these. Never commit these to version control.3. Database Initialization
Apply migrations and run the base seed (which creates the admin user and default system settings):
bash
npm run db:reset4. Generating Demo Data
To test the UI with realistic loads (like GIN index search latency), run the demo data seeder. This will insert 10,000+ rows of companies, applications, and email logs.
bash
node scripts/seed-demo-data.mjsDo not run in Production
Never run the demo seeder against a production database. It intentionally bypasses Prisma validations to perform high-speed raw SQL bulk inserts.
5. Running the Application
Start the Next.js development server:
bash
npm run devThe application will be available at http://localhost:3000.
6. External Services Checklist
For full functionality, you must configure:
- Google Cloud Console: Create an OAuth Client ID for Web. Add
http://localhost:3000/api/auth/google/callbackto Authorized redirect URIs. To test Gmail Reply Sync locally, you will need a tool likengrokto expose your localhost to Google Cloud Pub/Sub webhooks. - Cloudinary: Create a Cloudinary account, get the URL, and ensure your upload preset requires
authenticatedaccess (for strict HMAC share token validation on resumes). - Resend: Create an API key. In development, you can use Resend's test domain (which only sends to the verified owner address).