Career-Linker is a full-stack job marketplace built with Next.js, TypeScript, Prisma, and PostgreSQL. It supports three core product surfaces in one codebase:
- Public job discovery for candidates
- Employer tools for posting jobs, reviewing applicants, and tracking hiring activity
- Admin operations for moderation, reporting, company review, payments visibility, and platform controls
Career-Linker is designed as a multi-role hiring platform where:
- Job seekers can browse jobs, save listings, apply, and manage their profile from a polished dashboard
- Employers can create paid job posts, manage listings, review applicants, and maintain company profile data
- Admins can monitor users, moderate jobs, verify companies, inspect payment activity, and review marketplace health reports
- Home landing page with featured jobs, categories, company highlights, and career content
- Public jobs listing with search, filters, pagination, and polished job cards
- Job detail pages with company context, apply actions, and similar jobs
- Static marketing pages like about, companies, blog, and contact
- Job seeker dashboard overview
- Saved jobs and applications tracking
- Profile editing and recruiter-facing profile preview
- Settings and dashboard-specific responsive UI
- Employer dashboard overview
- Job posting flow
- My jobs management
- Applicant review pages
- Analytics and company profile management
- Billing flow for paid job activation
- Dashboard overview with operational summaries
- User management with filtering and role updates
- Job moderation and pending approvals
- Company verification workspace with export and bulk verification tools
- Payment visibility with export tools
- Reports with funnel, trend, category, and payment health insights
- Runtime-aware settings visibility
- Framework: Next.js App Router
- Language: TypeScript
- Styling: Tailwind CSS
- UI primitives: Custom UI components with Radix-based building blocks
- Database: PostgreSQL
- ORM: Prisma
- Auth: NextAuth
- Payments: Stripe
- File uploads: UploadThing
- Email: Nodemailer
src/app: App routes, dashboards, public pages, and API routessrc/components: Shared UI, dashboard components, jobs UI, auth forms, and home sectionssrc/lib: Auth, Prisma, Stripe, environment parsing, utilities, email helpersprisma: Database schema, migrations, and seed scriptpublic: Static assets
JOB_SEEKEREMPLOYERADMIN
- Browse public jobs
- Save jobs or open a detailed job page
- Apply to a job
- Track application status from the dashboard
- Maintain a profile recruiters can review
- Create a job draft
- Complete payment
- Job becomes active after successful billing flow
- Review applicants by job
- Track hiring metrics from the employer dashboard
- Monitor platform-wide activity
- Moderate pending or low-quality job listings
- Review company profiles and verification status
- Inspect payment state and billing health
- Use reports to assess hiring, supply, and moderation trends
- The frontend has been polished across public, job seeker, employer, and admin surfaces
- Admin tools now include dynamic data-backed views for companies, payments, reports, and settings
- Export tools exist for company and payment operations
- Typecheck and lint were passing at the time of the latest cleanup pass
If you are reviewing the project quickly, start here:
- Read this file for product and architecture context
- Open
SETUP.mdfor local run instructions - Review the main surfaces:
src/app/(public)src/app/dashboard/job-seekersrc/app/dashboard/employersrc/app/admin
Detailed local setup, environment configuration, database steps, and run commands live in SETUP.md.
The repository includes GitHub Actions workflows for:
- CI on push and pull requests
- Production deployment to Vercel after CI passes on
main
Production deployment expects GitHub repository secrets for:
VERCEL_TOKENVERCEL_ORG_IDVERCEL_PROJECT_ID
Detailed production notes are included in SETUP.md.