Over the past 15 years I have interviewed hundreds of Engineers. I had the pleasure of hiring quite a few, but I also had the duty to reject many.

It’s pretty easy to reject a candidate: ask HR to do it, or copy-paste a canned response and press “Send”.

“Thank you for coming to interview with us. Unfortunately we decided that we don’t have a good fit at this time.”

It’s also very, very wrong and borderline insulting.

As a hiring manager, I usually spend an hour over coffee with each candidate and try to figure out whether I want them on my team and whether I think they stand a chance in an in-person interview. I get to know them a bit, break the ice, tell them about my team and our company, try to dig up any obvious red flags. I spend another hour researching the information available online, read their code or pull requests, and occasionally reach out to my contacts that might know them. The onsite interview typically includes at least two busy Engineers, and at least one, equally busy, non-Engineer. Feedback is discussed throughout this process. In some occasions we’ll do references, yet still reject a candidate at the end. This process adds up to a full person/day and is both important and expensive.

So, take the time to write an extra paragraph and tell the interviewee why they were rejected!

I usually go through all the notes by the interviewing team and digest them into my best attempt at constructive feedback, including the positive elements. I find it really hard and I often spend thirty minutes for a draft and show it to at least one other person before sending. I agonize over this: rejection is bad news, and I don’t take it lightly.

The following are some actual examples of what I’ve written this past year.

We appreciate your huge desire to learn and your creative instinct. You’re obviously excited to code and solve hard problems. But tech-wise we don’t think you meet the bar that we’re aiming for a candidate for this position. We do think you have a lot of potential.> We think you’re very energetic and ambitious. You take initiative and are generally curious. Things like your involvement in your school’s programming club and your personal project X speak for themselves. However, your fundamentals in CS and the responses to technical questions were below the bar that we have set for a candidate in this position. We think that there’s a very strong culture fit and we love your positive energy. However, we would have liked to see a much stronger technical match. We encourage you to continue building up your experience. We think you’ve done quite a few interesting projects and have an impressive learning tech curve. The feedback from the interviewers was that you did very well around the tech areas, but that you had trouble connecting with the interviewer. We call that “culture fit” and value it tremendously. We encourage you to practice your interviewing skills, so you can fully take advantage of your superior technical abilities. Everyone who talked to you agreed that you have a lot to offer and that you’re a capable engineer. You would likely fit nicely in the existing team and contribute at par. However, we only have one opening in this team at the moment, and we are going to continue looking for someone with a much more active open-source presence and more seasoned commercial product experience. We think you have a good background, with interesting UX experience in human-computer interaction, mobile and Ruby back-end. You also worked with a great team at Company X. You experience is still a bit short and maybe too focused on the back-end of things. All things considered, we didn’t see a sufficiently good fit for us. We think you definitely have solid skills acquired at Company X and a track record prior to that. We don’t think that it’s sufficient, though, compared to the objectives we’ve set for our next hire for this position. We have a large pool of candidates that are technically very strong, and you’re clearly one of them. I also think that coming from an open-source connection is the best possible place to come from. On the tech side you have a large diversity of skill, your work speaks for itself and you have a ton of relevant experience for us in areas like video. But overall we don’t see you fit well in this team from the cultural fit perspective, which we value as much, if not more, than technical ability. We appreciate your interests in algorithms and technology in general and, of course, in working with us on our team X. However, we don’t believe that your experience and skill level as of today are going to be what we’re looking for.

These aren’t perfect and they stay pretty general, but they aren’t canned bullshit responses either. Each is a summary of the feedback by the interviewing team and represent how I feel. The candidates deserve at least this. And I think I never want to see this candidate again, I will offer my help and follow through if they want it. This may be an introduction or a referral to a specific company or person.

Finally, as candidate, you should always reply to rejection emails, if only to acknowledge that you have received it and thanking the interviewing company for their time.

Can we do better? How do you reject candidates?