Yesterday I got yet another completely absurd cold email from an incompetent technical recruiter:
I’m looking for a Front-end React (Next.js) developer to join our international team. It’s a Full-time remote job.
From my research (not that I’m spying) on GitHub, you have an experience with React.js which is our priority for this new role. But please correct me if I’m wrong.
You’re wrong and your “research” sucks big time!
I’m sick and tired of these poorly written canned messages. Clearly this person didn’t bother to check neither my resume nor my GitHub profile, as otherwise they would have known that I never did any React programming!
This article has been a long time coming, but yesterday’s message was the tipping point that actually made me write it. It’s a simple guide for technical recruiters by programmers, and will help them actually do something meaningful with their time.1
The Golden Rules of Technical Recruitment
Learn the Basics
The more you know about programming, the more successful you’ll be in the role. Often I’ve been thinking that programmers with good communication skills would make phenomenal technical recruiters.
Take the Time to Actually Research Someone
You really have to read their resume, peruse their public projects (if any), go over their blog, etc. You can’t just send random bullshit and expect meaningful results.
You also have to understand that the fact that someone did something in the past, doesn’t mean that they are a good fit for your present role. Last time I did any systems programming was 15 years ago. Last time I did any Java programming was 10 years ago. I still constantly get approached by clueless recruiters offering me programming roles in both areas.
Funny enough, my resume clearly states that these days I’m only interested in management roles (as this is what I’ve been doing for the past 10 years), and I’d consider going back to programming only for a great cause (involving a lot of REPLs and parentheses). Sadly, the vast majority of recruiters never bothered to read it.
That rule is basic and intuitive, and yet almost no one seems to follow it.
Respect the Experience of People
If someone has 20 years of experience as a programmer, and is currently in an architect role, it probably doesn’t make much sense to offer them an entry-level role on your team. If they have been building front-end frameworks for the past 5 years, probably they won’t be super excited about an opportunity to work on static landing pages for the marketing department of your blockchain-powered startup.
Similarly - I’ve been offered numerous engineer roles (I see you know Ruby and Rails), while serving as a technical executive. Everything’s possible (you might have an amazing team, product, etc), but some things are not very likely. More often than not recruiters were just looking for some specific keywords and spammed every candidate that their search returned.
Finally, it’s just as bad if you reach out to a person with a couple of years of experience on the job, and offer them to interview for a role that supposedly requires 5 years of programming experience + 3 years of managerial experience. From their perspective this can mean only one of two things:
- your job descriptions are bullshit and you don’t really care about the requirements listed there
- you have no idea who you’ve contacted
I’ll repeat rule number 2 - take the time to actually research someone. Quantity is no replacement for quality.
Don’t Assume Too Much
Half the recruiters approach me with vague messages about “very competitive salaries” and “great relocation” opportunities. The fact that I live in Bulgaria doesn’t mean that I’m working for pennies and that I’m dying to relocate to your US/Western European corporate HQ.
Unless you know that you can offer a candidate a better paycheck or that they are interested in relocation, I’d avoid making this the highlight of a sales pitch.
Messages that target the wrong thing can be extremely off-putting.
Create a Great Pitch
How many times did you get a super generic message like the following:
Greeting from X. I work for Y, a well-funded startup that’s using blockchain technology to revolutionize Z. Our team is growing rapidly and we are now looking for skilled Whatever engineers to fuel our growth.
Would you like to connect so we can discuss this further?
I don’t know about you, but I never respond to such messages as they have absolutely no substance. At least they are a bit better than the messages from the recruitment agencies that only talk about their mysterious unnamed client looking to hire more programmers for some unclear purpose.
Here’s another bad pitch (and it’s real):
We’re looking for someone full-time. Rails dev. will be working on the product.
Some benefits / what it’s like working with us:
- This position includes learning a lot (product & tech-wise), - 1 month paid vacation, - 100% flex hours, 100% remote, - 0 Scrum, 0 standups, we only do 1 meeting per week, - You'll get a lot of feedback about your creations (that's what programming really is -- it's not just writing black and white code!) from customers.
What’s do we see here?
- Bad grammar.
- 100% flex hours, 100% remote - hmm, I thought almost every company offered this right now.
- The sales pitch takes a lame swipe at Scrum/Agile and the fact most companies are doing it well.
- Generic mumbo-jumbo, and nothing specific about the role. Who would even think that a month of paid vacation is something special worth highlighting? Which job doesn’t involve learning and getting feedback for your work?
As Charlie Chaplin once said, you never get a second chance to make a first impression. If you don’t manage to engage with your “lead” right away, you can forget about them.
Crafting a good sales pitch involves the following:
- Researching the candidate carefully and personalizing the message for them
- Highlighting what’s so special about your opportunity (e.g. you can expand on the nature of the business, the great team you’ve built, career growth opportunities, etc)
- Adding a bit of flavor to the message. I always had a fondness for witty recruiters with some sense of humor. Not an universal rule for success, but the message here is that impersonal communication yields subpar results.
Emails are Better than Linkedin
I never started a new job after learning about a job opportunity via LinkedIn. I see two reasons for this:
- Most people, including me, hate LinkedIn and are there just out of necessity. You’re simply expected to have a LinkedIn profile these days. What’s also true is that most people have turned off any form of emails and notifications from LinkedIn and visit it very rarely (unless actively looking for a job).
- I’m overwhelmed with connection requests and messages there, so I rarely have the time to go through all them.
If you really want to get in touch with someone, take the time to find their email (pretty easy thing to do these days) and go old school.
And never call people on their personal phones out of the blue! That’s super weird and creepy!
Don’t Contact Multiple People Together
I recently got the following email from a recruiter:
I found your contacts via Github & went through your website (railsgirls.com), so I decided to contact you all in one email.
The email was addressed to me and 3 other people who I happen to know from the local Rails community. 2 That’s a big no-no! Contacting multiple people with the same pitch is bad on multiple levels:
- it’s impersonal - you fail to acknowledge the different circumstances of everyone in the group
- it makes you look lazy
- it’s sloppy
- if you’ve reached out to multiple people in the same company in this manner, it might create some tension and friction, as people may start to wonder will the others engage with the recruiter, is someone in the group actively looking for a job, etc.
Don’t ever do this!
Don’t be Pushy
Sending me a new message to check if I got your old message sucks. People are busy and your “amazing opportunity” might not be on top of their todo list. You either get a response or you don’t. No need to be annoying about this.
Checking in with people, after you’ve had some communication with them, is fine, provided you do it in a non-pushy manner.
That also extends to scheduling - when scheduling interviews you’ll get better results if you try to accommodate the preferences of your candidate instead of the preferences of your team. I was rarely excited about interviews taking place at 6 am or 10 pm.
Share Prompt & Meaningful Feedback
Everyone hates the following situation:
- You go to an interview.
- You don’t hear from the recruiter for a couple of weeks after the interview. They seem to be ghosting your messages.
- In the end you get rejected and receive some vague feedback about insufficient technical expertise and not being a good fit.
I recall that once I was told I was “too technical” for one managerial role. I asked what the hell does this mean and as expected got some bullshit answer.
Such interactions leave a pretty bitter aftertaste and tend to be carried around by word of mouth. Proper timely feedback is essential in recruitment. Never forget this!
Using the Guide
I’d encourage you to respond with a link to the guide to every tech recruiter that engages with you in a frustrating manner. I know that’s what I’ll be doing going forward. My favorite response goes like this:
No, I’m not interested in your opportunity, but you might be interested in reading https://batsov.com/articles/2021/11/03/a-note-about-recruiters/
I guess it’s quite obvious, but still - master the guide and level-up your game.
That’s it. Short and simple.
I know that technical recruiters are universally despised and frequently derived in the IT circles, but sadly the quality of their work is not helping the situation. Obviously not all technical recruiters are bad, I’ve had the good fortune to work with some truly amazing people in the field. But I’ve also experienced so many unpleasant interactions with crappy recruiters, that I totally understand the current sentiment towards people in this role. If I helped a single technical recruiter to do a better job, writing this guide was a fantastic investment on my part.