Mar 312025
 

If you hear anyone say anything about the jobs market these days, odds are the word “broken” comes to mind. Hundreds of resumes sent out, and in the best case scenario people have been getting tens of calls in response. Not job offers, not in-person interviews, just the company in question calling back to start the potential interview process. Given the auto-rejections coming far too quickly for a human to have made a decision on the resume, the silence about whether or not the company is moving forward with candidates, and ghost jobs, it’s easy to see why people think there’s a fundamental problem with the process. From the employer side, given the fact the software industry has a bloodbath lately, there’s far more applicants than openings, and by all (public-facing at least) indications, every posting is getting flooded with applications. All of this is leading to a situation where people in software are going unemployed for months, even years, after losing their jobs. All of this certainly sounds like a system that fundamentally isn’t working, but I’ve come to a more disturbing hypothesis – the job market isn’t broken, it’s been optimized.

This certainly doesn’t seem optimized

Of course it doesn’t, because we’re assuming that the job market would optimize around filling open roles, which means it’s relatively easy and effective to find a new job (as an employee) or fill an open role (as an employer). But that’s not what everything actually optimized around. If you think back to the last time people gave you job hunting advice, there’s the typical set of mutually exclusive “tips” on resumes, cover letters, and doing weird things to attract attention to yourself and your application. But there’s also often a common refrain, that job hunting is fundamentally a numbers game. That’s what I think the job market has optimized around, and now it’s become a problem.

It’s generally a safe assumption that there’s more than 1 applicant who’s perfectly capable of doing the job for each individual opening. Obviously, 1 or more applicants are going to get turned down from jobs that even employers will acknowledge they could do, simply because they didn’t have the openings. Therefore, you want to apply to multiple jobs to increase the odds that you’re the person chosen in the end. Since not every application leads to an interview, nor does every interview guarantee that you’re 1 of the names being considered for the final offer, you have to be interviewing with more companies than ultimately consider extending you the offer, which means you’re applying to more companies than will interview you, effectively creating a job application funnel. So the best way to maximize finding success at the end of the funnel is to maximize the number of applications going into the beginning of the funnel because that’s the side you have the greatest amount of control over (you’re the person who makes the final decision of whether or not to apply for a position).

By the way, the same concept applies to hiring too – when you have an opening you obviously want to find the best person available (within your budget) to fill it. You don’t control who applies, so you want to maximize the chances that the pool of applicants has good fits, which means you need to ensure you’re starting with a wide pool and then filtering down from there, by efficiently processing resumes, quick-and-simple initial interviews (like phone screens), and longer, in-depth interviews focusing on relevant technical skills. All with the hope of having 1 or more candidates you could hire and feel happy bringing on board.

This desire to maximize applications and applicants creates a market that’s ripe for aggregation in the hopes of making each side of this process more efficient – post here to get your job in front of the biggest set of job hunters, and go here to search the biggest pool of jobs. This aggregation and mutual goal of “going wide” seems to have lead to a constant arms race of maximizing the number of people who see the job posting (years ago I used to see lots of job listings that had software development keywords tossed into the posting to trigger more hits on Indeed even though they were for completely unrelated work), who want maximizing the number of applications sent out to different job postings, which have maximized their visibility to increase the number of applications, leading to tools to effectively process and filter these applications, leading to tools to fire off more applications in the hopes of increasingly the likelihood of getting an application into a job that doesn’t filter you out upfront.

Clearly the “fix” is to replace the mass nature of job postings with a system built around efficiently matching job postings with people capable of doing the work, but the obvious multi-million dollar question is, “how do you do that?”

Let’s brainstorm some new approaches

Probably 1 good way to address this issue is to focus more on employee retention, especially employees whose work companies are happy with. Generally speaking, it’s cheaper for companies to retain employees than to recruit and onboard new ones. It’s already common knowledge that the pretty much the only way to significantly increase pay is to find another job, but I bet a lot of employees would stay if they felt like it’d be rewarded. If you’re an employee who still wants to change jobs even if your company tries to hang on to good employees, this at least keeps you steadily employed until you find a new job, where you can hopefully stay gainfully employed for many years. Of course, focusing on retention means people have to be really good about getting the information needed to properly assess whether or company will be a good fit, which is not something anyone ever teaches you (and I’m not sure it’s even something that’s teachable given that so many people have so many different things they want from employment). That said, there are sites like Glassdoor and Blind can help with that.

