2014-07-23

When I started WP Curve, it was just me and my lead developer Andrew. As we signed up clients, we had to hire more people – fast. Fast forward 12 months and employ 16 people in total across 10 different cities.

We need one more developer for every ~30  customers we sign up. When we started growing at ~60 customers per month, we realised we needed to put a robust process together for managing it. It’s funny because I started out in HR, but left because I didn’t like it. Now I find myself writing HR policies!

In this post, I will run through our exact process. This is an almost direct copy of our internal process. I’ve kept out a few sensitive details and also added in explanatory notes for things that people outside the company may not follow.

The process is managed by Ness, our Virtual Assistant based in the Philippines who works part time (3 hours per day).

If you want to implement this process in your own company, I’ve provided a Recruitment Process bundle which contains this main process as well as 3 additional files (mentioned below) as Google Docs. You can copy them and customize them for your own business. This is 100% free and I’ll send them to you if you add your email address below. This will also add you to my weekly emails, where 10,000+ people enjoy a weekly update of our best content.

[convertpress id="11781" replacetheme="false"]

Entire recruitment, select, onboarding and exiting process

Here is the entire process from start to finish. This flowchart was put together using Lucid Chart which is a web-based charting application I’ve used for years. You can click on a section to go to that section or use the menu on the right. Or you can just read through the whole post below. I’ve also included a high level description here so you can see where everything fits.

Step 1 – Trigger

This is where we decide whether or not to hire and we kick off the process.



Step 2 – Recruitment

This is where we find potential applicants, trial them and make a hiring decision. This is where I’ll spend most of our time on for this post.



Step 3 – Onboarding

This is what happens after we have decided to make a hire. The first part, the pre-start tasks is about setting up the team member in our systems.

The second part is what happens on day 1 and beyond.

I don’t cover these steps in this blog post.



Step 4 – Exit procedure

In the rare case where a team member leaves, we have a process for that to. We don’t cover this in the post but it’s more or less an exact duplication of the pre-start tasks but in reverse. i.e. it’s about removing access from our systems.

In this post we will focus on the first 2 parts of the overall process.

1. Trigger hiring process

In step 1, we decide if we should hire and kick off the process if we are ready to hire.

We hire based on the need we have in the business. We aim to have all tickets responded to within 6 hours. If our average first response time goes outside 6 hours, then we start the hiring process again.

I’ve documented the process below. If you don’t use the same tools as us, you can just modify the process to suit the systems you are using.

Every Monday a task is added to Ness’ Trello queue to review the response times in Help Scout. Trello is our task management tool and HelpScout is our support desk tool that we use to manage all of our client jobs.

The task is automated using Schedule Once / Trello Zap in Zapier.

Here are the procedures for checking Help Scout and reporting back to the founders.

Log into Help Scout and visit Reports / Productivity.

Click the dates up the top right and change the ‘Date Range’ drop down to ‘Custom dates’.

In the first box pick the date for the previous Monday.

In the second box put the date for the previous Friday (i.e. 3 days ago) - this will give us a report for last week.

Under ‘Compare to’ choose ‘Do not compare’ then click ‘Update’.

We need to look for 3 metrics. The first is the average First response time which is shown under ‘First response time’. The second is the highest day’s response time. You can get that by mousing over the highest point on the chart on the right. The third is the lowest day’s response time. You can get that by mousing over the lowest point in the chart.

Notify the founders via Slack with this canned reply below and show an image of the report.

Hi guys

I have checked the response times for last week’s tasks.

The average first response time was [Put first response time here]
The busiest day was Monday with a first response time of [Put Monday first response time here]
The quietest day was Friday with a first response time of [Put Friday first response time here]

Recommendation: [Insert recommendation from the options below]

Thanks

Ness

If the average response time is over 6 hours then make a recommendation that we kick off the hiring process.

If the average response time is under 6 hours then make a recommendation that we wait a week before looking at it again.

If the founders agree that we should hire again, we need to follow the process below.

Kicking off the hiring process

If the hiring process is triggered automatically, double check in Slack with the founders to confirm that we are hiring again.

Create a task in Trello called ‘Team member hiring process #x’ (replace X with the team member number we are hiring for.)

To find X, open this folder and add 1 to the highest number of the recruitment efforts documents there. Note this folder just contains all of the historical hiring documents.

Open this folder and create a new document.

Open the recruitment efforts template (see below).

Copy the contents of the recruitment efforts template

Change the title of the document ‘Recruitment effort team member #x’ to the number of the team member we are hiring for.

Fill in as many details as you can.

