Job Search

Using Airtable to track job applications

I’ve been actively looking for a full-time job since early 2023. But I’ve been in the market since long before that. It hasn’t been easy. At all. But in that time, I have been trying a lot of things to keep track of the effort, and I really want to talk about it.

I’ve always been a bit of a spreadsheet fanatic. What project isn’t made better with even a quickly slapped-together spreadsheet? But while attending a conference  in grad school, I learned about Airtable and instantly wanted to give it a try. I used it for a class project or two, my e-portfolio for graduation, and even planning an elaborate holiday meal (complete with shopping lists, prep timings, and recipes). So naturally, when the time came to re-enter the job market earnestly, I made an Airtable to track my applications.

To be completely frank, I’m not certain anymore what it looked like at the beginning, because I routinely iterate and improve the process, but here’s a snapshot of the primary data view (job applications) by the end of 2023:

The primary purpose is, of course, to track the status of individual job applications. I chose Company Name as the data key value, even though there are some duplicates—there’s less overlap than job titles, and this is a bit easier to scan and sort. Role was originally a single-select, but became a linked data item—more on that later. Other immediately visible metadata for each application includes Link, Notes, Location (predominantly Remote), Action Date, Applied checkbox, Via (source), and Status

In the screenshot above, Status is used to group the view in order to filter out or collapse applications I’m not actively tracking. I developed a discrete list of status options, numbered to make data entry and sorting/filtering easier. 

  • 1a. Considering: For roles I’m entering into the sheet without immediately applying.
  • 1b. Pass: Roles that I entered but did not apply for. Might be tracking something else, or I hit a sticking point in the application process and stopped.
  • 2. Awaiting response: Application sent!
  • 3. Open process: Direct correspondence with the hiring team, interview scheduled and/or completed, additional application evaluation tasks, etc. Activities tracked under Meetings table if scheduled or under notes if not.
  • 4a. Offer: Self-explanatory.
  • 4b. Rejection: Explicit “no” from the hiring team in some form.
  • 4c. Assumed rejection: At the end of each month, I switch everything that’s 2+ months old from “Open process” to “Assumed rejection” so as not to clutter my tracking sheet. Easily updated if the status changes with direct correspondence.
  • 4d. Role canceled: Received a message from the hiring team that they were no longer hiring for the role despite failing to hire anyone. Added this later to track separately from definite nos.
  • 5a. Hired: Self-explanatory.
  • 5b. Resigned: Had to add this after my first post-grad school role turned out to be a poor fit.
  • 6. Absolutely not: Every once in a while I see a job ad that is full of red flags or things that I absolutely would not do for personal or ethical reasons. I track at least some of these to remind myself that I’m actively making choices in my job search, even if it doesn’t always feel like I have many choices to make.

Most of the time, I enter roles at “Open process” and they move directly to “Rejection” or “Assumed rejection.”

The Active status view is where I primarily enter and track applications. It only shows some statuses and is filtered by action date. All positions is not filtered at all and sorted alphabetically by company, which is useful when sifting through job ads to see if I’ve already applied to something at that company and made relevant notes or found it via another site. (Roles isn’t one I actively use, but it’s useful for filtering linked data. Maybe. Jury’s out.)The first linked data I set up was Via (Source). This is pretty straightforward: there’s a table of job listing sources I maintain—the obvious sources like LinkedIn and Indeed, of course, but also various organization-specific job boards, curated mailing lists, and communities are listed, as well as “Personal contact” for opportunities referred to me. Some of the sites I go check manually, so the table serves as a bookmark list. It’s also handy for tracking how generally “useful” various larger platforms are as far as leads.

Meetings are also linked data. There’s a calendar view under that tab, and a space to keep notes for each interview as well as upload any attachments they might send. I also track the event type, including one for “Content.” I added that when I wanted to track dates around things like profile changes and website updates.

Observant folks may have noticed that Role is linked data as well, but that was a more recent development. I’ll describe the reason and the process in another post.

The Notes field is handy for capturing anything that might be relevant. Sometimes I’ll paste the entire job ad in there. Sometimes I’ll include copies of questions and answers from the application form so I have a record of my written responses. Sometimes I’ll just complain about something annoying in the application itself, or make a note about some missing or confusing detail. At any rate, it’s freeform text content—formattable, at that—that is a handy reference.

P.S. Get in touch if you would like a link to the Airtable base! I’ve been making it up as I go, but I’m happy to share.