While employee retention is good for people already working (specifically people already working jobs they like), it certainly doesn’t help people who are looking for work now (either because they got laid off or just graduated), so let’s see what we can do to improve that situation. Part of the problem is that both sides of the job hunting process aren’t doing themselves any favors here. Companies aren’t helping themselves by being dogmatic sticklers for requiring everything in the job description to appear on resumes, and job hunters don’t make anything better by applying for roles they’re obviously unqualified for “just to give it a shot.”

I understand the benefit of applying for jobs where you don’t already have the matching experience for 100% of their tech stack on your resume on the grounds that you can learn the rest on the job (and can convince said employer of that if they’d give you a chance to interview) – I’ve gotten jobs that way. But we can all agree there’s a difference between applying for jobs where you have most of the skills, or comparable but not exact skills (lots of experience in a similar programming language or running on a different major cloud environment), and a kid fresh out of college applying to a job that requires 10 years of experience, or applying to a platform engineering team when you don’t even know what these “container” things are in the job posting. There’s clearly a line, but where is it? There’s no telling – it’s subjective for each hiring manager.

1 thing that could help with this is changing the order to the application process. Generally speaking, technical assessments happen around the second or third step in the interview process – why not make a take-home coding assignment or assessment the application itself? It creates enough up-front friction that it discourages the people applying to increase the number of applications going out. If the take-home assessment is designed well, it also shows which candidates have the skills and abilities to (or at the least the capacity to learn how to) do the job. Now your first actual interview be the code review for the assessment you just did. Pass those 2 and you’ve pretty thoroughly demonstrated you’re capable of doing to the work. A quick HR call for the soft-skills portion of the job and candidates should be ready to go.

The key to that approach is that it will work best when the assessment is open to all applicants. This enables companies to recruit talent that didn’t go the traditional college degree route, plus it lets candidates that don’t exactly match the job posting prove their chops – all without requiring (much) extra effort on the part of the hiring company – they just have to evaluate the assessment, which I’m assuming can be automated.

I’m not big on saying “AI can handle this,” but this does seem like the type of area where an LLM can offer some insights. That seems ironic, given the assumption that AI is driving a lot of the auto-rejections people are getting, but bear with me. Keep in mind that most of the “AI” that’s publicly available is basically a tool that’s really good at predicting what the next word should be in a given context. It got that way by training on a bunch of content and learning the associated patterns. That doesn’t make it good at new or non-standard work, but it does do well summarizing and organizing information. So if companies can train it on the work done for the job, along with comparable and/or transferable skills for that job (e.g. a developer with experience working with AWS can probably be fine if your company uses Azure, but the same may not be said for a platform engineer), they can use this to organize resumes coming in based on how much they match the requirements, then by how many comparable skills the candidate had. This gives companies a better sense of applicants who could likely do the job, even if the resumes don’t match (opening with a small task that mirrors work done in the job would also do that, and better, but this helps). If companies are going to filter (and they are, because they have too many applications not to), AI seems qualified enough to suggest fuzzy matches based on what someone did at another job versus the work being done at this job.

Job hunting has been treated as an application/applicant funnel for so long that we’ve optimized for blasting noise into the system, and then building a system to churn through as much crap as possible in ways designed to weed out as much of it as fast as possible. It’s not working, certainly not for job seekers, and when hiring picks back up, it won’t work for companies either. I think there are ways we can change it that help surface people based on their ability to do the job, but it means either moving away from focusing on resumes until much later in the process, or working with the people who actually do the job to understand what are useful indicators of ability, both the tools they use today as well as tools that are close enough an experienced applicant can pick up their tech stack pretty quickly, and maybe taking advantage of LLMs’ inherent strength in pattern matching to help evaluate resumes for work history that matches those indicators. In the meantime, to everyone who’s still looking for work, good luck out there.

 Posted by at 11:45 am

Sorry, the comment form is closed at this time.