Job Search Organization

I’m a pretty organized person. I try to strike a balance between having things planned out and being flexible. There’s a cost to overplanning and putting more effort into organizing than strictly necessary, but I thin most of the time I’m glad I put in the effort.

One reason I do this is that I have learned the hard way over the years, that you can waste some effort capturing too much information and never using it later, but you often can’t go back in time and capture that information if you later find you need it handy. It’s like taking lots of photographs at a special event because it will never happen again, so anything not captured can’t be captured later. The same is true in monitoring and logging your computer systems.

I have found MANY occasions where having recorded details about current and past transactions from my job search has paid off, and I have made that as quick and painless as possible to reduce the burden.

The Easy Stuff: Job Search Journal

I keep a job log file (literally, joblog.txt) open all the time when job hunting. I tend to use text files so there’s almost no effort put to fixing formatting, fonts, images, text effects, etc since most of the content is pasted in. This file makes applying for unemployment each week MUCH easier. When I start a new job search, I will often rename the current file joblog_YYMMDD-YYMMDD.txt and start a fresh file. I do refer to those files when researching companies I’ve applied to before.

For every job search interaction (job application, follow up from recruiter or company, interview, acceptance or rejection) I create a timestamped note of it near the top of the file (so they are listed newest near the top of the file, oldest near the bottom of the file). This allows me to instantly see the history of each job application and know where I stand with each one, without having to search through a bunch of mail folders and saved documents. For each transaction for the same job application, I use the same exact “Company – Position” string, so I can find them easily and tell which are the same

Each starting line for a job transaction starts with a character that identifies the nature of the transaction to instantly categorize it (you may want to add more):

  • + New job
  • ? Follow up
  • ^ Interview
  • XXX Rejection

I also keep a short list above these journal entries of all active job applications (ones where I received a reply and am actively engaged with). This is super helpful for tracking who I need to follow up with when.

Lastly, I keep a list of text snippets and links I need frequently while applying to jobs (LinkedIn profile, GitHub URL, my website, certifications, etc). Here is a rough approximation of what my file looks like:

(Links to LinkedIn profile, GitHub profile, my website, etc)
(Short reusable text snippets)

XX/XX/XX        Acme Employment
XX/XX/XX        Acme Employment
XX/XX/XX        Acme Employment

================ ACTIVE
Company - Position
Company - Position

================ TO DO

================ ACTIVITIES  ZZZZ  <--- Makes it easy to search for

+ Company - Position        12/29/2020 15:51
(Full text of job ad)

(any added context: Company reviews, cover letters, etc)

XXX Company - Position        12/28/2020 14:04
Position has already been filled

? Company - Position        12/28/2020 13:21
Search for hiring manager on LinkedIn


Some Other Organizational Tips

  • Use a To Do system. What you use is a personal choice (I use an extremely powerful one called ToodleDo). This is really important.
    • You can create reminders to follow up with companies.
    • When you don’t have time to apply for a job you find, you can create a to do so it doesn’t get lost.
    • Most importantly, some of the stress and the feeling of being overwhelmed when unemployed is the pressure of having so much to do, and the fear of forgetting to do something. If you record them all in your system, that reduces the change they will be forgotten, and helps you prioritize and reschedule them.
  • People will tell you that job hunting is a full time job. That’s an awful lot of time to spend on an activity that causes a lot of frustration, depression, and rejection. Plan out your job hunting time, but not all day. Leave time for other activities, as well as learning to better prepare yourself for your next job.
  • Make a list of target companies to check periodically, and note the last time you checked their website. There is a spot for that in my joblog.txt but you may choose track it another way.
  • Set up job search alerts to send you emails on,, etc.

Making It even Easier Using A Powerful Text Editor

Since I am often working on code, and since I often have other text documents open anyway, I tend to use a full IDE or powerful text editor for this. Right now I’m using Microsoft Visual Studio Code (free). With the right configuration and plugins, it can greatly reduce the amount of work to make all this happen:

  • I use Code Snippets to automate the creation of those headers at the top of each activity. It automatically inserts the double lines top and bottom and inserts the current time, leaving a space for the company name and position. It’s like 5 keystrokes to insert a new perfectly formatted header.
  • I use several other plugins to clean up the text and make it more compact and consistent and easy to search: Remove extra blank lines, substitute unicode characters, rewrap text on long lines, etc.
  • I can search for company names across multiple files to look for previous applications to them
  • While in a remote interview, I get easy access to the job description, previous notes, and notes from this interview by placing bookmarks on those lines in the file.

Advanced Organization

Remember how I said in my job log I start each interaction with a character noting the nature of that transaction (new application, interview, rejection, etc)? I use scripts that count those to generate statistics that let me know how my job search is going. It’s quite validating to see things like the number of job applications vs the number of interviews (for which I borrow the marketing term “conversion ratio”). Since I use Linux this is very easy, but if you use Windows you can use powershell or cygwin, or just write it in some programming language. Here is my script:

applications=`egrep '^\+ ' "${JOBLOG}" | wc -l`
interviews=`egrep '^\^ ' "${JOBLOG}" | wc -l`
rejections=`egrep '^XXX ' "${JOBLOG}" | wc -l`
actions=`egrep '^[?] ' "${JOBLOG}" | wc -l`
conversionRate=`echo "scale=2; ${interviews}*100/${applications}" | bc`
rejectionRate=`echo "scale=2; ${rejections}*100/${applications}" | bc`
echo "Application count: ${applications}"
echo "Interview count: ${interviews}"
echo "Rejection count: ${rejections}"
echo "Rejection rate: ${rejectionRate}%"
echo "Conversion rate: ${conversionRate}%"

echo "To follow up: ${actions} :"

Another advanced organizational tip, and this will be harder for some, is to form or join a job search networking group. Not only is this a great way to get more leads, but they can “QA” your resume and interactions, and you can hold each other to your goals. It’s also important to have human interaction as you are not meeting with coworkers daily. Organize times to meet regularly.


I hope some of these organizational techniques help you. If you have any suggestions, please leave a comment and I may incorporate it into this post.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.