How to Write a Great Job Post 📋
Lessons learned from reviewing 100+ jobs on the Refactoring board, and from 10+ years of engineering hiring.
In July this year I launched Refactoring Jobs to provide an effective way for readers to find high quality, remote engineering jobs.
Since then, I reviewed hundreds of positions. I talked with tens of companies to understand what they were looking for, and to help them write a better job post.
I saw which performed better or worse, got feedback from readers, and drew some conclusions. I have also hired engineers for 10+ years myself, wrote very bad job posts, and made all mistakes imaginable.
In my experience, the very best jobs are clear and exhaustive about these areas:
🏢 Company
Vision & Mission
Where we are
Culture
🎽 Team & Position
About the team
Responsibilities
Tech stack
Salary range
🔢 Application Process
Let's see them one by one 👇
🏢 Company
This is where people should fall in love with your company. You should cover what you do, how you do it and why.
You don't need to write everything in the post itself — for each section you can embed the key points and then reference material from other blog posts and company pages.
Vision and Mission
You should state what your mission is as a company, and how it is fueled by your particular view of the world. Good vision / mission statements are usually something along these lines:
We believe X matters / will happen, so we are building Y to help with it.
Great people are driven by purpose, they want to do work that matters.
Where we are
Once you have aligned people on your vision & mission, build momentum by telling them what you are doing right now.
What challenges are you facing?
What are you going to build this year?
How many customers do you have?
Did you get a new funding round? Nice! What is it for?
Is the team going to grow? How?
If possible, link external resources to back these up. Have you been in the press? Have you written anything on your blog about it? Put external links to make people dig deeper if they want.
In this section you are saying: not only do we have a great mission — we are doing these amazing things now and we need your help. You should make the candidate's mind race about what you can do together.
Culture
Culture is what it feels like to work in your company. This section answers the question: "Would I enjoy working here every day?"
Culture sections are fluffy sometimes, and engineers can spot this immediately. A good culture is specific, it provides guidelines on how you should behave and make decisions.
So list your values / principles, and show how you use them in practice.
A few examples:
✍️ Asynchronous communication — by GitLab. GitLab explains their async culture in every single job post, and links to their legendary handbook to let the candidate learn more.
🥣 Be a Cereal Entrepreneur — by Airbnb. This directly ties in with the company's beginnings and what the founders did to make the company survive. It is memorable, and its history makes it credible.
Perks
Perks are not mandatory! I’ll say this right off the bat, as many believe they have to add them at all costs. Many great companies, like Shopify, or Stripe, do not include perks in their positions.
You should add a perk when it checks at least one of these boxes:
It is relevant to your culture — it should be aligned with one of your values, encouraging it substantially. This way the candidate feels you are putting the money where your mouth is. For example, if you are promoting a healthy remote culture, it makes sense to provide a generous budget for a home workstation.
It is a big perk — you are providing something really valuable. Famously, Whole Foods gives between 20% and 30% in-store discounts to all their employees.
If your perk is neither of those, you can go without it. Cheap or arbitrary perks make candidates suspect you are using them to compensate for a position that is not interesting enough, or well-paid enough.
🎽 Team & Position
This is where people should fall in love with their actual work. It is the heart of the job post 👇