Why Most Job Descriptions Fail
Good engineers have options. The best ones are usually employed, passively browsing, and willing to stay put unless something genuinely catches their attention. A job description full of buzzwords and vague requirements won't catch their attention. It'll confirm their instinct to keep scrolling.
The typical engineering JD is a disaster: a laundry list of requirements copy-pasted from three other postings, a generic company description that could apply to anyone, and a requirement for "5+ years of React" on a framework that's only been widely used for seven years.
What Engineers Actually Look For
When engineers read a job description, they're asking a few specific questions: What will I actually work on day to day? Who will I work with and will they be smart? What's the tech stack and is it modern? Will I grow here or stagnate?
Surveys consistently show that engineers rank technical challenge and learning opportunities above salary as their top reasons for joining a company. That said, if you won't share the salary range, many won't apply at all.
Language That Works vs. Language That Repels
Here's a direct comparison. Both describe the same role.
Repels: "We are seeking a passionate rockstar full-stack developer to join our dynamic team. Must be a self-starter who thrives in a fast-paced environment. 8+ years experience required."
Works: "You'll own the data pipeline that moves 40 million records per day. The current stack is Python, Airflow, and Snowflake. The team is four engineers, a data scientist, and an engineering manager who runs weekly 1:1s and gets out of the way."
Specificity is the difference. The second version tells the candidate exactly what the job is, who they'll work with, and what success looks like.
- Use: concrete stack details, team size, real examples of problems you're solving, what the first 90 days look like
- Avoid: "passionate", "rockstar", "ninja", "guru", "fast-paced", "self-starter", "dynamic"
The Salary Transparency Debate
This one isn't really a debate anymore. Including a salary range increases application rates by 30-40% in most studies. Engineers who would have self-selected out because the comp was too low won't waste your time or theirs.
If you genuinely don't know the range yet, you haven't scoped the role well enough to post it. Figure that out first.
Length and Format
The sweet spot for engineering JDs is 400-600 words. Long enough to give real information, short enough to be read in full. Anything over 800 words gets skimmed.
Structure it like this: what the role actually does (2-3 sentences), the tech stack (bulleted), what you'll be responsible for (bulleted), what you're looking for (bulleted, honest), compensation and benefits, a short authentic paragraph about the team.