A Guide to Writing Job Descriptions to Attract Remote Developers

ProfilePicture of Veronica Arreche
Veronica Arreche
Director of Operations & Head of Talent
A man pointing a screen with a different profiles and a candidate search on it

In a rapidly growing freelance industry, a job description is still the best way to find the right candidate. It’s how you write them that has changed.

Table Of Contents

The first step to writing a good job description (or JD for short) is understanding your target audience. Job boards have become relics of the past. The best remote developers no longer go searching for work. Instead, job descriptions get pushed directly to their inbox. 

In-demand developers will receive hundreds a month, and as a result, they have learned to be selective. They ‘thin slice’ each job specification, comparing it against a mental checklist, and deciding in a matter of seconds if it’s worthy of their attention. The ones that aren’t, get ignored. To make sure your job description is being noticed, you need to change how you write it. This shift in how JDs are consumed can be easy to miss because, from an employer’s point of view, it can feel easier than ever to get applicants. If you’ve ever put up a role on Freelancer.com, for example, you’ve likely been bombarded with responses. The problem is that the quality of these replies can be very low.

If you’re looking for a junior developer to complete a simple, low-level task, then posting a basic job description on Freelancer or Upwork might be the best fit for you. If, on the other hand, you are looking for a talented technical candidate with strong communication skills who is ready to take on development of a core project area – then you’ll need to take a different approach. 

That’s what I’ll be concentrating on in this article: walking you through each step to create an attention-grabbing job description that will attract top technical candidates.

Job Requirements

No one knows your role better than you do, so spend time thinking about how that role will be structured. Great developers think logically and clearly, so if your job description feels hurried and incoherent, it likely won’t resonate with them. 

Stay Away From Hybrid Roles

Resist the urge to blend disparate roles together into what we call a ‘hybrid’ role. This is an easy trap to fall into. Let’s say you need a developer and a designer, but you don’t have the budget for both, so you try and blend both skill-sets into one job description. For example, “Searching for a full stack developer, who can also work in Photoshop and, ideally, is also great at SEM.” It’s a slippery slope…

The beauty of working with freelancers is that you can get specialists for each desired skill area, and just pay the required hours for each skill. So although it might seem easier to hire one person to do everything, the chances of finding that unicorn freelancer who can do the development, marketing, and design at a high level are low. The reality is you will most likely end up with a candidate who is mediocre in some of the areas.

If You’re Not Technical, Get Some Help

Before hiring anyone you should know:

  • Which technologies are required for your project?
  • What is the maximum budget?
  • What completion time frame is reasonable?

If you don’t have a good technical understanding of the project and role, then enlist some help from someone who does. If no one in your company has the experience, you can look for outside help. You can chat with one of our experienced project leaders (at no cost) and they will help you answer these questions.

Cut Out the Fluff

Freelancers don’t want a five-page list of responsibilities, expectations, KPI’s and fluff. Think of today’s JD as more of an ad for your role. We analyzed over 1,000 job descriptions in our system and found that the most successful were between 250 and 750 words long.

If you have lengthy documents on the role or company, then you can simply link to them from the job description or, even better, send them to shortlisted candidates. 

Set the Tone

The tone of your copy is just as important in a job description as it is in a face-to-face meeting. If you are overly familiar or overly corporate, you may give a false impression of the role and the company. Choose a tone that reflects the culture of your business. Don’t pretend you’re a hip startup if you are a conservative, established company. The goal is to attract people who are right for the position and the company.

With that said, let’s look at how to update your job description so it attracts top technical talent!

Job Title

An example of a job title description for a remote full-stack angular developer

Keep It Short

When you open your inbox, you unconsciously skim through subject lines, deciding which are worth viewing. In-demand developers do the exact same thing with the job title part of a job description. 

The text might also be truncated by the app showing it (this could be an email or the website they are looking at). A truncated title will confuse your message, so I suggest keeping the job title under 60 characters and certainly no more than 80 characters.

