<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Hireline Templates]]></title><description><![CDATA[Hireline Templates]]></description><link>https://hirelinetemplates.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sat, 31 Oct 2026 14:33:20 GMT</lastBuildDate><atom:link href="https://hirelinetemplates.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[The spreadsheet we use to track a tech job search]]></title><description><![CDATA[The columns, statuses, follow-up rhythm and response-rate formulas behind a simple job search tracker in Excel or Google Sheets.]]></description><link>https://hirelinetemplates.hashnode.dev/the-spreadsheet-we-use-to-track-a-tech-job-search</link><guid isPermaLink="true">https://hirelinetemplates.hashnode.dev/the-spreadsheet-we-use-to-track-a-tech-job-search</guid><category><![CDATA[Career]]></category><category><![CDATA[Productivity]]></category><category><![CDATA[job search]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[spreadsheets]]></category><dc:creator><![CDATA[Hireline Templates]]></dc:creator><pubDate>Wed, 28 Oct 2026 14:41:35 GMT</pubDate><content:encoded><![CDATA[<p>A tech job search generates a lot of small, forgettable facts. Which version of the resume went to which company. Who the recruiter was. Whether you already followed up. Each fact is easy to lose, and together they decide whether your search feels organized or chaotic.</p>
<p>We build spreadsheet templates at Hireline Templates, and this is the layout we keep coming back to. You can rebuild it from scratch in ten minutes using what's below, or start from our free version. Either way, the structure is what matters.</p>
<h2>The columns (and why each one earns its place)</h2>
<p>Our free Lite tracker has seven columns. The paid one adds two more. Here is each one and the job it does.</p>
<p><strong>Company.</strong> Obvious, but sort by it before you apply anywhere. It's the fastest way to catch a duplicate application to the same employer under a slightly different role title.</p>
<p><strong>Role.</strong> Write the exact title from the posting, not your shorthand. When a recruiter calls about "the platform role," you want to match it in seconds.</p>
<p><strong>Posting Link</strong> (called <strong>Link</strong> in the full tracker). Postings get taken down, often right before an interview. Save the URL, and ideally paste the description into a doc too, so you can reread what they asked for.</p>
<p><strong>Date Applied.</strong> This one column drives your follow-up timing and your weekly application count. Use a real date, not text, so formulas can work with it.</p>
<p><strong>Status.</strong> One value from a fixed list. More on this below.</p>
<p><strong>Contact.</strong> A recruiter, hiring manager, or the person who referred you. Even "recruiter (via careers page)" beats a blank, because it tells you whether there's anyone to follow up with.</p>
<p><strong>Notes.</strong> Interview dates, the questions you were asked, the salary range they mentioned. Keep it short and factual.</p>
<p>The full Job Application Tracker adds:</p>
<p><strong>Next Follow-Up.</strong> A date for when you'll check in next. In our version, the row turns red when that date arrives (rows marked Offer or Rejected are skipped), so overdue follow-ups are hard to miss.</p>
<p><strong>Salary.</strong> The posted range or the number from the first call. Handy later when you're comparing offers.</p>
<h2>Statuses: keep the list short</h2>
<p>Both versions use one dropdown with six values:</p>
<ul>
<li><strong>Wishlist</strong>: found it, haven't applied yet</li>
<li><strong>Applied</strong>: submitted</li>
<li><strong>Interview</strong>: any conversation beyond the application (recruiter screen counts)</li>
<li><strong>Offer</strong>: you have one</li>
<li><strong>Rejected</strong>: they said no</li>
<li><strong>Ghosted</strong>: no reply after your follow-ups</li>
</ul>
<p>The short list is deliberate. Once statuses multiply ("Phone screen 2", "Take-home sent", "Waiting on team"), counting stops being useful. Put the detail in Notes and keep Status for counting.</p>
<p><strong>Ghosted</strong> is worth having as its own value. Moving a row there is how you close it in your head and stop rechecking your inbox for that company.</p>
<h2>A simple follow-up rhythm</h2>
<p>There's no universal rule, but a common practice looks like this:</p>
<ol>
<li><strong>About a week after applying</strong>, send a short check-in if you have a contact: one or two lines restating the role and your interest.</li>
<li><strong>About a week after that</strong>, one more brief note.</li>
<li><strong>Then move on.</strong> Set the status to Ghosted and spend that energy on new applications.</li>
</ol>
<p>In the sheet, this is just a date. When you apply, set Next Follow-Up to roughly a week out. When you follow up, push it another week. After the second follow-up with no reply, clear it and change the status. If you're using the Lite, which has no follow-up column, add your own column or note the date in Notes.</p>
<h2>Response-rate math</h2>
<p>Once you have a few weeks of rows, two ratios tell you where a search is stuck:</p>
<ul>
<li><strong>Response rate</strong> = responses Ã· applications. Count anything that isn't silence as a response: Interview, Offer and Rejected.</li>
<li><strong>Interview rate</strong> = interviews Ã· responses. Of the companies that replied, how many moved you forward?</li>
</ul>
<p>If response rate is low, look at the top of the funnel: targeting, the resume, how closely you match the posting. If responses come in but rarely turn into interviews, the issue is more likely the screen itself.</p>
<p>In Excel or Google Sheets, assuming Status is in column E and company names are in column A, rows 2 to 500:</p>
<pre><code>Applications sent (not Wishlist):
=COUNTA(A2:A500) - COUNTIF(E2:E500,"Wishlist")

