Recruiting Software Developers – Initial Contact

I regularly get emails from recruiters trying to get me to change jobs. Unfortunately, many of the emails are not very good, wasting my and the recruiters’ time. So here are 5 tips for recruiters on how to write a good email, as well as some advice for developers.

Tips For Recruiters

1. Supply and Demand. The market for software developers today is special. If you are a decent programmer, you can pick and choose where to work. Demand far outstrips supply, unlike for a lot of other professions. Understanding this (inverted) balance of power is crucial. As a recruiter, you have to sell the job to the developer, not the other way around. It also follows that developers that respond to recruiting emails are helping the recruiter as much (or more) as the recruiter is helping the developer.

2. Be Specific. When presenting a job opening, be specific. Which company is it, what technology stack are they using, what are the unique selling points for this role. Just writing vaguely about a “fantastic opportunity” wastes time for both. I know what I like in a company, and if those criteria aren’t met, I can say no right away. Setting up a phone conversation just to tell me what the job is does not change that.

3. Be Personal. When contacting a developer, make an effort to tailor the mail, so it doesn’t just look like a generic form mail. For example, refer to something you have seen from the developer on for example GitHub, a blog or LinkedIn to show why you think this job would be a good fit. “I noticed from your blog that you enjoy working in Python” can be enough to show that you have put some thought into why this might be a good fit, as opposed to just randomly contacting as many developers as possible. This is flattering for the developer, and increases the chance of getting a response.

4. Respond. One sure way for a recruiter to look bad is to not acknowledge a reply. If I take the time to respond to your email, even if the answer is “No thanks, I am not interested”, the polite thing to do is to send a mail back. It can be as simple as, “OK. Thanks for responding. Let me know if you change your mind.” Also, answer back quickly, to show that you are on the ball. When there are few ways of telling if a recruiter is any good, the simple action of responding instantly makes you look better.

5. Checking Back Is OK. Even if I am not open to switch jobs right now, that can change. It is OK to check back once a year or so, given that the job opening is relevant.

Reminders For Software Developers

We Are Lucky. In a lot of other professions, applicants compete for jobs. In software development it’s the opposite – companies compete for the developers. This is good to remember sometimes, in case you feel annoyed with recruiters. Being presented with job offers is a good problem to have. Besides, they are only doing their jobs, so there is no need to be rude.

Better Bargaining Position. If you are contacted by a recruiter about a role, you are in a much better position to negotiate salary and benefits than if you applied directly. You already have a job, so if the offer isn’t interesting enough or good enough, you  can just say no.

My Story

Almost all recruiters that contact me find me through LinkedIn. I think this is a good feature of LinkedIn, but almost all first contact is through a connection request. I only use LinkedIn to connect with people I know, so I have no interest in adding random recruiters to my network. But I am happy to mail/message them back instead. The few that don’t find me via LinkedIn usually mail me directly. One enterprising recruiter from Google even found me because of my review of “How Google Tests Software” on Amazon.

I have changed jobs many times in several different ways: replying to a job ad, contacting companies directly, via former colleagues, and via a recruiter. When I ended up being recruited, it was the second time I was contacted by that recruiter. The first time, two years earlier, I was very happy where I was, and was not interested in changing. The second time I was still very happy there, but I was open to seeing what else was available. As it turned out, the opportunity was quite exciting, and I was happy to have been contacted, since I would not have found that company by myself.


