Job Search Juggler: Automate Your Application Follow-Ups

Adam Porkolab
7 min readNov 3, 2023

--

Navigating the job market can be a daunting task, especially when it comes to keeping track of numerous applications and their respective follow-ups. A while back, I tackled this challenge head-on by developing a Google Apps Script that automates follow-up emails and reminders. This project not only honed my scripting skills but also provided a much-needed system to manage job applications efficiently. In this post, I’ll share how this script works and how you can adapt it for your job search process.

Please, find the link to the GitHub repo here: https://github.com/APorkolab/JobHuntHelper

The Genesis of the Project

The idea was born out of necessity when I was deeply involved in the tech community’s hiring processes. I noticed a common thread among job seekers: the overwhelming nature of managing multiple applications. It was clear that a streamlined system could significantly improve this experience. Thus, I created a solution that could automate the follow-up process, track application statuses, and schedule reminders with minimal user intervention.

Basically, I handle applications in two languages: Hungarian and English. The script therefore generates e-mail drafts depending on the language in which the application was made. There is also an option to send an automatic e-mail, but since I’m healthy paranoid, I’d rather send the generated draft myself after double-checking. :) In Hungarian corporate culture, multiple letters on the same topic are discouraged — so the script generates only one e-mail.

Another important principle in creating a table is that I use - color codes. Orange applications are still in progress and need to be dealt with, red applications are rejections — they no longer matter. The script therefore only checks the orange cells, so it is important to really update and color the table almost immediately when needed.

With the code just written, reports can also be generated, but their deeper elaboration is still pending: currently, only the basic data can be retrieved, e.g.: the number of inquiries.

Basically, the script works in 3 steps:

  • it creates a reminder in the table 8 days later than the application and also creates a Google Calendar entry for the next day to write an e-mail of interest. If the next day is not a weekday, but a weekend, then the script sets the reminder for Monday morning at 8 o’clock.
  • At the same time, a generated e-mail draft is created with the application data, which you just have to check and send.
  • The script reminds you 16 and 24 days after applying, and if 1 month has passed, it indicates that the position has probably already been filled.

The script is based on a Google Spreadsheet, namely it contains the following columns:

  1. Company Name: The name of the organization where you’ve applied for a position.
  2. Position: The specific title of the job role you’re applying for, such as “Junior Python Developer” or “Medior Ruby on Rails Developer.”
  3. Application Form: The method you used to apply, such as “Online Submission,” “Email,” or “Referral.”
  4. Language: The language in which the application should be made or the main language used by the company.
  5. Application Time: The date and time when you submitted your job application.
  6. Warning Message Column: A reminder or alert set for yourself to follow up if you haven’t heard back within a certain time frame.
  7. Job Description PDF Link: A hyperlink to the PDF containing the job description, which can be a useful reference for interview preparation. I use PrintFriendly on the job description page, which can generate pretty PDF’s. This document has been uploaded to my Google Drive, and the sharing link has been copied to this cell. This allows me to see the job description by phone search even after it's taken off the internet.
  8. Number of Interested Messages: The count of communications you’ve received from the company, indicating their interest or responses to your application.
  9. Name of the Contact Person: The individual at the company who is your main point of contact, usually in HR or the hiring manager.
  10. Contact E-mail Address: The email address of your contact person for follow-ups or additional communication.
  11. Job Link: A direct link to the job posting on the company’s career page or job board.
  12. Comment: Personal notes or initial impressions about the job or the application process.
  13. What I Attached: Documentation or files you’ve included with your application, such as a resume, cover letter, portfolio, etc.
  14. They Asked for a Wage Claim: Indicates whether the company has requested your salary expectations.
  15. What I Gave: Your response to the salary expectation inquiry, if applicable.
  16. Feedback Time: The date when you received feedback on your application, if any.
  17. Telephone Interview: The date and time of a scheduled telephone interview.
  18. 1st Interview: The date and time of your first in-person or video interview.
  19. 2nd Interview: The date and time of your second interview, if applicable.
  20. 3rd Interview: The date and time of your third interview, if applicable.
  21. Test/Trial Assignment: Details about any practical tests or assignments given to you as part of the application process.
  22. Offer: Information on the job offer received, including the date of the offer and any pertinent details.
