Why Software Engineers are Declining Your Offers
I’ve been doing technical recruitment (primarily open source) for over 2 ? years now, and the market is continuously becoming more and more competitive for software engineering talent. The reason why most companies even decide to use a staffing agency in the first place is because they’re urgent to fill a position, there is a lack of qualified candidates in their pipeline, or for some reason or another they just can’t seem to fill the job on their own. I’ve worked with both startups and Fortune 500 companies, and they all face challenges when it comes to hiring engineering talent.
In the tech industry, it’s definitely a candidate driven market - even if you do come across a good candidate you want to hire, that doesn’t mean they’re going to accept your offer. There are a number of factors that can result in your offer getting declined, but if you’re getting to a point where you’ve extended multiple offers with very low acceptance rate - chances are something needs to change. If you’re wondering why your offers are getting declined or why candidates become disinterested in a position during the interview process, here are 10 things that could be holding you back:
1. Your offer isn’t competitive.
Don’t get me wrong - you don’t want to throw money at someone just to get them interested in your role, but candidates do want to feel like they are going to be compensated appropriately for the work that they’ll be doing. As I mentioned above, it’s a candidate driven market - if an engineer is interviewing with you (especially if they’re really good), chances are you’re not the only company interested in them.
The demand for top talent is only increasing, and companies need to make sure they are being competitive in order to attract and retain technical candidates. Because of the increase in demand, salaries to attract these types of candidates are also increasing. Money shouldn’t be the main reason why someone wants to work for your company, but you need to know what a candidate is looking for in their overall compensation package to understand what it’s going to take to get your offer accepted (benefits, PTO, 401K, flexible hours, stock options, etc.). You should also ask around your area to see what other companies are offering for the same type of candidates, don’t rely on information you find online (average salaries, cost of living differences, etc.). Being the middle man between the candidate and client myself, I’ve noticed the client’s definition of “average†tends to be toward the lower end of the scale, while the candidate’s definition of “average†is on the higher end of the scale - which is why it’s my job to set realistic yet competitive expectations on both sides.
Another thing you don’t want to do is negotiate an offer after the official offer has already been extended. When you present an offer, that should be the one and only offer that the candidate will receive. For example, say you present an offer of $115K to an engineer, but he’s not sold on the role quite yet. He gets another offer at $120K from a different company, so then you offer him $125K. If you could have extended an offer 10K higher all along, what does this tell the candidate? You don’t want to give off the impression of initially low-balling to “see what happens†- it’s not worth it in the long run and you don’t want to get stuck in the middle of a bidding war. Always make the best offer possible the first time.
2. Your interview process.
This is a huge one a lot of companies don't care to address. You don't know how many times companies who can't find qualified candidates say, “we do interviews this way because that’s how we’ve always done them, and it has worked for us in the pastâ€.
One major problem companies fail to fix, is that their interview process takes way too long. If you’re a hiring manager, you know good engineers are off the market extremely quickly. Just because a candidate is interested in your company doesn’t mean another company won’t swoop in and get an offer out to them sooner. It’s important to be able to move process along quickly to keep the candidate engaged - urgency to schedule additional rounds of interviews also relays your continued interest in pursuing them as a potential hire. Companies also have way too many steps in their interview process. You want to make sure that you’re not scheduling interviews just to schedule interviews. 5-6 is just way too many, and that leaves a lot of time in between for the candidate to change their mind about your company and pursue other opportunities.
I’ve also seen some issues with companies requesting candidates to complete code tests prior to an initial phone screen. If the candidate doesn’t have a good understanding of the role or hasn’t been completely sold on the position yet, they’re not going to do it. If they're actively interviewing with other companies, you’ll just be put on the back burner. It’s also going to be hard to convince a passive candidate with no interview activity to complete a test beforehand, because it might just seem like a waste of time. Developers are more likely to complete the test after they’ve talked to someone on the team to generate their interest, as they’ll be motivated to do well if they’re still intrigued by role based on initial interviews. I could go a lot more in depth on this topic, - but I’ll save that for another article.
3. You’re hearing what you want to hear.
When you’re having trouble finding a qualified candidate for a position, you’re bound to get excited when someone qualified does come through the pipeline. However, this can blindside you when all you care about is getting that offer out as soon as possible. Before extending an offer, you want to make sure you know everything about that candidate and what’s important to them in order to make sure they’re going to be the right fit. Missing out on crucial information such as their reasons for pursuing new opportunities, what they’re looking for from a career standpoint, and what other companies they’re interviewing with can be a crucial indicator of whether or not they’re going to accept your offer. You want to make sure you do everything in your power to be confident the interest is mutual on both sides.
For example, if you just ask the candidate if they’re still interested in the role after a final interview - they’re probably going to say yes vs. no. Although they may express interest in your company, they could also be interested in company X, Y, & Z. When I have a candidate in process, it’s important for me dig into why they’re interested in a role, how they rank it among the other companies they’re interviewing with, and discuss every possible scenario that would result in them declining an offer. Don’t put all your eggs in one basket and hope for the best, make sure you’re ahead of the game to avoid any last minute surprises.
4. Lack of enthusiasm.
If you’re interviewing a candidate that you’re interested in hiring, it’s important that you're still selling them on why they should work for your company. If you’re not enthusiastic about your company, why would they be excited to work there? This seems like a given, but I’ve had a number of candidates pull themselves out of process due to lack of energy or engagement by the interviewer they spoke with. The interviewer is also typically someone the candidate would be working with on a day to day basis, and if they don't have a good initial impression, chances are they’re not going to want to work alongside that person everyday. Candidates also don’t want to feel like they’re being interrogated, obviously they expect you to ask technical questions - but don’t ask in a way that makes them feel so uncomfortable they're ready to bolt out of the interview.
You also need to make sure each person a candidate is speaking to throughout the process is engaged in the conversation, or the candidate may lose interest very quickly. Even if the manager isn’t impressed by the candidate - they should still be fully engaged in the interview in order to ensure everyone has a good interview experience with the company. Bad experiences lead to bad online reviews - which will further decrease your chances of finding qualified candidates that want to work for your company.
5. Bad online reviews.
I don’t think I’ve talked to any candidate recently that doesn’t do research on a company prior to an interview. Many candidates will pull themselves from the interview process if they see too many negative reviews online. If you have bad reviews, they’re going to get noticed. There are always going to be bad reviews somewhere, and you need to be prepared to acknowledge them with every candidate. We all know people who generally write reviews tend to be the ones who’ve had bad experiences, not the people who’ve had good experiences.
Don’t oversell your company in hopes of masking the bad reviews. It makes you look like you’re putting on a show during the interview, and unfortunately candidates tend to trust what they read online whether the information is up to date or not. Acknowledge bad reviews during the interview to put the candidate at ease - they’ll appreciate it when you’re being honest and upfront with them. Emphasize the reasons why you like working there, and if there’s information online that doesn’t reflect the company’s current status - update them on changes your company has made since those reviews were posted.
6. Lack of organization.
When candidates interview with your company, it’s important that the interviews flow well and to relay the impression that your company has it together. This is one of the worst ways to lose out on a good candidate because it is such an easy fix. Make sure that hiring managers/interviewers are on time to interviews, prepared and ready to be engaged, and present your company to the best of their ability throughout the candidate’s interview experience. It drives me crazy when a company sets up a call with a candidate, but the candidate never receives a call. We all know you’re busy, but if you’ve already committed to a time make sure it’s on your schedule. Realize that candidates are taking time out of their day too, and if you don’t cancel ahead of time - it’s not making you look any better. When a manager forgets about an interview, the candidate also feels like the manager was never that interested in speaking with them - they may not even want to reschedule the interview.
Being organized also means being on top of feedback, giving candidates updates if they call/email to check in, and avoiding scheduling conflicts the first time around. When you have a candidate scheduled, they should be your number one priority at that time. If you don’t have the time, don’t schedule them. Of course people know things do come up, but when you’re rescheduling an interview 4-5 different times for a single candidate - they're going to lose interest and get annoyed if they keep rearranging their schedule to make time for you.
7. Delayed feedback.
If you have a candidate in process, don’t delay at all in giving them feedback. If you wait too long, the candidate usually assumes you’re not interested. You’re busy, but so is everyone else - make time to get feedback to candidates ASAP, it literally takes 5 minutes. Even if you have to discuss with a colleague first, make sure to do it the same day so that the interview is still fresh in your mind and you’re able to get the next round set up quickly.
Waiting too long is also a setback because the candidate will lose interest and continue pursuing other opportunities in the meantime. Each day you don’t give feedback after an interview, your chances of losing out on that candidate will increase as well. It also will hurt you by waiting too long to extend an offer after a final interview. Most candidates will shut down their interview activity once they receive and accept a formal offer. If the candidate doesn’t have a formal offer in hand, it’s hard to justify canceling other interviews when they don’t have it in writing. If you wait 5 days to send an offer out - another offer could potentially be extended during that time and you might end up getting your offer out too late.
8. The candidate isn't convinced they want to work for you.
Make sure if you’re interested in a candidate, that you're making the interview about them, not you. Relay why the position with your company would be a great fit based on what they’re looking for in their next role. This is why it’s important to understand every aspect of a candidate’s job search, so you can address the points that line up with their interests and career goals and are going to matter most.
Common factors I’ve noticed that influence a candidate’s decision to accept an offer include potential room for growth, work culture, flexible hours, work/life balance, stock options, benefits package, mentorship, ability to learn and work with cutting edge technology, the product that they’re working on, retention rates, and long-term company goals, etc. Once you understand what’s important to each individual candidate, you can utilize that info by emphasizing what your company has to offer that aligns with their ideal position.
9. There’s no expiration date on your offer.
I’ve noticed most companies actually do put some sort of expiration on their offer letters - which I do think is a good idea. However, by the time an offer is extended, the candidate should have a pretty good idea at that point whether or not they want to work for your company. It’s definitely effective to put an expiration on offers, but only when the time frame is working in your favor.
I’ve seen companies put an extended period of time on offer letters, sometimes even up to 2-3 weeks before the candidate has to make a final decision. By doing this, you’re only giving the candidate more time to interview with other companies or find something better in the meantime. The companies with higher acceptance rates (from my own experience) have only offered a 24-48 hour deadline for the candidate to accept. Reason being, if the candidate is 100% sold on your company, and you are 100% sold on them - the decision should be easy. If you’ve given them all the information necessary for them to make a decision, they should already have the answers they need to have made a decision prior to receiving the formal offer.
10. Counteroffers.
The dreaded counteroffer - in the tech industry we see this happen all too often. Living in Dallas, I can honestly tell you that every candidate I’ve received an offer for up to this point has received a counteroffer, even when they least expect it. Like I mentioned, you always have to prepare for the worst, which is why you need to address counteroffers before you extend an official offer. The candidate is looking for a new role and interviewing with your company for a reason, so a counteroffer shouldn’t make a difference if they are truly interested in working for your company. If their only motivation to leave their current position is because they want more money, that should be an automatic red flag in pretty much any situation. Not only does that show you there is a potential risk for the candidate accepting a counteroffer, but you should also be concerned that if they do accept, you risk them leaving 2 months later if another company offers them a higher salary.
Aside from salary, when discussing counteroffer it’s always important to hit back to the points of why they’re interviewing with your company in the first place. Whether if it’s because they want to work with new technology or they hate the culture of their current company, more money isn’t going to solve the problem if they end up accepting a counteroffer.
Final Thoughts
Ultimately, you never can be 100% sure what’s going to happen when extending an offer, but there are a number of things you can do to minimize the risk of getting those offers declined. If you identify a good candidate, move the process quickly and efficiently, understand why they’re interested in your company vs. every other company out there, be confident your company is able to offer something competitive that lines up with their long term goals, and confirm everyone involved in the hiring process is on top of giving feedback so the candidate is aware of your interest, giving them more incentive to want to work for your company.
Sr. Firmware Engineer at Resideo
7 å¹´Well articulated. When I moved to Austin I was far along in interviews with one company I was interested in. After 6 weeks they had not extended an offer and I had another position that moved along on a more normal time frame and resulted in an offer. I contacted the company that was dragging their heels to see if they were ready to move forward. They seemed a bit unhappy that I could not be more patient. I took the offer on the table, of course- I will always take excessive heel-dragging as "we're still looking for candidates".
iPhone Display Engineering @ Apple
7 å¹´Kristian Welch
Amos Long - I build software solutions to help people do their jobs better
7 å¹´Another point that ties in with 2 and 6 is that most candidates dislike multiple in-person interviews. If the candidate is currently employed, an in-person interview usually means taking time away from your current job. If calculated by hourly rate, even a half day of vacation can be worth several hundred dollars. I appreciate companies who respect a candidate's time enough to get everything done in one interview session. Bringing a candidate in for multiple sessions communicates lack of organization, lack of respect, or lack of interest.
Enterprise Solutions/IT Architect, Sr. Manager
7 å¹´Nicely written article.
Lead Systems Engineer at Omeda Studios
8 å¹´I have helped many people improve their programming skills. First my fellow students, now interns at my workplace. Most of them were "untalented" at first, really they were bad, cringeworthy. Only TWO have improved so much that it is now worthy of all my respect. All because they admitted that they were not as good as the others, and devoted themselves to become better. Sadly, and this is true, many software engineers are blind to this and think they are "the best"; they may advertize themselves as talented but in reality, in a professional environment, they are not. They don't improve anymore. So of course it is hard to find software engineers. It would be nice if this problem is resolved.