DEV Community

Cover image for Track Your Job Search In Notion
MusabShakil
MusabShakil

Posted on

Track Your Job Search In Notion

Recently I'm looking for a new job opportunity and I'm also using Notion a lot for various stuffs, so I thought why not just combine both of these things.

Previously when I applied to open positions I didn't keep track of them, so I didn't know how many times I applied, whether or not I'm applying to the same company twice, and are the companies ghosting me.

I looked around and found various Notion Job Tracker Templates, but I just need a simple one, so I made my own template, Minimalist Notion Job Tracking Template.

At this time I started applying to jobs, every time I submit an application I fill out my template with the details I need when I look back to this application for an interview or for following up with the recruiter.

Now the problem I'm facing is every time when I apply to a job I need to fill in the notion template, and I'm seeing a repetition here. As a software engineer I know the debt of doing things manually, so I started thinking how I can automate it.

I saw Notion recently publicize their APIs and allow integration/bot, so I read through their docs.

First of all, I need to make a new integration.

Then I created a Node.js project, installed the SDK @notionhq/client through npm package manager, and saved NOTION_DATABASE_ID and NOTION_KEY in a .env file.

With just a single method notion.pages.create which takes an object with a few properties as arguments I was able to enter job details successfully.

I ran this script in Replit which makes it really simple to iterate over new ideas and prototypes.

import { Client } from "@notionhq/client"

const notion = new Client({ auth: process.env.NOTION_KEY })

const databaseId = process.env.NOTION_DATABASE_ID

async function addItem(
  company, website, status, role, application
) {
  try {
    const response = await notion.pages.create({
      parent: { database_id: databaseId },
      properties: {
        Company: {
          title: [
            {
              "text": {
                "content": company
              }
            }
          ]
        },
        Website: {
          rich_text: [
            {
              text: {
                content: website,
                link: {
                  url: website
                }
              }
            }
          ]
        },
        Status: {
          multi_select: [{
            name: status
          }]
        },
        Role: {
          rich_text: [
            {
              text: {
                content: role
              }
            }
          ]
        },
        Application: {
          rich_text: [
            {
              text: {
                content: application,
                link: {
                  url: application
                }
              }
            }
          ]
        }
      },
    })
    console.log(response)
    console.log("Success! Entry added.")
  } catch (error) {
    console.error(error.body)
  }
}

addItem(
  "Walmart",
  "https://www.walmart.com/",
  "sent",
  "Software Engineer",
  "https://careers.walmart.com/us/jobs/WD944268-software-engineer"
)
Enter fullscreen mode Exit fullscreen mode

You might be thinking this code doesn't solve my problem of repetition, because in the addItem function I'm entering data manually. For that I've created a Chrome Extension which extracts all these fields from a job when I hit the submit button, so this blog post is just a small part of a bigger picture, but it doesn't mean you can't start right away. You can use my notion template and above code to get off the ground and explore new ways to automate job applications on your own until I share my Chrome Extension.

Btw I don't automate the portion where I've to fill up the job application, the portion where a company asks to upload a resume, cover letter and answer various other questions. I think I've better chance of getting hired by writing a personalized cover letter and answering all the other questions according to the company culture and their mission. I prefer quality over quantity. There is a subreddit which provides really good feedback on resumes. I learned various key things from the resume experts available there.

Top comments (0)