DEV Community

Cover image for How to Track Job Applications: A Simple System That Works
Muhammad Ali Mughal
Muhammad Ali Mughal

Posted on Edited on

How to Track Job Applications: A Simple System That Works

By Muhammad Ali Mughal · Last updated 24 October 2026

Three weeks into a job search, most people can't answer simple questions about it. Which companies replied? Which resume did I send to that fintech role? Is it time to follow up, or did they already reject me? If you're applying to more than a handful of jobs, you need to know how to track job applications properly, and the fix is smaller than you think: one row per application, a short list of statuses, the exact resume file you sent, and a follow-up date.

I'm Muhammad Ali Mughal. I build Smart Resume Analyzer, and I've run my own searches with nothing more than a spreadsheet and a reminder habit. Below is the system I use, the columns that matter, and a small script I ran on 20 sample applications to show what the data tells you after a few weeks.

A desk monitor showing a colour-coded job application board, with a desk calendar, sticky notes and printed resumes

Why tracking job applications changes your results

Tracking isn't admin for its own sake. It answers three questions you can't answer from memory:

  • Where do my applications stall? No replies at all usually points at the resume or the targeting. Replies but no interviews points at fit or timing. Interviews with no offers points at the interview itself.
  • Which version of my resume works? If you tailor resumes (and you should), you need to know which file went where.
  • Who needs a follow-up today? A polite nudge one to two weeks after applying is normal. Without dates, it never happens.

Step 1: Choose one place to track job applications

Pick one tool and stick with it. Three options work well:

Option Good for Watch out for
A spreadsheet (Excel or Google Sheets) Full control, filters, charts You must add dropdowns and reminders yourself
A browser-based tracker Quick setup, built-in stages Check where the data is stored and how to back it up
A notes app or email folder Very small searches Falls apart past 15 to 20 applications

If you like spreadsheets, I made a free application tracking template you can open in Excel or import into Google Sheets. If you'd rather not build anything, a browser tracker with built-in stages, notes and reminders is quicker. Just check where it stores data and export a backup now and then.

Step 2: Set up the columns that matter

More columns isn't better. These are the ones I actually use:

  • Date applied
  • Company and role title (copy the exact title from the posting)
  • Link to the posting plus the requisition or job ID if there is one
  • Source: referral, company site, LinkedIn, job board
  • Resume version: the exact filename you uploaded, for example muhammad-laravel-v2.pdf
  • Status: a fixed list, not free text
  • Last contact and next action date
  • Notes: recruiter name, salary range, anything said on a call

The posting link matters more than people expect. Job ads get taken down, and you'll want the original wording before an interview. Save the text or a PDF of the ad in your notes.

Step 3: Use a fixed list of statuses

Free-text statuses ("waiting?", "maybe", "heard back") make the sheet impossible to filter. Use a short dropdown. In Google Sheets, select the status column and add an in-cell dropdown list. Excel has the same feature under Data Validation.

I use these stages:

  1. Saved: found it, not applied yet
  2. Applied
  3. Replied: any human response, including a screening email
  4. Interview
  5. Offer
  6. Rejected or No reply

Add conditional formatting so a row turns amber when its next action date has passed. That one rule does most of the reminding for you.

Step 4: Log the resume version for every application

This is the column most trackers skip, and it's the one that tells you whether your edits are working. Name files by target role and version, and never overwrite an old file you've already sent.

When you tailor a resume to a posting, it helps to know which ATS the company uses and how it reads your file. I covered that in Which ATS Is This Job Using?, and the keyword side in How to Tailor Your Resume Keywords to a Job Description.

Step 5: Review the numbers every week

Once you have 15 or more rows, the sheet starts to talk. I wrote a short Python script and ran it on a sample CSV of 20 made-up applications (fictional companies, realistic mix of sources and statuses) to show the kind of review I do on Sundays:

import csv
from collections import defaultdict
from datetime import date, timedelta

TODAY = date(2026, 10, 24)
rows = list(csv.DictReader(open("applications_sample.csv")))
responded = {"replied", "interview", "offer", "rejected"}

