Internship application tracker: free Google Sheets and Excel template for the Summer 2027 GitHub lists

Free internship tracker for Excel and Google Sheets that counts down to application, online assessment and offer deadlines. Plus the Summer 2027 GitHub lists, checked.

An internship search runs on deadlines that a job search mostly does not have. A posting on a GitHub list can close a few weeks after it appears. The online assessment link that arrives two days after you apply expires in a week. An offer comes with a date by which you have to accept it, sometimes before your other applications have answered.

Most internship tracker templates are a job tracker with "internship" in the title: company, role, status, notes. This one counts down. You type the dates as they reach you, and the sheet works out which deadline matters for each row, how many days are left and which rows need you today. It is a single .xlsx file, free, no signup, and it opens in Excel or imports into Google Sheets.

Download the internship application tracker template (.xlsx)

The Tracker tab of the internship template: three yellow rows with an application, an online assessment and an offer decision due within three days, an orange row saved seven days ago and not applied to, a grey row with no reply in 38 days, and a rejected application whose automatic columns stay blank
The Tracker tab as it looks on 23 October 2026. The four dark-blue columns fill themselves in. Yellow means a deadline inside three days, orange a saved posting you have not applied to, grey an application with no reply in 30 days. Ten columns (role, term, location, link, work authorization, date found, referral, OA submitted, offer date, notes) are hidden here to fit the page.

Why an internship tracker needs deadline columns

A full-time job search is mostly about following up. An internship search has three clocks, and each one has a date someone else sets:

  1. The application deadline. The GitHub lists show no deadline column, and most postings there simply close. A posting you saved and did not apply to has a shelf life.
  2. The online assessment (OA). Many tech internships send a coding test, a HireVue or a game-based assessment after you apply, with a due date in the email. Miss it and the application is over, whatever your resume says.
  3. The offer decision date. Offers come with a date to accept or decline. That date often lands before other companies have replied, so it is the one you need to see coming.

The template gives each clock its own column and picks the one that applies to the row. Before you apply, it watches the application deadline. Once an OA arrives, it watches the OA. Once you have an offer, it watches the offer date.

If you searched for an "internship tracker Excel template" to log the hours an intern works, this is not that file. This one tracks internships you are applying to.

The columns

The Tracker tab has 300 rows and these columns:

Column What goes in it
Company, Role, Location The posting
Term A dropdown: Summer 2027, Fall 2027, Spring 2027, Winter 2027, Summer 2028
Job link The Apply link, exactly as the list gave it. It is how you find duplicates
Found on Which list or channel you found it on (SimplifyJobs, speedyapply, Handshake…)
Work authorization flag None, No sponsorship or US citizens only, copied from the list's 🛂 and 🇺🇸
Date found The day you saved it
Apply by (deadline) Only if the posting gives one
Date applied The day you submitted
Status A dropdown: Saved, Applied, Interviewing, Offer, Rejected, Ghosted
Referral (who) The name of the person who referred you, if anyone
OA due, OA submitted The due date from the assessment email, and the day you finished it
Offer: decide by The deadline on the offer
Next deadline (auto) Calculated: the one date that matters for this row now
What's due (auto) Calculated: Application, Online assessment or Offer decision
Days left (auto) Calculated
Alert (auto) Calculated: "due in 2 days", "Missed", "Saved 7 days ago", "No reply in 38 days"
Notes Recruiter name, interview rounds, pay, which portal login you used

The six statuses are the ones the HiredFolio job application tracker uses, so the rows can move into the app later without renaming anything. An online assessment is deliberately not a status: it is a step with its own due date, and a status column cannot hold a date.

Rows 2 to 7 are examples, dated relative to the day you open the file so every alert shows the first time. Delete them before you add your own.

The formulas behind the countdown

Here is the logic, in the simple form you can paste into your own sheet. It assumes the template's columns: I is Apply by, J Date applied, K Status, M OA due, N OA submitted, O Offer: decide by.

What's due (column Q) picks the clock:

=IF(A2="","",IF(OR(K2="Rejected",K2="Ghosted"),"",
 IF(K2="Offer",IF(O2="","","Offer decision"),
 IF(AND(M2<>"",N2=""),"Online assessment",
 IF(AND(J2="",I2<>""),"Application","")))))

Read it from the top. A rejected or ghosted row has nothing due. An offer only cares about its decision date. An OA with a due date and no submission date comes next. And a deadline you typed only counts while Date applied is empty: once you have applied, the posting's deadline no longer concerns you.

Next deadline (column P) returns the matching date, and Days left (column R) is that date minus today:

=IF(Q2="","",IF(Q2="Offer decision",O2,IF(Q2="Online assessment",M2,I2)))
=IF(P2="","",P2-TODAY())

Alert (column S) checks five things in order and stops at the first that is true:

  1. The deadline has passed: "Missed: Online assessment".
  2. It is today or tomorrow: "Online assessment due tomorrow".
  3. It is inside the warning window (3 days by default): "Application due in 2 days". The row turns yellow.
  4. The row is Saved, has no Date applied, and was found 5 or more days ago: "Saved 7 days ago: apply or drop it". The row turns orange.
  5. The row is Applied, nothing else is due, and it has been 30 days: "No reply in 38 days: mark Ghosted?". The row turns grey.

The 3, the 5 and the 30 live in the Settings tab (Settings!$B$3 to $B$5), so you change them once for all 300 rows. The formulas use only IF, AND, OR and TODAY, and they read nothing but their own row and the Settings tab, which is what lets them survive an import into Google Sheets.

Why a saved posting goes stale in five days

The fifth check exists because saving a posting from a GitHub list feels like progress and is not. We downloaded the data file behind the SimplifyJobs Summer 2027 list on 28 September 2026 (the file was last updated on 26 September) and counted.