The spreadsheet was mocked with false data (thanks, Mockaroo)

The Mechanics of the Script

The script interfaces with Google Sheets and Gmail, turning a spreadsheet into a powerful job application tracking tool. Here’s a brief overview of its core functionalities:

  • Daily Triggers: The script sets up triggers to run the application check twice daily, ensuring no follow-up opportunity is missed.
  • Application Status Check: It compares the application date with the current date and determines if a follow-up is necessary based on a predefined reminder interval.
  • Email Draft Creation: For applications needing a follow-up, the script generates a draft email in Gmail, tailored to the specifics of the application and ready for review.
  • Calendar Event Creation: It also schedules calendar events as reminders to check the application status, keeping the job seeker on top of their schedule.
  • Reporting: The script can generate visual reports within the Google Sheet, providing insights into the job search efforts and outcomes.

Adapting the Script for Personal Use

The script is designed to be flexible and can be adapted to fit any job seeker’s needs. You’ll need a Google Sheet with columns for the company name, position, application date, contact name, and email, among others. The script’s settings can be customized, such as the number of days after which a follow-up should be sent.

The full script includes functions to create triggers, check applications, create email drafts, and generate reports. Each function is meticulously documented, making the script user-friendly and easy to modify.

The Mechanics of the Script

Custom Alerts and Notifications: The script allows users to set up custom alerts for follow-up reminders. By inputting the desired follow-up interval in the settings, the script calculates the exact date when a follow-up should occur. If no response has been received by this date, the script automatically flags this for the user’s attention.

Automated Email Follow-Ups: One of the script’s standout features is its ability to automate email follow-ups. It checks the ‘Application Time’ against the current date and, if the follow-up interval has passed without a response, it generates a personalized email draft. This draft can be reviewed and sent out with just a few clicks, ensuring consistent and timely communication with potential employers.

Interview Scheduling: The script also aids in managing interview schedules. It can be set to track dates and times for telephone screenings, first, second, and third interviews, and even test assignments. By integrating with Google Calendar, the script ensures that all interview appointments are automatically added to the user’s schedule.

Application Insights: A particularly insightful feature is the script’s ability to generate reports within the Google Sheet. These reports can track metrics such as the number of interested messages from employers, providing users with a clear picture of their job search progress and which applications are garnering the most interest.

Adapting the Script for Personal Use

Customization: To adapt the script for personal use, start by setting up a Google Sheet with the necessary columns as outlined in the script. Then, customize the settings within the script to match your preferences. For example, you can adjust the reminderDaysAfter to change how many days after an application you'd like to follow up.

Installation: Installing the script is straightforward. Simply copy the script into the script editor of your Google Sheet and save it. You’ll need to run the createTriggers function to set up the automated checks and follow-up reminders. The first time you run the script, Google will prompt you to authorize the script to interact with your Gmail and Google Calendar.

Troubleshooting: If you run into any issues, such as the script not triggering at the correct times, first check the trigger settings in the Google Apps Script dashboard. Ensure that the triggers are set correctly and that the script has the necessary permissions to run.

The Impact of the Script

Since implementing this automated system, the feedback from users has been overwhelmingly positive. Job seekers have reported a more organized search process, timely follow-ups, and a reduction in the stress associated with job hunting. The script has proved to be a valuable asset in the job application process.

Personal Reflection: In my use, this script has been a game-changer. It has streamlined the tedious task of tracking applications and follow-ups, allowing me to focus on preparing for interviews and researching companies. The automated reminders and email drafts have saved countless hours and significantly reduced the chance of human error.

Future Developments: I am continuously looking to improve the script based on user feedback and personal experience. Future updates may include more sophisticated tracking of application stages and integration with other job search tools and platforms.

Final Thoughts

Automation is not just a buzzword; it’s a practical tool that can bring order and efficiency to the often chaotic job search process. This script is a testament to how a little bit of coding can go a long way in managing personal tasks. I encourage you to try it out, customize it to your needs, and take control of your job search.

Remember, the full script and detailed instructions are available on the GitHub repository. Your job search doesn’t have to be a disorganized mess. With this script, you can automate the mundane and focus on what truly matters — landing your dream job.

Please, find the link to the GitHub repo here: https://github.com/APorkolab/JobHuntHelper

--

--