The key aspects of your role have to come across immediately and in a clear fashion. The job title section is where people tend to try and be witty or funny. As we will see later, there is nothing wrong with injecting some personality into your JD – but just not in this section. Instead, focus on intelligently filling the space with keywords that will trigger a candidate’s interest. 

List of Keywords:

  • Experience. Including the seniority level is a good way to filter out unqualified candidates.
  • Role. For example: Full-Stack Developer.
  • Primary Skill. For example: Android, React.
  • Project/Company. You should only include the brand name if is a selling point. For example Google or Uber.
  • Role Type. The keyword ‘remote’, for example, is a selling point whereas ‘part-time’ is just a datapoint that is less likely to make a candidate want to learn more.

Skip the Buzzwords

Try and avoid terms like ‘growth hacker’, ‘rock star’, and ‘ninja’. Initially, these terms were original and fun: they reflected the voice of the startups that used them. Now they feel dated and cliche.  

Job Duties and Responsibilities

It’s important to get potential candidates to visualize themselves in your role because once this happens they are halfway to applying. This section, in which you give a compelling overview of the role’s day-to-day duties and responsibilities, is a great place to achieve this.

An example of a job duties and responsibilities for a remote full-stack angular developer

Sell Your Role

Paint a picture of an exciting and challenging role by describing its specific duties, responsibilities, and what the candidate could achieve in the role. This is best done by focusing on five or so core responsibilities and weaving them into a short paragraph that encompasses the role. Avoid using bullet points here because, while they may be concise, they are less effective at selling the role.

Focus On the Candidate

Describe what the candidate will be doing rather than what you are looking for. You should throw in some action verbs here, as they make for more dynamic and engaging sentences. Hopefully, the use of ‘describe’ and ‘throw’ in the previous sentences make my point. Here is a good list of action verbs to inspire you.

Company Description

Company description example for a remote job position

If a candidate is reading this far, you’ve likely got their interest. Good work! Now you need to convince them that the larger business is an equally good fit for them. 

There is a common misconception that remote workers don’t need to be sold on a new role as much as traditional hires do. The logic goes that, as they will not be on-site to experience the company culture, they should be hired based on cost and skills. This approach is short-sighted: more and more jobs are becoming remote, and the quality of tools designed to integrate these workers is increasing. Company culture not only matters to all hires, but it will matter more and more as time goes on. A good candidate will be just as interested in the company as they are in the specific role.

Deciding to join a new company is a huge deal for any candidate. It comes with new risks like:

  • Will I be paid a fair rate?
  • Will I be paid on time?
  • Will my new colleagues be interesting and knowledgeable?
  • Will they accept me and my feedback? Will I be trusted?
  • Will the company be well-organized?
  • Will the company use exciting tech or will it be conservative?
  • Will I be given challenging work?
  • Will the company help me reach my career goals?

As a result, a good way to think about this section is to speak directly to these concerns in the text of your company description.


An example of role and company structure for remote job post

Part of selling a candidate on a role in helping them mentally position where they will fit into your company: who they will be collaborating with and who they will report to. Clearly laying this out also demonstrates that the role and company have structure.

  • Show how the role functions within larger business.
  • Make reporting lines clear.
  • Describe the internal and external teams the candidate will interact with.

Onsite or Remote

If your role is ‘remote’, you should have already noted this in the title. It’s also important to show how you will integrate this remote role into existing workflows. To make this simpler, our job description tool specifically requests a few key aspects such as the presence and time of a daily meeting. 

We also suggest that you include details about what collaboration tools are used in your organization such as Jira, Trello, Slack, HipChat, daily standups, etc.

Job Description Skills

Job description example list of required skills

Use Bullet Points

If everything is going to plan, you will have sold the role by this stage. The remaining sections of the JD should be used to filter out candidates that are not qualified. This means you should switch from salesy to functional copy. In other words: use bullet points.

Required or Nice To Have?

