ad astra per scientiam. Random thoughts and stuff.

Why Recruiters Fail

This is my stock auto-reply to recruiter eMails, at the moment. And, below that, some lessons for anyone who wants to hire a programmer.

There are 3 parts to this.

What I send when I get junk mail that smells like it came from a recruiter. Because I don’t even bother reading them, most of the time. Most of the time, my mail filters auto-reply and I don’t even have to know it happened.

What I would liketo see. This is a template for actually hiring a good programmer without pissing us off.

And then … an annotated copy of the kind of crap every programmer loathes to see. Warning: There is profanity — not as much as it deserves, but still, there is some.

My Auto-Response

Thanks for your interest!

It looks like you’ve send me an eMail about a job offer. My Résumé and C.V. can be found at http://star-hope.org/brpocock/ if you’d like to review it. This is always current. There’s even a PDF link in the left margin.

If you’d like to discuss a job opportunity or schedule an interview, please make sure you include at least the following information. Just two things. It’s easy.

You might want to read some of that résumé too. If you’re looking for an entry-level script kiddie or a customer service position, you might be barking up the wrong tree.

№ 1) What is the job?

The name of the programming language (Lisp, Java, C) or operating system (Linux, Android, iOS) are not sufficient information to guess what the job is. Nor is “Senior Programmer.”

Think about it this way — when you hire a mechanic to work on your car, do you look for a “9mm and 10mm socket wrench operator with screwdriver experience for a great task involving motor oil,” or do you say “I need someone who can work on my Ford and keep it running smoothly?”

№ 2) Tell me a reason I might be interested.

You’re trying to get me interested in this job, right? My résumé and CV gives you all kinds of information about the kinds of things I find interesting. So tell me something that will make me care.

By the way, if you’re going to try to convince me to uproot my family and move someplace, you’d better have some kind of ridiculously amazing reason for me to even talk to you. Telecommute or Telecommute+travel jobs are worth mentioning, though.

Even if it doesn’t actually interest me, perhaps I know someone who would be interested.

Is this response rude? I’m trying not to be.Look, I get 20-50 mails from recruiters every day. Most of them are pretty much worthless. “Senior Java developer needed for Android software” tells me almost nothing. Wasting my time with eMails that don’t actually give enough information for me to guess what job you’re trying to get me to apply for — I consider that far more rude. Think of this as my attempt to make the world a better place.I’m sorry if my filters caught you, and you’re legitimate. On the upside, I no longer waste my time on 20+ junk mails a day, so I can afford to skip the “game” and have an intelligent conversation with those of you who are actually making the necessary effort to know something about the position before we speak.

If you already hit № 1 and № 2 in your message, don’t worry; I’ll get back to you ASAP. This has actually happened a few times. Rarely. Very, very rarely.

Example of a good eMail to recruit a programmer.

OK, seriously, people have asked me for this. Really. Here’s an example of something that would actually get a response:

To: Susie Q. Programmer <dreams-in-lisp@example.com>

From: Joe Recruiter <want-to-hire@example.com>

Subject: I18N/L10N Programmer to support Customer Service apps

The Subject mentions something that Joe saw in Susie’s CV that made him think she’d like this job. Avoiding acronyms is usually best, but “internationalization and localization” gets abbreviated for a good reason.

Hi, I’m Joe Recruiter, and I found your résumé at http://example.com/susie-q-knows-parens.html — is this current?

In the first ¶, Joe mentions how he got Susie’s information.

I have a need for a programmer to support an existing, in-house app that’s used to support our customer service department at WidgetCorp.

Here’s the beginning of the pitch —

I see you have some experience with internationalization and localization efforts and large-scale real-time systemts like this. Would you be interested in discussing whether a position with WidgetCorp would be a good fit for you?

— and here’s the hook. Tying the job opening to a specific skill or interest is critical.

As you might know, WidgetCorp ships thousands of custom widgets ewery day, and we have customer service offices in three countries for sun-chasing 24-hour support, joined by a collection of programs that combine SIP+VoIP, various intsant messaging platforms, eMail, and even faxes in Japan and China. The whole system has ad-hoc i18n/l10n in 9 main languages and serves up both the public-facing web front-ends from some Amazon cloud instances and private hosting focilities as well as the inward-facing Customer Relations Management system for our contact center staffs.

Technology architecture — this is the stuff that programmers find interesting. Not too detailed, but just enough for Susie to decide if she might be interested. Notice how this explains what the program does. Some specific technologies are mentioned, but there’s no need to include a laundry list of operating systems, programming languages, or libraries being used.

Naturally, we offer a competitive salary and pension plan, flexible work hours, 20% time, full family health benefits, and we’d be willing to discuss either a telecommute or in-office position with our Boca Raton office. There would be ocassional travel for conferences as needed (we usually attend GUADEC and spend a few extra days in the host country with our families as a “team building” event) and twice-a-year meetings at our main offices in Atlanta, GA.

Here’s the bit that lets Susie know that the company is actually willing to pay market rate — and mentions some special perks. It also mentions the office location(s) or travel requirements, but tries to make them sound like part of the benefits.

