Skip to content

Repository files navigation

🎯 JobHunt - Modern Job Board Platform

JobHunt Banner

React TypeScript Vite Tailwind CSS Supabase License

A modern job board application built with React, TypeScript, and Supabase, featuring real-time updates and powerful search capabilities.

View Demo · Report Bug · Request Feature

✨ Features

  • 🔍 Advanced Job Search - Filter by job type, experience level, and location
  • 💼 Job Listings Management - Post, edit, and manage job listings with ease
  • 👤 User Profiles - Complete profiles for both job seekers and employers
  • 🔔 Real-time Updates - Instant notifications for new job postings and applications
  • 💾 Saved Jobs - Bookmark interesting positions for later review
  • 📱 Responsive Design - Perfect experience across all devices
  • 🌙 Dark Mode - Easy on the eyes with automatic theme switching
  • 🔒 Secure Authentication - Protected routes and data with Supabase Auth

📸 Screenshots

Homepage

Homepage with search functionality and featured jobs


Job Listing Application Form

Detailed job listings and easy application process


Employer Dashboard Candidate Profile

Powerful dashboards for employers and job seekers

🚀 Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • Supabase account for database and authentication

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/jobhunt.git
  2. Navigate to the project directory

    cd jobhunt
  3. Install dependencies

    npm install
  4. Set up environment variables

    cp .env.example .env

    Add your Supabase credentials to the .env file

  5. Start the development server

    npm run dev

💻 Core Functionality

For Job Seekers

  • Profile Creation: Build comprehensive profiles highlighting skills and experience
  • Job Search: Advanced filters for precise job matching
  • Application Tracking: Monitor application status in real-time
  • Job Alerts: Customizable notifications for relevant positions
  • Resume Upload: Support for multiple resume formats

For Employers

  • Job Posting: Easy-to-use interface for creating detailed job listings
  • Candidate Management: Review and manage applications efficiently
  • Company Profiles: Showcase your company culture and benefits
  • Analytics Dashboard: Track listing performance and applicant metrics
  • Applicant Communication: Built-in messaging system

🛠️ Technical Implementation

Frontend Architecture

  • React Components: Modular design for reusability and maintenance
  • TypeScript: Strong typing for enhanced development experience
  • Tailwind CSS: Utility-first styling for consistent design
  • React Query: Efficient data fetching and caching
  • React Hook Form: Form validation and handling

Backend Services

  • Supabase Authentication: Secure user management
  • Supabase Database: Real-time data synchronization
  • Storage: Efficient handling of resumes and company logos
  • Row Level Security: Granular access control
  • Full-text Search: Powerful job listing search capability

📊 Database Schema

Table jobs {
  id uuid [pk]
  title text
  company_id uuid [ref: > companies.id]
  description text
  requirements text[]
  salary_range jsonb
  location text
  job_type text
  experience_level text
  created_at timestamptz
}

Table companies {
  id uuid [pk]
  name text
  description text
  logo_url text
  website text
  created_at timestamptz
}

Table applications {
  id uuid [pk]
  job_id uuid [ref: > jobs.id]
  user_id uuid
  status text
  resume_url text
  created_at timestamptz
}

🔧 Configuration

Environment Variables

VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key

Supabase Setup

  1. Create a new Supabase project
  2. Enable authentication providers
  3. Set up database tables and RLS policies
  4. Configure storage buckets for resumes and logos

📱 Responsive Design

The application is fully responsive and optimized for:

  • Desktop (1200px+)
  • Tablet (768px - 1199px)
  • Mobile (320px - 767px)

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

👏 Acknowledgments


Made with ❤️ by Your Name

Twitter LinkedIn

About

Job board with role-based employer/candidate flows, built on React + TypeScript + Supabase.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages