I've been running The Pragmatic Engineer Job board for several months. This is a job board targeted at software engineers and engineering managers. It's one of the few job boards with a money-back guarantee in case of no qualified applicants: and I've issued 4 full refunds from about ~100 job posts. I've analyzed posts that have done exceptionally well, and those that did poorly.
This post collects my advice on how to write a job posting that is more likely to get qualified applicants in the current, hot hiring market. I also share reasons I observed job posts get no qualified applicants.
Characteristics Well-Performing Job Ads Share
The best-performing job posts shared several of these:
- Above market salary, advertised. The simplest and most effective way to get an outsized number of applicants - and many qualified ones - is to pay well, and be specific about it. For examples of the ranges that are competitive, see my article A CTO's Guide to Remote Compensation Strategies.
- Salary range. Posts that listed a range got 3-5x as many applications as ones that do not list one. The more competitive the range, the more applications. My theory is that when a company not known to most people does not post a range, most people assume that the range is low. Saying salary is "competitive" makes people assume the salary is in the bottom tier of the trimodal compensation model.
- A strong brand. For companies which are well-known tech organizations, they see far more inbound even if they ignore much of the advice in this list. Even more, many of these companies see healthy traffic for their own career pages, making it less important to advertise roles that are not specialist ones. If your company is a startup or lesser known, this naturally does not apply.
- Reduce the number of "must have". The more expectations you list, the fewer applicants will apply. Try to keep this list as low and reasonable as possible.
- Selling as well, not just listing expectations. Unless your company is well-known in the industry, sell the position in the posting as well. The mission, what people joining will own and what they will learn.
- Interview process lightweight enough and explained. Posts that make it clear what the interview process is tend to get more applications - especially when the process is lightweight. While there is no shortage of people who will go through an 8-step process at Google to get a $500K/year position, most people will not engage with places that have heavyweight processes and do not compensate similar to Big Tech.
- Offer remote and target a larger region. If you can accommodate remote applicants from a region like the US or EU, you'll see more response than if you're only hiring in a given city. While it's understandable to have preferences, posts that get better response rates which are hybrid setups often list their main city and leave a remote option within the timezone open as well, as they feel out the market.
- Inclusive language. Avoid language that puts off certain groups from applying. Read more advice about hiring - and retaining - a diverse engineering team.
- Get in front of more eyeballs. Once you have a job ad, you need to get it in front of many people so it catches the attention for those who are passively - or actively looking. To get the attention of those looking actively: post on job boards. To capture passive folks: post on channels they are present. For example, my featured jobs show up on the bottom of this blog and on my Twitter. There are other job boards which advertise on surfaces outside the job board.
Characteristics Poorly Performing Job Ads Share
The type of job ads that got very few, or no qualified candidates typically had one or more of these:
- Targeting small markets (cities) AND no salary or low salary. A company listing a posting for a software engineer to work from only from onsite in Amsterdam, listing a salary considered low for a senior engineer (€50-70K) saw no applicants. Another listing to hire only in Lisbon and Barcelona, and with no salary range also saw no applicants.
- Asking for too many expectations AND not sharing a competitive salary range.
2. Asking for too many expectations AND not sharing a very competitive salary range in-line with what you are asking for.— Gergely Orosz (@GergelyOrosz) April 14, 2022
Here's a job ad that would get applicants... only if it had a high compensation package also advertised. Else these senior people won't bother applying. pic.twitter.com/Gh0EAYCjJn
- Offer too low a salary. A company in the US advertising a mid-level position as "$100K+" got no qualified candidates. Most candidates assumed they pay $100K, which is too low for this market. If you can pay up to $180K, say "$100-180K". A wide range is not ideal: but it is better than a very low number.
- Suggest that knowing the local language is a massive advantage. A company that added how speaking fluent Turkish is a big plus saw no qualified applicants. They were basically telling people if you don't speak Turkish you'll be singled out, as everyone else already does.
- 80% asking for things, and 20% or less selling the position. Unless you're a well-known brand you need to sell yourself as part of the job ad. This job market is not a company's market: it's a job seeker's market.
I hope these pieces of advice help in crafting a great job ad. For more tips, see my article Hiring Software Engineers.
If you're a hiring manager working at a company with a great engineering culture, and want to reach software engineers and engineering managers both actively and passively looking: consider posting a featured job on The Pragmatic Engineer Job Board.
Featured Pragmatic Engineer Jobs
- Manager, Web Engineering at HashiCorp. $136-173K + equity. Remote (US).
- Manager, Web Engineering at HashiCorp. $123-180K + equity. Remote (US).
- Lead Frontend Engineer at Rooser. £100-120K London (UK).
- Software Engineer at Rooser. London (UK).
- Senior Frontend Developer at ePilot. €50-90K. Köln (Germany) or Remote (Germany).
- Senior Full Stack Engineer at ePiilot. €60-95K. Remote (Germany).
- Software Engineer at Air Space Intelligence. Boston, MA (US).
- Senior Full Stack Engineer - Developer Experience at Synthesia. €100K+. Remote (Europe).
- Senior Full Stack Engineer - Growth/Collaboration at Synthesia. €100K+. Remote (Europe).
- Senior Backend Developer (Python) at Octopus Kraken. Berlin or Munich (Germany).
- Senior Python Developer at Octopus Kraken. Paris (France).
- Senior Product Engineer, Frontend at Attio. £90-125K + equity. Remote (Europe).
- Staff Full Stack Engineer at POSH. $170-220K + equity. New York (US).
- Director, AI/ML at Sixfold AI. $195-225K + equity. New York or Remote (US).
- Founding Engineer (Full-Stack) at Strada. $140-190K + 0.5-1% equity. Remote (Global).
The above jobs score at least 9/12 on The Pragmatic Engineer Test. Browse more senior engineer and engineering leadership roles with great engineering cultures, or add your own on The Pragmatic Engineer Job board and apply to join The Pragmatic Engineer Talent Collective.
Want to get interesting opportunities from vetted tech companies? Sign up to The Pragmatic Engineer Talent Collective and get sent great opportunities - similar to the ones below without any obligation. You can be public or anonymous, and I’ll be curating the list of companies and people.
Are you hiring senior+ engineers or engineering managers? Apply to join The Pragmatic Engineer Talent Collective to contact world-class senior and above engineers and engineering managers/directors. Get vetted drops twice a month, from software engineers - full-stack, backend, mobile, frontend, data, ML - and managers currently working at Big Tech, high-growth startups, and places with strong engineering cultures. Apply here.