Lyra is a comprehensive web application designed to help job seekers optimize their resumes for specific job applications using AI technology. The platform streamlines the entire job application process by providing intelligent resume analysis, ATS optimization, and centralized application tracking.
Demo Watch the full walkthrough video on YouTube:
- Intelligent Analysis: Leverages OpenAI's API to analyze resumes and provide detailed feedback on clarity, organization, and ATS optimization
- Job Specific Tailoring: Automatically rewrites resumes to align with specific job descriptions while maintaining the candidate's unique voice
- Real-time Feedback: Provides instant analysis with actionable improvement suggestions
- Centralized Dashboard: Track all job applications, companies, and resume versions in one intuitive interface
- Application Status Tracking: Monitor application progress through various stages (pending, interviews, offers, etc.)
- Interview & Contact Management: Store interview dates, outcomes, and recruiter contact information
- PDF Processing: Utilizes pdf-parse library for accurate text extraction from resume PDFs
- Secure Storage: Encrypted document storage via Supabase with version control for both original and enhanced resumes
- Easy Downloads: Export AI optimized resumes as PDFs with a single click R
- Multiple Auth Options: Supports email/password and OAuth 2.0 providers (Google, GitHub, LinkedIn, Microsoft, Apple, Twitter/X, Meta)
- Secure Sessions: Built on Supabase Auth for enterprise grade security
- User Privacy: All data is encrypted and user specific
- Responsive Design: Built with React, TypeScript, and Tailwind CSS for a seamless experience across devices
- Interactive Elements: Features dynamic Spline 3D backgrounds and smooth animations
- Weather Integration: Includes a weather widget for a personalized dashboard experience
- Quick Access: Direct links to major job boards and skill building platforms
- Framework: React 18 with Vite
- Language: TypeScript for type safety and better developer experience
- Styling: Tailwind CSS with custom glassmorphism effects
- 3D Graphics: Spline for interactive backgrounds
- State Management: React hooks and context
- Runtime: Node.js with TypeScript
- Framework: Express.js for RESTful API endpoints
- AI Integration: OpenAI API for resume analysis and optimization
- File Processing: Multer for file uploads, pdf-parse for PDF text extraction
- Database: PostgreSQL via Supabase
- File Storage: Supabase Storage for secure document management
- Authentication: Supabase Auth with multiple OAuth providers
- Weather: Tomorrow.io API for real-time weather data
- AI Processing: OpenAI GPT models for resume analysis
- Node.js (v16 or higher)
- npm or yarn
- Supabase account
- OpenAI API key
- Tomorrow.io API key (for weather feature)
- Clone the repository:
git clone https://github.com/yourusername/lyrax.git
cd lyrax
- Install dependencies for both client and server:
# Install root dependencies
npm install
# Install client dependencies
cd client
npm install
# Install server dependencies
cd ../server
npm install
- Set up environment variables:
Create .env
file in the server directory:
# Server
PORT=3000
BASE_URL=http://localhost:5173
# Supabase
SUPABASE_URL=your_supabase_url
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
# OpenAI
OPENAI_API_KEY=your_openai_api_key
# Weather API
TOMORROW_IO_API_KEY=your_tomorrow_io_api_key
Create .env
file in the client directory:
# Supabase
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_anon_key
# Server
VITE_SERVER_URL=http://localhost:3000
VITE_API_URL=http://localhost:3000
-
Set up Supabase database:
- Create the required tables (users, resumes, companies, jobs, applications, interviews, contacts)
- Set up storage buckets for resume files
- Configure authentication providers
-
Start the development servers:
# Start the backend server (from server directory)
npm run dev
# Start the frontend (from client directory)
npm run dev
The application will be available at http://localhost:5173
- Sign Up/Login: Create an account using email or OAuth providers
- Upload Resume: Upload your base resume as a PDF
- Add Application: Click "NEW" to add a job application with:
- Company information
- Job position and location
- Job description
- Your resume selection
- AI Analysis: The system will analyze your resume and create an optimized version
- Track Progress: Update application status, add interview notes, and manage contacts
- Download: Export your AI-optimized resume as a PDF
lyrax/
βββ client/ # React frontend
β βββ src/
β β βββ components/ # React components
β β βββ assets/ # Images and icons
β β βββ utils/ # Utility functions
β βββ package.json
βββ server/ # Node.js backend
β βββ src/
β β βββ routes/ # API endpoints
β β βββ utils/ # Helper functions
β β βββ config/ # Server configuration
β βββ package.json
βββ README.md
POST /api/resumes/upload
- Upload and analyze resumePOST /api/resumes/improve
- Generate job-specific resumeGET /api/resumes
- Fetch user's resumesPOST /api/applications/create
- Create new applicationPOST /api/companies/create
- Add new companyGET /api/companies
- Fetch user's companiesPOST /api/jobs/create
- Create job postingGET /api/weather
- Fetch weather data
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.