Recruiting is a real pain but it can be made to work. After much trial and (even more) error, we’ve arrived at a process that works and it’s pretty painless.

Here’s how to make it work for you.

Welcoming the perfect candidate

Recruiting is about growing your team with great people who are passionate about the same things you are. Unfortunately, more often than not it feels more like a long, arduous frog-kissing marathon, with no prince in sight.

A Working Model

As an example of a working model, here’s how we handle recruiting at Nearsoft,

  • Start with internal recruiters
  • Actively work on our employer brand
  • We have a eight step process (but you can do it in six)
  • The process is optimized for taking weak candidates out early
  • Measure candidates for cultural fit as well as technical skills
  • Minimize burnout by distributing the load among many interviewers
  • Leverage our investment by giving every candidate detailed feedback
  • Created training programs to increase the number of qualified candidates

Internal Recruiters

Having internal recruiters means that they are not CV pushers. These are full-time, permanent employees who understand our culture, live our values, and have a long-term stake in the results. They continually learn enough about our technology to recognize good candidates and keep weak candidates out.

This is actually a big, big win.

According to Bryan Schreier, a partner at Sequoia, this is a competitive issue,

It makes sense to rely on your network of contacts for the first handful of developers. But at Sequoia, we think that once you have product-market fit, the risk to your business is too great not to have someone dedicated to staffing.

Just think of the time you waste going through obviously inadequate resumes that you get from traditionally “headhunter,” and how frustrated your people get when they waste their time interviewing unfit, weak candidates.

The Process

  1. Once one of our recruiters identify a good candidate, he kickstarts the process by sending her our Logic Test.
  2. Next, given our location (Mexico), we need to make sure that our candidates can hold a conversation in English. You can probably skip this step.
  3. Then, we do a traditional phone screen, a 15-30 minute Tech Screen to check for basic knowledge and cultural fit.
  4. This is followed by a Profile Interview, where we check out how well they know basic Computer Science concepts (e.g., inheritance) and development practices (e.g., patterns, unit testing). This is fairly traditional part of the interview. And not enough.
  5. Next, we have them Pair with a couple of our folks to see how well they do in practice. We have them work on three tasks,
    • A simple task that we expect them to finish in 15 minutes or less.
    • A task that we expect them to finish in less than half an hour.
    • A complex task that can take up to an hour (and it’s meant to trip them).

If your company uses more than one language, you’ll need to define a set of tasks for each. We have created versions of these tasks for Java, C#, PHP, Objective C, Python, and Ruby.

You Need Both

You need to do both the Profile and Task interviews. Some candidates are very good at talking about concept and theory all day, but suck at programming. Others who struggle to barely get through the Profile interview turn out to be excellent at problem solving, analysis, and coding; they clearly understand the basic concepts and this shows during the Task interview.

Surprisingly, most companies still rely solely on Profile interviews. That’s train wreck waiting to happen.

At the other extreme, some people advocate having candidates work with them, full-time for a while before they actually hire them. But that’s not feasible in most cases. For one, most candidates can’t afford to do it. By the same token, most companies are not setup to have a revolving door of people coming in, dropping some code, and going away.

The Task interview gives you the best of both worlds. There are other approaches out there, but this one works pretty well for us.

Thumbs and More

  1. At the end of the process (i.e., after the Profile or Task Interview), all interviewers get together in what we call a Thumbs meeting. There, every one present gets to score the candidate in a 1-5 scale, where 1 means “fire me if you hire her” and 5 means “fire me and hire her!” Candidates are scored for cultural fit and technical skills, and scoring low in either means an automatic thumbs down.
  2. After the Thumbs, we negotiate terms with the candidate.
  3. This is followed by a Client Interview (you can skip this step, too).

Finally, we make a formal offer and immediately start the on-boarding process.

Cultural Fit

All along, we check for cultural fit as well as technical skills.
Does the candidate come through as arrogant? when she gets stuck, does she ask her peers for help, or does she clamp down and tries to brute force it? Does she ignore the suggestions and hints that her peers (i.e., interviewers) may offer? How flexible is she? Is she a complainer or full of excuses? Does she even show a sense of humor?

Cultural fit is extremely important. You would not want to hire a jerk, no matter how brilliant.

Share Feedback

At Nearsoft, we share a summary of the feedback with every candidate. We also recommend ways to close the gaps. We even have a program we call Office Hours where we offer to mentor a candidate through their learning process. You can read more about this in Better Recruiting: Share Feedback!

Suffice to say here that doing this will benefit your company as much as it does the candidate.

Talent Incubator

Every so often we find a diamond in the rough among the many candidates we go through. For example, a candidate with otherwise great skills may not have enough hands-on experience with a design or development practice (e.g., Unit Testing).

It’s fairly easy to tell when this is the case because the interviewing team gets excited about the candidate and really, really wants to bring her into our team.

With all the talent we already have in-house, we can afford to train these candidates and help them shine in a relatively a short time. And that’s what we do in the Talent Incubator.

We hire these almost-ready candidates, at full pay, and they get up to three months’ worth of training, as needed.

Keep It Sane

Dedicate a time band for interviews, for example, 9-11 am or 4-6 pm. By scheduling interviews at the beginning or the end of the day you won’t chop up your developers’ work day. Development requires focus and the worst thing for your developers is to be constantly interrupted out of this intense concentration. Getting back into the flow is time consuming and frustrating.

In other words, interruptions are costly both in terms of dollars and cents and the impact on morale.

Be Kind to the Willing

Invariably, a few of your developers are going to be more willing to interview candidates than others. But make sure that they don’t get burned out.
Keep track of the time people spend on interviewing and try to spread the load.
Be Good to the Unwilling

At the other end of the spectrum, some will refuse to do it, even if they never say so.

There are many reasons for this, but one reason is that these developers feel that they don’t know how to interview.

So, train them!

You can start by having them participate as observers in others’ interviews.

Other Approaches

Of course, there are other approaches to shaping a recruiting process. For one, Greg Brockman, CTO, Stripe talks about Stripe’s approach to recruiting (video, 20:19 mins). He points out that referrals have been their best source of quality candidates, while outside recruiters have not worked for them.

Another point Brockman makes is to pay careful attention to rejection emails, because the people that you reject have friends that they can refer to you if they leave with a good feeling about the company. In our case, we always speak with the candidate at the end of the process and give them plenty of actionable feedback. Email is too low bandwidth for this.

For another approach, check out Ben Yoskovitz, VP Product at GoInstant, post on the recruiting process at Standout Jobs. Like at Stripe and at Nearsoft, their process included a hands-on test to, as Brockman put it, “make interviews as similar to the role as possible.”

Yoskovitz concludes with this,

Recruiting successfully is crazy hard.

Now’s Your Turn

We hope this post helps you improve your own recruiting process.
Do you use other techniques to filter out weak candidates sooner? Do you think some of the ones mentioned above will not work for you? Why not?
Please, tell us about it in the Comments section to share with the community and come up with an even better model.