Responses (Interview + Offer + Rejected):
=COUNTIF(E2:E500,"Interview") + COUNTIF(E2:E500,"Offer") + COUNTIF(E2:E500,"Rejected")

Response rate:
=IFERROR(responses_cell / applications_cell, 0)

Interview rate (Interview + Offer, out of responses):
=IFERROR((COUNTIF(E2:E500,"Interview") + COUNTIF(E2:E500,"Offer")) / responses_cell, 0)
</code></pre>
<p>The dashboard in our full tracker uses the same idea for its response rate: (Interview + Offer + Rejected) Ã· (all rows minus Wishlist).</p>
<h3>Response rate by source</h3>
<p>Neither of our templates has a Source column, but it's worth adding one if you apply through different channels (job board, referral, company careers page, recruiter outreach). Put it in a spare column, say J, then use COUNTIFS:</p>
<pre><code>Applications from referrals:
=COUNTIFS(J2:J500,"Referral",E2:E500,"&lt;&gt;Wishlist")

Responses from referrals:
=COUNTIFS(J2:J500,"Referral",E2:E500,"Interview")
 + COUNTIFS(J2:J500,"Referral",E2:E500,"Offer")
 + COUNTIFS(J2:J500,"Referral",E2:E500,"Rejected")
</code></pre>
<p>Divide the second by the first for each source. Even a rough split helps you decide where to spend next week's time.</p>
<h2>A worked example (example numbers only)</h2>
<p>These numbers are made up to show the arithmetic. They aren't benchmarks or results from anyone's search.</p>
<p>Say a sheet has 40 rows: 4 Wishlist, 20 Applied, 6 Interview, 1 Offer, 5 Rejected and 4 Ghosted.</p>
<ul>
<li>Applications sent: 40 âˆ’ 4 = <strong>36</strong></li>
<li>Responses: 6 + 1 + 5 = <strong>12</strong></li>
<li>Response rate: 12 Ã· 36 â‰ˆ <strong>33%</strong></li>
<li>Interview rate: (6 + 1) Ã· 12 â‰ˆ <strong>58%</strong></li>
</ul>
<p>Now split by source, again with example numbers. Suppose 30 of those 36 came from job boards and got 6 responses, and 6 came from referrals and got 6 responses. That's 20% versus 100% in this made-up sheet. The point isn't the percentages. The point is that a Source column makes a pattern like that visible after a few weeks instead of a few months.</p>
<h2>A weekly ten-minute review</h2>
<p>Once a week:</p>
<ol>
<li>Sort by Status and move anything past its second follow-up to Ghosted.</li>
<li>Count applications sent this week (COUNTIFS on Date Applied works well).</li>
<li>Look at response rate and interview rate. Is one of them clearly the bottleneck?</li>
<li>Set Next Follow-Up dates for everything you applied to this week.</li>
</ol>
<p>That's the whole system: a handful of columns, six statuses, a date for each follow-up and two ratios.</p>
<h2>Get the template</h2>
<p>If you'd rather not build it, the <strong>free Job Application Tracker Lite</strong> has the seven columns and the status dropdown above, for Excel and Google Sheets: <a href="https://payhip.com/b/2HqLW?utm_source=hashnode&amp;utm_medium=article&amp;utm_campaign=evergreen">https://payhip.com/b/2HqLW?utm_source=hashnode&amp;utm_medium=article&amp;utm_campaign=evergreen</a></p>
<p>The <strong>full Job Application Tracker ($4.99)</strong> adds Next Follow-Up with red overdue rows, Salary, and a dashboard with status counts, response rate and applications per week: <a href="https://payhip.com/b/zVejq?utm_source=hashnode&amp;utm_medium=article&amp;utm_campaign=evergreen">https://payhip.com/b/zVejq?utm_source=hashnode&amp;utm_medium=article&amp;utm_campaign=evergreen</a></p>
<p><em>Disclosure: we make this template (Hireline Templates). This article was drafted with AI assistance and reviewed before publishing.</em></p>
]]></content:encoded></item></channel></rss>