A modern, AI-powered job application tracking platform that automatically organizes your job search by forwarding application emails to your personal JobSync address. Built with React, Firebase, and Google's Gemini AI.
- Smart Email Forwarding: Get your unique email address (e.g.,
ABC123@jobsync.fyi) and forward job application emails to automatically track them - AI-Powered Email Parsing: Gemini AI automatically extracts company names, job titles, locations, salaries, and application stages from emails
- Intelligent Stage Detection: AI determines whether an email is an application confirmation, screening update, interview invitation, offer, or rejection
- Dynamic Application Timeline: Visual timeline showing your progress through each stage with email history
- Real-time Dashboard: Track all applications with filterable views (Active, Today's Updates, Applied, Screening, Interviews, Offers, Rejected)
- Advanced Analytics: Comprehensive analytics dashboard with activity trends, stage distribution, application funnel, and response time analysis
- Manual Application Entry: Add applications manually if they don't arrive via email
- Edit Applications: Update job details, stages, locations, salaries, and recruiter contacts
- Email Stage Management: Move individual emails between stages and automatically sync with the job's current stage
- Duplicate Detection: Automatically identifies and merges duplicate job applications
- Delete Applications: Remove unwanted applications and all associated data
- Profile Management: Edit your full name and manage account settings with a modern modal interface
- User Authentication: Secure sign up with email/password or Google OAuth
- Custom Email Codes: Personalize your JobSync email address (up to 10 characters, alphanumeric)
- Dark/Light Theme: Toggle between dark and light modes for comfortable viewing
- Fully Responsive: Beautiful UI that works seamlessly on desktop, tablet, and mobile
- Instant Updates: Optimized UI updates without full page reloads
- Analytics Integration: Track user engagement and page views with Google Analytics
- Interactive Charts: Hover effects and tooltips on all analytics charts for better user experience
- Modal Interfaces: Modern modal dialogs for editing with blur backgrounds and smooth animations
- React 19 - UI library
- Vite - Build tool and development server
- React Router DOM - Client-side routing
- Tailwind CSS 4 - Utility-first CSS framework
- Firebase Authentication - User management with email/password and Google OAuth
- Firebase Firestore - NoSQL database for storing users, jobs, job_details, and emails
- Firebase Cloud Functions - Serverless backend for email processing
- Firebase Hosting - Static site hosting
- Google Gemini 2.0 Flash - AI model for intelligent email parsing and data extraction
- CloudMailin - Email receiving service that forwards emails to Firebase Functions
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- npm or yarn
- Firebase CLI (
npm install -g firebase-tools)
-
Clone the repository
git clone https://github.com/yourusername/JobSync.fyi.git cd JobSync.fyi -
Install dependencies
# Install frontend dependencies npm install # Install Firebase Functions dependencies cd functions npm install cd ..
-
Set up environment variables
Create a
.envfile in the root directory with your Firebase configuration:# Firebase Configuration VITE_FIREBASE_API_KEY=your_api_key VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain VITE_FIREBASE_PROJECT_ID=your_project_id VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id VITE_FIREBASE_MEASUREMENT_ID=your_measurement_id # Email Domain VITE_EMAIL_DOMAIN=jobsync.fyi # Google Analytics VITE_GA_MEASUREMENT_ID=your_ga_id
Create a
functions/.envfile for Cloud Functions:# Google Gemini AI API Key GEMINI_API_KEY=your_gemini_api_key
-
Configure Firebase
firebase login firebase init
npm run devThe application will be available at http://localhost:5173
cd functions
npm run servenpm run buildnpm run previewJobSync.fyi/
βββ src/
β βββ assets/ # Static assets (images, logos)
β βββ components/ # Reusable React components
β βββ contexts/ # React Context providers
β β βββ GlobalProvider.jsx # Auth and user data context
β βββ lib/ # Core library functions
β β βββ firebase.js # Firebase configuration and initialization
β β βββ jobs.js # Job CRUD operations and data transformation
β β βββ users.js # User authentication and management
β βββ nav/ # Navigation components
β β βββ Nav.jsx # Main navigation bar
β βββ pages/ # Page components
β β βββ dashboard/ # Dashboard and job tracking
β β β βββ Dashboard_Main.jsx # Main dashboard view
β β β βββ components/
β β β βββ Role_Edit.jsx # Edit job modal
β β β βββ Email_Details.jsx # Email timeline modal
β β β βββ Manual_Apply.jsx # Manual job entry modal
β β β βββ Type_Select.jsx # Stage selector modal
β β β βββ Delete_Confirmation.jsx # Delete confirmation modal
β β βββ user/ # User authentication pages
β β β βββ Sign_In.jsx
β β β βββ Sign_Up.jsx
β β β βββ Forgot_PW.jsx
β β β βββ Profile.jsx
β β β βββ components/
β β β βββ Edit_Username.jsx # Modal for editing user's full name
β β βββ Home.jsx # Landing page
β β βββ About.jsx # About page
β β βββ Terms.jsx # Terms of service
β β βββ Privacy.jsx # Privacy policy
β βββ theme/ # Theme configuration
β β βββ Theme.jsx # Dark/light theme settings
β βββ toast/ # Toast notification system
β β βββ Toast.jsx # Toast notifications
β βββ utils/ # Utility functions
β β βββ analytics.js # Google Analytics integration
β βββ App.jsx # Main App component with routing
β βββ main.jsx # Entry point
β βββ index.css # Global Tailwind CSS styles
βββ functions/ # Firebase Cloud Functions
β βββ index.js # receiveEmail function for email processing
β βββ test-ai.js # AI testing utility
β βββ package.json # Functions dependencies
βββ public/ # Public static files
βββ dist/ # Production build output
βββ firebase.json # Firebase project configuration
βββ firestore.rules # Firestore security rules
βββ firestore.indexes.json # Firestore composite indexes
βββ vite.config.js # Vite configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ package.json # Project dependencies
firebase deployfirebase deploy --only hostingfirebase deploy --only functionsfirebase deploy --only firestore:rulesfirebase deploy --only firestore:indexesusers
uid- Firebase Auth user IDname- User's full nameemail- User's email addressemailCode- Unique 6-10 character code (e.g., "ABC123")forwardingEmail- Full forwarding email (e.g., "ABC123@jobsync.fyi")plan- Subscription plan (default: "free")createdAt- Account creation timestampupdatedAt- Last profile update timestamp
jobs
Company- Company nameJob_Title- Position titleLocation- Job locationSalary- Salary informationContact- Recruiter/contact emailCurrent_Stage- Current application stage (applied, screening, interview1-6, offer, rejected)Applied_Date- Application submission dateLast_Updated- Last modification timestampTracking_Code- User's email tracking codeUser_ID- Reference to users collectionEmail_IDs- Array of associated email IDsNotes- User notes
job_details
Job_ID- Reference to jobs collectionEmail_ID- Reference to mailin collectionStage- Stage this email representsSender- Email sender addressSubject- Email subject lineContent_Summary- AI-generated summarySent_Date- Email sent date (formatted string)Update_Time- Processing timestampTracking_Code- User's email tracking codeUser_ID- Reference to users collection
mailin
Forwarder_Email- User's personal email that forwarded the messageOriginal_Sender- Original email senderOriginal_Sent_At- Original email timestampSubject- Email subjectContent_Text- Plain text contentContent_HTML- HTML contentContent_Details- Cleaned content for AI processingProcessed- Processing status (boolean)Processing_Status- Status (pending, processing, completed, failed)Processing_Error- Error message if failedTracking_Code- User's email tracking codeReceived_At- Timestamp when received by CloudMailin
/- Home page with feature overview/about- About us page with analytics highlight for authenticated users/Sign_In- User sign in (email/password or Google)/Sign_Up- User registration/Forgot_PW- Password recovery/profile- User profile and settings with modern modal editing/dashboard- Job application dashboard (protected)/Analytics- Advanced analytics dashboard with interactive charts (protected)/terms- Terms of service/privacy- Privacy policy
- Sign Up: Create an account and get your unique forwarding email (e.g.,
ABC123@jobsync.fyi) - Forward Emails: Forward any job application emails to your JobSync address
- AI Processing: Gemini AI automatically extracts:
- Company name
- Job title
- Location
- Salary (if mentioned)
- Application stage (applied, screening, interview, offer, rejected)
- Email summary
- Track Progress: View all your applications in the dashboard with visual timelines
- Stay Organized: Filter by status, search by company/position, and manage your job search efficiently
The AI processing pipeline:
- Email Reception: CloudMailin receives emails forwarded to
{CODE}@jobsync.fyi - Content Extraction: Clean and extract relevant content from HTML/plain text
- AI Analysis: Gemini 2.0 Flash analyzes the email to determine:
- Is this a job application email?
- What company sent it?
- What position is it for?
- What stage does this email represent?
- What are the key details (location, salary, next steps)?
- Database Update:
- Create or update job entry in
jobscollection - Store email details in
job_detailscollection - Keep original email in
mailincollection
- Create or update job entry in
- Stage Synchronization: Automatically sync stages between job_details and jobs collections
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is private and proprietary.
- React Team - For the amazing React 19 library
- Firebase Team - For the comprehensive backend-as-a-service platform
- Google Gemini AI - For powerful AI capabilities in email analysis
- Tailwind CSS - For the utility-first CSS framework
- CloudMailin - For reliable email receiving service
- Vite Team - For the blazing fast build tool
- Never commit
.envfiles to version control - Keep your Firebase configuration and API keys secure
- Firestore security rules are configured to protect user data
- Email forwarding addresses are unique per user
- All authentication is handled securely by Firebase Auth
- Optimized state updates to avoid unnecessary re-renders
- Lazy loading of routes with React Router
- Efficient Firestore queries with proper indexing
- Batched database updates for improved performance
- Client-side data transformation and caching
- Add email templates for better AI parsing
- Implement bulk email import
- Add calendar integration for interview scheduling
- Export applications to CSV/PDF
- Mobile app version
- Email notification system
- Advanced analytics and insights
Note: Make sure to configure your Firebase project, set up CloudMailin, obtain a Gemini API key, and add the appropriate environment variables before running the application.