49%

63% of those 60+ days old

of the Summer 2027 internships posted at least 30 days before the snapshot were already marked closed. Across all 3,168 Summer 2027 listings from 701 companies, 1,019 (32%) were closed, most of them posted in August or September.

Source: HiredFolio count of SimplifyJobs/Summer2027-Internships listings.json, file dated 26 September 2026

"Closed" is the list's own flag: the maintainers mark a listing inactive when the posting stops taking applications. It is not a deadline the company announced, which is why so few rows in your sheet will have an Apply by date. For most postings on the list, the real deadline is "while it is still open", and half of them are not open a month later.

The same file shows when the postings arrive. 142 Summer 2027 internships were added in July 2026, 991 in August and 1,868 in the first 26 days of September. If you are starting in late October, the list is already long, and a good part of it is closed. Sort by newest, and apply to what is still open before saving more.

Five days is our choice, not a rule. It gives you a weekend and a few evenings to tailor a resume, and it keeps the list of saved rows short enough to act on. Set it to 3 if you apply every day.

The Summer 2027 GitHub internship lists

We checked each repository through the GitHub API on 28 September 2026. Star counts and dates will have moved since.

Two notes on that list. The vanshb03 list had not been updated for five weeks when we checked, and its newest rows were dated 21 August, so treat it as a second source, not your daily one. The quant list is organized by firm rather than by posting, so it changes less often.

If you knew the SimplifyJobs repo as "the Pitt CSC list", it is the same one. The old pittcsc repository address now redirects to SimplifyJobs.

Track in your own sheet, not in a fork

A common approach is to fork the repo and tick off rows as you apply. It breaks because the list does not keep closed postings in place. In the SimplifyJobs repo, closed roles move to a separate README-Inactive.md file, which held 1,047 rows when we checked, against 7 🔒 closed markers left in the main list. A row you ticked in your fork disappears from the main list the day the posting closes, and so does your record that you applied.

Keep your record in a sheet you own, one row per application, and copy the Job link exactly. The link, not the company name, is what identifies a posting: one company often has several internships open at once.

The same posting shows up on several lists

We compared the two lists that cover the same ground. Of the 214 Apply links in the vanshb03 list, 87 (41%) point to a posting that is also in the SimplifyJobs data file. That is a floor, since we only counted links that match exactly.

So before you add a row, search your sheet for the link (Ctrl+F or Cmd+F in both Excel and Sheets). If it is already there, you have already dealt with it. The Found on column records the list where you saw it first, and the Stats tab uses it.

Where the Apply links lead

The Apply button on a list rarely opens a simple form. Of the 2,149 open Summer 2027 postings in the SimplifyJobs file, the links went to:

Application system Open postings Share
Workday 830 38.6%
Greenhouse 226 10.5%
Oracle Cloud 203 9.4%
iCIMS 112 5.2%
Ashby 77 3.6%
SmartRecruiters 37 1.7%
Lever 24 1.1%
Other or company-built 640 29.8%

Workday is the one that shapes your week. Each company runs its own Workday site, so each one asks you to create an account, often with a password you will need again for the OA or the offer. Write the email you signed up with in the Notes column. When a recruiter says "check the candidate portal" three weeks later, you will know which login to try.

Using the template in Google Sheets

There is no "make a copy" link: you import the .xlsx once, and from then on it is a normal Google Sheet in your Drive.

  1. Open sheets.new.
  2. Go to File > Import > Upload and choose the downloaded file.
  3. Pick Replace spreadsheet, then Import data.

Then check that the Status dropdown, the yellow rows and the Stats tab came through. Our job application tracker template guide has the full four-point check, and explains the locale setting that decides whether 03/04/2027 means March or April. This template avoids the question by showing every date as 2027-03-04.

The countdown uses TODAY(), which updates when the sheet recalculates. Open the sheet each morning and the alerts are current. The sheet does not message you when it is closed.

What the Stats tab tells you

The Stats tab counts the applications you have sent, the online assessments you received, and the replies. A reply is an interview, an offer or a rejection; silence is not a reply. From those it calculates two rates:

Neither rate means much before about ten applications in a group. There is no benchmark in the file: we have not found a trustworthy published figure for internship response rates, and they vary too much by field and school to borrow one. Our article on how many applications it takes to get a job shows how to work out your own.

When the spreadsheet stops keeping up

A sheet works as long as you type every row. Working from the GitHub lists, that is dozens of rows a week, each one a posting you have to copy from a Workday or Greenhouse page.

That copying is what the HiredFolio Chrome extension removes. It recognizes job pages on Workday, Greenhouse, Lever, Ashby, SmartRecruiters and several other application systems. In the SimplifyJobs data above, those systems covered 1,218 of the 2,149 open postings (57%). On other sites, such as an Oracle Cloud or iCIMS portal, you allow it on that site once and it tries to read the posting from there. One click saves the title, company, link and full description into your tracker.

In the tracker you set a deadline on each application and it shows on the card, in amber while it is still ahead. Set a follow-up date and you get one email that morning with everything due. The statuses are the same six as this template. The free plan tracks up to 100 active applications, and archived ones do not count.

Track your internship applications in HiredFolio for free

If you are sending your first ten applications, start with the sheet. Switch when copying rows from the lists becomes the part you skip.

Key takeaways before you open the lists again

01

Download the template, delete the six example rows, and log every posting with its exact Apply link and the day you found it.

02

Type the OA due date the day the assessment email arrives, so the row turns yellow before it expires.

03

Clear the orange rows each week: apply, or delete the row. Half of the postings a month old are already closed.

No reply to an application you care about? Send one of our follow-up emails.

Read next