Makani Tech: Build. Automate. Evolve.

Blog · Students

The job application tracker that fills itself: a weekend build for students

Twenty browser tabs, a spreadsheet you stopped updating in week two, and a deadline you found out about the day after it closed. Here is a free tracker that does the boring part for you.

Kishan Makani

14 October 2026 · 3 min read

CompanyRoleDeadlineStatus7:00 am
Short answer: Keep every application in one Google Sheet with company, role, link, deadline and status. Add a small Google Apps Script that runs every morning and emails you about anything closing in the next two days. It is free, takes an afternoon, and you can add AI later to fill in the details for you.

Placement season does something strange to your browser. Twenty tabs, three WhatsApp groups forwarding the same link, a spreadsheet you started with great intentions and stopped updating in week two. Then you find out a deadline passed yesterday.

The fix is not more discipline. It is a system that does the remembering for you.

What you are building

Job application tracker flowSave the joblink and deadlineSheet rowcompany, role, status7 am checkApps Script triggerReminder email2 days before
You save the job once. The sheet and the script do the remembering.

A Google Sheet that holds every application, and a script that checks it every morning and emails you when a deadline is close. No paid tools. Later, you can add an AI step that reads a job post and fills in the row for you.

Step 1: set up the sheet

Create a Google Sheet, rename the first tab to Applications, and add these columns in row 1:

CompanyRoleLinkDeadlineStatus

Use real dates in the Deadline column (Format, then Number, then Date). For Status, add a dropdown with Saved, Applied, Interview, Offer and Rejected.

Step 2: add the reminder script

In the sheet, open Extensions, then Apps Script, delete what is there and paste this:

function remindDeadlines() {
  const sheet = SpreadsheetApp.getActive().getSheetByName("Applications");
  const rows = sheet.getDataRange().getValues().slice(1);
  const today = new Date();
  today.setHours(0, 0, 0, 0);

  const soon = rows.filter(([company, role, link, deadline, status]) => {
    if (!deadline || status !== "Saved") return false;
    const days = (new Date(deadline) - today) / 86400000;
    return days >= 0 && days <= 2;
  });
  if (!soon.length) return;

  const lines = soon.map(([company, role, link, deadline]) =>
    `${role} at ${company}, closes ${new Date(deadline).toDateString()}\n${link}`
  );
  MailApp.sendEmail(
    Session.getActiveUser().getEmail(),
    `${soon.length} application deadline(s) in the next 2 days`,
    lines.join("\n\n")
  );
}

Click Save, then Run once. Google will ask for permission to read your sheet and send email as you; that is expected because the script does both.

Step 3: make it run every morning

In Apps Script, open Triggers (the clock icon), add a trigger, choose remindDeadlines, time-driven, day timer, and pick 7 to 8 am. That is it. Every morning, if something you saved closes within two days, you get an email.

Step 4 (optional): let AI fill in the row

Copying company, role and deadline from a job post is the dull part. Paste the job post into ChatGPT, Claude or Gemini with this prompt:

Read this job post and give me one line in this exact format: Company | Role | Deadline (YYYY-MM-DD). If there is no deadline, write none. Do not guess.

Then paste the result into your sheet. The "do not guess" line matters; without it, models sometimes invent a date. If you want this fully automatic, a tool like n8n can do the same thing from a link you send it, but start manual.

Habits that make it work

  • Save the job the moment you see it, even if you are not sure. Deleting a row is easier than finding a link again.
  • Change the status to Applied the same day you apply, so the reminders stop.
  • Once a week, sort by Deadline and spend 30 minutes on the next three.

What to build next

Once the tracker works, the next most useful step is tailoring your CV for each role without starting from scratch. We cover that in our use cases for students.

Questions people ask

Is this really free?

Yes. Google Sheets and Apps Script are free with a normal Google account, and the script sends email from your own account within Google's daily limits, which are far more than a student needs.

Does it work with a college email account?

Usually yes, unless your college has turned off Apps Script. If it fails, use a personal Google account.

Can it remind me on WhatsApp instead?

Not with Apps Script alone. You would need a WhatsApp Business Platform provider and a workflow tool, which is overkill for personal reminders. Email or the Google Calendar app works well.

Written by Kishan Makani

Founder of Makani Tech, 14 years in the tech industry. Builds AI and automation systems for students, developers and business owners from Surat.

Follow