Why Engineers Ignore Your Cold Email (and How to Fix It)
Cold email developers who actually reply. A senior practitioner's guide to recruiting outreach that beats 4.1% response rates and the InMail tax.
You sent 200 emails to senior engineers this week. You got six replies, two of them polite passes. The template looked clean, the subject line was "punchy," and the personalization line referenced a blog post the candidate wrote in 2022. Nothing about that loop is broken at the copywriting layer. It's broken at the targeting layer, the channel layer, and the "do I actually have anything specific to say to this person" layer.
The good news: the bar to clear is low. By 2025, fewer than 24% of cold emails are opened and reply rates sit around 4.1%. Bulk emails with personalization mistakes get ignored 95% of the time. If you can be the one outreach in a senior engineer's inbox that doesn't read like every other one, you win the reply by default.
Here's how to do that without pretending email is dead or paying $10 an InMail to send the same generic pitch through a different pipe.
The math you're actually fighting
Software engineering is the single most-contested function on LinkedIn. Per LinkedIn's own Talent Blog, the top three most in-demand jobs are software engineer, JavaScript developer, and salesperson, in that order, and engineering and sales receive more InMails than any other functions. Response rates fall accordingly. SaaS and software is the worst-performing vertical for InMail, with a 4.77% response rate. Tech buyers and tech builders alike have developed banner blindness to anything that smells automated.
LinkedIn enforces this floor with a stick: recruiters must maintain a 13% InMail response rate over 14 days to avoid sending restrictions. So the platform itself is telling you that if you can't earn one reply in eight, you're not allowed to keep playing. Meanwhile, a single InMail costs about $10, and LinkedIn Recruiter starts at $835/month for 150 monthly credits ($5.57 per InMail at that tier). Email is free. The cost difference matters less than the implication: paying for the message does not make it more persuasive.
The other piece of the math, the one most teams ignore: per Stack Overflow's Developer Survey, only about 15% of developers are actively looking. Almost 60% are not actively looking but are still interested in new opportunities. Template-based outreach is mostly answered by the 15%. Your competition is also fishing exclusively in that pond. The 60% replies to something different.
Stop personalizing. Start specifying.
Surface personalization is dead. The "I loved your post on Kubernetes operators" opener has been pattern-matched into spam by every senior engineer who has been on LinkedIn longer than two years. One engineer's frank summary of the genre: most cold email feels fake or sales-y, and most people would prefer a short, direct message over a "personalized" one when the only personalization is a name-dropped article.
What works instead is specification. Reference the actual repo, the actual PR, the actual technical decision the person made, in a sentence that proves you read it. Better: tie that specific thing to why your team needs them now. "Saw your work on the Tokio runtime profiler in console-subscriber. We're hitting the same instrumentation overhead problem you described in issue #412 and we're hiring a Rust performance engineer to own it." That email gets read. "I loved your recent activity" doesn't.
The "more information, not less" reversal
Conventional cold-email advice tells you to keep it short. Hubspot's analysis of 40 million emails landed on 50 to 125 words as the sweet spot, and on LinkedIn the shortest InMails get responses at a rate 22% higher than the global average. Take those numbers seriously, but understand what they actually mean.
The recurring complaint from senior developers is not that emails are too long. It's that emails don't contain enough information. Salary range missing. Tech stack missing. Whether it's React or Angular missing. Remote policy missing. Why this person specifically, missing. The annotated recruiter-email roasts on iteachrecruiters.com all hit the same notes: a Java pitch sent to a Python developer, a "the hiring process is moving quickly" line that fools no one, and zero indication of compensation.
Resolve the apparent contradiction by writing short prose but packing the email with structured facts. Six lines of plain English, then a short bulleted block:
- Stack: Rust, Postgres, Kafka, deployed on bare metal
- Comp: $240k to $310k base + 0.4% to 0.9% equity
- Team: 11 engineers, you'd be hire #4 on the platform team
- Location: SF or remote in US time zones
- Why you: your work on
tokio-rs/console
That's still under 125 words once you include a one-sentence opener and a one-sentence ask. It respects the recipient's time without leaving them guessing.
Channel choice is most of the battle
The 18 to 25% response-rate benchmarks people quote for InMail are inflated by something boring: deliverability. Engineers run aggressive Gmail filters. Their personal address has been on every recruiter list since they pushed their first commit. Bypassing that filter is most of the win. There is no evidence that recipients react more enthusiastically to paid messages, and some explicitly view InMail as spam. So choose channel based on where the person already engages, not where you've prepaid credits.
For senior devs, the public-signal channels (GitHub, GitLab, Kaggle, Stack Overflow) outperform LinkedIn for both finding and reaching. GitHub alone has well over 100 million users with searchable, dated, technical evidence of what they actually do. The Crustdata-style sourcing pool tells you there are roughly 164,300 senior, staff, and principal software engineers in the US, concentrated in San Francisco, New York, and Los Angeles, at companies like Datadog, Workday, and Starburst. The inbox is crowded; the GitHub-issue thread isn't.
This is also where targeting tools earn their keep. If you can describe what you want in plain English ("Rust engineers in EU time zones who have shipped production code touching async runtimes in the last 18 months") and get back a tight, defensible list, you spend your outreach budget on the right 40 people, not the wrong 400. That's the bet behind Malinois, and it's the bet behind every team that consistently hits double-digit reply rates: better targeting beats better copy, every time.
A documented give-before-ask example
In September 2023, Zevi Reinitz at Livecycle ran a give-before-ask experiment for the open-source tool Preevy. Instead of pitching, he followed developers on GitHub, acknowledged their contributions, and sent plain-text emails discussing shared technical interests. The result: roughly 60% unique open rate, roughly 30% unique click rate, hundreds of GitHub stars, and a stream of collaborative replies. That's an outreach campaign that looks nothing like a recruiting campaign, which is exactly why it worked. The recruiting analogue is to lead with a question about the person's work, not an opportunity dump.
Who should send the email
Here's a counter-take from someone who landed multiple top-tier offers via cold outreach: don't email the engineer directly when you're scaling. Even when an engineer responds positively, they often won't follow through on a referral or forward you to a recruiter. The social contract is wrong.
The inverse is more interesting for founders and engineering managers. Engineer-to-engineer outreach from the actual hiring manager outperforms recruiter outreach by a wide margin, because the social contract changes. A staff engineer reading "I'm the EM building the storage team at $COMPANY and I want to talk to you because of your work on $X" responds differently than they do to "I'm a recruiter helping a fast-growing series B." If you're a founder, do not delegate the first 30 outreach messages. Send them yourself, badly if necessary, and learn what makes engineers in your niche reply.
Volume is the real problem
The most important reframe: most teams aren't failing because their template is bad. They're failing because their list is ten times longer than it should be. One recruiter case study summarizes it bluntly: you can write 10 emails instead of 100 and get an 80% response rate instead of 10%. That's not a copywriting win. That's a sourcing win.
The discipline is to spend more time qualifying, less time sending. Multi-channel sequences (LinkedIn plus email plus, where appropriate, a public technical comment) lift reply rates by about 45% versus single-channel outreach. But that lift only compounds when the person on the other end was worth contacting in the first place.
Cadence and follow-up
About 65% of InMail responses arrive within 24 hours, and 90% within a week. Past day seven on the same channel, you're mostly making people annoyed. The right cadence for cold email developers respond to looks like this:
- Day 0: first message, on the channel where they have the most public activity
- Day 4: one follow-up with a new piece of information (a relevant blog post, a question about their work), not a "just bumping this"
- Day 10: switch channels. If you started on email, try a LinkedIn message. If you started on LinkedIn, try email.
- After day 14: stop. Add them to a "revisit in six months" list with a note about why they were a fit.
Three touches across two channels with new information each time is plenty. Five touches with "checking in" is harassment.
What to actually put in the email
Pulling it together, a developer outreach email that earns replies tends to share these traits:
- Subject line that says something. Not "Opportunity" or "Following up." Something concrete: "Rust + Postgres role, $240k-$310k, your
tokio-consolework." - First sentence that proves you read their work. Specific repo, PR, talk, or post. Not "your impressive background."
- One sentence on why you, specifically, are writing. Founder building the storage team, EM hiring for a perf-critical service, recruiter representing a known team they'd recognize.
- A facts block. Stack, comp range, team size, location/remote policy.
- A low-friction ask. Not "30 minutes on Tuesday." Something like "worth a 10-minute reply if you're curious, or a flat no if you're not."
- No false urgency. "Process is moving fast" is the single most common tell that the email is templated.
Done well, this is 90 to 120 words. It respects the recipient. It assumes they're smart. It gives them everything they need to make a yes/no decision in 30 seconds. That's the email the 60% who aren't actively looking will actually answer.
FAQ
How long should a cold email to a developer be?
Aim for 50 to 125 words of prose, per Hubspot's analysis of 40 million emails, plus a tight structured block of facts (stack, comp, location, team). Short doesn't mean vague. The most common complaint senior devs make about recruiting outreach is that it's missing information, not that it's too long. Short prose, dense facts.
Is InMail worth it over plain email for engineer outreach?
Sometimes, but not for the reason you'd think. InMail's edge is mostly deliverability: engineers' personal Gmail filters are aggressive and InMail bypasses them. The message itself doesn't get more persuasive because you paid $10 for it. If you can find the person's preferred public channel (GitHub, a personal site, a conference contact form), use that first. Reserve InMail for people you can't reach any other way.
How do I personalize at scale without sounding like a template?
You don't, really. The fix is to source a smaller list. One well-targeted email to 10 people beats a clever template sent to 100. Use sourcing tools that let you describe the candidate in plain English and return a defensible shortlist, then spend the saved time reading each person's actual work before you write. Surface personalization ("loved your post") is worse than no personalization. Deep personalization (a specific PR, issue, or technical decision) is what earns replies.
What's the best follow-up cadence?
Three touches across two channels over 10 to 14 days, with new information in each touch. About 65% of replies come within 24 hours and 90% within a week, so persistence past day 14 mostly burns goodwill. If you don't get a reply, log a reason and revisit in six months. The best candidates often reply to the second outreach, six months later, when their situation has changed.