Free Job Application Tracker
Track every application, spot stale leads, and export your data any time. It works out your funnel, how long replies actually take, and which applications have gone quiet long enough to be worth a follow-up — all in your browser, with no account.
Add an application
SavedYour applications 0 rows
Assumptions, stated plainly. This tool hardcodes no external reference data — no tax rates, no salary tables, no industry benchmarks. Every number on this page is computed from the rows you typed. The only built-in defaults are: a follow-up prompt at 14 days since the last contact on a row (a convention, adjustable above), a 12-week window for the weekly chart, a floor of 5 rows before any percentage is printed rather than a plain ratio, and the four funnel stages Applied → Phone screen → Onsite → Offer. We deliberately do not print a “typical” conversion rate for you to compare yourself against, because we have not measured one and the figures circulated online are almost never attributable. How every tool here works is written up on our methodology page.
Why tracking applications is worth the five minutes
A job search does not fall apart dramatically. It leaks. You send six applications in a good week, three go quiet, and a month later you cannot remember which recruiter promised to come back and which never wrote at all. The cost is specific: the follow-up you never sent, on a role still open. Any row that is still open drops into a follow-up queue once it has been quiet for longer than your threshold — 14 days by default, adjustable. Silence is measured from the last contact on that row: the reply date if you logged one, otherwise the date you applied. So a phone screen three weeks ago with nothing since shows up too, which is the row most worth chasing. Rejected and ghosted rows are left out; those are not silent, they are finished.
What the funnel counts, and the mistake nearly every tracker makes
A spreadsheet has one status column, and you overwrite it. When an onsite turns into a rejection the row reads “Rejected” and the onsite has vanished. Add up the season at the end and it looks like you never got past a phone screen.
This tracker stores two things per row: the current status, and the furthest stage that application ever reached. The funnel is built from the second. An onsite that ended in a rejection is counted in the applied row, the phone-screen row and the onsite row, because all three genuinely happened. Since “Rejected” hides how far you got, the furthest stage reached field stays editable — set it by hand when you backfill from memory.
The other half of the mistake is the denominator. A rate only means something against the stage before it. “A 5% offer rate” against every application you ever sent says almost nothing; “one offer from four onsites” says the interviews work and the resume is the bottleneck.
A denominator also has to be big enough to carry a percentage. Below five rows the funnel prints the ratio — “1 of 3 onsite” — instead of a rate, for the same reason the median panel refuses to sound confident about four data points. One application that reached an offer is not a 100% conversion rate; it is one application, and the next one moves that figure by fifty points.
A worked example
Suppose you have 42 rows. Four are saved leads you never sent, so 38 were applied to. Of those 38, nine reached a phone screen, four reached an onsite, one became an offer. The funnel reads: Applied 38; Phone screen 9, 23.7% of applied, displayed as 24%; Onsite 4, 44% of screens; Offer 1, 25% of onsites.
Now response times. You logged a first reply on 14 of the 38 — the nine that became screens plus five straight rejections. The gaps, in days: 2, 3, 3, 4, 5, 6, 6, 7, 9, 11, 12, 14, 19, 26. Fourteen values, so the median is the mean of the 7th and 8th, 6 and 7: 6.5 days. The arithmetic mean of the same list is 9.1, dragged upward by the single 26. That gap is why this tool reports a median — you are not describing the tail, you are asking at what point silence becomes meaningful, and half the replies were in by day 6.5.
The other 24 applied rows have no reply at all. They are excluded, and the panel says so, because 6.5 days describes how fast replies arrive when they arrive, not how likely one is.
Edge cases, and how they are handled
- A reply date earlier than its applied date is kept, excluded from the median, and counted out loud rather than silently dropped.
- A date in the future is flagged in the table instead of producing a negative age.
- Day counts run on UTC midnight, so a 14-day-old application stays 14 days old across a daylight-saving change.
- Blank cells sort to the bottom in both directions, never to the top.
When to follow up, and what to say
There is no universally correct interval, and anyone quoting one to the day is guessing. What is defensible: send one follow-up, once a normal review cycle has plausibly happened, and make it add information rather than ask for a status. Fourteen days is the default because it clears that cycle while the role is usually still open. At a ten-person company where a founder reads everything, seven is fine.
After an interview the clock is better. Ask when they expect to decide, put that date in Next action date, and follow up the day after it passes. That is a commitment they gave you, not a guess you made.
Hi Priya — I applied for the Operations Analyst role on 3 March and wanted to add one thing: last year I rebuilt the dispatch reporting at Northwind, close to the forecasting work in your posting. Happy to send a one-page summary. If the role is filled, no problem — I would just appreciate knowing.
It carries new information and gives them an easy way to close the loop. Do not send a second follow-up on the same silent application. One is diligence; three is remembered for the wrong reason.
Telling a stalled process from a dead one
The two look identical for about a fortnight. After that, the difference is whether anybody is still answering. Stalled but alive: someone replies at all, even to say there is no news; the posting is still up; the date they gave you slipped and a new one replaced it. Give those a next-action date and nothing more. Dead: two messages to someone who previously replied go unanswered; the posting is down or reposted with a fresh date; your contact has left. Mark it Ghosted and keep the row — deleting dead applications is the fastest way to make your own numbers flatter you.
What this tool does not do
- It does not sync. Moving devices means exporting the JSON and importing it on the other one.
- It does not remind you. No emails, no notifications — nothing here knows who you are.
- It does not interpret salary. That field is free text so it can hold ranges, currencies and equity notes; the only thing done with it is reading the first number in order to sort.
- It does not predict. No score, no chance-of-offer, no benchmark. It counts what you told it.
If the funnel says your interviews convert but your applications do not, the fix is upstream: the resume and job description matcher. If it says the opposite, the fix is rehearsing your answers. And when a row becomes an offer, compare it properly.
Related tools
Job application tracker FAQ
Where is my data stored, and can I lose it?
Can I sync between my phone and my laptop?
Why does an application I marked Rejected still count in the onsite row of the funnel?
Why median days to first reply instead of an average?
Is there a limit on how many applications I can track?
Can I import a spreadsheet or a CSV file?
Will it remind me to follow up?
Can it tell me my chances of getting an offer?
Track it, then improve what the numbers point at
Every tool here is free, runs in your browser, and never asks for an account.