Advise the founders that you have completed this step before you move to the next step.

The recruitment effort template is the file we use each time we recruit someone.

I have included the information from this document below. You can also download the actual file by opting in below. I’ve added in dummy text so you can see an example of what would go in each field.

Here are a few notes about what I’ve put in the doc:

I’ve excluded the pay rates. I’ll respond to pay rate questions in the comments if people have them.

This process is for a web developer. We would do a similar process for a different position by changing the trial task and some of the details.

Depending on where we are hiring in the world and what type of gig, we will source applicants from different places. We have hired on Odesk, Elance, bestjobs.ph (Philippino job board) in the past, as well as using word of mouth through existing team members and from other entrepreneurs who have let their team members go. Our team have connections to local universities and are regularly referring people to us. Half of our team have come through word of mouth either via existing team members or from other entrepreneurial friends. This is one of the many benefits of building up a community around your business.

Here is the recruitment effort template. I’ve embedded it here. To get the actual Google doc, opt in to the emails right at the end of this post.

Hiring Developers - Recruitment Effort Template by WP Curve from Dan Norris

2. Recruitment process

Contact 10 potential applicants (employee search)

The first part of the recruitment process is finding 10 potential applicants. If we are using a job site, we will search through the resumes on the site and pro-actively email ones that look suitable.

This usually involves looking at 30 or 40 applicants and looking out for people who mention the right words.

I have these tables set up for Ness to get an idea of which people to invite and which ones not to invite.

The exact process is going to differ depending on what sites you are using and what type of role you are recruiting for. The process is skipped if we get a direct referral, in which case we would give them a trial straight away.

Also with the process below, we don’t wait till all people have responded and pick a ‘closing’ date. We trial anyone who looks suitable and we hire anyone who passes the trial (more or less), as soon as we do the trial. If we get more than 1 who are suitable, we may hire more than 1 at once.

PHP

Developer

HTML / CSS

Programmer

Coder

Front end

Back end

Customization

The email in the recruitment effort document above is sent as an individual email from Ness to each person who we have shortlisted.

Pre-screening process

As replies to the emails come in, we have to go through a process of pre-screening the applicants to determine if they are a good fit. Usually I will try to arrange a time to text chat with them on Skype to go through this process.

When they reply, ask if they can make a time on skype to chat about the role. We have to find out a few things about the potential recruit before we go ahead with the trial.

If they can’t make a time when you are online, then you can do this via email.

Question

What to look for

Things to consider

What hourly rate are you prepared to work for given you will get guaranteed hours each week?

Our standard rates are $x / hour on weekdays and $x / hour on weekends. We can go as high as $x / hour during the week for a senior dev, however if the dev won’t work for $x then they need to be rejected. If they try to bargain with you or ask for more than what we are offering, reject them. Please note, we pay staff in USD.

Often when we ask developers this question they will think about their contract hourly rate for small jobs. But since most of our jobs are full time hours, and we are guaranteeing work each week, they should accept a lower rate. Sometimes I have to go back and forth with them to make sure they are ok with the rate.

Part of the job involves writing development notes for clients. Are you comfortable with written communication?

Do they seem friendly, responsive and have good english communication skills via email.

Don’t worry too much about their answer to this question but just pay attention to their language skills in the communication.

The job often involves fixing WordPress plugin clashes, changing CSS and HTML and sometimes PHP. Are you comfortable with that type of work?

They need to show some knowledge of HTML / CSS and WordPress. If it becomes clear that they are more of a designer or a virtual assistant then reject them.

If they say they can do HTML / CSS stuff but not PHP that should be ok. But if they seem more like a designer or an assistant then they won’t be suitable for a development role. If they say I haven’t used WordPress before, then reject them.

Reject anyone who doesn’t look right. For the rest we can invite them to a trial.

Here is a transcript of a typical Skype chat I will have with a developer to ascertain the details above:

“****** started a chat
Jun 4, 3:08 am
Visitor
hello there..

WP
hi there

Visitor
I am invited about a developer job.

WP
sweet

this is ***

where are you based?

Visitor
Philippines..

so tz is not a problem for us if you are from aus

WP
oh right

where in the Philippines are you?

Visitor
Olongapo, Zambales sir

do you hired someone already?

WP
oh yeah

we are always hiring

what sort of work are you looking for?

part time / full time?

Visitor
part time.. so I can be flexible

yeah I can see that you outsource.. that’s the service of your site..

WP
ah ok so you have a full time job?

we do small development jobs for clients

most of our team are full time

but we are flexible

Visitor
oh great.. by full time..how many hrs per week

