Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/tech-dipesh/yeti-Jobs/llms.txt

Use this file to discover all available pages before exploring further.

Yeti Jobs splits its configuration into two independent .env files — one for the Express backend and one for the Vite React frontend. Every secret and runtime setting lives in these files so no credentials are hard-coded in source. The sections below document every variable, its expected value, and why it is needed.
Never commit .env files to version control. Both backend/.env and frontend/.env should be listed in your .gitignore. Use the provided .env.example files as templates and distribute secrets through a secure channel or your hosting platform’s environment variable dashboard.

Backend

The backend reads its environment at startup via dotenv. All variables below must be present in backend/.env before you run node server.js or start the Docker container.
backend/.env
DATABASE_PASSWORD=PASSWORD_HERE

# Supabase configuration
URL_SUPABASE_CONNECT=SUPABASE_URL
ANON_KEY_SUPABASE=ANON_KEY

# Nodemailer secret keys
NODEMAILER_MY_EMAIL=YOUR_EMAIL
NODEMAILER_MY_PASSWORD=EMAIL_APP_PASSWORD
NODEMAILER_MY_HOST=NODEMAILER_HOST_URL

JSON_SECRET_KEY=YOUR_SECRET_KEY

CLIENT_BASE_URL=FRONTEND_URL
PORT=BASE_PORT
MAXAGE=TIME_IN_SECONDS

GROK_API=API_GROK
DATABASE_PASSWORD
string
required
The full PostgreSQL connection string (or password) used by the pg Pool.
In production this is your Supabase connection pooler URL (port 6543), e.g.:
postgresql://postgres.[ref]:[password]@aws-0-us-east-1.pooler.supabase.com:6543/postgres
Locally this is your Postgres password string or a postgres://... URI.
The pool is configured with ssl: { rejectUnauthorized: false } so the Supabase TLS certificate is accepted without a CA bundle.
URL_SUPABASE_CONNECT
string
required
Your Supabase project URL, found in Supabase → Project Settings → API.
Example: https://xyzcompany.supabase.co
Used by the @supabase/supabase-js SDK to route file-storage and auth requests to the correct project.
ANON_KEY_SUPABASE
string
required
The Supabase anon / public API key for your project, found alongside URL_SUPABASE_CONNECT.
This key is used server-side to interact with Supabase Storage (uploading resumes and profile pictures). It carries only the row-level security permissions defined in your Supabase project.
NODEMAILER_MY_EMAIL
string
required
The sender email address used by Nodemailer for outgoing mail (email verification, password reset).
Example: noreply@yourdomain.com or a Gmail address.
NODEMAILER_MY_PASSWORD
string
required
The application password (not your account password) for the sender email.
For Gmail, generate one at Google Account → Security → App Passwords. For other providers check their SMTP documentation.
NODEMAILER_MY_HOST
string
required
The SMTP host for outgoing email.
Example: smtp.gmail.com for Gmail, smtp.sendgrid.net for SendGrid.
JSON_SECRET_KEY
string
required
The secret used to sign and verify JWT access tokens (jsonwebtoken).
Must be a random, high-entropy string — minimum 32 characters recommended. Never reuse this value across environments.
CLIENT_BASE_URL
string
required
The origin URL of the React frontend. Used by the cors middleware to whitelist exactly one allowed origin and reject all other cross-origin requests.
Local development: http://localhost:5173
Production: https://yeti-jobs.vercel.app (or your own domain)
PORT
number
default:"3000"
The TCP port the Express server listens on.
Default 3000. Set to a different value if port 3000 is already in use on your machine.
MAXAGE
number
required
JWT cookie max-age in seconds. Controls how long an authenticated session stays valid.
Example: 86400 (24 hours), 604800 (7 days).
GROK_API
string
required
API key for the Groq inference API, used by the ATS (Applicant Tracking System) scoring feature to analyse uploaded resumes and return structured feedback.
Obtain a key at console.groq.com. The backend uses the openai SDK pointed at Groq’s API endpoint.

Frontend

The Vite frontend has a single environment variable. Vite only exposes variables prefixed with VITE_ to the browser bundle, so this is the only one you need.
frontend/.env
VITE_SERVER_URL=BACKEND_SERVER_URL
VITE_SERVER_URL
string
required
The base URL of the Express backend, used by Axios for every API request.
Local development: http://localhost:3000
Production (Render): https://yeti-jobs.onrender.com
Do not include a trailing slash.
Vite bakes VITE_SERVER_URL into the static bundle at build time. If you change the backend URL after building, you must trigger a rebuild — updating the environment variable alone is not enough.

Build docs developers (and LLMs) love