Skip to main content
Guides Job search strategy The Job Application Tracking Spreadsheet Template — Columns, Formulas, and Weekly Reviews
Job search strategy

The Job Application Tracking Spreadsheet Template — Columns, Formulas, and Weekly Reviews

9 min read · April 25, 2026

A job tracker should do more than store company names. This guide lays out the columns, formulas, status rules, and weekly review cadence that turn applications into a manageable pipeline.

The Job Application Tracking Spreadsheet Template — Columns, Formulas, and Weekly Reviews

A job application tracking spreadsheet is not busywork. In a 2026 search, it is the control panel. Without a tracker, you forget where you applied, miss follow-ups, repeat weak channels, and confuse one recruiter’s process with another. With a tracker, you can see whether the problem is volume, targeting, resume positioning, interview conversion, compensation, or simple timing.

The best tracker is simple enough to update in two minutes and structured enough to answer hard questions every Friday: Which sources are working? Which roles deserve follow-up? Where am I getting rejected? How many live opportunities do I actually have? If the sheet cannot answer those questions, it is just a diary.

The tabs you need

Use four tabs. More than that becomes maintenance theater.

  1. Applications — every submitted application or warm role conversation.
  2. Contacts — recruiters, employees, alumni, hiring managers, and referral paths.
  3. Dashboard — counts, conversion rates, follow-up reminders, and weekly trend.
  4. Targets — companies, titles, location rules, compensation range, and priority score.

If you are early career and applying at high volume, the Applications tab is the heart of the system. If you are senior or executive, the Contacts tab matters just as much because many good opportunities start before a formal posting.

Core application columns

Start with these columns. Do not skip the boring ones; they are what make the sheet useful later.

| Column | Purpose | Example | |---|---|---| | Application ID | Stable row identifier | APP-042 | | Date applied | Tracks freshness and aging | 2026-02-10 | | Company | Employer name | Stripe | | Role title | Exact posted title | Senior Finance Manager | | Level target | Your interpretation of level | Senior IC / Manager | | Location | Remote, hybrid, city | Remote US | | Compensation range | Posted or recruiter-provided | $170K-$210K base | | Source | Where it came from | LinkedIn, referral, recruiter | | Job URL | Link to posting | URL | | Status | Current pipeline stage | Recruiter screen | | Priority | 1-5 fit score | 5 | | Fit notes | Why you match | SaaS usage-based pricing | | Resume version | Which resume you used | finance-saas-v3 | | Cover note used | Yes/no or version | no | | Warm path | Referral or contact | Maya, ex-colleague | | Contact owner | Person connected to role | recruiter name | | Next action | Concrete next step | Follow up Thursday | | Next action date | Date you should act | 2026-02-17 | | Last touch | Last email, call, or update | 2026-02-12 | | Outcome reason | Rejection/withdrawal reason | comp too low | | Notes | Anything else | HM wants RevOps depth |

The most important columns are Status, Priority, Source, Next action date, and Outcome reason. Those five tell you where the pipeline is, what deserves attention, what is working, what is overdue, and why opportunities are dying.

Use controlled status values

Free-text status fields destroy dashboards. Use a dropdown with a small set of stages:

  • Saved
  • Applied
  • Warm intro requested
  • Referred
  • Recruiter screen scheduled
  • Recruiter screen complete
  • Hiring manager screen
  • Technical / case / assessment
  • Loop / panel
  • Final round
  • Offer
  • Accepted
  • Rejected
  • Withdrawn
  • Ghosted
  • Closed / filled

Keep “Ghosted” separate from “Rejected.” A ghosted application is a process problem or timing problem; a rejection is a decision. For most searches, mark an application as ghosted after 21-30 days with no response, unless you had a warm contact who can confirm it is still active.

Priority scoring that actually helps

A 1-5 priority score should combine fit and desire. Do not give every famous company a 5. Use this rubric:

| Score | Meaning | Action | |---:|---|---| | 5 | Strong match, strong interest, realistic level | Tailor resume, find warm path, follow up | | 4 | Good match with one gap | Apply and attempt warm path | | 3 | Plausible but not perfect | Apply if fresh or strategic | | 2 | Low match or low interest | Save only if pipeline is thin | | 1 | Poor fit | Do not apply unless experimental |

If your tracker has too many 3s, your search is fuzzy. A good week should include a few 5s, several 4s, and maybe a handful of 3s. Low-priority volume is what creates the illusion of progress while the real pipeline stays weak.

Spreadsheet formulas for the dashboard

Assume your Applications tab has these columns:

  • A: Application ID
  • B: Date applied
  • C: Company
  • D: Role title
  • H: Source
  • J: Status
  • K: Priority
  • Q: Next action date
  • S: Outcome reason

Use formulas like these in Google Sheets or Excel.

Total applications:

=COUNTA(Applications!A2:A)

Applications this week:

=COUNTIFS(Applications!B:B,">="&TODAY()-WEEKDAY(TODAY(),2)+1,Applications!B:B,"<="&TODAY())

Active opportunities:

=COUNTIFS(Applications!J:J,"<>Rejected",Applications!J:J,"<>Withdrawn",Applications!J:J,"<>Ghosted",Applications!J:J,"<>Accepted",Applications!J:J,"<>Closed / filled")

Recruiter screens:

=COUNTIF(Applications!J:J,"Recruiter screen")

Follow-ups due:

=COUNTIFS(Applications!Q:Q,"<="&TODAY(),Applications!J:J,"<>Rejected",Applications!J:J,"<>Withdrawn")

Response rate:

