When working at small startups in the bay area you will undoubtedly find yourself wearing many-hats. I myself have served stints as Editor-in-Chief of a technical blog, was a member of both Office Beautification and Holiday Party Planning Committees, and led a series of Lunch-and-Learns on the importance of data collection. The hardest - by far - of these various caps, casquettes, and bonnets, was recruiting.
During my first full-time employment at Quantifind I was involved in an interviewer role for both software engineering and machine-learning / data-science roles. During the past two years at Periscope Data , I expanded my recruiting experience from beyond just software engineering interviews to covering the entire recruiting gamut. At various points I was a recruiting coordinator, candidate sourcer, hiring manager, and brand ambassador. I helped design interview pipelines, re-imagined the on-site experience, and worked with third-party tools and partners to expand our recruiting capabilities.
I am spewing this list of experiences not in the hopes of astonishing you with my recruiting repertoire - let me be the first to tell you that I am far from finished learning - but in the hope that I can offer some advice to anyone in the Same position as I was first tasked with helping to grow to twenty-something person startup.
Okay, so you just volunteered to help with recruiting. Take one long deep breath as you turn your otherwise two-meetings-a-week calendar into this monstrosity of half-hour time slots:
Before you can each achieve this back-to-back goodness, you need to build a steady stream of candidates. Let's talk about how to get that done.
Before you begin your recruiting adventure, you should learn the lingo. When we first started looking to bring recruiting in-house, we thought we could just hire “a recruiter” and they would take ownership over everything. This turned out to be about half-true. In actuality recruiting is broken down into several roles and responsibilities, and it is important to understand who plays what part:
The candidate experience is the careful study of every interaction your candidate has with both team members during interviews and scheduling, but also within the environment in which they are interviewing. Is your office bright and energetic? Is it located in an accessible, happening part of town, or would it make sense to arrange car service to and from your headquarters? We were fortunate that we had the opportunity to design and decorate our relatively-empty office around both existing employees working environment and the candidate’s on-site experience. Starting with a fixed budget, we decided to focus on the entry way to the company with not just the working environment in mind, but also (very much so) hoping to impart a proverbial wow-factor when introducing the space to our candidates, instead of just being desks in a warehouse.
Our previous warehouse office space in the Dogpatch, shortly after moving in. Photo courtesy Chris Meier.
Panorama from our original lounge, featuring our indoor patio and painted logo in the background.
Squaring in our mind all the steps in recruiting, we can see each of these domains comes with an associated role. The Recruiting Sourcer sources. The Recruiting Coordinator coordinates and schedules. Easy enough. The important individual to mark when hiring a role is the Hiring Manager. This is the individual ultimately responsible for approving the hiring of a candidate, and they are working with the coordinators, schedulers, sourcers, head of HR, and office experience team to get that done.
I would strongly counsel the hiring manager, or their chosen proxy, be highly involved in the entire experience: designing the pipeline, deciding who is involved in what parts of the interview, ensuring the interviewers know what their interview covers: what criteria they should (and should-not) be evaluating within candidates and most important why they are evaluating the candidate along their rubric. A mistake I saw more than once was the hiring manager not being sufficiently involved in the process, electing to defer too much of the responsibility to the other roles. This led to numerous incidents:
My primary recommendation to anyone recruiting for a role at a small organization would be for a single individual to collectively review the entire process to ensure it all worked well from the candidate’s perspective.
During my tenure we iterated through several different approaches to our recruiting pipeline. Let me first recap my own experience in being recruited before highlighting some of the changes with which we experimented.
Periscope generally prefers “moving quickly”, and this definitely extends to recruiting. All told, it was 16 days from first contact to accepting an offer — we can trace the original engineering recruiting pipeline from our email exchange:
This was the format that they had been using for a quite awhile on either side of my interview with Periscope. Note that this interview format targets software engineering individual contributors, and it does not dive into other topics like infrastructure & architecture design, front-end/design experience or a background in engineering leadership. There were informal conversations around these kinds of topics with candidates in these directions, but largely to pitch the candidate how they could fit within the team rather than qualify the candidate as a potential engineer. Let’s explore a little further in depth the different modifications to the pipeline that we explored.
The top of the funnel is where we were able to be the most flexible. You can experiment with different formats — namely the titular phone screen, challenge problem, and/or coffee chat — as well as pursuing candidates that showcased different types of strengths: be it a better culture fit, deeper experience in a particular engineering domain, or working with candidates from many different backgrounds.
Much of the inbound interest we received was from candidates that we would not reach out to given their resume. At the time that I was involved in hiring, we generally did not consider any new college or bootcamp graduates, in addition to other reasons for passing on a candidate. Recruiting displays a similar property as the Friendship Paradox, engineers are more likely to reach out if they are someone who struggles to attain employment. This is not to say they are not good engineers! Some people struggle with canonical interview formats, lack experience but have promise, or just haven’t been in the right situation to showcase their skills. We initially were responding to less qualified candidates with a message along the lines of “We’d love to chat in the future, but there isn’t a good role right now.” This was, after all, the truth! But as an experiment to increase recall we issued a programming challenge problem that asked users to implement code to move a robot around a grid and collect items. While it did demonstrate sufficient coding abilities to warrant further conversations with candidates for whom we would have otherwise passed, it ultimately did not lead to an individual hire. The data volume was too low to draw a meaningful conclusion but given the time that was invested on both the candidates end for programming the assignment and our end for digesting the assignment, it is not something I would do again. There are some more exciting directions in this idea around 3rd-party tools that I would be more keen to try if I was going to pursue this idea for a second time, we’ll touch upon this idea again when talking about sourcing candidates.
Laszlo Podor Photography/Moment/Getty Images
Coffee chats, or more accurately in my case chai tea latte chats, were an almost successful way to increase outbound success in the funnel. I met up with several candidates from my coffee chat request email copy, and without offering too much evidence, I anecdotally felt I had a better success rate at the top of the funnel by offering to meet in person. This format ultimately lead to only a single offer who unfortunately didn’t close, so I can’t quite call it a success. I ultimately stopped making this offer to meet for coffee because it was fairly taxing on both time and, quite frankly, my chai tea latte budget.
Your first conversation is a de facto cultural interview. Unfortunately, and for whatever reasons, some candidates enter a conversation with such a poor attitude that no amount of professional ability will make you want to work with them and the process stops right then and there. On the flip side there are some candidates that will click so well that you start praying they make it through your technical interviews. For the vast majority of interviews, this interview is you selling your culture to them, not the other way around. Once it’s evident that someone is in the realm of “friendly human being”, this conversation is no longer a qualifying interview, but an opportunity to convince the candidate that your startup is truly the one which they’ve been seeking.
My meet-and-greet phone call flow was
At the end of the interview, if there were no show-stopping red-flags, we would setup a second interview for the next business day. Other interviewers included a short technical conversation as part of this conversation, between steps 4 and 5, as an effort to increase the accuracy of this step. I initially had this in my interview as well, but at the time I was optimizing for recall and rarely disqualifying a candidate from that conversation so I ultimately dropped it to leave a more positive first impression on the candidate.
We had been using the same phone screen question since before my own interview. Rather than disclosing their actual problem here, I’ll prompt one with similar properties:
A coworker provides you with a CSV of t-shirt orders, with dates, sizes, colors, brand, and so forth. Can you
The idea of this questions is to start slow and build more complex solutions as you go, a pattern I have observed in many structured coding exercises. The first goal is to get some code running printing a summary statistic, then to increase the complexity of that statistic, and finally a more involved computation with a natural solution left open-ended enough to provide an opportunity for algorithmic discussion.
The problem hopefully allows the candidate to showcase a familiarity with coding that would highlight their ability to program in a professional environment: data organization, appropriate refactoring, clean & well-decomposed code, and so forth. We were generally happy with our precision using this problem, we had good intuition for how well someone would do on-site from their performance on this assessment. Our recall was too costly to measure, as we could not invite candidates that we would have otherwise passed on to interview onsite for a number of obvious reasons. That being said, we frequently found “borderline” candidates were ultimately people that did not pass our onsite interview, since the two technical challenges were fairly similar.
Even as I wrote that paragraph I can sense the immediate feedback that this is an ineffectual interview style and that the four hour take home problem is the one true interview format, or what have you. I agree that this style is imperfect, but I still felt it was effective. After sitting in a half dozen or so of these interviews, clear patterns of behavior crop up and it feels possible to draw a positive correlation with on-site interview performance. Ultimately we had to do the best we could with the time constraints we had, and this format is what we stuck with.
After a handful of interviews, an interviewer is generally primed to know the outcome of the interview no more than half-way through the interview. For candidates that did well, we would schedule an onsite interview while still on the hangout. This level of comfort allowed me to pursue some flexibility in the question, for example if it was generally going well I could cut out the actual algorithmic coding in favor of an algorithmic conversation. To borrow words from another interview pipeline designer: “it is more about probing for signal than qualifying the actual solution to the problem”.
The technical content of our onsite interview was similar in both solution and spirit to the previous interview, but put into the context of building an actual working feature for the product. We were explicitly evaluating the candidate in six categories: coding speed, code quality, algorithmic understanding, communication abilities, enthusiasm & excitement, as well as “shipitude and initiative”, internal lingo embodying whether candidates were focused on getting working code written (shipitude) and/or investing in the design and architecture of the code (initiative) especially in the context of off-hand comments that people frequently made along the lines of “I would probably refactor this into a method”. Wherein the other categories a higher score was strictly better, shipitude and initiative embody competing (though not opposing) dimensions on the engineering spectrum. As such, they were most useful as conversations about why we thought a candidate was awesome rather than requiring a specific score.
Having done other types (i.e., whiteboard style) of interviews in the past, I am a strong proponent of our hands-on-keyboard, real-product-problem approach. It made it much easier to get a sense of what it would be like to work with a candidate and was less of a “probing for signal” and evoked more of a real analysis of the work product: if someone opened a pull-request with this change, how much feedback would be needed to get it production ready? When offering this feedback, do they take it well and make appropriate changes? Do they recognize patterns in feedback and adjust course appropriately? These were among the less explicit, internalized grading we were doing as interviewers.
A special note I want to make is that I casually observed the same conclusion that was the result of a famous Google study: almost no one is good at predicting job performance from interview scores.
Years ago, we did a study to determine whether anyone at Google is particularly good at hiring. We looked at tens of thousands of interviews, and everyone who had done the interviews and what they scored the candidate, and how that person ultimately performed in their job. We found zero relationship. It’s a complete random mess, except for one guy who was highly predictive because he only interviewed people for a very specialized area, where he happened to be the world’s leading expert.
Working with the engineers that we did hire, my unscientific conclusion is there was no noteworthy correlation between interview performance and on-the-job performance. In part, this is because I broadly loved working with my former teammates, but even considering my own dearth of data points I readily believe Google’s conclusion.
I only had the opportunity to extend an offer to one person with whom I was involved in hiring, and fortunately for me they were already quite excited to join the company thanks to it being an in-house referral. That being said, I saw several different strategies:
These were different attempts at trading off expediency and removing pressure from candidates, not even to mention factors like salary, equity, benefits, title, and many other levers that can be pulled on an individual basis to make a successful hire.
Several (but not all) of the positions we were hiring for had open head-count; if there was a candidate that we were excited about, we were able to move forward without considering what other offers had been made or who else was in the funnel. This helped facilitate experimenting with closing technique, since it more clearly makes the goal to close the candidate as fast as possible. Many of the steps that were taken were to reduce time-to-offer, the goal here was to enable candidates to move at their own pace and make the best decision for them outside of the time pressures of “exploding offers”. While this idea was laid out with the best of intentions, it highlighted why time-limited offers exist. I was left with a feeling that people tend to get more excited about the company whom with they recently interviewed than one they visited days or weeks ago. Ultimately I did not see solid enough results to recommend doing anything outside of the norm: making an offline offer very shortly after an interview with a “good-until” date.
The last component is also the most exciting. After making an offer the conversation turns back to selling your company to the candidate, highlighting all the stated pros and diminishing the identified personal tradeoffs outlined in the first interview. When a candidate does (excitingly!) accept an offer you want to return the same excitement and enthusiasm that they have for you back to them. We tried a few variants here:
The first gif I sent to a candidate. Needless to say, they accepted.
I can’t really say one worked better than the other, and I suspect the right choice will be evident by the existing culture of your team. Additionally, the hiring manager would keep in contact with the new-hire, providing status updates, check-ins, and introductions to team members involved in on-boarding.
Okay, we’ve thought a lot about what the experience should be but we may have jumped the gun — we need candidates to interview! Let’s switch gears and talk about introducing our company to job seekers. How we will find them (or have them find us), what kind of information we are showcasing, and how we can keep track of it all.
What do you do when you are first interested in learning more about a company. Do you perhaps … google them? Congrats, you are the same as everybody else, and your candidates will be doing the same thing about your company. We should make sure the information out there reflects the exciting, passionate, and fun group of people that are working at your startup!
I estimate 100% of candidates will visit your glassdoor page.
Drafting a job description deserves more than it’s own bullet point or paragraph, it’s easily a blog post in its own right. However, the abridged version of our experience followed these steps:
After you’ve reviewed your brand’s online presence through a recruiting lens, you need to set up your machinery and mechanisms for driving your recruiting engine. Starting out you might do something simple, like keep it all in a spreadsheet, but you will quickly find that operating at scales of sending 10+ emails a day or working on recruiting with co-workers begets necessity for an Applicant Tracking System, or ATS. There’s a huge list of options out there and today we’ll talk about the two I’ve actually used: Lever and Greenhouse.
The co-founder and CEO of Lever has a background in design, and it shows. Lever is a beautiful product. It’s grey-scale interface is a little much at first, but I quickly came to appreciate not only it’s sleek & flat design, but the simplicity and usability of it’s interface. What I loved Lever for was its pipeline analytics overviews.
http://www.forentrepreneurs.com/recruiting/
The structure has a very natural navigation to it that wasn’t present in some of the other ATSs that we evaluated. It was easy to step into specific sections of the pipeline and look into individual candidates movement through our recruiting pipeline. We were working at candidate volumes in the hundreds, so it was feasible to look through every single candidate to understand what was going on in the overall system, and Lever did a great job of facilitating this type of exploration.
When I speak to a recruiter at a San Francisco startup and ask them about their ATS, I expect them to say Greenhouse. While Lever and other competitors like Jobvite and Workable all have sizable fan-bases in the bay area, Greenhouse is frequently the name that comes up first. It’s a fully-developed product with extensive permission-ing and candidate management capabilities. I unfortunately first became involved with Greenhouse when they were moving from monthly to annual pricing and had to forgo using them for awhile. Ultimately we adopted Greenhouse when recruiting went from “many-hat” hiring managers to an actual HR team. If you’re a well-funded startup and looking for an ATS for the for-seeable future, you aren’t making a mistake with Greenhouse, but it will work best with someone whose job responsibilities include managing the tool. Most of my exposure was in filling out greenhouse report cards and perusing the candidate list to track our pipeline.
The official Greenhouse candidate scorecard stock photo
Greenhouse was the first ATS we used to fill out scorecards, our previous model being a shared excel document where we would copy paste a template. For this purpose, Greenhouse shines. It allows for optional and mandatory fields, structured note taking, and only shows other interviewers responses when you’ve filled out your own. The oddity here is the requirement for the five-field scale. We had happened to use a four point scale prior to switching to Greenhouse, so we had to entertain a slight adjustment phase before settling into the five-scale scheme.
Working with Greenhouse analytics was generally approachable, but I did come across a few quirks. It wasn’t always straightforward to pull the exact numbers I wanted out of the candidate pipeline, and I occasionally had to manually click through each of the categories — for example, each of the seven different reasons we had internally for not proceeding with a candidate after an offer was made — to understand what was happening in our recruiting funnel. While it does a good job of exposing the data from an active pipeline viewpoint, I often felt I wanted to drill-down into slices of data that weren’t readily accessible, and would do some pen-and-paper tracking of candidates to ensure I had the entire picture.
In addition to an ATS, you will want something to help you manage your email. If you have been involved in sales or marketing roles, I won’t be preaching anything new — the same tools for managing your sales pipeline make sense in recruiting. Content Resource Management tools, or CRMs, are used across business organization to organize information and your email is no different. Email clients like Gmail have a lot of organizational capabilities built-in, including automatic tagging, filtering, and nested folders, but you can take your email to the next level with an email tracking tool like Yesware or one focused around pipelines like Streak, in addition to dozens of other tools as covered by this great blog post from Workday.
The tools I used the most often were Yesware and Hunter, which helps you find someone’s email address and offers a convenient chrome plugin to help guess addresses when your are perusing LinkedIn. Yesware and Hunter are one of many choices in the crowded email discovery and management spaces — if you have sales and marketing teams you should check if you already have licenses for other tools like Hubspot, Radius, and of course, LinkedIn.
You’ve done the legwork and you’re armed for battle. At this point you might even be thinking that recruiting is pretty fun! Now it’s time to embrace the most challenging aspect of our task: sourcing candidates. There are going to be many avenues you pursue, and no one of them will be the silver bullet. Recruiting is a numbers game on both sides of the equation: candidates should pursue many opportunities at once, and companies want to see a large volume of candidates to fit people who will best excel in their environments.
Welcome to trying to find your own candidates. This will involve a mixture of crawling LinkedIn, Github, StackOverflow, and AngelList. It’s possible (perhaps even likely) that I was just bad at this, but it was challenging doing direct reach “on the side”, while also working the rest of the recruiting pipeline and also occasionally doing my actual job of writing code. I won’t even try to recover my terrible conversion numbers, but getting a real workable pipeline doing your own sourcing requires a huge amount of time, and I now strongly believe it is not worth it. If you aren’t building multi-year relationships with a large number of individuals, have access to a database of candidate emails, and are only pitching a single role at a single company, then you are already a step behind professional recruiters and unlikely to find it’s worth the time and effort.
That time we spent thinking about our online presence will hopefully help drive some inbound interest in your company. We can further boost inbound interest by advertising roles on traditional advertisement networks and there are important non-advertising channels as well, namely the Hacker News who’s hiring thread. Hacker News is Y-Combinator’s news aggregator and is quite popular among the tech community, particularly so in SF. Every month on the first of the month they offer the opportunity for non-YC companies to post a job advertisement (which they are otherwise not permitted to do). The post regularly gets several hundred companies contributing a job description, and in my experiences this was responsible for a sizable portion of inbound interest. Most importantly, several of the hires that we made were Hacker News inbound candidates, myself included, and it is my immediate recommendation to both candidates and companies when they are asking about the software engineering job market. By posting to this thread in the proper format you should automatically be added to websites that aggregate the postings from those threads, such as https://whoishiring.io/ and this hiring map from Gaganpreet.
Hacker News is certainly not the only strategy; we also ran a few Facebook ads targeting software engineers in addition to running ads for the product itself that frequently targeted the same audience. While I don’t know for sure if any of the software engineers we hired came through a Facebook ad, I do know that a data analyst we hired found us through a product advertisement. Other sources contributed to inbound interest — our company’s blog is technically focused and included, at various points, a “come work with us” call to action. Whereas direct outreach was hugely time-intensive, these efforts were not particularly costly in time, effort, or financially, so even without a massive effort to track the success, it felt appropriate to pursue.
There’s something of a stigma around full-time, third-party recruiters. Often software engineers I speak to bemoan the emails and phone calls that they continually receive. Nevertheless, recruiters provide a valuable service and many of them do so with gumption. They are certainly worth considering, but working with external recruiters is expensive, taking 10–20+% contingency fee on the first year’s salary of a hire they introduce to you. A poor recruiter relationship can also be time-intensive, as it can be challenging to align your expectations around candidates: in addition to managing the relationship with the candidate, you have to iterate with the consultant and explain your hiring decisions. Ultimately, your incentives are not perfectly aligned. It can feel like they are working towards optimizing recall while you’re trying to calibrate the optimal recruiting precision where you can have a manageable workload. Especially when considering the relatively low initial time investment I would recommend giving it a try if you are prepared to pay the contingency fee.
I led a short campaign to get a paid referral program started at Periscope and as part of that effort polled my friends working in the Bay Area for the size of their in-house engineering referral bonus. Most companies that I spoke to had one, with payouts ranging from $1,000 on the low end to $20,000 on the high end. We ended up on $5,000 as it was both the median and mode from my short survey and we opened it up as a $5,000 bonus for most roles across the organization.
I’ve seen a few different strategies employed to drive referrals. The most common was to sit down with the individual leading sourcing and walk through LinkedIn friends lists to build a spreadsheet of people to reach out to, whether the referrer should be named when reaching out, as well as whether it is a professional, personal, distant, or LinkedIn-only acquaintanceship. If you are doing this with more than a small handful of accounts, it is worth exploring a tool like https://teamable.com/ that can help organize and search your collective networks.
Other approaches I have heard used, like referral pizza parties or cash bonuses just for submitting resumes, also seem like viable strategies. When we later adopted Greenhouse as our ATS it provided its own workflow for referrals, the ease of which I felt helped encourage submitting referrals.
When I started writing this novel it was an exercise in brain-dumping content and I did so with the purest of intentions. Between then and now I have joined the remote interviewers program at Triplebyte, my favorite of the platforms I will talk about below. So please take this salt grain as you read my opinions of hiring platforms, though I do hope you will believe I am sincere.
digest with a grain of salt, courtesy pxleyes.com
This is the place where I am the most excited. It is also the place that is experiencing the most rapid growth. Between when I first started searching for recruiting platforms a year and so ago and the publication of this post, I have discovered at least twice as many such products. It is possible that all of my recruiting google searches have allowed for better Facebook ad targeting, but I do believe that many of these companies are less than a year old.
In the preliminary phone call, the one that was mostly about selling the candidate, I would sometimes ask what other companies with which they were interviewing, and people were generally forthcoming. Especially when I was excited about a candidate, and doubly-especially when I was excited about a candidate but didn’t think our company was the right fit for them, I wished that I could simply go to the other companies and recommend the candidate. Well it turns out I was far from the only person with this idea, and there are a plethora of companies entering the domain of providing technical qualification quizzes and interviews as part of their sourcing of candidates.
At its heart it is a simple idea — look upwards in the pipeline, merging the technical qualification piece into the third-party sourcer. Champions of these platforms paint a beautiful picture of how “hiring is broken” and they are “re-inventing the technical interview”, but at a macro level they are still recruiters introducing candidates to companies. The major innovation is the technical pre-qualification that, for example, facilitates Triplebyte customers to bring candidates directly on-site, greatly shortening the internal pipeline. There are several other advantages that these platforms offer on to both the interviewees and the hiring companies. Having been involved in so many engineering interviews, they are able to greatly surpass my coarse intuition-driven lessons-learned, and instead model how a candidate will do in onsite interviews from the earlier stages, with enough data to draw real, meaningful conclusions. The evidence shows: more than 50% of the introductions they make (i.e., onsite interviews) result in an offer-made, which is well above the numbers I experienced myself and have gleaned from chatting with other hiring managers.
There are other platforms that are more like traditional job boards, but targeted at software engineers. Hired is my favorite of these examples, though I will concede it is a little gimmicky. The shtick is they remove a good portion of unconscious bias in resume processing, as they only initially display a candidate’s initials — no name, no bio, no photo. Unconscious (and conscious) bias is not a topic we will fit into this post, but I recognize that it is a challenge for anyone involved in hiring and appreciate organizations that are helping to reduce the impact of bias from their recruiting pipelines. The other angle Hired plays is that companies communicate target salary numbers immediately upon reaching out to a candidate — though I do not think they are not obligated to abide by that number if they do make an offer. The result is the creation of a sort of silent, blind auction with even greater nuances than a standard auction and the accompanying game theory to think about, but in our experience it wasn’t a huge deal and probably helped make downstream compensation conversations a little easier.
I have only just brushed past the tip of the recruiting platform iceberg. Without doing them full justice, here is a list of recruiting companies worth investigating if you are looking to accelerate hiring:
There seems to be a new entry into a different part of the recruiting space every month. In our list here, we have not even touched more traditional job boards - AngelList, ZipRecruiter, Glassdoor, LinkedIn, Indeed, and many others all help software engineers find jobs. The space is huge, and growing.
If you've stuck with me this far into the blog post, then I hope you feel equipped to turn on your recruiting engine and ramp up hiring. What has your experience been in recruiting been? Drop a note if you see something missing from the software engineer recruiting landscape. We talked about pipelines and sourcing today - we could dive even further into building the job description, managing the pipeline as a hiring manager and even sourcing candidates and further exploring even wider territory - getting co-workers involved in recruiting, building a Consistent pipeline instead of need-based hiring, diversity in hiring, and much more.