def rate(group):
    out = defaultdict(lambda: [0, 0])
    for r in rows:
        out[r[group]][0] += 1
        out[r[group]][1] += r["status"] in responded
    return {k: f"{v[1]}/{v[0]} ({v[1]/v[0]:.0%})" for k, v in sorted(out.items())}

print("Response rate by source:", rate("source"))
print("Response rate by resume version:", rate("resume_version"))
due = [r["company"] for r in rows if r["status"] == "no_reply"
       and TODAY - date.fromisoformat(r["last_contact"]) >= timedelta(days=10)]
print("Follow-ups due (10+ days silent):", len(due))
Enter fullscreen mode Exit fullscreen mode

The output on my machine:

Response rate by source: {'Company site': '3/4 (75%)', 'Job board': '1/7 (14%)', 'LinkedIn': '3/5 (60%)', 'Referral': '4/4 (100%)'}
Response rate by resume version: {'backend-v1': '1/4 (25%)', 'backend-v2': '4/5 (80%)', 'dotnet-v1': '2/3 (67%)', 'laravel-v1': '1/5 (20%)', 'laravel-v2': '3/3 (100%)'}
Follow-ups due (10+ days silent): 9
Enter fullscreen mode Exit fullscreen mode

The full script also prints totals: 20 applications, 11 responses and 5 at interview or better. The numbers are from sample data, so don't read them as a benchmark. The point is what the same view shows you on your own data. In this sample, the "v2" resumes did far better than the "v1" files, and job-board applications were mostly silent. That's a signal to retire the old files and spend more time on referrals and company career pages. It also shows nine follow-ups that would have been forgotten.

No Python? A pivot table on Source and Resume version gives the same answer.

Step 6: Follow up on a schedule

When you log an application, set the next action date 7 to 10 days out. When that date arrives:

  • Send one short, specific follow-up to the recruiter or hiring manager
  • Update Last contact and push the next action date another week
  • After two follow-ups with no reply, mark it No reply and move on

Job application tracking checklist

  • One tool, used for every application
  • Posting link and job ID saved, plus a copy of the ad text
  • Exact resume filename logged per row
  • Status chosen from a fixed list
  • Next action date on every open row
  • Weekly review of response rate by source and resume version
  • Backup or export of your data

FAQ

What is the best way to track job applications?

The best way is the one you'll keep using. For most people that's a spreadsheet or a simple browser tracker with one row per application, a fixed status list, the resume version sent, and a next action date. Tools matter less than logging every application on the same day you apply.

What columns should a job application tracker have?

At minimum: date applied, company, role title, posting link, source, resume version, status, last contact, next action date and notes. Add the job or requisition ID when the posting shows one. Skip columns you won't fill in, because half-empty columns make the sheet harder to read and review.

How many job applications should I track at once?

Track every application, however many there are. The tracker becomes most useful after about 15 rows, because that's when patterns in sources and resume versions start to appear. If you're sending more than 10 a week, review the sheet weekly so follow-ups and stale rows don't pile up.

When should I follow up on a job application?

One to two weeks after applying is a common and polite window. Set the next action date when you log the application, send one short follow-up when it arrives, and try once more a week later. After two attempts with no reply, mark the row as no reply and focus elsewhere.

Is a spreadsheet better than a job tracker app?

A spreadsheet gives you full control, pivot tables and charts, but you build the dropdowns and reminders yourself. A tracker app is faster to start and has stages built in. Whichever you pick, check where your data is stored and keep an export, especially if it only lives in your browser.

Start tracking today

Open the template above or the free Smart Resume job tracker, which needs no account and keeps your data in your browser with an export option. Add every application you've sent this month, and set a next action date on each one. You can visit Smart Resume Analyzer.

How do you track your applications right now? Tell me in the comments.

jobsearch #career #resume #productivity #jobapplication #careeradvice

Read the full interactive job application tracking system guide on the Smart Resume Analyzer blog.


Follow Smart Resume Analyzer for ATS & Career Tips

Top comments (0)