Back to blog
RecruitingFebruary 17, 20266 min read

Why Your Engineering InMails Are Being Ignored (and How to Fix Them)

The average senior software engineer receives 15 to 30 recruiting messages per month. Some get more. Staff engineers at well-known companies can see 50+ per month. That's more than one a day.

And the vast majority of those messages get ignored. Not because the roles are bad. Because the messages are bad.

I've talked to hundreds of engineers about their recruiting inboxes. The pattern is depressingly consistent: scan subject line, read first sentence, decide in under 3 seconds whether to keep reading or archive. The bar for "keep reading" is high when you've been burned by generic outreach dozens of times.

Let's look at what gets archived and what gets replies.

Scrolling through generic recruiter messages
Scrolling through generic recruiter messages

What Bad Outreach Looks Like

Here's a real message (anonymized but barely changed) that a senior engineer shared with me:

*"Hi [Name], I came across your profile and was really impressed by your background. I'm working with an exciting, fast-growing startup that's disrupting the [industry] space. They're looking for a talented Senior Software Engineer to join their world-class team. The role offers competitive compensation, great benefits, and the opportunity to work on cutting-edge technology. Would you be open to a quick chat?"*

This message has exactly zero personalization. You could send it to literally any engineer on the platform and it would read the same way. "Impressed by your background" - which part? "Exciting, fast-growing startup" - which one? "Cutting-edge technology" - what technology? "Competitive compensation" - what range?

Every sentence is filler. Every sentence could apply to anyone. The engineer reading this knows you sent it to 200 other people because it reads like you sent it to 200 other people.

Why Generic Messages Fail

It's not just that they're annoying. They signal specific things to engineers:

  • "You don't know what I do." If you can't reference anything specific about my work, you haven't looked at my profile for more than 10 seconds.
  • "The role probably isn't a fit." If you're not specific about the role, it's probably because you're blasting everyone and hoping someone bites.
  • "Working with you will be frustrating." If the first interaction is this impersonal, what will the process be like?
  • "The company might not be great." Good companies attract candidates. Companies that rely on mass outreach often have a reason they can't attract inbound.

Response rates on generic InMails have been declining year over year. LinkedIn's own data showed InMail response rates dropping from roughly 25% to 10-18% over the last five years. For senior engineers, it's often below 10%.

What Good Outreach Looks Like

Here's a message that would get a reply from most engineers:

*"Hey [Name], I saw your contributions to [specific repo] - the way you refactored the connection pooling in [specific PR] to handle backpressure is exactly the kind of systems thinking we need. We're building a real-time data pipeline at [Company Name] that processes 2M events/sec, and our biggest challenge right now is exactly that: managing backpressure without dropping messages. The role is Staff Backend Engineer, $195-225K base + equity, fully remote. Worth a conversation?"*

Why does this work?

  • Specific reference to their work. Not "impressed by your background." A specific repo, a specific PR, a specific technical decision.
  • Connection to the role. Their skill maps directly to the problem you're solving.
  • Company name, not mystery. Engineers want to know who they'd be working for before committing to a call.
  • Compensation upfront. No games, no "competitive." A real number.
  • Respect for their time. Short, direct, no fluff. "Worth a conversation?" not "Would you be open to a quick chat to explore synergies?"
When you finally get a reply
When you finally get a reply

The Personalization Framework

You need exactly three things to write a message that gets replies:

1. One specific thing about their work. A GitHub repo they maintain, a blog post they wrote, a talk they gave, a project at their current company, a specific technology they use. This takes 2-3 minutes of research per candidate. Yes, it's slower than blasting templates. But a 35% response rate on 20 messages beats a 5% response rate on 200 messages. You do the math.

2. One specific thing about the role. Not "exciting opportunity." The actual technical challenge. What system are they building? What scale? What's the hardest problem they'll work on? Engineers are motivated by interesting problems, not adjectives.

3. Compensation and logistics. Salary range, remote/hybrid/onsite, location if relevant. Put it in the first message. Engineers who aren't in range will self-select out, saving both of you time.

The Scale Problem

"But I can't spend 3 minutes researching every candidate when I need to fill 12 roles."

Fair. That's a real constraint. The answer isn't to go back to templates. The answer is better data upfront so the research takes 30 seconds instead of 3 minutes.

If you can see a candidate's recent GitHub contributions, tech stack, salary benchmark, and career trajectory in one view, writing a personalized message takes under a minute. You're not digging through profiles across three platforms. The data is already surfaced.

This is what Candyfloss AI is built for. We surface the signals that power personalized outreach - GitHub activity, tech stack, career history, salary data - so you can write messages that reference real things about real candidates without spending your entire day on research.

The engineers getting 30 messages a month will reply to the one that shows you actually looked. Be that one.

Get the data to personalize your outreach