I believe there are two rules to building a successful business:
i) Hire amazing people
ii) See i)
Well, there might be a tiny touch more to it than that, but I can’t emphasise enough how much it improves one’s chances. By many multiples. More, I think, than any other thing you can do with your business. A successful business is as much about who you do it with, as about what you do. Think about the extraordinary teams that formed Google, Apple, Tesla and so on.
Which is why it is so peculiar that entrepreneurs and managers tend to spend so little time and resource figuring out who they need to succeed.
In this article, I will share my recipe for recruiting an amazing team (a ‘dream team’), from scratch – building on my experience running an executive search business in two countries, as well as here at Wholi, where I believe we’ve recruited a pretty awesome team from Google, Facebook, Twitter, Adobe and beyond.
Be warned, this is a long post (and process), of which this is part 1. There are few short cuts. Perhaps one of the reasons that recruiting is neglected is that it’s so darn hard.
This process and post is a work in progress, and I am sure there are better ways. Please do leave a comment, or write to me at (Tom @ you know the rest) if you’ve any thoughts or feedback. I’d love to hear your views and I’ll try to include them… Or you can comment at the bottom of this post.
I’ll deal with three stages of the recruitment process in this post: 1) searching for candidates, 2) having discussions with candidates and briefly 3) using networks. I won’t talk much about the negotiation and onboarding, that’s probably worth future posts.
The Thing About People Who Are Amazing
Recruiting amazing people takes ages. Be prepared. It’s absolutely worth it. Recruiting should be as intensive a process, if not more so, than finding investment e.g. full time for 6 months. If you add it up, the months spent finding good people should repay you many times over in the years they work for you. Also if you get it right at the beginning, you’ll find hiring amazing people gets easier and easier. They want to work with each other. So, if you already have great people in your team, or your team know of people that are truly amazing ask for referrals.
First up, abandon traditional methods. Amazing people aren’t generally looking. You’re very, very unlikely to find the best people through job boards, or by people requesting to work with you. Why would they bother? Inbound is somewhat unlikely, but possible if you have an awesome reputation. The best people don’t need to job hunt, they get hunted or hunt down the companies they want to work for. Pretty much the only recipe for getting awesome inbound candidates is to first build an amazing team by being very disciplined about hunting down and securing top talent.
The best candidates will also be very picky about who they work for, so make sure you’ve thought about your big vision, the benefits you want to offer etc. Don’t be a douche and blow it at the end when making offers, be very generous with equity and salary, these people are worth it. We thought this was wise – blog.samaltman.com/employee-equity. I would also recommend 37Signals, Valve, Patagonia – Let My People Go Surfing, Ricardo Semler as reading (obviously this is for the kind of culture we wanted to create). Here at Wholi, we’ve gone for a completely transparent cap table, equity and salaries, like at Buffer, but that’s just us. You’ll need to create your own attractive culture and values that amazing people will be drawn by.
The better people you get, the easier it will be to manage them. I’d rather focus on hiring amazing people within a broad area, e.g. marketing, sales, engineering, product and let them ‘find their place’ within the business, than try to write a bullshit specification filled with hyperbole for a very specific role. This might well work better for smaller startups where you need jack/jills-of-all-trades. But my guess is that the same process would work for larger too. The reason is that I think that amazing people are generally much more flexible/adaptable and valuable in the longer term. I would rather have an amazing back-end developer turn their hand to front-end, than a so-so front-end with more experience.
Despite this, you do have think hard about what key traits people will have that make them easily identifiable. I’ve included more information below. The better you do this, the more time it will save throughout the process.
So, here is the process we followed for hiring software engineers in Romania. I also used it to hire Raz (perhaps the most rewarding piece of work I’ve ever done, given the person I get to call my partner – and how many articles that have been written proclaiming how hard it is to find a technical co-founder) and for other disciplines. It’s not exclusive to engineering, although there are some features that are unique and therefore need to be adapted.
Stage One – The Search
1) Work with someone who knows the market and skills and try to identify the 10 or so traits of the most successful potential candidates. Set the traits so the total size of this market is no more than 1000-2000 people. This is really important. If you’re looking just for a software engineer in San Francisco, there’ll be tens of thousands and this process will never end. Try to limit the size of the search by being narrow, but not too narrow. Are you looking for the top 5% of developers in San Francisco, if so what defines those folks – e.g. colleges, where they work(ed), awards, job titles, what happened at the companies whilst they worked there, startup experience, types of languages, github commits etc. etc.
When we were building our team we were looking for amazing software engineers who would work in Romania (so software engineers from Romania working anywhere in the world became our search) and we narrowed it to the following traits. (FYI – I’m told that Romanian is the 2nd most spoken language at Microsoft and the 5th most spoken in Silicon Valley, so this was an interesting search).
– Participated in National/International Olympiads for Math, Informatics, Physics
– Participated in ACM competitions
– Probably had a ro.linkedin.com account (good for boolean searches)
– Yale, Stanford, Oxford, Cambridge, KCL, Imperial etc (only looking for Romanian’s at these universities). and Romanian top 2-3. Don’t limit yourself to your own country
– PhD in certain subjects e.g. CS, Artificial Intelligence, Machine Learning
– Teaching assistant, Lecturer, Professor
– Artificial Intelligence
– Machine Learning
– Graph Databases
– Natural Language Processing
– Twitter, Facebook, Google, Palantir, Pinterest or Dropbox and some other firms. Particularly the internship programmes, which are highly competitive and recruit the best people from the best universities/courses
– Worked at these companies full-time
– Identify any companies in Romania that are top 3-5 e.g Adobe
– Founder or senior in decent local startup e.g. UberVu (although they were friends, so we didn’t approach anyone there but it would have been a great filter).
In the end, everyone we hired had at least 2-3+ of these traits…
2) Once you have this list of traits, do some random boolean searches using these traits. See if you can find 25-50 people who would be good, get your expert to rank the people you’ve found. Look at top 10 and try to see any additional patterns and search criteria in their profiles e.g. high-schools, membership of groups, skills etc.
3) Do 2) again. Re-build the list of search terms with this additional information and do the process once more till you’ve another 25-50. Repeat the process of looking for patterns and search criteria. Search for these people on Google and find out where they’re mentioned. For example, we found a list of all attendees of the IoI (International Informatics Olympiads) e.g. http://stats.ioinformatics.org/people/ROU
4) Build boolean strings for these various search terms to try to incorporate all of them – learn your modifiers e.g. AND… OR… NOT etc. Use it to X-Ray specific sites e.g. Linkedin, Github, Quora and specific sites (like Infoarena for us) – http://www.infoarena.ro/. Here are some tips for using boolean searches, and why they’re so important in recruitment.
5) Start using the boolean strings in Google and make a record of them. If you hit a good seam of candidates, try to dig deeper with that boolean string and variations. Also try similar searches on specific sites via X-raying those sites and/or on the sites specifically (I find X-raying LinkedIn more effective than searching on LinkedIn itself).
6) By now you should have about 100 candidates, ranked by your expert. Talk to your expert to discover the key features that are working or not. Now you have a good idea of how and where to find people, hire a freelancer/intern. I’d recommend someone from UpWork or online. You can get good freelancers for ~$5/hour. Show them steps 1-5 above and give them the list of sources of candidates, list of boolean searches tried, characteristics and set them loose, ask them to come back to you when they have an additional 50-100 candidates. However ensure that they log every relevant candidate found by name and URL (ideally LinkedIn) and the searches they’ve performed. This is because you want to completely map the market and you only know you’ve done this if you no longer get new people.
After you start getting into the 00s and 000s of candidates, having a searchable record of who you’ve looked at prevents duplication. We tended to search the sheet whenever we think we’d found someone new using either a public LinkedIn URL, or a name. Obviously if you’ve got hundreds of brilliant candidates you can stop but in our case it took 1500 candidates to find ~20 we wanted to hire. In addition, once you’ve mapped the market once, you don’t have to do it again.
7) Rank the freelancer/intern’s attempts. This will enable you to see who’s good and who’s not – because they’ve put everyone in the list, you will have a lot of low scores, not just the good ones. Show the freelancer but ask them to continue to map all candidates that fit these criteria. In our case it was all developers in and from Romania (probably about 1500 people in total). I imagine the numbers are different for the positions you’re looking for and extend way beyond tech.
Keep a record of all candidates found in a spreadsheet with rankings, but cut-off beneath the top 10-20% of rankings (we were tough markers, with 80% being below a 5/10). Ranking a few hundred people takes A LOT of time if done properly.
Note – we initially did this all in a spreadsheet. We have since ported all of our lists to Wholi where it’s far easier to add people, see their social profiles, collaborate and search lists, so this process should be far easier than when we first started.
9) Hire a separate freelancer to find the email addresses of every candidate who has a score over your threshold. You’re best off finding someone who’s done email lookups before e.g. using http://usersthink.com/find-email/, VoilaNorbert or if you can’t find emails, then social IDs or Twitter or some way of contacting folks (Facebook messages, LinkedIn messages etc all work!). Mutual connections etc. Again, Wholi should help as you can build your list and then it’ll automatically connect social profiles of users for you as well as giving you better list management/tagging/ranking etc.
10) Keep the first freelancer churning for a week or two, doing some ranking as you go. They’ll hopefully start to get to a point where they’re starting to see the same candidates come up again and again and therefore there are less and less new ones. Once there are 8-9 old for every new person you find, you’re starting to have a comprehensive map of everyone in the market who has that characteristic so you can stop, or change the searches a bit more dramatically to see if you can catch any new folks.
Remember – if you set your parameters too wide, e.g. engineers in the US, it is going to take too long. So you have to be careful about step 1-3.
That’s it for now… in Part 2, I’ll talk about how to have discussions with candidates and use your networks.
In the meantime happy hunting…