An AI tool to track job applications by analysing your email using OpenAI's GPT, and saving the relevent job data in Google Sheets so you don's have to.
- 📧 Manual trigger (run notebook) to check your Yahoo email inbox for job application-related emails
- 🔄 Processes MAX_EMAILS emails. MAX_BATCH_SIZE reconnects with Yahoo Mail Server handle larger volumes.
- 🤖 Uses OpenAI's GPT to intelligently analyze email content
- 🔍 Detects application status (Applied, Rejected, Interview Request, Viewed)
- 📊 Saves job application data in Google Sheets
- 🎯 Avoids duplicate entries
- Python 3.x
- A Yahoo email account
- Google Cloud Platform account
- OpenAI API account
-
Google Service Account JSON Key
- Follow the detailed setup guide in the notebook for Google Cloud Platform setup
- Enable Google Sheets API
- Create a service account and download the JSON key
-
OpenAI API Key
- Sign up for OpenAI API access
- Generate an API key from your OpenAI dashboard
-
Yahoo App Password
- Generate an app-specific password for this application
- Clone the repository:
git clone https://github.com/tommyyau/JobTracker.git
- Install required packages:
bash pip install openai google-api-python-client google-auth-httplib2 google-auth-oauthlib
Update the Config class in the script with your credentials and the number of email you want processed:
- SERVICE_ACCOUNT_FILE = 'path/to/your/service-account-key.json'
- SPREADSHEET_ID = 'your-google-sheet-id'
- OPENAI_API_KEY = "your-openai-api-key"
- EMAIL_SERVER = 'imap.mail.yahoo.com'
- EMAIL_USER = 'your-yahoo-email@yahoo.com'
- EMAIL_PASSWORD = 'your-yahoo-app-password'
- MAX_EMAILS = 50 # Number of recent emails to check
- MAX_BATCH_SIZE = 200 # Batch size for processing
Run the Jupyter notebook or execute the script:
jupyter notebook JobTracker-OpenAI-WithMaskCredentials.ipynb
The script will:
- Connect to your Yahoo email
- Scan recent emails for job application-related content
- Analyze each relevant email using OpenAI's GPT
- Extract job details (title, company, status)
- Store the information in your Google Sheet
The script creates entries with the following columns:
- Job Title
- Company Name
- Application Status
- Date Received
- Sender Email
Contributions are welcome! Please feel free to submit a Pull Request and I try and figure what I need to do next :).
This project is licensed under the MIT License - see the LICENSE file for details.
- Never commit your API keys or credentials to version control
- Store sensitive information in environment variables or secure configuration files
- Regularly rotate your API keys and passwords
- Monitor your API usage to avoid unexpected charges
- OpenAI for providing the GPT API
- Google Cloud Platform for Sheets API
- Yahoo for IMAP email access