The LinkedIn Job Application Tracker is an intelligent job search management system that automatically syncs with your Gmail to track LinkedIn job applications, provides AI-powered match scoring, and offers comprehensive analytics about your job search journey.
Job searching is exhausting. Between applying to dozens of positions, tracking responses, and trying to remember which companies have viewed your application, it's easy to lose track. This tool was built to solve these problems by:
- Eliminating Manual Tracking: No more spreadsheets - automatically imports all job applications from Gmail
- Providing Intelligence: Uses AI to score job matches based on your actual resume
- Showing Real Insights: Track view rates, response times, and application status in real-time
- Staying Organized: All your applications in one place with powerful filtering and search
- Connects directly to your Gmail account via OAuth 2.0
- Automatically identifies and imports LinkedIn job application emails
- Tracks application status changes (Pending β Viewed β Interview β Offer/Rejected)
- Links related emails (application confirmations, "viewed" notifications, interview requests)
- Smart Email Parsing: Uses OpenAI GPT-4 to extract job details from any email format
- Resume-Based Match Scoring: Analyzes each position against your actual resume
- Detailed Scoring Breakdown:
- Skills alignment (0-100%)
- Experience level match (0-100%)
- Location compatibility (0-100%)
- Salary expectations (0-100%)
- Actionable Insights: Get specific suggestions for improving your candidacy
- Real-time Metrics:
- Total applications
- View rate
- Interview conversion rate
- Average response time
- Status Tracking: Pending, Viewed, Interview Requested, Offer, Rejected
- Smart Filtering: By status, location, employment type, date range
- Responsive Design: Works perfectly on desktop, tablet, and mobile
- Dark Mode: Easy on the eyes during late-night job hunting
- Multiple View Modes: List view, card view, compact view
- Real-time Updates: See changes instantly as emails arrive
- React + TypeScript: Type-safe, maintainable, and scales with complexity
- Vite: Lightning-fast development and optimized production builds
- Zustand: Simple state management without Redux boilerplate
- Tailwind CSS: Rapid UI development with consistent design system
- OpenAI Integration: Leverages GPT-4 for intelligent data extraction
- Gmail API: Direct integration for real-time email monitoring
Gmail Inbox β Gmail API β AI Parser (GPT-4) β Data Normalization β
Local Storage β React UI β Match Scoring β Insights Dashboard
- Node.js 18+ and npm
- Google Cloud Console account (free)
- OpenAI API key (for AI features)
- Gmail account with LinkedIn job application emails
git clone https://github.com/snahrup/linkedin-job-tracker.git
cd linkedin-job-tracker
npm install- Get an API key from OpenAI Platform
- Copy
.env.exampleto.env.local:
cp .env.example .env.local- Add your OpenAI API key to
.env.local:
VITE_OPENAI_API_KEY=your_actual_api_key_here
- Go to Google Cloud Console
- Create a new project or select existing
- Enable Gmail API:
- Go to "APIs & Services" β "Library"
- Search for "Gmail API"
- Click "Enable"
- Create OAuth 2.0 credentials:
- Go to "APIs & Services" β "Credentials"
- Click "Create Credentials" β "OAuth client ID"
- Choose "Web application"
- Add authorized JavaScript origins:
http://localhost:3000(for development)- Your production URL (if deploying)
- Copy the Client ID
- Open the app at
http://localhost:3000 - Click "Settings" (gear icon)
- Paste your Google OAuth Client ID
- Save settings
npm run dev- Connect Gmail: Click "Connect Gmail" and authorize access
- First Sync: Click "Sync" to import all job application emails
- View Results: Applications appear automatically with AI-calculated match scores
- Check Dashboard: See new views, responses, and status changes
- Review Match Scores: Focus on high-scoring opportunities
- Track Progress: Monitor response rates and timing patterns
- Export Data: Download CSV for additional analysis
- 90-100% π―: Perfect match - prioritize these!
- 70-89% β : Strong match - definitely apply/follow up
- 50-69% π€: Moderate match - consider with improvements
- Below 50%
β οΈ : Weak match - may need significant changes
- Clear Cache: Use when emails aren't linking properly
- Demo Mode: Test the interface with sample data
- Filters: Combine multiple filters for precise searches
- Export: Regular backups of your job search data
"Unknown Position" appearing:
- Click "Clear Cache" then "Sync" to reprocess with latest AI
Gmail not connecting:
- Ensure Gmail API is enabled in Google Cloud Console
- Check that redirect URIs match exactly
- Try using an incognito window
Match scores not appearing:
- Verify OpenAI API key is set in
.env.local - Check browser console for API errors
Applications not linking:
- The system matches by LinkedIn URL or Company+Position
- "Clear Cache" forces complete reprocessing
npm run build
vercel deploynpm run build
netlify deploy --dir=distRemember to:
- Set environment variables in your hosting platform
- Update OAuth redirect URIs in Google Cloud Console
- Use HTTPS in production
- Calendar integration for interview scheduling
- Email templates for follow-ups
- Salary negotiation insights
- Company research integration
- Mobile app version
- Team/collaborative features
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
MIT License - feel free to use this for your job search!
Built with frustration from my own job search and a desire to help others navigate the process more effectively. Special thanks to the open source community for the amazing tools that made this possible.
Built by Steve Nahrup | GitHub
Good luck with your job search! π―