Write five lines: who you are, the role in one sentence with its salary range and location policy, one specific sentence about something they built, why that work matches the role, and an easy way to say no. Keep it under 120 words. If you cannot name what they built, do not send it: the specific line is what separates a message from spam, and it is the one recruiters skip.
Template 1: the contributor
Subject: Your work on [project] and a [role] role at [company]
Hi [first name], I'm [name], hiring for [company]. I read your merged pull request on [project] that [what it did, in plain words]; it is close to what our team works on every week. We're hiring a [role], [salary range], [remote / hybrid / city]. Would a 20-minute call make sense? If the timing is wrong, a one-word "no" is completely fine.
Template 2: open to work
Subject: [Role] at [company], [salary range]
Hi [first name], your GitHub profile says you're open to new roles, so I'll get to the point: we're hiring a [role] to [one-line mission], [salary range], [location policy]. Your [repository] is the kind of work this team does. Interested in the details?
Template 3: the maintainer
Subject: [Company] and [project]
Hi [first name], you maintain [project], which we rely on at [company]. I'm hiring a [role] and would rather ask than guess: would you consider a role where [what they would keep doing, for example time for open source]? No pressure either way, and thank you for the project.
Template 4: LinkedIn connection note
Connection notes are limited to a few hundred characters, less on some account types, so keep only the specific line and the role:
Hi [first name], I found your [project] work on GitHub. We're hiring a [role] ([salary range], [location]) on a team doing similar work. Happy to share details if useful.
Template 5: the single follow-up
Hi [first name], following up once on the [role] note from last week. If it's not for you, no reply needed and I won't write again.
One follow-up, about a week later, then stop. A third message turns a missed note into a bad impression of the company.
What gets a message ignored
- "I came across your impressive profile": it says you did not read it.
- No salary range: developers assume the worst.
- A link to a calendar before any interest: it asks for time before giving a reason.
- Writing to an address taken from git commits: covered in how to find a developer's email on GitHub.
Whether contacting someone from GitHub is legitimate at all is a separate question, answered in is emailing a developer from GitHub spam?
Where this answer does not hold
Templates set the structure; they do not write the specific line for you. A template sent with the brackets filled generically is the message this page tells you not to send.
Frequently asked questions
How long should a recruiting message to a developer be?
Under 120 words for email, and a few hundred characters for a LinkedIn connection note. One specific sentence about their work matters more than length.
Should you include the salary in the first message?
Yes, as a range. It answers the first question every developer has and filters out mismatches before anyone spends time.
How many follow-ups should you send?
One, about a week after the first message, saying you will not write again.
What should the subject line say?
The project or work you are writing about and the role, for example "Your work on [project] and a [role] role".
Know what they built before you write
StarHunt shows each developer's recent contributions next to their contact.
Try StarHunt for free