An intelligent job application tracker built with Streamlit and powered by the Gemini API. Update your job search progress in a Google Sheet using natural language.
Follow these steps to get your own instance of the Automated Application Tracker up and running.
📝 Step 1: Prepare Your Google Sheet
- Go to sheets.google.com and create a new, blank spreadsheet.
- Name the spreadsheet whatever you like (e.g., "My Job Applications").
- Rename the first tab at the bottom to
Applications. - In the first row, create the following headers exactly as written:
CompanyJob TitleContactDate AppliedStatusNotesLink to ApplicationSalaryLocationNext Step DateRecruiter ContactLast Updated
☁️ Step 2: Configure Google Cloud & APIs
- Go to the Google Cloud Console and create a New Project.
- Enable Billing for the project. You will not be charged for usage within the free tier.
- Enable the following three APIs for your project:
- Google Sheets API
- Google Drive API
- Generative Language API
- Create a Service Account:
- Navigate to
IAM & Admin>Service Accounts. - Click
+ CREATE SERVICE ACCOUNT, give it a name, and assign it the Editor role. - Create and download a JSON key for the service account.
- Navigate to
- Create an API Key:
- Navigate to
APIs & Services>Credentials. - Click
+ CREATE CREDENTIALSand selectAPI key. - Copy the key and restrict it to the Generative Language API.
- Navigate to
🔗 Step 3: Connect Your App to Google
-
Share Your Google Sheet:
- Open the downloaded JSON key file and copy the
client_emailaddress. - In your Google Sheet, click the "Share" button and give Editor permissions to that
client_email.
- Open the downloaded JSON key file and copy the
-
Create
secrets.toml:- In your project folder, create a new folder named
.streamlit. - Inside it, create a file named
secrets.toml. - Populate it with your credentials as shown below. Remember to convert your service account JSON to TOML format (replace colons with equals signs, remove commas, etc.).
# .streamlit/secrets.toml GSHEET_NAME = "Your Google Sheet File Name" GEMINI_API_KEY = "your_newly_created_api_key" [gcp_service_account] type = "service_account" project_id = "your-gcp-project-id" private_key_id = "your-private-key-id" private_key = "-----BEGIN PRIVATE KEY-----\\n...your-private-key...\\n-----END PRIVATE KEY-----\\n" client_email = "your-service-account-email@..." client_id = "your-client-id" auth_uri = "[https://accounts.google.com/o/oauth2/auth](https://accounts.google.com/o/oauth2/auth)" token_uri = "[https://oauth2.googleapis.com/token](https://oauth2.googleapis.com/token)" auth_provider_x509_cert_url = "[https://www.googleapis.com/oauth2/v1/certs](https://www.googleapis.com/oauth2/v1/certs)" client_x509_cert_url = "https://..." universe_domain = "googleapis.com"
- In your project folder, create a new folder named
▶️ Step 4: Run the Application
- Install Dependencies:
- Create a
requirements.txtfile with the following content:
streamlit gspread pandas google-oauth2-service-account requests- Install them using pip:
pip install -r requirements.txt
- Create a
- Run the App:
- Open your terminal, navigate to your project folder, and run:
streamlit run app.py