WP
9-5 monday to friday

but some devs work other times

it just depends on what they want

what would be your ideal situation?

Visitor
maybe a 2-4 hrs per day will do.. do I need to keep a daily contact with a manager of the project I will be in?

WP
yep

we have a tool that we use to communicate

it’s sort of live chat / email

Visitor
great..

WP
We can have team members that only work part time but they have to work the same hours each day

so we have some that do 7pm till 10pm at night for example monday to friday

Visitor
what if I start 10pm to 1am..that would be consistent hours for me

WP
ok and can you briefly explain your skills?

Visitor
My skills are: html, css, jquery, php.. wordpress is a cms platform made via php so I know of it also.. but I also use laravel(a php framework) for development.. I know a little of system administration because it is a great plus for dev guy like me.

please tell me your current time..thanks sir.

WP
sweet

it’s 12:20pm here

2 hours ahead of you

And what kind of wage would you be looking for?

Visitor
so I can work 12-3am your time.. or I can work 6am – 9am your time sir..

about wage.. can we meet halfway..

WP
what is your hourly rate?

assuming you have 15 hours a week guaranteed each week

Visitor
$** per hour sir

WP
we generally pay $** / hour assuming that it’s guaranteed each week

an we pay a bit more on weekends

$**

Visitor
weekends for me will be good for whole day since I am not busy. 6 will be good sir

WP
so you would prefer to just work weekends or during the week as well?

Visitor
still work at weekdays as well sir. but just saying I can dedicate 6-8hrs for weekend..

6 to be sure..

WP
ok and are you happy with $** on week days and $** on weekend?

Monday to Friday 10pm till 1am and Saturday 9-3pm?

Visitor
m to f – 12am to 3am and sat 9-3pm your time sir will be good. the 10pm to 1am I based it on my time sir.sorry.

WP
yeah that’s your time

Monday to Friday 10pm till 1am and Saturday 7-1pm? your time?

Visitor
yes..

WP
Ness usually organises 2 hours for you to go through some set tasks and then makes sure we are online to be on call to help

Visitor
ok sir..

so how we do the hiring process for me..
WP
we pay through paypal

Visitor
it will be fine with me..

WP
ok cool

Visitor
so how me stay in touch sir?

how can I contact you.

WP
yep email

my email is **@**.com

but if you can provide yours, I will get her to email you and arrange a trial for tomorrow or the next day. Is that ok?

Visitor
will you need my email.

ok sir.

WP
would you mind pasting your email here in case I don’t get it?

Visitor
**@gmail.com

WP
great thank you

Visitor
talk to you later sir.

WP
thanks mate yep

looking forward to the trial

Visitor
ok sir..”

Arrange a trial

To test applicants, we complete a paid 2 hour trial. Here is the copy you can use to arrange the trial:

“Our process is to arrange a paid 2 hour trial so we can give you some sample jobs. Are you happy to do a 2 hour trial? If so can you please let me know your PayPal email to send payment and also let me know a time that suits you to do the trial.”

When they reply with a yes, here are the steps you need to follow to sort out the trial. Note this process won’t make sense for you to use for your own business. However I’ve left it here as is so you can get a feel for how we do things.

The first step is to check whether our test site ***** is restored to original form. The easiest way to check is to look at the bottom right hand corner of the homepage. If there is a category widget there then it’s the correct version. If there’s a contact form then we need to restore to the original version.

If you go have to restore the site, here is the process:

Visit **** and login with LastPass

Click on File Manager

Click on public_html on the left.

Click on the ‘teamtrial’ folder (not the zip file) and hit the ‘X – Delete’ button up the top and confirm.

Click on the teamtrial.zip and click ‘Extract’ up the top and confirm. This will replace the ‘teamtrial’ folder with the template files.

Close the tab and return to cPanel and click on ‘phpMyAdmin’

In phpMyAdmin on the left click the + button next to ‘dbprefix’ and then click ‘dbprefix_dbname’. This is the team trial site database.

On the right hand side it will list all of the tables, click ‘Check All’ down the bottom and from the ‘With selected’ drop down click ‘Drop’. Then click ‘Yes’ to confirm. This clears the database.

Click ‘Import’ up the top to import a new database.

Click ‘Choose file’, and navigate to the test install directory here in Google Drive. The path is “****”. Choose the file called “****.sql”. This is the template database file. Click ‘Open’ then click ‘Go’ down the bottom. This will restore the template database.

Once all of that is done, hit Control Shift N to open an incognito tab and visit the trial site ****. Make sure it displays the template site (see screenshots above to confirm). If it does then the site has been re-set and it’s ready for a team member to complete a trial

