A comprehensive WPF desktop application for tracking job applications, interviews, and networking contacts during your job search.
- Create Multiple Projects: Organize different job searches (e.g., "2026 Software Engineer Search")
- Save/Load Projects: All data stored locally in JSON format
- Project Metadata: Track project creation date, description, and last modified date
-
Comprehensive Job Details:
- Company Name
- Job Title
- Job URL
- Location
- Salary Range
- Date Posted
- Date Applied
- Application Platform (LinkedIn EasyApply, Company Website, Indeed, etc.)
- Job Description
- Notes
-
Job Status Management:
- Not Applied
- Applied
- Interviewed
- Offered
- Accepted
- Rejected (automatically grayed out but still editable)
- Withdrawn
- Unlimited Interviews per Job
- Interview Details:
- Round Number
- Interview Type (Phone, Video, In-Person, Technical)
- Date and Time
- Interviewer Name and Email
- Outcome
- Notes
- Track Important Contacts at each company
- Contact Information:
- Name
- Position/Title
- Notes
- Direct Email Buttons for each contact
- Multiple Email Options:
- Default email client (mailto:)
- Gmail (web)
- Outlook Web
- Text Search: Search across company names, job titles, and locations
- Status Filter: Filter by application status
- Real-time Filtering: Updates as you type
- Visual Indicators: Rejected jobs are grayed out with reduced opacity
- Excel Export: Export all data to a well-formatted Excel file
- Multiple Worksheets:
- Jobs: All job details
- Interviews: All interview records
- Contacts: All contact information
- Summary: Project statistics and overview
The application follows the Model-View-ViewModel (MVVM) architectural pattern for clean separation of concerns:
- Models: Pure data classes (Job, Interview, Contact, JobSearchProject)
- ViewModels: Business logic and data presentation (MainViewModel, JobViewModel, etc.)
- Views: XAML-based UI (MainWindow, JobDialog, etc.)
JobSearchTracker/
├── Models/
│ ├── ApplicationPlatform.cs
│ ├── JobStatus.cs
│ ├── Job.cs
│ ├── Interview.cs
│ ├── Contact.cs
│ └── JobSearchProject.cs
├── ViewModels/
│ ├── ViewModelBase.cs
│ ├── RelayCommand.cs
│ ├── MainViewModel.cs
│ ├── JobViewModel.cs
│ ├── InterviewViewModel.cs
│ └── ContactViewModel.cs
├── Views/
│ ├── NewProjectDialog.xaml/.cs
│ ├── JobDialog.xaml/.cs
│ ├── InterviewDialog.xaml/.cs
│ └── ContactDialog.xaml/.cs
├── Services/
│ ├── ProjectService.cs
│ ├── ExportService.cs
│ └── EmailService.cs
├── Converters/
│ ├── JobStatusToBackgroundConverter.cs
│ └── JobStatusToOpacityConverter.cs
├── MainWindow.xaml/.cs
└── App.xaml/.cs
- Framework: .NET 10.0
- UI Framework: WPF (Windows Presentation Foundation)
- Language: C# 14.0
- Data Storage: JSON files stored in
Documents/JobSearchTracker - Dependencies: ClosedXML for Excel export
- Launch the application
- Click "New Project" to create your first job search project
- Enter a project name (e.g., "2026 Software Engineer Search")
- Start adding jobs!
- Click "Add Job" button or use File > Job > Add Job
- Fill in job details in the dialog
- Add interviews and contacts as needed
- Click "Save"
- Open a job in the job dialog
- Navigate to the "Interviews" tab
- Click "Add Interview" to record a new interview
- Fill in interview details including date, time, interviewer, and notes
- Open a job in the job dialog
- Navigate to the "Contacts" tab
- Click "Add Contact" to add a new contact
- Use the Email/Gmail/Outlook buttons to compose emails directly
- Use the search box to find jobs by company, title, or location
- Use the status dropdown to filter by application status
- Click "Clear Filter" to reset filters
- Click "Export to Excel" button
- Choose a location and filename
- Open the generated Excel file with all your data organized into worksheets
All projects are saved as JSON files in:
C:\Users\[YourUsername]\Documents\JobSearchTracker\
Files are named after your project name (e.g., 2026 Software Engineer Search.json)
This application is built with high coding standards:
- ✅ Comprehensive XML documentation
- ✅ MVVM architectural pattern
- ✅ Separation of concerns
- ✅ Proper encapsulation
- ✅ Type safety
- ✅ Error handling
- ✅ Consistent naming conventions
- ✅ Clean, readable code
Planned features for future versions:
- Auto-fill job details from URL
- Statistics dashboard
- Reminder notifications for follow-ups
- Import from LinkedIn/Indeed
- Cloud sync capabilities
- Mobile companion app
MIT License - Copyright © 2026 Gal Afik
This project is open source and available under the MIT License. See the LICENSE file for details.
IMPORTANT: Please Read
This software is provided "as is" without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement.
In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.
Always backup your project files regularly. While every effort has been made to ensure data integrity, the developer is not responsible for any data loss or issues arising from the use of this software.
Use at your own risk.