Yeti Jobs is a full-stack job portal platform built on the PERN stack — PostgreSQL, Express, React, and Node.js. It brings together job seekers, recruiters, and platform administrators under a single unified system with role-based access control, ATS résumé scoring, full-text job search, file storage via Supabase, and automated background tasks powered byDocumentation 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.
node-cron. Whether you’re searching for your next opportunity, managing a company’s hiring pipeline, or overseeing the entire platform, Yeti Jobs provides a purpose-built experience for every role.
Who Is Yeti Jobs For?
Yeti Jobs is designed around three distinct user roles, each with their own set of capabilities and access boundaries enforced at the client, server, and database levels.Job Seekers
Search and browse job listings, apply or withdraw applications, bookmark jobs, upload résumés and profile pictures, receive ATS scoring and feedback, view company profiles, and manage a personal notifications panel.
Recruiters
Create, edit, and delete job postings under a company, manage all applicants and move them through hiring stages (applied → shortlisted → hired / rejected), view company dashboard stats, and manage company followers.
Admins
Assign users to companies, create and update company records, access a full company overview dashboard, and view platform-wide statistics including total jobs, applications, open listings, and followers.
Tech Stack
Every layer of Yeti Jobs is built with production-proven, open-source technology. The table below maps each tool to its role in the system.| Layer | Technology | Version |
|---|---|---|
| Frontend UI | React | 19.2.0 |
| Styling | TailwindCSS | 4.2.1 |
| Routing | React Router | 7.13.1 |
| HTTP Client | Axios | 1.13.5 |
| Runtime | Node.js | LTS |
| API Framework | Express | 5.2.1 |
| Database | PostgreSQL (raw SQL) | 15 |
| ORM / Query | pg driver | 8.18.0 |
| File Storage | Supabase Storage | — |
| Containerisation | Docker / Docker Compose | — |
| Frontend Deploy | Vercel | — |
| Backend Deploy | Render | — |
Key Capabilities
- Role-Based Access Control (RBAC) — guest, recruiter, and admin roles enforced across the client routing layer, Express middleware chain, and PostgreSQL constraints simultaneously.
- ATS Résumé Scoring — résumés are parsed with
pdf-parseand scored by the Groq AI API (GROK_API), returning a numeric score and structured feedback stored in theats_scoretable. - Full-Text Job Search — a GIN index on the
jobs.search_titletsvector column replaces slowILIKEprefix queries for sub-millisecond search at scale. - JWT Authentication — stateless JSON Web Tokens stored in HTTP-only cookies with configurable expiry (
MAXAGE), signed withJSON_SECRET_KEY. - Email Verification & Password Reset — Nodemailer sends verification and reset codes with strict rate limiting (2 req/min) to prevent abuse.
- Automated Job Expiry — a
node-crontask runs every night at midnight and closes any job posting older than 30 days. - Supabase File Storage — résumés, profile pictures, and company logos are uploaded directly to Supabase Storage buckets; public URLs are persisted in the database.
- Swagger API Documentation — interactive API explorer available at
/api/v1/swagger. - Rate Limiting & Security Headers —
express-rate-limitenforces 200 req/min globally;helmetstripsX-Powered-Byand adds security response headers against XSS and other vectors. - Pagination — job listings and company pages return paginated results to keep payload size bounded.
Explore Further
Quickstart
Clone the repo, configure your environment variables, run migrations, and have the full stack running locally in under 10 minutes.
Architecture
Deep-dive into the layered PERN architecture, MVC backend structure, PostgreSQL schema design, and third-party service integrations.
A live demo of Yeti Jobs is deployed at yeti-jobs.vercel.app. The backend API and Swagger UI are available at yeti-jobs.onrender.com/api/v1/swagger. Note that the Render free tier may experience a cold-start delay of up to 30 seconds after a period of inactivity.