I can be reached at this eMail, or if you’d prefer to call, my office number is 408-555-1234 (9-5 Pacific time).

Simple contact info, easy to find.

Thanks,

~JR

No attached company logos or page-long corporate mottos; just a signature — and, since there isn’t a bunch of noise at the end, Susie may still be reading, which means she hasn’t made up her mind yet, so Joe gets one last shot…

PS. I see you mention being a fan of Emacs — since our app is built up of things in a bunch of different languages, that’ll probably be a great fit with our team’s eclectic tool collection. The lead programmer says he’s a VI guy, though, so he’s not sure if we should include pinky strain on your health plan — I’m sure there’s a joke in there, but please don’t shoot the messenger!

The PS gives Susie some great re-assurances about the work environment and team structure being legitimately flexible and maybe a little bit fun. Plus, the “inside joke” that only programmers and system administrators are likely to “get” makes this message really stand out — it shows that the team lead actually has at least skimmed her résumé, and this isn’t just a junk mail.

Example of a Typical Bad Recruiting eMail.

Annotated with why it’s bad in RED.

Hello,

We are working on a number of exciting opportunities but I’m not going to tell you what they are yetand are eager to talk with you and see if XXXX is the right fit. We value your time and would like to learn more about your skills, experience, and career aspirations because we couldn’t be bothered to read your résumé.

Below is some information about an immediate opportunity for which you might be interested. Please contact me at your earliest convenience so that we can have an initial discussion and go from there. Call me at XXXX

Title:Sr iOS developer What do I already know about this?

I’m guessing that “Sr” means “senior” and you forgot the “.”?

It has something to do with Apple iOS — probably. It could be a typo for Cisco’s IOS.

“developer” is in lower-case … why?

Um, wait, are you done? So, what are you developing? A game? A fax viewer? A web page? — Hello?? What is the job??

At this point, I stopped reading and skimmed ahead to look for hints in the sea of verbose bullet points … blech …

Location: Torrance, CA which is 3,000 miles away from you probably and not someplace you’ve ever heard of, and there’s no indication if we expect you to visit this office or telecommute or …

Duration: Long term Well, that’s good … what is “long” term? And why avoid the typical term “permanent?”

Interview: Phone Hire OK, WTF. You think you can interview a programmer on the phone? Yeah, that sounds great. I can totally discuss things by reading code over the phone during the interview. Like, “paren define-tack-compiler-tack-macro curry paren function ampersand-rest arguments close paren let paren paren curries paren make-tack-gensym-tack-list paren length arguments close double-quote all-caps CURRY close close close back-quote paren let comma paren mapcar sharp-quote list curries arguments close paren declare paren optimize paren speed 3 close paren safety 1 close paren debug 1 close close close paren lambda paren ampersand-rest more close paren apply comma-function comma-at-curries more close close close close close.” That makes great sense.

Surely, you mean, “initial phone screening with a meaningful follow-up interview to be arranged before hire,” right?

Position: 1 Is that a good thing? Would position 2 have been better?

DETAILED RESPONSIBILITIES/DUTIES:

In case you don’t know what a programmer does…

• ? Responsible for coding and unit testing application software

OK, right, “programmer,” I get it…

across including production support,

wait, WTF? Is that even English? Looks like badly cut-and-pasted stuff?

enhancements to existing applications, and new development.

OK, back to the “no shit” territory.

• ? Design, document, and Implement

Hmm, so you want a programmer and a tech writer now? Do I get paid double?

Implement is capitalized. You did mean “program,” right?

I sure as Hell hope you’re designing, then programming, and then documenting, or … well, let’s just toss those docs in the toilet, otherwise.

client-side mobile applications.

Client-side … implying that there’s a server-side somewhere?

And of course the mobile side are clients. You wouldn’t run a server on an iPod.

I already got the “mobile” part. You said iOS already. iOS is a mobile OS. Stop repeating yourself!

Hey, wait, there are multiple applications? That’s different. What are they?

You must have copied this from somewhere else, right? Because now you’re asking for an iOS programmer to write multiple applications, and a tech writer to document them all, and a server architect, programmer, and writer, too?

Why would they have to be object-oriented REST architectures? OOP is not a panacea that works in every situation. If I’m supposed to be designing these things, is there some reason you think I would need to use OOP? What if a functional or monadic or continuation-passing design was a better fit?

If I’m the designer, who came up with this rather arbitrary-seeming requirement?

REST, at least, is a good goal to shoot for, but fortunately it’s so poorly-defined a concept that stepping on a ketchup packet technically qulifies as a Representational State Transfer system, so that’s really just a noise word. The sentence would say the exact same thing without it. So why is it there?

Wait, what? There are two major mobile platforms — Android is the “dominant” one, with iOS coming in a close second. Trailing the field are FirefoxOS, Blackberry, Simbian, Windows Phone, Windows Mobile (no relation), and a dozen others.

But the “title” said iOS. So … are we also porting these apps to run on Android? What about the Blackberry RIMOS?

Are all the apps getting ported?

Or am I working with some other team that’s going to re-invent my apps (the ones I’m supposed to be designing) and talk to the server(s) I’m programming?

