Everyone’s job search is different but I think some insight can be gained (especially for new grads) from sharing our approaches. This article will document my job search from start to finish.

Context

Before we can get to the first step, we need to establish what I’m looking for.

I’m a software engineer and would like a job that fits the following:

Technology: Similar to my experience to minimize ramp up time and make me a better role fit (e.g. Node.js, Python, Ruby)

Motivation: Are you motivated by solving problems, a product making a difference, or something else? The company/role you find should satisfy this. For me, it’s a product making a difference

Additional constraints: Small company size, located in San Francisco

For those unfamiliar with the “Technology” section, consider it like:

I’m a wildlife biologist and would like a job that fits the following:

Relevance: Opportunities should include animals I’m familiar with (e.g. 3 popular animals I’ve worked with before)

Closest meme I could find

Finding job listings

Next up, we are going to find and save job listings that we think are a fit. It’s best to save them in a single location (e.g. text document, Find Work) as these steps can take a while and be exhausting to do all at once.

Example job listing, https://boards.greenhouse.io/figma/jobs/130875

Example saved listing in Find Work

In my experience, there are 3 ways to find listings:

Direct

Most companies have jobs/careers/etc links on their websites. I like to have a long list of companies I respect/would like to work with. Then, when I start my search I go through the list and see if I’m a good fit.

Snippet of my company list

Job boards/Reverse job boards

Similar to my company list in the “Direct” section, I have lists of job boards and reverse job boards. For the uninformed, I consider a reverse job board to be something like Underdog.io where you submit your resume and companies contact you.

I typically stick to startup focused and/or relevant technology focused job boards to remove unnecessary noise to sift through.

Selection from job boards list

Networking

Over the course of a career (and maybe before it), we collect a network of people. This includes people we’ve worked with, recruiters/companies that have contacted us, and people we’ve met at events. As with the other sections, it helps if this data is aggregated (e.g. browse through contact list, email folder for people who contacted me).

Applying to a job

Next up, we take each job listing, do our homework (i.e. research, targeting), and submit our application.

Research company

I personally hate wasting time, mine or anyone else’s, so I like to eliminate potential issues upfront. For me, this means verifying:

Employees enjoy working there (Glassdoor)

Company size is good (LinkedIn, AngelList)

Company is doing well without losing too much of their equity to venture capitalists/angel investors (AngelList, Crunchbase). I’ll elaborate on this in a bit.

I perform the research via Find Work and save it on the application for quick reference:

Example application with saved research notes

Equity explanation

For those of you in/entering the startup world, money being raised is a good indicator of how a business is doing:

If a company hasn’t had to raise money or raises large sums infrequently, then they’re probably doing good.

If they are raising more/less the same amount repetitively, then they could have stagnated and are losing large chunks of their equity. Use caution and ask about this during early stages.

Companies get the best terms when they don’t need to raise. Also, you should be aware that employees typically get non-preferred stock which means you can get screwed at IPO/acquisition so be sure to trust your company.

Example of a company with a great trajectory

Example of a company with a potentially bad trajectory for non-investors, ask them about it

Submitting an application

Next, we want to give our application the best shot at getting the foot in the door. This means we are going to cater/shape our resume as well as include a cover letter explaining why we are applying/our interest in the company.

As our reference, here’s my targeted resume and cover letter for Sentry:

Inspired by https://www.latextemplates.com/template/friggeri-resume-cv, maintained by hand in LibreOffice Draw

Cover letter, written from the heart

So how do we build this? First off, I pick the best layout for the resume. For me, I want to show my design knowledge so I use a typographic grid. For someone in a non-design related profession, then a traditional layout might work better.

Next, I build a generic resume that best summarizes my skill set (e.g. one to would send to a reverse job board). Then, for each listing, I add/swap/remove content to best fit the position. I use the listing itself and StackShare to find what’s relevant. To make this easier, I have a long list of swappable items for each section of the resume:

Snippet of resume terms/repo list

With respect to cover letters, the intro/outro stay relatively consistent but the sections in between are written from scratch each time (e.g. Python experience, open source experience) as every company/job is different.

Be sure to save your resume and cover letter somewhere (feature pending in Find Work) so you have a point of reference in the next stage.

After the cover letter and resume are completed, submit them and set a reminder to follow up in 1 week. Sometimes, an application slips through the cracks and this helps the recruiter take a second look. If you’re using Find Work, then the reminder will be set up automatically.

Example application with follow up reminder

Waiting for a response

Now comes the longest part of the job search, waiting. I typically will wait for 1 week before following up. Following up should only be done via email so it’s limited to specific applications. We want to avoid things that will upset the recruiter (e.g. resubmitting the same application, contacting support).

If I haven’t heard back in a week and can’t follow up, then I consider the application dead, archive it, and move on.

I would recommend following up only once, maybe twice if you’re super passionate about the company/role. After that, consider it dead.

Interviewing

Phone screen

We have received an email back from the company! Typically, this starts with a phone screen with a recruiter or person in your department-to-be.

This step can be a little technical but is mostly to verify you are interested in working with the company and fit the role.

After the interview is scheduled, I do the following:

Write a list of questions to ask during the call (e.g. department ratios — engineering vs sales, open source policy, any red flags like funding)

Set up a pre-interview reminder to review my notes, cover letter, resume, and the listing before the call

Set up a post-interview reminder to record notes from the interview

Find Work manages the reminders along side the interview information keeping everything consolidated.

Example interview and its reminders

Following up again

After each interview stage, there’s a possibility that you won’t hear back from the recruiter for a bit. Use the same 7 day guidelines as before — thankfully you have an email to reach out to this time 👍

Code challenge, technical video call, etc

Every interview process varies from company to company. Sometimes there’s a coding challenge, sometimes there’s no technical video call, sometimes there’s 1, sometimes there’s 2, sometimes there’s nothing.

The rule of thumb is the same — reminder before for preparation/reviewing notes, reminder after for updating notes, follow up in 7 days.

On-site interview

This is the final stage of interviewing. You’ll visit the job’s location and interview with the team there. This is to get as close as possible to what it’ll be like when you work there.

If you don’t live in the city where the job is located, then you’ll typically be asked to fly out.

Once again, as with every other stage, reminder before for preparation, reminder after for taking notes, follow up in 7 days.

Additionally, it might be good to think of what you’ll expect to be asked (e.g. salary, theoretical technical questions).

Rejection

At any stage of interviewing, you can be turned down to proceeding further. Don’t take it too personally, try to identify why/what went wrong, and learn from it (e.g. not prepared, bad technical fit).

I’ve been rejected from applications (e.g. Khan Academy, Stripe, HackerOne), everyone has been rejected from applications.

See: http://rejected.us/

Receiving an offer

Congratulations!!! 🎉🎆🎊 You’ve got an offer! Now it’s time to weigh your options and make a decision:

If there are other applications near the end that you want to see through, then do that

Don’t hold onto applications for too long — nobody likes to be teased only to be unsatisfied. There are likely other candidates that they want to extend offers to

Counter-offer and bounce offers off each other if that’s your thing (I hate it but do it and consider it a necessary evil)

Best of luck at your new job!