Creating an exhaustive list of skills can be counterproductive. This is because it will exclude great candidates that have the key skills, but not the peripheral ones. They might feel underqualified and not apply, or worse, not turn up on search results for the entire skill range.

That’s why we suggest splitting the skills into two distinct lists: ‘Required’ and ‘Desired’ (aka nice-to-have skills). This prevents you from limiting the candidate pool too much while still allowing you to paint a clear picture of the ideal candidate. 

It can be hard to know which skills go into which column. So consider this example: the required skills could be ‘experience with LAMP stack and a modern MVC framework’, while the desired skills could be the specific PHP framework you use on your project, say ‘CodeIgnitor’. If your project uses a technology that is not widespread, it will be much faster to find a great candidate who knows ‘LAMP stack and a modern MVC framework’ and can quickly get up-to-speed on CodeIgnitor. 

If your project is using a very popular specific technology like Laravel, then perhaps you can be pickier and put this skill in the ‘Required’ column.

Be Specific

Quantify the experience for each skill by including details such as the technology version you work with and how much experience you feel is needed for that skill. 

We place huge value on soft skills (such as leadership, teamwork, flexibility, communication, and initiative) and positive character traits (such as a friendly outgoing personality). But these are harder to quantify at this stage. Instead, we tend to look for these skills in all candidates, but use the interview stage to assess them.

Location & Time

Always include the date you want someone to begin, the hours required (full-time or part-time), and how long you expect the project to last. This will help candidates work out if this fits the timelines of other projects they are working on and prevent applications coming in from people that won’t work out. 

Time Zone

The success of a project often depends on open, easy communication between team members. When people on the same team are not in the same time zone, communication suffers. They can’t just get on Skype or Slack and speak to each other throughout the workday to sort out problems, brainstorm, or just collaborate on their work in general. It leads to frustration between team members, miscommunications and errors, and slower turnaround. For this reason, we match remote developers with clients in significantly overlapping time zones and I would strongly recommend that any employer prioritize working with freelancers in their timezone. 


The hourly rate a developer charges is based on many variables. The three most significant factors tend to be their geographical location (cost of living), skill set, and experience. 

Supply and Demand

These factors are driven by supply and demand mechanics. The demand for US-based freelancers is high and the prices reflect that. Quality developers in the US can cost anywhere from $80 to $200 USD per hour, however, costs in Latin America are lower, ranging from $40 to $70. In India, they are even lower: from $20 to $50 per hour. 

A freelancer’s skillset will also impact their hourly rate. It’s relatively easy to find a competent developer, but much harder to find a blockchain developer with commercial experience. Here again, the market rates will reflect this, with average rates for Blockchain Developers being up to 3x the baseline. Additionally, a Rails developer with 15 years of experience is likely going to want to be paid more than someone with 4 years of experience, and that’s because this experience tends to translate into greater productivity.

At Scalable Path, we match clients with developers in lower-cost regions within their timezone. For example, we match our US-based clients with South American developers because the geographical arbitrage leverages the price difference without the communication issues that can happen when teams are spread across time zones.

Pay Market Rate

Negotiating rates is to be expected, but it’s important to remember the supply and demand mechanics in play here. If you are looking to hire a freelancer with a rare, in-demand skill set, trying to pay significantly less than the market rate is likely to mean you will lose a candidate’s enthusiasm and long-term interest. That’s because they know another role paying market rate will likely come along soon.

Job Description Templates

Creating a good job description takes time, focus, and a little insider knowledge. To help you get the ball rolling, you can see our list of job description templates for the following positions that you can copy and customize:

Back-end Developer positions:

Front-end Developer positions:

Mobile Developer positions:

Other Roles:

If you need a hand getting the ball rolling, don’t hesitate to get in touch and our team can help you determine your role requirements or support any other hiring needs you have.

Originally published on Jul 12, 2021Last updated on Nov 28, 2022

Looking to hire?

Join our newsletter

Join thousands of subscribers already getting our original articles about software design and development. You will not receive any spam, just great content once a month.


Read Next

Browse Our Blog