A modern web application for managing job applications with AI-powered assistance. Track your applications, generate tailored cover letters, optimize your CV, and stay organized throughout your job search.
- Application Tracking: Manage all your job applications in one place with a sortable table view
- AI Assistant: Generate personalized cover letters and optimize your CV using Google's Gemini AI
- Master Profiles: Create and manage multiple CV profiles for different job types
- Document Management: Link CVs and documents to specific applications
- Task Tracking: Add and track tasks for each application
- Analytics: Visualize your job search progress with charts and statistics
- Firebase Integration: Secure cloud storage with user authentication
- Node.js (v16 or higher)
- npm or yarn
- A Google account (for Firebase)
- Gemini API key (get it from Google AI Studio)
-
Clone the repository
git clone https://github.com/YOUR_USERNAME/job-application-manager.git cd job-application-manager -
Install dependencies
npm install
-
Set up Firebase
- Create a new project at Firebase Console
- Enable Authentication (Email/Password and Google Sign-In)
- Create a Firestore Database
- Copy your Firebase configuration
- Update
src/firebase.jswith your Firebase config
-
Configure environment variables
- Create a
.env.localfile in the root directory - Add your Gemini API key:
VITE_GEMINI_API_KEY=your_gemini_api_key_here
- Create a
-
Run the development server
npm run dev
-
Open your browser
- Navigate to
http://localhost:5173
- Navigate to
Set up Firestore security rules to protect user data:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{collection}/{document} {
allow read, write: if request.auth != null &&
request.auth.uid == resource.data.userId;
allow create: if request.auth != null &&
request.auth.uid == request.resource.data.userId;
}
}
}Create a .env.local file with the following:
VITE_GEMINI_API_KEY=your_gemini_api_key_here- Click "+ New Application" to add a job application
- Fill in company name, position, and other details
- Click on any cell in the table to edit inline
- Click the arrow (▶) to open the detailed sidebar
- Navigate to "AI Assistant" from the sidebar
- Select an application
- Choose to generate a cover letter or optimize your CV
- Review and edit the AI-generated content
- Save to your application
- Go to "Master Profiles"
- Click "+ New Profile"
- Choose between structured form or simple text input
- Fill in your professional information
- Link profiles to applications when needed
- React - UI framework
- Vite - Build tool
- Firebase - Backend and authentication
- Google Gemini AI - AI-powered content generation
- Recharts - Data visualization
job-application-manager/
├── src/
│ ├── components/ # Reusable UI components
│ ├── context/ # React context providers
│ ├── hooks/ # Custom React hooks
│ ├── pages/ # Page components
│ ├── services/ # External services (Gemini AI)
│ ├── firebase.js # Firebase configuration
│ └── main.jsx # Application entry point
├── public/ # Static assets
├── .env.local # Environment variables (not tracked)
└── package.json # Dependencies
- All user data is stored securely in Firebase Firestore
- Each user can only access their own data (enforced by security rules)
- API keys are stored in environment variables and never committed to Git
- Firebase configuration values are public (this is normal and safe)
Contributions are welcome! Feel free to:
- Fork the repository
- Create a 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 open source and available under the MIT License.
- Google Gemini AI for powering the AI features
- Firebase for backend infrastructure
- The React community for excellent documentation and tools
For questions or suggestions, please open an issue on GitHub.
Note: This application requires your own Firebase project and Gemini API key. The repository does not include any credentials or user data.