I used the free Streak CRM for GMail (https://www.streak.com/) during my last job search. Allows you to basically turn your GMail into a CRM-type pipeline view so you can always visualize the statuses of different applications. You can also associate all of your correspondence regarding a particular position (application confirmation email, first contact, follow ups, interview scheduling, offer) with a single CRM record.
I recently used a Google Sheet with company name, date applied, status, action items, a link to the job description, etc. If I applied with a custom resume I add that to the same Google Drive folder with the appropriate name. Add color to the status column to make it a bit easier to scan. Move rejections to a new tab and keep post-mortem notes if you have any after phone screens/interviews (so you can study what you messed up on). It got the job done.
I have a repository on GitLab that contains a LaTex file each for an application letter, a CV and all my documents. In addition, I have an SQLite DB that contains past positions and a skill matrix in german and english language, and some python scripts that can convert the data into LaTeX format.
I keep the master branch up to date. Each time I apply somewhere, I branch off master and edit the files accordingly. I then generate a PDF that I can submit.
And because this is not complicated enough, I have a GitLab CI job that generates a CV from the master branch and uploads it to a private server in case somebody asks me for it.
I create a date stamped folder with the company’s name, and put all materials in there. I’ll move emails from each company to separate folder in my mail client as well.
I didn't have the chance to try it yet but there is JobHound: https://jobhound.io.
> Job Hound is a Job Tracking System, a web application that keeps track of every job you are applying for, manages your progress, keeps track of notes, cover letters, etc.