Recruiting Woes
By Bob Nimon
I am drawn to write an opinion piece about recruiting.
Why is there so much pain in a great job market with a ton of qualified candidates? Why do we have an arduous process with only 2% of applicants getting job offers?
Could it be we are going about this backwards?
First, let’s start with some interesting metrics and basic ideas conveying the size of the problem. My focus will generally be on the software jobs market since that is my primary area of experise but a lot of what we will address should more generally apply.
Spectacular Software Development Statistics - Source
- The US is home to more than 4.4 million software developers.
- 88% of software engineers are male.
- There are 1,365,500 software developer jobs available (2018, growing by another 284,000 by 2028)
- Employment for software developers is expected to grow by 21%.
- The employment rate amongst software developers is 87%.
- The demand for blockchain engineers increases by 517% every year.
- Samsung alone employs 40,506 operations software engineers.
- In 2017, there were less than 50,000 Computer Science graduates and over 500,000 open positions.
- The average age of software developers is 43.1 years.
- There are 5 jobs for every software developer.
- It takes an average of 35 days to hire a software engineer.
A 2021 study by Indeed concluded that an average HR staff to employee ratio is around 2.57 for all organizations. Small organizations have higher ratios with an average of 3.40. Medium organizations often have ratios around 1.22 while a normal ratio for large organizations is 1.03.
There are over 264,153 recruiters currently employed in the United States.
This article paints a more painful picture:
-
“It’s frustrating and tiring—job hunting has never been this hard,” says Michael Cook, who was laid off from a gaming company in December after more than a decade in the professional labor market, and who has applied to hundreds of jobs since. One company had him go through six rounds of interviews over multiple months; another asked him to create a project that they then used on their website but didn’t pay him for his work; others sent him take-home tests or asked him to record videos of himself answering pre-set questions. He has not received any offers.
-
“Meanwhile, as companies prioritize equity, they’re getting more people involved in the hiring process, inviting upper-level managers and the peers of a would-be colleague to weigh in, which adds time. Companies who laid off human resources staff are now delegating interviewing and hiring to line managers who aren’t familiar with the process. None of this, Cappelli says, means employers are getting better candidates, but it has lengthened the time it takes to hire. The amount of time it takes to hire a new employee reached an all-time high of 44 days in early 2023, according to a report released this month by the Josh Bersin Company and AMS, a workforce solutions firm. “Make no mistake, the hiring market is not going to get easier any time soon,” said Jim Sykes, global managing director of client operations at AMS, in a statement.”"
-
“The miserable job market appears to be worse for people with a college degree, according to a Harris Poll conducted on behalf of TIME.”"
-
It found that 51% of job seekers with bachelor’s degrees who had at least one interview completed the interview process without receiving an offer
-
There was a lot of discussion of recruiting scams praying on candidates desparate for good interviews
-
“As frustrating as long and onerous interview processes are, the increasing reliance on artificial intelligence, with it’s lack of nuance and context, could be even worse for job seekers.”
How do we reconcile these two different pictures of the job market? On the one hand, it looks like there are an incredible number of both candidates and jobs – more jobs than candidates in fact. But on the other hand, gaining access to these jobs has gotten even more incredibly difficult.
From a Harvard Business Review article:
“Businesses have never done as much hiring as they do today and have never done a worse job of it, says Peter Cappelli of Wharton. Much of the process is outsourced to companies such as Randstad, Manpower, and Adecco, which in turn use subcontractors to scour LinkedIn and social media for potential candidates. When applications come—always electronically—software sifts through them for key words that hiring managers want to see. Vendors offer an array of smart-sounding tools that claim to predict who will be a good hire—but whether they produce satisfactory results is unknown. Cappelli explores what’s wrong with today’s recruiting and hiring and how to fix it.”
This is a really rich article that focuses mostly on issues caused by employers, stressing things like:
-
No (or little) use of data/metrics as part of figuring out how to improve - most employers really don’t know if their process is working because they don’t measure it
-
Recruiting and hiring consultants and vendors estimate that about 2% of applicants receive offers. That means the hiring funnel is too wide.
-
Suggested creating a smaller but better-qualified applicant pool
-
“It should be easy for candidates to learn about a company and a job, but making it really easy to apply, just to fill up that funnel, doesn’t make much sense. During the dot-com boom Texas Instruments cleverly introduced a preemployment test that allowed applicants to see their scores before they applied. If their scores weren’t high enough for the company to take their applications seriously, they tended not to proceed, and the company saved the cost of having to process their applications.”
-
“The advice on selection is straightforward: Test for skills. Ask assessments vendors to show evidence that they can actually predict who the good employees will be. Do fewer, more-consistent interviews.”
-
“Design jobs with realistic requirements”
Lets sum up where we are at the moment in this discussion:
- There are a lot of jobs out there
- There are a lot of good candidates for those jobs
- Only about 2% of applicants receive offers (this seemed to jive with a large recruiting/onboaring platform that advertised placement of 1.5 million hires across 27,000 companies based on 160 million candidates)
- Companies spend thousands of dollars per hire
- Employers are obsessed with new technologies and driving down costs
Meaning - there seems to be a fairly large disconnect along with a bunch of associated pain.
Could it be we are going about this backwards?
When I look at this from either perspective (employer or candidate), it does seem backward. As an employer, I want an easy way to look at a qualified candidate pool and select someone with the minimum of friction. As a candidate, I want to put myself out there in some manner appropriate for a potential employer to select me with the minimum of friction for both myself and the employer.
Using that sort of 2% success rate (applicants who receive offers), it doesn’t really seem like a “minimum of friction” if, as an employer, I am inundated with 50x more candidates than I need for a given position. Similarly, as a candidate, it doesn’t seem like a “minimum of friction” if I enter a funnel for a given job with 50-100 other people for that same job where basically we all start on an equal footing and rely on the employer to make a rational decision.
I got off on this tangent in part seeing the tweet issued by Max Howell (creator of Homebrew, https://twitter.com/mxcl) who was turned down by the Google interview process because he failed a real-time coding challenge. Homebrew is a software package that Google itself said is used by 90% of their people - but the creator of the package doesn’t qualify for a job there. Meta and others are also infamous for basing their hiring decisions on having the candidate solve puzzle problems during interviews - problems that bear little resemblance to the job at hand.
The coding challenge presented to Max apparently was to write a method to invert a binary tree. I have over 40 years of experience developing architecture and code using a myriad of languages/frameworks and would have had an issue myself with that whiteboard coding test. Not only that, the employer’s focus on that would have taught me I was “looking for love in all the wrong places”.
By the way, I asked ChatGPT to build a Python class to manage binary trees, including a method to invert the tree. It took “him” all of about 15 seconds to spit out a working version (with test code and documentation).
So, maybe from the perspective of what Google thinks they need from a developer the prognistication that LLMs are going to do away with their jobs might end up being a “self fulfilling prophecy”?
If you think of the way we are doing hiring right now as a sort of “platform” consisting of processes, tools, people, etc. then I think we can build a case that this platform is a bit dysfunctional at the moment. We probably need to rethink.
I mentioned that maybe we are going about this backwards.
That thought came when I observed that our current “platform” is the cause of the creation of these huge candidate funnels along with the need then to sift them.
Let’s work our way into how to view this reversed.
Today there is the concept of recruiting passive vs active candidates. Passive candidates are defined as those that are not actively looking for a job. There is no valid data that proves recruiting passive candidates yields a better hire, but nonetheless there is a lot of effort being expended to try to do just that (as if active candidates are somehow less desirable in some unquantified way).
What if all employees (passive or active, employed or not) are considered candidates in some giant recruiting platform database. When I have a job opening, I want to access this data and select a few well-qualified candidates and then attempt to recruit them. When I go after someone, I know within some degree of certainty that there will be a decent fit. I do not want to throw my job opening out there to receive random candidate solicitations. And I am pretty sure most well-qualified candidates would rather have me approach them with my opening instead of going into a “pool”. I can use as a criteria whether they currently are “looking”, but I don’t have to.
LinkedIn has this label concept of “OpenToWork” and perhaps that label appeals to recruiters, but I warrant that any of us on the platfrom are happy to receive solicitations from companies with specific job openings (label or not). Especially if we felt that the platform was conveying enough information about us to make the solicitation meaningful. Especially if the solicitation is from a hiring manager, not an external (or even internal) recruiter.
I learned in working with external recruiters for my company and its openings that I definitely didn’t need a pool of 50 people to filter through to find a good fit. If I did a good job of getting across the general nature of what I was looking for, I expected that a set of 10 or less screened resumes would yield a decent candidate worth pursuing. I could narrow that down quickly with a phone call and then typically would schedule a face to face yielding a candidate offer very quickly.
There is no perfect candidate for most jobs. What that tells us is that we don’t need to interview/screen 50-100 people, putting them and us through that pain. We need to stop the process when we find a well-qualified candidate instead of assuming “someone better will come along next”. That assumption belies the fact that you generally aren’t all good at measuring the success of the process anyway.
I am sure some of my attitude is going to be controversial, but let me at least throw out that in hiring quite a few people I really only failed a few times (success rate better than 95% where success is defined as an employee that could reasonably succeed in what we needed and was happy doing it).
So, if I could have had access to this mythical platform database and intelligently reach into it maybe I could have skipped the step of getting a recruiter to provide me a small pre-qualified pool. But my process would otherwise be the same. I would gain access to the data for a set of qualified candidates, review that data, and start talking to a few. In my ideal world, I would be able to make an offer (for most jobs) very quickly. We used as a recruiting sales ploy making an offer immediately to a presented candidate that we deemed qualified - on the spot. Minimum friction.
With platforms like Indeed, ZipRecruiter, etc. we kind of threw the “baby out with the bath water”. Before those got to be the next big thing, we used human recruiters to get us a small pool. The trouble with these large databases is they aren’t really very smart which puts more stress on us for that initial filtering. Now we are making it as hard as we can by using these and then hiring people to sort through them, allowing candidates to apply directly to our company job postings and having people sort through that mess, and still using human recruiters to try to go through social media doing both active and passive recruiting.
I think about this from the perspective of the guy who has to decide who to hire and then onboard/train that candidate. In order to have the success that I have enjoyed, the most important contribution was having a good process to get the candidate trained and productive.
That meant I had to construct everything around making that practical. For me that meant well defined jobs and a team/management structure that facilitated training a new candidate. I said earlier that there was not going to be a perfect candidate so to be consistent with that idea, I expected to have to train and mold the candidate.
Our business is contract developent, so the people we hired along with our expertise became the product that we sold. We had to create a process that could make a new candidate productive quickly but at the same time insulate him/her through that initial onboarding period.
It is that onboarding process that takes away some of the stress of finding the “perfect” candidate. It changed the definition or perception of what “qualified” meant. It also changed us from a “body shop” to a true turnkey solution provider.
So, reaching into my mythical giant database isn’t about finding that “perfect” candidate as much as it is about finding a qualified candidate - one that my company can mold.
This brings up another of my opinions. The software development business is as much of an art as it is an engineering discipline. The reasons behind this are many, but the most important of which is that we rarely do the same thing twice. For the most part, every project is a new day where what you get to reuse is your experience coupled with the ability to learn and explore new things. The more new things you do, then adapting to new things becomes easier.
If you accept that is probably true, then you can accept that it is a fool’s errand to try to hire someone based on the precise nature of what they have already done. You are hiring instead based on your perception of what they can either do or be trained to do within the context of your current situation.
I see an issue in most job postings online. I have a ton of experience in many disciplines related to software, but on paper probably directly qualify for very few of those postings. Even though I can probably build/manage anything that is needed, they feel they need to post the job in some hyper-specific or over-broad manner which would tend to turn off people like me. This certainly was exemplified as well by my Max Howell story above. There is little doubt I would have hired him given the chance even though Google wouldn’t.
I can see why they feel they need to require this level of specificity if each position needs to be filled by someone who is currently doing precisely that. I can also see why this would yield a very high turnover rate.
Reaching into the platform database then is feeling around for someone who has demonstrated an ability to learn more than an ability to do something specific.
Throughout his book “Outliers: The Story of Success”, Malcom Gladwell repeatedly refers to the “10 000-hour rule,” asserting that the key to achieving true expertise in any skill is simply a matter of practicing, albeit in the correct way, for at least 10000 hours.
Well, I think it is more complicated than that depending on the skill but also believe that for a team to be successful there does need to be at least one person at that level of expertise who is responsible for the nuturing of the others. If organized in that way, the recruiting becomes easier. You generally are not recruiting for that skill level as much as recruiting a candidate to help someone at that skill level.
Our recruiting database needs to understand that difference and not treat them as if they are the same objective.
The reason the 10000-hour rule is too simplistic for our case is obvious if you look at the difference for someone who has spent 10 years working on backend servers in a single language on a single framework compared to someone who has been full stack on many servers in many frameworks in that same time frame. But I think suffice it to say that we can assume we have someone at that mastery level that is appropriately broad for our task and then we can focus on hiring to make him more productive.
Just ran into this article which observes: “New hires are considering quitting within the first 6 months because of these 3 onboarding issues”. This directly relates to what we are talking about here in that I am placing emphasis on the process of matching hiring to the onboarding/management processes.
It is fairly pervasive out there to specify five years recent experience programming in a certain language. For someone that only has 5 years experience, that would imply two things. One is that he probably hasn’t really mastered the use of that language (doesn’t have his 10,000 hours yet) and that he also has had very little exposure to other languages and methods. Personally, I would rather hire someone that has exposure to several languages used in several frameworks at that 5 year experience level and then provide him an onboarding process that fills in any gaps that he might have for my specific requirements.
From my past, the most extreme example of that viewpoint comes from a project where I needed to use Smalltalk and object oriented design methodology. This was quite a few years ago, and at that time both things would have been very difficult to target in a job description. I needed on the order of a dozen people fairly quickly. My hiring for that case focused on people that could show in their background and interview that they were comfortable with the general subject of coding with an emphasis on their ability to learn new things. We created an project management environment that assured they would get the cross training they needed to be successful. We had 100% success (measured by employee retention and project completion).
There were many examples from my past that taught me the folly of trying to hire for too narrow of an experience niche. It was especially obvious for my company that never did the same thing twice. What I needed for the long haul was adaptable people who could evolve to take ownership. Why wouldn’t any company want that?
I just can’t imagine an interview scenario where I would ask candidates questions about basic computer science concepts and then watch them solve real-time coding puzzles tied to those concepts. I don’t want to hire someone who has studied for my interview using Leet since in general the way I expect them to work and solve problems won’t come from their “puzzle pool”. Software development has never been about memorization. By the way, AI is basically regurgitating what has been done before (currently). It is therefore great at solving these puzzles.
Companies don’t hire me to build teams to solve puzzles. We build products.
My hiring and onboarding process builds teams to build products, so what would make me think that the “puzzle masters” belong on those teams? There is not a puzzle problem worth doing that I could not find an existing solution for quickly. I would rather pose a problem that doesn’t have an existing solution and listen to how someone might approach that as opposed to have him display mastery of a Leet puzzle.
Which brings me to why companies like Google approach their hiring the way they do. Their candidate funnel is so wide that they have to almost automate the process. They are automating a process that isn’t currently automatable so we can expect to find fault with the approach.
Consider this:
Yet a recent study conducted by Resume.io shows the average tenure of a Google employee is only 1.3 years, making them one of the top 10 companies where employees apparently don’t want to stay.
Granted, that’s not unusual for tech and software companies. The average tenure at Zoom is also 1.3 years. Reddit’s average tenure is 1.2 years. The Meta (Facebook) average is 1.7 years.
The article points out that these “dismal” facts aren’t necessarily bad for Google or for the employees. From my perspective, as someone that has to build and manage teams for the long haul over many projects, this would represent a complete failure.
Different strokes for different folks.
Getting back to my mythical recruiting database… if the data gave me insight into what the candidate has really done I could pre-qualify him/her fairly quickly.
The typical resume doesn’t really provide that. The CVs that I see in academia make a lot more sense. The problem with what we are taught in writing resumes is “brevity over substance”. Now, this concept makes a lot of sense for a candidate funnel filter that is automated through the use of key word searches but makes no sense if you really want to get a sense of someone’s real experience and adaptability.
I recently helped my son prep for a job search. He has over fifteen years experience and is one of the best developers I have ever seen or managed. I knew his experience, knowledge, and adaptability could not be adequately represented in a typical resume. We did one anyway, but then built a personal website that conveyed much more deeply all of his projects and tech exposure. Within a few weeks, he had four really good offers. That documentation was more philosophically aligned with academic CVs which tend to completely and deeply convey all prior experience, exposure, and training.
My mythical database would really capture the sense of the candidate. That is the goal, so that can’t be done by capturing a bunch of typical resumes. It requires a more in-depth synopsis (probably in the form of stories) of all of his exposure. Some of the stories should be in the form of video more than likely. The totality of this would be designed to give me a sense of the person and a more true sense of what he has done and, as important, what he wants to do going forward.
Remember, my focus in hiring has never been too much of the specifics of what the candidate has done last. I am more interested in what his experience tells me about what he might adapt to in the future. I am also especially interested in his goals and how those map to mine.
In today’s market, I don’t expect or want candidates and their recruiters to seek my job opening. I want to find them and really recruit them. I didn’t have that process in the past, but then we had much smaller candidate funnels to deal with. I want to personally find them and recruit them as the hiring manager. I don’t want to delegate that to a team of people that have no real clue what I am looking for.
That is backward from what I see going on now.
And it will require a new platform (again defined as tools, processes, and people) to accomplish. Maybe AI can play a roll here, but it cannot automate the complete process without missing the whole point. The goal of this platform has to be to make it practical for me (as the hiring manager) to find these candidates without massive delegation of resposibility and then use my experience and project onboarding approach to recruit them.
My attitude toward onboarding/training comes in part from the fact that I expect to retain most of the people over the long haul. Which means the candidate will do something a year or two from now that I cannot predict at the moment I hire. So my training/nurturing interest is more about process and adaptability than it is about the specifics of whatever my current project is or his previous job tasks. When I have failed in the past, it was because I didn’t adequately pick up on the lack of adaptability. It was never (so far) because of a lack of ability on the current assignment.
I have no intention of designing and building this platform (unless, of course, someone hires me to do it). I am really just predicting that what we are doing now is not sustainable and that I believe there is enough financial incentive for someone to tackle it. Or, maybe that this should be some sort of open source, collective endeavor.
The platform itself isn’t really the important point of the discussion. It just represents a thought experiment that creates a world where we can reverse the hiring process such that everyone is viewed as a perspective candidate and there is a process with a database containing a complete enough picture to allow hiring managers to directly recruit with it. No candidate applications necessary. No labeling “OpenToWork” necessary. We know we are all “open to work”.
Would this also help reverse the trend of employee dissatisfaction and turnover? Meaning, what if all employers knew their employees were all “open to work”. We were all free agents. Unless under contract? Or, unless being well cared for by our employer?
In the meantime, allow me to express my sincere sympathy for those adversely effected by our current recruiting woes.