10 responses to “Recruiting Software Developers – Initial Contact

  1. Henrik – You make some really good points here, and as a recruiter I’m always interested in hearing about what software developers look for in an initial contact. I think your article also gives some explanation as to why some recruiters choose not to do some of the things mentioned in the article.

    When we combine your thought of “developers that respond to recruiting emails are helping the recruiter as much (or more) as the recruiter is helping the developer” with the request for recruiters to share the company name on the first contact, we get a bit of a potential issue for the recruiter. When we reveal a company name, we are at least exposing ourselves to the possibility that the candidate will contact the company directly and the recruiter will not get a fee for the hire. If candidates truly believe that they are not helped by the recruiter very much, this direct contact is a somewhat likely outcome.

    One other consideration – not all recruiters are useful, but a good recruiter will be more helpful than you might think, and I can assure you that I’m helping my candidates more than they are helping me. Without my guidance, you might not be able to find out what kind of interview my startup client gives or their pet peeves about interviews. I’ll give my candidates all the tools they need to be successful in the interview (without giving away any answers of course) and then be their advocate during negotiations. As a candidate, do you know that the CEO of $COMPANY tends to make an offer 20K below where he/she is willing to go if we negotiate? I do, because I’ve negotiated with $COMPANY dozens of times over the years, so I assure you that I’m helping you more than you are helping me if we get to that point.

    I’m in a unique position because I’m retained (clients pay me some money up front), so I am willing to mention client names and I even advertise them on my jobs page. Most recruiters do not do this for two reasons – the one mentioned above about candidates who will go around recruiters, and the other reason being that they don’t want other recruiters to know who their clients are (fear of recruiters stealing clients).

    Recruiters that send impersonal emails or are non-responsive are a problem and should leave the industry – I agree with that.

    Regarding LinkedIn, I thought we were connected! I just sent you a connection request. 🙂 Your email address isn’t on there (at least I didn’t see it on a quick glance), so a recruiter might take the easy road and just send a connection request instead of tracking it down. I always try to find a direct email address – I think sending a connection request as a first contact is tacky. There are lots of ways to find an email address, and hopefully candidates will respect that I found their GitHub profile and used the API to find your email address (yes, you can do that). Some won’t notice, and that’s ok.

    Regarding checking back – if I check back once per year, what are the chances I’ll find you at the moment you are seeking work? I always try to get candidates to think of me when they are considering a job change, and many reach out to me. I also write a monthly newsletter – with REAL news! – that helps educate my candidate network and also lets them window shop for my open jobs during any given month.

    Good article, and thanks for sharing your thoughts on recruiting!

    • Hi Dave,

      Thanks for an excellent comment!

      Maybe I should have worded the part about ”… helping the recruiter as much (or more) …” differently. In my view it is mutually beneficial, but some recruiters I’ve come in contact with seem to think that they are only helping the developer, not the other way around. I also don’t think it would make much sense to apply to the company directly if you are told the name of it. It is in the recruiters interest that I get the job (to earn a fee, or to look good), therefore the recruiter is going to help me. Furthermore, I would loose the bargaining advantage if I applied directly instead of going via the recruiter – me coming to them instead of the other way around.

      As for checking back – if I really wanted to change my job, I would contact companies that interest my directly. If I had been contacted by a recruiter about that company in the past, I probably would contact them first though. But often the case isn’t so clear cut. I might like it where I am, but still be open to a new job if it is good. It comes down to laziness a bit I guess, so in my opinion, there is quite a large window in time where I would consider switching (especially if it is served on a silver platter – i.e. I don’t need to do any work to find out about it).

      Also, good points about the other ways a recruiter can help, and about being contactable on LinkedIn.


  2. Pingback: Java Web Weekly 48 | Baeldung

  3. I feel lucky in that I’ve had both good and bad experiences with recruiters. The bad ones are fairly obvious – generic messages, sometimes pared with the complete wrong languages (like the recruiter who gushed over my Java skills when everything I’ve done is in C++).

    I would criticize, but I once sent the wrong cover letter to a job posting and immediately realized the mistake. I suppose it’s good to do this kind of thing at least once in our lives?

    On the other hand was the recruiter who clearly liked my skills, and led me onto a job interview that I nearly accepted. So the job can definitely be successful.

    I imagine there’s always awkwardness in any industry that consists of cold-calling people. Your points are pretty valid, though. I would think that a truly successful recruiter would be able to build relationships with developers over years, and be ready to connect them with potential employers when they needed a job. Easier said than done, I’m sure.

  4. I like using programming tests. They can filter out bad programmers quickly and narrow down your pool of candidates. This way you only interview people who meet your required skill level instead of wasting time. I have experience with TestDome and can recommend it:

  5. Pingback: Recruiters and Jobs | Chaotic Good Programming

  6. A quibble on #4: ““No thanks, I am not interested”, the polite thing to do is to send a mail back.”

    I’m already not interested. I don’t want or need another email just to ACK my NAK. 🙂 I understand that your preferences may vary.

  7. Hi… These blogs offer a lot of information about Software Development.Your blog is incredible, it helps a lot to develop software. I am delighted with it. Thank you for sharing this wonderful post.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s