Transform your career with AI-powered resume analysis and job matching
π Setup Guide β’ π Documentation β’ π Authentication
HireMe.AI helps job seekers optimize their resumes and find perfect career matches using AI-powered analysis. Whether you're a student, career changer, or experienced professional, our platform provides actionable insights to boost your hiring success.
- Upload Your Resume - Simply drag and drop your resume file
- Get AI Analysis - Receive comprehensive feedback on strengths and weaknesses
- Find Jobs - Get personalized job recommendations based on your profile
- Apply Smarter - Use insights to tailor your applications
- Email/Password Registration - Traditional sign-up with secure password hashing
- Google OAuth Integration - One-click authentication with Google accounts
- Secure Session Management - JWT-based authentication with NextAuth.js
- User Profile Management - Personalized experience with user data
- OpenAI Integration - Advanced resume analysis using OpenAI API
- Comprehensive Scoring - Overall resume quality assessment (0-100)
- ATS Optimization - Applicant Tracking System compatibility scoring
- Skills Extraction - Automatic identification of technical and soft skills
- Strengths & Weaknesses - Identify what makes your resume stand out
- Actionable Recommendations - Specific suggestions for improvement
- Job Matching - AI-recommended job opportunities with match scores
- Career Guidance - Long-term development recommendations
- Responsive Design - Works perfectly on desktop, tablet, and mobile
- Beautiful Gradients - Professional color schemes and animations
- Drag & Drop Upload - Easy resume file upload with progress indicators
- Interactive Components - Smooth animations and real-time feedback
- Next.js 14 - Latest React framework with App Router
- TypeScript - Full type safety throughout the application
- Tailwind CSS - Utility-first styling with custom components
- shadcn/ui - Accessible, customizable component library
- Node.js 18+
- npm or yarn
- OpenAI API Key (Get one here)
- Google OAuth Credentials (Optional - for Google sign-in)
-
Clone the repository
git clone https://github.com/Alfredbis29/HireMe.AI.git cd HireMe.AI -
Install dependencies
npm install
-
Set up environment variables Create
.env.localfile and add the following:# OpenAI API Key (Required) OPENAI_API_KEY=your_openai_api_key_here NEXT_PUBLIC_APP_URL=http://localhost:3000 # NextAuth Configuration (Required) NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET=your_nextauth_secret_here # Google OAuth (Optional - for Google sign-in) GOOGLE_CLIENT_ID=your_google_client_id_here GOOGLE_CLIENT_SECRET=your_google_client_secret_here
Generate NextAuth Secret:
openssl rand -base64 32
-
Start the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
- Beautiful landing page with feature showcase
- Call-to-action buttons for account creation
- Professional gradient design
- Responsive layout for all devices
- Sign Up (
/signup) - Email/password registration and Google OAuth - Login (
/login) - Email/password login and Google OAuth - Secure password hashing with bcryptjs
- Form validation and error handling
- Authentication Required - Must be logged in to access
- Drag-and-drop file upload interface
- Support for PDF, DOC, and DOCX files
- Real-time upload progress
- File validation and error handling
- Authentication Required - Must be logged in to access
- Comprehensive AI analysis results
- Interactive score visualization
- Job matching recommendations
- Personalized user experience
POST /api/auth/register- User registration with email/passwordPOST /api/auth/login- User login with credentialsPOST /api/auth/[...nextauth]- NextAuth.js authentication
POST /api/upload-resume- File upload and analysisGET /api/health- Health check endpoint
// Register a new user
const response = await fetch('/api/auth/register', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
name: 'John Doe',
email: 'john@example.com',
password: 'securepassword'
})
});
// Upload resume for analysis
const formData = new FormData();
formData.append('file', resumeFile);
const analysis = await fetch('/api/upload-resume', {
method: 'POST',
body: formData
});# Development
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
# Setup
./setup.sh # Automated setup scripthireme-ai/
βββ app/ # Next.js 14 App Router
β βββ api/ # API routes
β β βββ auth/ # Authentication endpoints
β β βββ upload-resume/ # File upload and analysis
β β βββ health/ # Health check
β βββ signup/ # Registration page
β βββ login/ # Login page
β βββ upload/ # Upload page (protected)
β βββ results/ # Results page (protected)
β βββ globals.css # Global styles
βββ components/ # Reusable components
β βββ ui/ # shadcn/ui components
β βββ providers/ # Context providers
β βββ UserProfile.tsx # User profile component
βββ lib/ # Utility functions
β βββ db.ts # User database functions
βββ types/ # TypeScript interfaces
βββ data/ # User data storage (gitignored)
- Framework: Next.js 14 with App Router
- Language: TypeScript 5.0
- Styling: Tailwind CSS 3.3
- Components: shadcn/ui
- Authentication: NextAuth.js with JWT
- Password Hashing: bcryptjs
- AI: OpenAI API
- HTTP Client: Axios
- Forms: React Hook Form
- File Upload: React Dropzone
- Connect your GitHub repository
- Add environment variables in Vercel dashboard
- Deploy automatically on push
- Connect repository
- Build command:
npm run build - Publish directory:
.next
- Connect GitHub repository
- Add environment variables
- Deploy with one click
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]- Email/Password: Traditional authentication with secure password hashing
- Google OAuth: One-click authentication with Google accounts
- Session Management: JWT-based sessions with NextAuth.js
- Password Security: bcryptjs hashing with salt rounds
- New Users: Visit home β Sign up β Create account β Access features
- Returning Users: Visit home β Sign in β Access features
- Protected Routes: Upload and results pages require authentication
- Password Hashing: Secure bcryptjs implementation
- Input Validation: Email format and required field validation
- Error Handling: User-friendly error messages
- Session Security: Proper token management
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: See sections above for setup and usage
- Issues: GitHub Issues
- Authentication Setup: See Google OAuth Setup Guide
- Authentication Flow: See Authentication Flow Guide
- OpenAI for providing the AI API
- NextAuth.js for the authentication framework
- Vercel for the amazing Next.js framework
- Tailwind CSS for the utility-first CSS framework
- shadcn/ui for the beautiful component library
Made with β€οΈ by the Alpha Team
β Star this repo β’ π Report Bug β’ π‘ Request Feature
- Branch: test branch for feature testing