Working Video : Click Here
A modern job portal application built using Next.js, designed to connect job seekers with potential employers, providing features like job listing, user authentication, and membership subscriptions.
• Next.js: Server-side rendering and frontend framework.
• Clerk: For user authentication and session management.
• Stripe: Payment and subscription integration.
• MongoDB: Database for storing user profiles and job listings.
• Supabase: File storage for candidate resumes.
• Tailwind CSS: Styling framework.
• Shadcn-UI: For UI components like buttons, sheets, dialogs.
• Lucide-React: Icon library for modern UI.
• Query-String: Used for filtering jobs via URL parameters.
• User Authentication : Seamless login and registration using Clerk.
• Role-Based Navigation: Different UI and functionalities for candidates, recruiters, and unauthenticated users.
• Job Posting: Recruiters can post jobs and view the list of candidates who applied.
• Job Application: Candidates can browse and apply for jobs, with the application status tracked.
• Resume Upload: Candidates can upload resumes, stored via Supabase.
• Premium Membership: Subscription functionality using Stripe, enabling access to premium features for recruiters and candidates.
• Filtering: Dynamic job filtering based on search parameters.
- For Recruiters: Post new jobs and view applications.
- For Candidates: Browse and apply for jobs, upload resumes.
- Premium Users: Unlock additional features by purchasing a premium membership.
-
Clone the repository:
git clone https://github.com/Ankit8125/Job-Portal-App.git cd Job-Portal-App
-
Install dependencies:
npm install
-
Set up environment variables: Create a
.env.local
file with your Clerk, Stripe, Supabase, and MongoDB credentials. -
Run the app:
npm run dev
To handle Stripe locally, ensure to modify the following in actions->index.js->createStripePaymentAction(data)
:
success_url: 'http://localhost:3000/membership' + '?status=success',
cancel_url: 'http://localhost:3000/membership' + '?status=cancel'