JOB-EASY

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 .env

Cryptographic 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:reset

4. 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.mjs

Do 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 dev

The 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/callback to Authorized redirect URIs. To test Gmail Reply Sync locally, you will need a tool like ngrok to expose your localhost to Google Cloud Pub/Sub webhooks.
  • Cloudinary: Create a Cloudinary account, get the URL, and ensure your upload preset requires authenticated access (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).