Note I also provide a screencast of me completing all of the steps but I’ve left that out for security reasons. The test install site is just a basic WordPress install with a few typical problems. Those are the problems that the developers work through on the trial.

Once the site is ready, it’s time to arrange the trial with the potential developer. Here are the steps for doing that.

1. Explain to the developer what is happening. Here is the copy you can use in the email.

“Thanks for agreeing to do a trial. Our process is to share the instructions via a Google doc which I will do shortly. It contains everything you need to know in order to complete the 2 hour trial.

We will pay $** USD for the 2 hour trial. Please confirm that this email address is the correct email address to use for PayPal.

Choose a 2 hour time period to complete the trial and then work through the steps in the document. Please do not work on the site for more than 2 hours. Part of the trial is testing how you go at following instructions so it’s very important that you only spend 2 hours on the trial.

When your 2 hours is up, please email back and let us know you have completed the trial.

There are more details inside the Google doc which I will share with you shortly.”

2. Share the WP Curve Trial Instructions document with the developer.

I’ve embedded a copy of the trial instructions document below. You can also get the full Google doc to use in your own business by opting in at the end of this post.

Note I keep some of the steps a little bit vague. This simulates what the job will be like and also forces the developer to use a bit of initiative which can reveal if they are suitable for the job. There are generally too many jobs here to get through in 2 hours. The very last one is an extremely difficult task that I wouldn’t expect any new hires to be able to complete. I used Skitch to pull these screenshots together.

Hiring developers - Team Trial Instructions from Dan Norris

3. Make a note to follow up with the developer in a few days or diarize the day when the trial is happening.

4. When the developer is finished, log into paypal.com and do a send money to their email address for $** USD.

5. In the recruitment effort document, copy and paste the ‘Trial Results’ section and update the name and email with the details of the developer. Check the developer’s notes and on any tasks that they didn’t complete, say ‘Not done’ in the comments field of the shortlisting table and mark it as read. Go through each section for tasks that were completed and make a comment and mark the section as green, orange, or red. Use my comments to make a decision on how the developer went. Remove my comments as you go and replace them with your own comment about how they did on that task.

6. Confirm your scores with the founders to finalize a score.

7. If the score is less than 70% reject the applicant with the email below. If the score is more than 70% make a hiring recommendation to the founders via Slack. If they agree to the hire, send the email below confirming and work out a start date.

Rejection email

“Hi [first name]

Thanks so much for doing our trial. At this stage we’ve decided to not go ahead with you in the role. Please stay in touch for the future as we are growing quickly and always looking to grow the team.

Thanks again.”

Hire email

“Hi [first name]

Thanks so much for doing our trial. You did a great job and we would love to have you on board as employee number #x. Here is what we would like to offer. Please confirm that you are still happy to proceed.

We can’t wait to work with you

Position: WordPress support developer
Pay rate: [Add agreed pay rate]
Work hours: [Add work hours]
Starting on [Work out a date, if in doubt pick the following Monday]“

8. Repeat the steps above to clear the trial site for the next trial.

9. Once the start date is agreed, send a calendar invite to the team member and to whoever is the team leader online at the time, saying that the team member is starting. In the calendar reminder list the ‘Day 1 tasks’ below so the team leader and team member know what to expect on the first day. Here is the copy to include in the request:

“Hey [first name], this is the appointment for your first shift at WP Curve. Before the shift please follow these instructions to set up our live chat tool Slack, so you can chat with our team leader [team leader name].

1. In your email you will have an invitation from Slack.com. Click on the invite and set up your account.

2. Download the Chrome shortcut so you can chat live with our team.

3. Just before your shift, log into Slack and look for the team member [Team leader name]. Click on his name and say hello at the start of your shift. You will get more instructions via there once you start.

Looking forward to working with you!”

The day 1 task document contains a standard list of tasks that we have people do on day 1. It’s mainly setting up the systems and reading through our processes.

Grab the recruitment process bundle

Everything in this document is included in Google Doc form for you to take and modify for your own business. This includes:

The recruitment process

The recruitment effort template

The trial instructions

If you enter your email below you’ll be added to my weekly email list and we’ll immediately send you the whole bundle for free.

[convertpress id="11781" replacetheme="false"]

Has this post been useful?

We put a lot into this post and I hope it’s been useful. If you think it has, please email it to someone, or share it on Twitter or Facebook. If you have any questions or comments please add them below.

The post Our exact hands off process for hiring developers offshore appeared first on WP Curve.

Show more