A full-stack recruitment platform that connects job applicants with companies, built for CS 509 (Team Maryland).
Production URL: http://recruit-me3.s3-website-us-east-1.amazonaws.com/
This URL is inactive due to it being very costly to maintain on AWS
Recruit.me is a comprehensive job recruitment platform that facilitates the hiring process between applicants and companies. The platform supports three user types:
- Applicants: Search for jobs, apply to positions, manage applications, and accept/reject offers
- Companies: Post job listings, review applicants, manage offers, and search for candidates by skills
- Admins: Generate reports and manage platform content
- Framework: Next.js 16.0.0 (React 19.2.0)
- Styling: Tailwind CSS 4
- Language: TypeScript
- Deployment: AWS S3 Static Website Hosting
- Runtime: AWS Lambda Functions (Node.js ES Modules)
- Database: MySQL (RDS)
- API: RESTful endpoints via API Gateway
recruit.me/
├── src/app/ # Next.js application pages
│ ├── applicant/ # Applicant-facing pages
│ ├── company/ # Company-facing pages
│ ├── admin/ # Admin pages
│ └── api/ # API route handlers
├── lambda-functions/ # AWS Lambda backend functions
│ ├── acceptOffer/
│ ├── applyToJob/
│ ├── createJob/
│ └── ... (30+ functions)
└── database/
└── schema.sql # MySQL database schema
- Node.js 18+ and npm
- MySQL database (local or RDS)
- AWS CLI configured (for Lambda deployment)
- Navigate to the frontend directory:
cd recruit.me- Install dependencies:
npm install- Run the development server:
npm run dev- Open http://localhost:3000 in your browser
- Create the database using the provided schema:
mysql -u your_username -p < recruit.me/database/schema.sql- Update database connection settings in
lambda-functions/config.mjs
- Navigate to the lambda functions directory:
cd recruit.me/lambda-functions- Install dependencies:
npm install- Package functions for deployment:
./package-lambdas.sh- Deploy to AWS Lambda (configure your deployment script as needed)
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
./package-lambdas.sh- Package all Lambda functions into ZIP files
Admin:
- Administrative features (TBD)
Company:
- Review Applicants for Job
Applicant:
- Accept Offer
Company:
- Activate Job
- Close Job
- Review Applicants for Job
- Offer Jobs
- Rescind Offer to Applicant
Applicant:
- Search Jobs
- Apply to Job
- Accept Offer
- Withdraw from Job
- Reject Offer from Company
Company:
- Register Company
- Review Company Profile
- Edit Company Profile
- Create Job
- Edit Job
Applicant:
- Register Applicant
- Review Profile
- Edit Profile
The database includes the following main entities:
- Companies: Company profiles and information
- Applicants: Applicant profiles and information
- Jobs: Job postings with status (Draft, Active, Closed)
- Applications: Application records linking applicants to jobs
- Skills: Centralized skills database
- Applicant Skills: Skills associated with applicant profiles
- Job Skills: Required skills for job postings
- Application Skills: Skills highlighted in specific applications
- Admin: Administrative user accounts
See recruit.me/database/schema.sql for the complete schema definition.
The backend consists of 30+ Lambda functions handling various operations:
registerApplicants- Applicant registrationregisterCompanies- Company registrationloginApplicants- Applicant loginloginCompany- Company login
getApplicant- Retrieve applicant profilegetCompany- Retrieve company profileeditApplicant- Update applicant profileeditCompany- Update company profile
createJob- Create new job postingeditJob- Update job postinggetJob- Retrieve job detailsgetJobById- Get job by IDfilterJobs- Search and filter jobs
applyToJob- Submit job applicationpostApply- Process application submissiongetApply- Retrieve application detailswithdrawApplication- Withdraw an applicationreapplyApplication- Reapply to a job
getApplicantsFromJob- Get applicants for a jobreviewApplicant- Review and rate applicantseditApplicantRating- Update applicant ratingofferJob- Send job offer to applicantacceptOffer- Accept a job offerrejectOffer- Reject a job offerrescindOffer- Rescind an offergetApplicantOffers- Get offers for an applicantgetCompanyOffers- Get offers sent by company
listSkills- Get all available skillsgetApplicantsBySkills- Search applicants by skills
reportApplicants- Generate applicant reportsreportJobs- Generate job reports
- Frontend: Next.js, React, TypeScript, Tailwind CSS
- Backend: AWS Lambda, Node.js
- Database: MySQL
- Deployment: AWS S3, AWS Lambda, AWS API Gateway
- Development: ESLint, Prettier
This project is developed for CS 509 coursework.
Team Maryland - CS 509
For more details about specific features or implementation, refer to the source code in the respective directories.