— oh, shit, no I didn’t see that. Mobile web apps, too? So — wait — now I’m writing multiple apps, for iOS and maybe Android and also mobile web, and their servers, and also documenting all of this? Wow, I must have a lot of resources available to me …

GWT — OK, you’re stupid for using an acronym without defining it, but let me guess that this means the Google Web Toolkit (pronounced “gwit.”) That must mean somebody has decided that they want me to design those mobile web apps using it.

That’s really strange, because you already told me I was going to design and architect them. So what happens if GWT isn’t the right tool for the job? Do I have to cram the square peg into the round hole for some reason? Why?

Oh … there’s an “OR” there. So I weed to know a lot about this one, very specific web app toolkit, or any kind of development on Android or iOS… ? OK, fine.

Well, since apparently I’m the architect and designer, I guess that’s abviously a “given.” Although, I’m already getting the idea that the “limited guidance” might be more like “arbitrary technology decisions will be imposed upon you by people who don’t know what you’re doing.”

Now, aside from feeling madly insulted by this eMail, at this point I’m thinking:

What the Hell are all these apps supposed to actually DO??

Even though you’ve explained what it is that a prgrammer does to me over and over again, and demonstrated some really poor English skills, and made me guess that you want me to write multiple client apps on at least three distinct platforms, and their servers, and then document tho whole stack, you still haven’t told me what any of these apps are!!

That sounds familiar. Maybe because it’s a basic part of the definition of “programmer,” and a complete waste of my time to mention it here.

Or maybe because it’s the second time you’ve mentioned it. In this paragraph.

• ? Strong interpersonal skills; customer and results oriented.

OK, I’ll give you a “bye” on this, since obviously I’m the project manager, mentor, and stuff, too.

• ? Excellent written and verbal communication skills.

Excellent, as compared to whom? The person who wrote this drivel? That’s a pretty low bar to set.

Experience:

Now, wait just a durn minute. You haven’t told me what these apps I’m designing are going to do, but you’re really going to dictate that I have to have worked for certain other people or something? Bah …

You know what? If you find a project manager who can appease unreasonable twits, a programmer who can mentor multiple apprentices, write several apss on four different platforms, and a tech writer who can document all of that, you should be damned happy, whether or not she happens to have the “experience” that you’re about to name.

Right. Like, say, the equivalent experience of being a senior programmer who can design and program multiple apps across at least four architectures, document them, mentor apprentices, and also be a project manager?

If you are interested in learning more about the above position,

Stop. Right. There.

There is no “above position.” Because there is no way for me to start to guess what the job entails because nothing at all in this mail gives me the slightest idea of what the job actually is.

Seriously.

And that is why I don’t bother to read your mail, recruiters. Because of crap like this.

WHAT IS THE JOB???

oh, but wait, there’s more…

please respond at your earliest convenience, along with an updated resume because we just mailed this crap out to millions of people and have no idea who you are. It would be very helpful if you could provide the following information to aid in the process because we are too lazy to actually read your résumé which probably mentions these things:

1. Your current location (city & state):

2. Contact number:

3 Expected rate / compensation: which should be fun because we’re not telling you what the job is so you may as well ask for $10M a month with a private jet

4. Date of availability:

5. Work Authorization Status:

About Us! because we’re more interested in advertising for ourselves than telling you what job it is that we’re trying to get you to interview for

Founded in XXX

Publicly held (“XX” on XXX) The funny part is there’s a really goofy error here in the part I’ve redacted too.

$100+ million in Annual Revenue Ah, so now you know what to ask for in “Compensation.” $12M/year seems reasonable.

650+ Billable Consultants What did those people do that you’re billing them for?

Flexible Benefits What on Earth does that mean?

Competitive / On-time Pay Wait, should I be worried? I’ve never had anyone tell me that they would pay me on time. That’s like saying “this pen will not blow up and shoot ink everywhere! Wink, wink!” — The very fact that you mention it makes me believe you’re probably lying.

Thanks & Keep SmilingThe irony. I’m so not smiling. This entire message was a waste of electrons.

You’ve managed to make a terrible first impression and convey next to nothing about the job.

XXXX

Team Lead – IT Recruitment

Really? That’s sad.

XXXXX, STREET-ADDRESS-REMOVED(PHONE# EMAIL)

Oh. right. In case I want to call you to try to shake some sense out of that tree.

About XXXX (NYSE Amex: XXXX):XXXXXBecause I so care. Really. Why is this crap even in here?And you’re on the New York Stork Exchange and … American Express?

Please consider the environment and do not print this email unless absolutely necessary.WTF.

Yeah, because there’s a rash of people printing unnecessary eMails?

The fact that your signature is longer than most of my eMail messages probably doesn’t help.

Netiquette Reminder: eMail Signatures should never exceed 2 lines, or 150 characters, whichever is less. In other words, if you can’t text it, or Tweet it, don’t put it in your .signature. It makes you look ignorant, and rude.

This email was sent to XXXX, by XXXXXX

Oh, is that what those “From” and “To” fields are for? Gee whiz …
To remove your email address permanently from future mailings, please CLICK HERE