A modern, feature-rich web application to help job seekers organize and track their job applications. Built with TypeScript, HTML5, and CSS3, featuring a beautiful dark/light theme and interactive data visualizations.
- β Add Applications - Track company, role, status, date applied, and notes
- β Edit Applications - Update any application details
- β Delete Applications - Remove applications with confirmation
- β Filter by Status - View applications by Applied, Interview, Offer, or Rejected
- β Data Persistence - All data saved in browser's localStorage
- π¨ Dark/Light Theme Toggle - Switch between themes with smooth transitions
- π Interactive Statistics - Real-time stats cards showing application counts
- π Data Visualization - Animated bar chart showing status distribution
- π― Click-to-Filter - Click on stat cards to filter applications
- π± Responsive Design - Works beautifully on desktop, tablet, and mobile
- β¨ Modern Glassmorphism UI - Beautiful backdrop blur effects and gradients
- π Applied - Initial application submitted
- π Interview - Interview scheduled or completed
- β Offer - Job offer received
- β Rejected - Application rejected
- Modern web browser (Chrome, Firefox, Safari, Edge)
- TypeScript compiler (optional, for development)
- Basic understanding of HTML, CSS, and TypeScript/JavaScript
- Clone or download the project
git clone https://github.com/yourusername/job-application-tracker.git
cd job-application-tracker- Open
index.htmlin your browser
# On Windows
start index.html
# On macOS
open index.html
# On Linux
xdg-open index.html-
Install Node.js and npm (if not already installed)
- Download from: https://nodejs.org/
-
Install TypeScript globally
npm install -g typescript- Clone the repository
git clone https://github.com/yourusername/job-application-tracker.git
cd job-application-tracker- Compile TypeScript
tsc app.ts- Open in browser
open index.html# Watch for changes and auto-compile
tsc app.ts --watchjob-application-tracker/
β
βββ index.html # Main HTML structure
βββ styles.css # All styling and themes
βββ app.ts # TypeScript source code
βββ app.js # Compiled JavaScript (generated)
βββ README.md # Project documentation
βββ .gitignore # Git ignore file (optional)
- Click the "β Add Application" button in the header
- Fill in the required fields:
- Company name (e.g., Google, Microsoft)
- Role title (e.g., Software Engineer)
- Status (Applied, Interview, Offer, Rejected)
- Date Applied
- Optional notes
- Click "Add Application" to save
- Click the βοΈ edit icon on any application card
- Modify the fields you want to change
- Click "Update Application" to save changes
- Click the ποΈ delete icon on any application card
- Confirm deletion in the popup dialog
Method 1: Click on any of the status filter buttons:
- All | Applied | Interview | Offer | Rejected
Method 2: Click directly on a statistics card to filter by that status
- Click the βοΈ/π theme toggle button in the header
- Theme preference is automatically saved
All application data is stored in your browser's localStorage:
- Storage Location: Local to your browser and device
- Capacity: Up to 5-10MB (more than enough for thousands of applications)
- Persistence: Data remains even after closing the browser
- Privacy: Data never leaves your computer
Chrome/Edge:
- Press
F12β Application tab β Local Storage - Look for key:
jobApplications
Firefox:
- Press
F12β Storage tab β Local Storage - Look for key:
jobApplications
- Data is browser-specific (Chrome data won't show in Firefox)
- Data is device-specific (not synced across devices)
- Clearing browser data will delete all applications
- Use incognito/private mode cautiously (may not persist data)
Edit styles.css to change theme colors:
/* Dark mode gradient */
body.dark-mode {
background: linear-gradient(135deg, #0f172a 0%, #581c87 50%, #0f172a 100%);
}
/* Light mode gradient */
body.light-mode {
background: linear-gradient(135deg, #dbeafe 0%, #fae8ff 50%, #fce7f3 100%);
}
/* Status colors */
.status-applied { color: #60a5fa; }
.status-interview { color: #facc15; }
.status-offer { color: #4ade80; }
.status-rejected { color: #f87171; }- Update TypeScript interface in
app.ts:
type Status = 'Applied' | 'Interview' | 'Offer' | 'Rejected' | 'YourNewStatus';- Add to HTML select in
index.html:
<option value="YourNewStatus">Your New Status</option>- Add styling in
styles.css:
.status-yournewstatus {
background: rgba(123, 456, 789, 0.2);
color: #yourcolor;
}interface JobApplication {
id: string;
company: string;
role: string;
status: 'Applied' | 'Interview' | 'Offer' | 'Rejected';
dateApplied: string;
notes?: string;
}
interface Stats {
Applied: number;
Interview: number;
Offer: number;
Rejected: number;
}- Glassmorphism Effects - Modern frosted glass aesthetic
- Smooth Animations - Transition effects on all interactions
- Gradient Backgrounds - Beautiful color gradients
- Hover States - Interactive feedback on all clickable elements
- Responsive Grid Layout - Adapts to any screen size
- Color-Coded Status - Visual status identification
- Icon Integration - Emoji icons for better UX
- β Chrome 90+
- β Firefox 88+
- β Safari 14+
- β Edge 90+
- β Opera 76+
Potential features to add:
- Export data to CSV/JSON
- Import data from file
- Search functionality
- Salary tracking
- Application deadlines with reminders
- Interview rounds tracking
- Company research notes
- Contact person details
- Application timeline view
- Backend integration (Firebase/Supabase)
- Multi-device sync
- Email notifications
- Statistics and insights dashboard
Contributions are welcome! Here's how you can help:
- 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 licensed under the MIT License - see the LICENSE file for details.
My Contact
- GitHub: @Yatochi17
- LinkedIn: Muhamad Aqil Danial Bin Shahnizam
- Inspired by the job hunting process
- Built to help job seekers stay organized
- Designed with modern web development best practices
Have questions or suggestions? Feel free to reach out:
- Email: aqildanial.17@gmail.com
- Create an issue on GitHub
- Connect on LinkedIn
β If you find this project helpful, please give it a star on GitHub!
Made with β€οΈ by Aqil