=(COUNTIF(Applications!J:J,"screen")+COUNTIF(Applications!J:J,"manager")+COUNTIF(Applications!J:J,"panel")+COUNTIF(Applications!J:J,"Offer"))/COUNTA(Applications!A2:A)

High-priority applications:

=COUNTIF(Applications!K:K,">=4")

Do not obsess over formula perfection. The dashboard is there to create visibility, not an analytics department.

Source tracking: the column that tells the truth

Most candidates think they know which sources are working. The tracker proves it. Use consistent source values:

  • LinkedIn cold
  • Company site
  • Referral
  • Internal recruiter
  • External recruiter
  • Alumni / community
  • Former coworker
  • Hiring manager outreach
  • Job board niche
  • Conference / event

After 30-50 applications, compare response rates by source. You may learn that company-site applications outperform LinkedIn for your niche, or that external recruiters create screens but not offers, or that referrals from former managers convert at three times the rate of casual alumni requests.

This is where the tracker saves time. If one channel is clearly weak, stop feeding it unlimited hours.

Contact tracking columns

The Contacts tab should be separate because relationships do not map one-to-one to applications. Use these columns:

| Column | Purpose | |---|---| | Name | Person | | Company | Current employer | | Role | Recruiter, hiring manager, employee, alumni | | Relationship | Former coworker, second-degree, cold | | Channel | LinkedIn, email, text, Slack | | Last touch | Last message or call | | Next touch | Follow-up date | | Related company / role | What they can help with | | Ask made | Referral, advice, intro, recruiter screen | | Status | Pending, replied, meeting, closed | | Notes | Context and personal detail |

The key is not to treat people like rows. The sheet simply prevents you from dropping threads. If someone says, “Ping me in two weeks when the role opens,” your future self needs a date, not a vague memory.

Follow-up rules

Use simple rules and apply them consistently.

  • Cold application, no contact: follow up only if you find a real person or the role is high priority.
  • Recruiter screen completed: follow up after 3 business days if no next step was given.
  • Hiring manager screen: follow up after 4-5 business days.
  • Final round: ask for timeline before leaving the call; follow up one business day after the promised date.
  • Referral requested: follow up after 5-7 days, once, with an easy out.
  • External recruiter: follow up weekly while a role is active, then monthly for relationship maintenance.

Put the follow-up date in the sheet the moment the interaction happens. Do not rely on your inbox.

Weekly review cadence

The weekly review is where the tracker pays for itself. Set 30 minutes every Friday or Sunday.

Step 1: clean statuses

Move stale rows to Ghosted, Rejected, Withdrawn, or Closed. A pipeline with 40 “Applied” rows from six weeks ago is fake comfort. You need to know what is alive.

Step 2: review conversion

Look at the week’s numbers:

  • Applications sent
  • Warm messages sent
  • New responses
  • Screens scheduled
  • Interviews completed
  • Rejections
  • Active opportunities
  • Follow-ups overdue

If applications are high and responses are low, fix targeting. If screens are high and interviews are low, fix recruiter-screen story. If interviews are high and offers are low, fix examples, case prep, or level alignment.

Step 3: choose next week’s focus

Pick one theme. Examples:

  • “More fresh postings within 48 hours.”
  • “Only roles with compensation listed or recruiter-confirmed.”
  • “Ask five former coworkers for warm paths.”
  • “Rewrite resume summary for platform finance roles.”
  • “Practice the layoff story and two leadership examples.”

The tracker should produce decisions, not guilt.

Red flags your tracker is becoming theater

A tracker can become procrastination if you let it. Watch for these signs:

  • You spend more time formatting than applying or reaching out.
  • You track 25 columns but never review conversion rates.
  • You keep old applications active because it feels better.
  • You apply to low-fit roles to make the weekly count look good.
  • You log contacts but do not send follow-ups.
  • You use color coding instead of deciding what to do next.

The cure is to reduce the sheet. A useful tracker has fewer columns than your anxiety wants and more discipline than your memory provides.

A good default template

If you want the shortest workable version, use these 15 columns:

  1. Date applied
  2. Company
  3. Role title
  4. Location
  5. Compensation
  6. Source
  7. Job URL
  8. Status
  9. Priority
  10. Fit notes
  11. Resume version
  12. Warm path / contact
  13. Last touch
  14. Next action
  15. Next action date

Add outcome reason once you start getting decisions. Add formulas once you have 20+ rows. Start simple, then let the real search tell you what needs more structure.

What “good” looks like after one month

After four weeks, your tracker should show more than effort. It should show signal. A healthy mid-level search might have 40-60 targeted applications, 30-50 warm touches, 6-10 recruiter screens or serious conversations, 2-4 interview loops, and clear evidence that certain titles and sources are working better than others.

If it does not, the tracker has still done its job. It has shown you where the system is failing. That is the point. A job search feels personal, but the pipeline is operational. Track it like a pipeline and you can improve it like one.

When to archive or restart the sheet

Do not let one tracker become an emotional junk drawer. If a search runs longer than three months, archive old rows into a separate tab or filter them out of the main dashboard. Keep the history, but make the active view reflect reality. A role from nine weeks ago with no contact should not sit next to a recruiter screen happening tomorrow.

A clean active view should include roles applied to in the last 30 days, live interview processes, warm referrals still in motion, and follow-ups that are genuinely due. Everything else can be marked closed, ghosted, rejected, withdrawn, or archived. This keeps your attention on decisions rather than residue.

Restart the sheet when your target changes materially. If you move from product marketing roles to customer success leadership, or from corporate FP&A to startup strategic finance, the old conversion rates may stop being useful. Keep the old data for lessons, then start a new dashboard with the new target. The tracker should reflect the search you are actually running now, not the one you started in a different market.