Here’s how I did this at my last job at a growing start-up.
My background is in engineering, but I found myself responsible for hiring people outside of my expertise for roles like marketing, sales, finance, and operations.
The process:
1) Define the role. What do you need this person to do day in and day out?
Write the exhaustive list of tasks and the exhaustive list of behaviors.
Task: Write code that does X.
Behavior: Write maintainable code I can understand.
2) Stack rank the tasks and behaviors. What is the number one most important thing? Decide on a cut-off of must-haves, step-ups, and nice-to-haves.
Must haves: you’re not talking to a candidate unless they’ve shown they’ve done it.
Step-ups: a candidate is good to move on if you think the candidate can reasonably achieve this in 6-12 months.
Nice-to-haves: between two equal candidates, you’re going with the one who can do these things.
3) Level the role. Given what you need this role to achieve, is this a staff, senior, junior, etc? Hopefully this is straightforward. Sometimes this can be between levels and that’s ok. You should decide/work with HR on comp here too.
4) Build your interview flow. Who in your org or team will screen for must-haves and step-ups, run your technical assessment, run your cultural assessment, and run your structured interview for leadership behaviors? Assign responsibilities, come up with questions, and bucket those into each interview section.
5) Decide on your rubric. After each interview, what do you want to find out? Make sure each interviewer knows the questions they need to answer and send to you after each interview.
That should be most of it. I’d be curious to hear everyone’s feedback on this.
PS: My biggest piece of advice is to not settle. If you go with a mediocre candidate to wrap up early or to save money, you’re going to miss out on special people who may have changed the trajectory of your team.