Thursday, February 11, 2010

Developer recruitment is broken.

When looking for a new job in software there seems to be little choice other than to go through a recruitment agent these days. You may get lucky and someone may approach you or you may find a company you want to work for and they may have an opening but most of the time it seems you are stuck with using these agents.

The Status Quo

Currently the finding a new job lifecycle:
  1. Want new job
  2. Go to your favourite job web site
  3. Add in relevant keywords Click go.
  4. Find several jobs that you may be interested in
  5. Discount ones that you have applied for before.
  6. De-duplicate the ones from the same recruiter that are written slightly differently.
  7. De-duplicate the ones from different recruiters that are for the same role.
  8. Chose one for job with highest salary.
  9. Speak with recruiter who inevitably says that that position is filled. 
  10. Recruiter will try and fit you into any other job that he can possibly can. Enticing you with promises of working with 'SilverLight MVC' or that the company is 'recession proof'. Recruiter will more often than not refuse to give you name of company.
  11. You will pick the most awesome sounding role.
  12. Either your cv will get rejected and you won't hear anything from the recruiter. Start again. Or..
  13. Goto interview. Job is not what you want. They love you though (or are clutching at straws)
  14. Tell recruiter thanks but no thanks. Recruiter uses hard-sales techniques and threats of violence.
  15. Begin to run out of money/will to live.
  16. Accept role.
  17. Start job and work for n months.
  18. become unhappy at work. Start again

What is wrong with that?

There is a huge signal to noise ratio of phantom jobs. You waste time and effort applying so that recruiters can harvest your details. Recruitment agents have a vested interest in keep the name of the company you've applied to work for, from you. So how do you know what you are applying for? There seems to be one common factor.

The Recruitment Agent

I am confident I could have this role filled within 2 weeks for you (From sending the CV’s, interviews taking place to offer being made) -quote from recruitment consultant
Lets look at the purpose of a recruitment agent. A recruiter sits between candidate and employer and will sort the wheat from the chaff. He/She will use their resources to find the right people for the right job. Brilliant but with market forces/greed/targets coming into play something has gone wrong. Most recruiters are target driven they get paid to place developers in roles. Consequently when there are no right people for the job the recruiter goes unpaid. So what do they do? They select the almost right people for interview. When they run out, they select the wrong people. A recruiter must produce candidates to be seen to be effective. This means that the larger the candidate base the better. If a recruiter has N candidates and N is large how can they know all their candidates? They can't. So they rely on playing cv bingo.
  • Employer says he needs asp client has asp.net (Bingo!). 
  • Employer wants JavaScript candidate has Java (Bingo!).
  • Client wants experience, candidate has 5 years Silverlight (Bingo!)
The recruiter doesn't get paid more for knowing the industry better, they get paid more for placing more people in more roles. In fact they get paid more for placing the nearly right people in more jobs that aren't quite right more often. Their ideal candidate is a brilliant interviewer who likes to move on every couple years and has mastered the art of bullshitting in acronyms. This gives the impression to the company that they are doing a great job of finding people in a difficult market. A candidate who is placed 3 times in 5 years is more of an asset from a recruitment point of view than a great developer who stays in a role for 5 years. So even if a recruiter feels that the candidate is not going to stay in the job long there is no financial motivation in dissuading a candidate, the motivation is placing the client.

Changing the model

As a prospective candidate I want a way to find out where the 'good' dev teams are in my area. I want to be able to say 'Hi, I'm interested in working for you.'
As an employer I want to say 'Hi, we do some great stuff and you should come work for us.' The current system does not support that. What can be done? Here are some alternatives:

Remove the middle man

Why do we need these agents in the first place? They create a closed marketplace. Candidates should just apply on spec to companies and tech companies should do a much better job of promoting themselves.

Candidates pay the agent

If the candidate paid the agent to find a job say with a small amount upfront and a satisfaction payment 6 months later. Perhaps the recruiter would take more care that the candidate was a better fit.

Appraise recruiter performance on candidate performance

The model is obviously broken. Why are we paying recruiters just to place. We should be rewarding them to screen candidates too. I'm mean this is why they are here in the first place, isn't it? Employers should be employing these people with a service charge. So you want to recruit someone but don;t want to sift through 1000s of candidates? Pay someone for that, don't pay someone to place as quickly as possible.

1 comment:

Andrew Myhre said...

I think there's room for a new job listing website that works more for developers.. I'm drawing up some wireframes at the moment, do you want to have a look?