Most outreach to engineers fails before the first sentence is finished. Not because developers hate recruiters โ because the average message could have been sent to a thousand people, and they can tell.
This guide covers what to write, what to leave out, and a few templates that consistently outperform volume blasts.
What engineers say they ignore
Across public threads and what we hear from candidates:
- No salary range. Discarded immediately by a large share of senior engineers.
- Wrong stack. "We need a React rockstar" sent to a Rust maintainer.
- Vague company. "A fast-growing startup in the [space] space."
- Fake personalisation. "I loved your work on [repo]" when the repo is a fork they have not touched in years.
- Long emails. Anything past ~150 words gets skimmed or skipped.
Fix those five and you are already ahead of most sequences.
The structure that works
Subject line: specific and short. Name the repo, the role, or the company โ not "Exciting opportunity!!"
Good:
Your work on [repo][Company] โ [role], [salary range]Quick question about [specific project]
Bad:
Opportunity for a talented engineerAre you open to new roles?We're hiring!
First line: prove you looked. One concrete observation. No compliments you cannot defend.
Second block: the role in one or two sentences โ what they would own, not a list of requirements.
Third: money, location/remote, and a clear ask.
Close: an easy no, plus a referral ask. Engineers who are not looking often know someone who is.
A template that gets replies
Subject: Your work on [repo]
Hi [name] โ I came across [repo] while looking at [specific thing].
[One sentence on what you actually noticed.]
We're building [one line] at [company]. Looking for someone to own
[area]. It's [salary range], [location or remote policy].
Worth a conversation? Equally happy to hear it's a no, or to be
pointed at someone you rate.
[Your name]
Keep the whole thing under 150 words. If you need a paragraph about benefits, put it on a page and link it.
Subject lines worth testing
| Pattern | Example |
|---|---|
| Repo reference | Your parser in [repo] |
| Mutual context | [Conference] talk โ [Company] role |
| Direct role + money | Staff eng, $180โ210k, remote EU |
| Referral framing | Who should I talk to about [problem]? |
Avoid urgency theatre ("only open for 48 hours") unless it is true. Engineers treat fake urgency as a filter for bad employers.
Personalisation that is real vs fake
Real: you opened their most recent substantial repository, named a design choice, and tied it to the role.
Fake: you mail-merged {{top_repo}} and praised a tutorial they pushed during a bootcamp.
Two minutes of reading beats any enrichment tool. If you cannot spare two minutes, do not send the email.
Follow-up without becoming spam
One follow-up after five to seven days is enough. Shorter than the first email. No guilt.
Subject: Re: Your work on [repo]
Hi [name] โ bumping once in case this got buried.
Happy to close the loop if timing's wrong.
[Your name]
Then stop. A third email rarely converts and often burns the domain reputation for your whole team.
Where to find the address
- Listed on their GitHub profile or personal site.
- Commit author email on a public repository (
git log). - Company page or conference bio.
Commit emails are public, but people do not expect bulk sequences there. Use the address for a single, relevant note โ never a drip campaign.
When the message is not the problem
If replies are still near zero after specific, short, salary-transparent emails:
- Wrong pool. You are emailing inactive or mismatched profiles. Tighten filters โ see the GitHub sourcing guide.
- Wrong market. Comp or remote policy is off for that country. Check country pages for pool size before blaming copy.
- Brand unknown and role unremarkable. Lead with the problem they would solve, not the company adjective list.
Sourcing and messaging are different jobs. Finding people does not fix a bad email, and a great email does not fix a bad list.
