Here’s a breakdown of the Talentryx API: A Scalable Job Platform Engine with TypeScript
- Backend Framework: Node.js (with Express) with TS
- Database: MongoDB (local and or MongoDB Atlas)
- ORM: Mongoose
- File Storage: Cloudinary (for resumes and profile pictures)
- API Documentation: Swagger
-
Authentication & Authorization:
- Implement JWT-based authentication.
- Two user roles: Admin (Company) and User (Job Seeker).
- Admin can post jobs, update job listings, and delete them.
- Users can create profiles, upload resumes, browse, and apply for jobs.
-
Job Listings:
- CRUD operations for job listings.
- Jobs should have fields like:
- Title
- Company name
- Job description
- Location
- Job type (Full-time, Part-time, Contract)
- Salary range (optional)
- Application deadline
- Users can filter and search jobs by category, location, and job type.
-
User Profiles:
- CRUD operations for user profiles.
- Users can upload resumes (stored on Cloudinary) and profile pictures.
- A user profile contains:
- Name
- Phone number
- Resume URL
- Profile picture URL
- Work experience and skills (optional)
- etc
-
Job Applications:
- Users can apply for jobs by submitting their resumes.
- An admin should be able to view a list of all applications for their posted jobs.
-
Admin Dashboard:
- Admins can view all job listings they’ve posted.
- They can also view the applicants for each job, along with their resumes and contact details.
- They can take other actions on the application such as rejecting, proceeding to the next stage (keep it accepted at this stage to avoid complexities)
-
Cloudinary Integration:
- Upload resumes and profile pictures to Cloudinary.
- Store URLs for uploaded files in MongoDB.
-
API Documentation:
- Use Swagger for full API documentation, including endpoints, request/response bodies, and authentication details.
-
Database Schema (using Mongoose):
- User model related to job applications.
- Job Listing model with fields for job details.
- Application model linking users to jobs.
- etc
- Add pagination to the job listing and application endpoints.