TinyPilot: 26개월 차
원문은 Michael Lynch님이 에 게재했습니다. 이 블로그 구독하기
한 줄 요약
채용이 생각보다 놀랍도록 어렵다는 것.
하이라이트
- TinyPilot이 역대 최고의 한 달을 보내며 매출이 8만 달러에 육박했고, 이전 최고 기록을 15% 경신했다.
- 채용 공고에 대한 지원자 수가 6개월 전 같은 공고를 올렸을 때보다 8배 늘었다.
- 사람을 채용하는 것에 대해 할 말이 많아졌다.
목표 평가
매달 초에 그 달에 이루고 싶은 목표를 정한다. 이번 달 목표 달성 결과는 다음과 같다:
TinyPilot Community와 TinyPilot Pro를 차세대 업데이트 시스템으로 이전
- 결과: TinyPilot Community는 이전을 마쳤지만, TinyPilot Pro는 아직 준비되지 않았다.
- 등급: C+
우리는 5월부터 TinyPilot 업데이트 시스템을 전면 개편하는 작업을 해왔는데, 예상했던 것보다 훨씬 오래 걸리고 있다.
지난 2년 동안 TinyPilot 업데이트 시스템에 기술 부채가 많이 쌓였다. 지금 그 부채를 갚고 있는 중인데, 그러다 보니 일주일 이상의 개발 시간을 잡아먹는 예상치 못한 문제가 계속 터져 나온다. 이제 정말 마지막 몇 주만 남았다고 확신한다.
TinyPilot 라이선스 관리 계획 확정
- 결과: 계획이 확정되었다.
- 등급: A
TinyPilot 라이선스를 관리할 계획을 확정했고, 관련된 모두 만족하는 것 같다. 사용자 경험은 매끄럽고 엔지니어링 복잡도는 최소화하는 방식이다.
TinyPilot Voyager를 리뷰용으로 유튜버 또는 블로거 두 명에게 보내기
- 결과: 채용 때문에 너무 바빠서 진행하지 못했다.
- 등급: F
여기서는 아무 진척도 없었다. 사실 채용을 목표 중 하나로 넣었어야 했다. 이번 달 대부분을 거기에 썼기 때문이다.
TinyPilot 통계
| 지표 | 2022년 7월 | 2022년 8월 | 변동 |
|---|---|---|---|
| 고유 방문자 | 21,242 | 11,903 | -9,339 (-44%) |
| 총 페이지뷰 | 33,578 | 23,214 | -10,364 (-31%) |
| 판매 수익 | $56,954.66 | $76,082.06 | +$19,127.40 (+34%) |
| 기업 구독 | $290.70 | $290.70 | 0 |
| 로열티 | $2,513.71 | $3,264.23 | +$750.52 (+30%) |
| 총 수익 | $59,759.07 | $79,636.99 | +$19,877.92 (+33%) |
| 순이익 | $-12,349.21 | $21,580.82 | +$33,930.03 (+inf%) |
8월은 TinyPilot의 매출과 순이익 모두 기록적인 달이었다. 나는 7월 말에 가격을 11% 인하했는데, 그 덕에 판매가 34% 늘어난 것으로 보인다. 이번에도 이 수치를 끌어올린 외부 이벤트가 없는 ‘지루한’ 달이었기에, 이 흐름을 유지할 수 있을 것 같아 낙관적이다.
가격을 내릴 수 있었던 이유는 마침내 회로 기판을 안정적으로 공급받을 수 있게 됐기 때문이다. 칩 부족 사태 때문에 단종된 부품을 교체하려고 8개월에 걸쳐 재설계를 해야 했다. 한정된 재고가 순식간에 동나는 걸 막으려면 가격을 높게 유지할 수밖에 없었다. 이제 칩을 다시 계속 생산할 수 있게 되면서 가격과 판매 속도를 더 유연하게 조절할 수 있다.
8배 늘어난 지원자 수 감당하기
8월에 두 번째 지원 엔지니어를 채용했는데, 6개월 전 같은 직군을 채용했을 때와는 전혀 다른 경험이었다.
지난번에는 30일 동안 221명이 지원했다. 이번에는 불과 2주 만에 802명이 지원했다. 지원자가 너무 많아 일부러 속도를 늦춰야 했고, 결국 2주 만에 지원을 전면 마감했다.
밀린 답변을 처리하는 동안 채용 공고를 잠시 멈추고 싶었다. We Work Remotely는 짜증나게도 공고를 임시로 숨기는 기능을 제공하지 않는다. 영구 삭제하고 결제한 기간을 날리거나, 그대로 두고 감당할 수 없을 만큼 많은 지원자를 계속 받는 것 중 하나를 선택해야 한다.
고육지책으로 공고는 그대로 두되, 근무지 조건을 “Worldwide”에서 “US only”로 바꿨다. 이 직무가 꼭 미국 거주자를 요구하는 건 아니지만, 공고를 완전히 내리지 않고 지원자 유입을 늦출 수 있는 최선책이라고 생각했다.

지역 조건을 추가하니 신규 지원 속도가 절반가량 줄긴 했다. 그래도 많은 지원자가 조건을 무시했다. 조건 변경 전에는 지원자 중 18%만이 미국 거주라고 답했는데, 변경 후에도 실제로 미국에 산다고 답한 비율은 42%에 불과했다.
2주 만에 지원자가 802명에 달했고, 지원자 모두에게 제때 답변을 줄 만큼 빠르게 처리할 수 없다는 걸 알았기에 지원을 마감했다.
왜 이번에 지원자가 이렇게나 많았을까? 내 추측은 다음과 같다:
구조화된 웹 폼이 이메일보다 부담이 덜하다
가장 큰 요인은 이번에 지원자들이 웹 폼을 통해 지원했다는 점이라고 생각한다. 지난번에는 이력서와 자기소개서를 이메일로 보내라고 했다. 구조화된 폼을 작성하는 게 지원자들에게 더 편하게 느껴져서 더 많은 사람이 지원하도록 유도한 것 같다.
단점은 웹 폼이 성의 없는 지원자를 더 많이 끌어들인다는 점이다. 지난번에는 We Work Remotely 지원자 중 18%가 1차 서류 심사를 통과할 만큼 괜찮았는데, 이번에는 1차 관문을 통과한 비율이 6%에 불과했다.
채용 채널이 늘면 지원자도 늘어난다
이번에는 RemoteOK와 Craigslist 두 채널에 추가로 공고를 올렸다. Craigslist는 지원자를 크게 늘리지 않았지만, RemoteOK는 2주 동안 127명을 더 끌어왔다.
경기 침체는 구직자 증가로 이어진다
마지막으로, 지금 글로벌 경기가 6개월 전 채용할 때보다 더 나빠졌다. 경기 침체에 대한 우려가 커졌고 채용을 하는 기업도 줄었다. 연초보다 고용주에게 유리한 시장이 됐을 거라고 본다.
원격 채용 공고 채널 비교
이 과정을 통해 채용 채널마다 투자 대비 효과가 극적으로 다르다는 걸 알게 됐다.
내가 중요하게 보는 지표는 두 가지다:
- 적격 지원자 수
- 전체 지원자 중 적격 지원자 비율
한 직무당 10~20명 정도의 적격 지원자를 확보해 선택지를 가질 수 있는 플랫폼을 원한다. 몇 명의 적격자를 찾으려고 3,000명을 걸러내야 할 정도로 시그널 대 노이즈 비율이 나쁘다면 그 플랫폼은 가치가 없다.
이번 평가에서는 서류 심사를 통과한 모든 사람을 적격 지원자로 간주한다. 또 전 세계 지원이 가능했던 5일 동안 들어온 지원만 대상으로 한다. 지역 조건을 바꾸면 응답에 편향이 생기기도 하고, 아직 나머지 지원을 전부 처리하지 못했기 때문이다.
| 채널 | 비용 | 총 지원자 수 | 1차 심사 통과 | 적격자 1명당 비용 | 체험 채용 |
|---|---|---|---|---|---|
| We Work Remotely | $398 | 359 | 20 (6%) | $20 | 0 |
| Remote OK | $448 | 67 | 0 (0%) | N/A | 0 |
| Craigslist | $25 | 3 | 1 (33%) | $25 | 0 |
| Hacker News | $0 | 2 | 0 (0%) | N/A | 0 |
| 기타 애그리게이터 | $0 | 53 | 1 (8%) | $0 | 0 |
| 알 수 없음 / 직접 지원* | $0 | 52 | 3 (15%) | $0 | 1 |
| 합계 | $871 | 464 | 25 (5%) | $35 | 1 |
* ‘알 수 없음’에는 TinyPilot 웹사이트 링크를 통해 지원한 사람들이 포함되므로, 트위터 등에서 내가 올린 글을 보고 지원한 사람들도 여기에 들어간다. 최종 채용된 분은 내 트윗을 보고 지원했다.
We Work Remotely는 꽤 잘했다. 성의 없거나 스팸성 지원자도 적지 않았지만, 359명 중 20명을 건진 건 꽤 괜찮은 비율이다.
RemoteOK는 이 기간에 적격 지원자가 한 명도 없었고, 사용 경험 자체가 너무 나빠서 따로 한 섹션을 할애할 정도다.
RemoteOK는 크게 실망스러웠다
나는 오랫동안 Pieter Levels의 팬이었다. 그가 출연한 Indie Hackers 팟캐스트 인터뷰는 시리즈 중에서도 손꼽히는 명회차다. Pieter는 부트스트래퍼의 삶이 왜 흥미롭고 해방감을 주는지 정말 잘 보여준다.
안타깝게도 Pieter의 대표 사업인 RemoteOK는 크게 실망스러웠다. 돈을 낸 사용자인 나를 이렇게까지 완강하게 방해하는 느낌을 주는 제품을 써본 게 언제였는지 기억도 안 난다.
채용 공고를 만들자마자 RemoteOK는 온갖 추가 유료 옵션을 들이민다.

RemoteOK는 QR 코드 생성에 134달러를 포함해 아홉 가지 추가 유료 옵션을 고용주에게 선택하라고 압박한다.
We Work Remotely도 비슷한 추가 판매를 시도하지만 그렇게까지 불쾌하지는 않다. 아마 We Work Remotely는 QR 코드 하나 만드는 데 134달러를 청구하지 않기 때문일 것이다.
RemoteOK 공고에는 지원자 검색을 돕는 태그가 있어서 나는 linux, customer support, flexible schedule 같은 태그를 달았다. 몇 시간 뒤 공고를 다시 보니 RemoteOK가 microsoft windows webdev development 같은 부정확한 태그를 멋대로 추가해 놓은 걸 발견했다. 직무와는 전혀 상관없는 태그들이었다. 내가 추가된 태그를 지웠지만 다음 날 다시 생겨 있었다. 영구적으로 없애는 유일한 방법은 내가 직접 태그를 더 추가하는 것이었다.
사용자의 통제권을 빼앗는 가장 황당한 사례는 RemoteOK의 매직 키워드다. RemoteOK는 “공고를 끝까지 읽었다는 걸 보여주려면 지원 시 [무작위 단어]를 언급해 주세요”라는 문구를 멋대로 추가한다. 이런 문구를 추가한다는 걸 알려주지도 않고, 삭제할 수도 없다.


RemoteOK는 고용주에게는 보이지 않는 추가 지시사항을 지원자에게 주입한다. 이 기능은 끌 수 없다.
나는 이 기능이 정말, 정말, 너무 싫다. 이걸 알았더라면 애초에 RemoteOK에 공고를 올리지도 않았을 것이다.
나는 이런 ‘매직 키워드’ 요구가 지원자를 모욕한다고 생각해서 채용 공고를 낼 때 일부러 그런 걸 넣지 않는다. 내가 돈 주고 산 채용 공고에 RemoteOK가 몰래 이런 문구를 끼워 넣는다니 엄청나게 짜증 난다.
무엇보다 치명적인 건 RemoteOK가 가장 중요한 일을 완전히 실패했다는 점이다. 바로 적격 지원자를 데려오는 일이다. 같은 기간 동안 We Work Remotely에서는 20명의 적격 지원자가 나온 반면, RemoteOK 지원자 중에는 1차 심사를 통과한 사람이 한 명도 없었다.
업데이트 (2022-09-25): 이 글에 대해 Pieter Levels가 내가 언급한 문제들을 개선하겠다고 약속했고, 결제 금액을 흔쾌히 환불해 주었다.
Homerun은 괜찮지만 훌륭하진 않다
지난번 채용 때는 지원자들에게 그냥 이메일로 보내라고 한 뒤, 받은 편지함 라벨로 지원서를 정리했다. 결과는 뒤죽박죽이고 혼란스러웠다.
이번에는 여러 지원자 추적 시스템을 테스트한 끝에 Homerun으로 정착했다.
전체 채용 과정을 Homerun으로 진행해 보니 꽤 만족스러웠다. UI도 깔끔하고 필요한 기능은 다 갖췄다. 전반적으로 꽤 직관적이라 지원서를 체계적으로 처리하기 쉬웠다.


지난번에는 이메일의 받은 편지함 라벨로 지원자를 정리했고(왼쪽), 이번에는 지원서를 칸반 보드로 더 체계적으로 정리할 수 있는 Homerun을 사용했다(오른쪽).
Homerun의 이메일 템플릿 기능이 특히 마음에 들었다. 완전히 찍어낸 듯한 정형화된 메일을 보내는 경우는 거의 없었지만, 다음과 같은 흔한 답변에 기본 틀을 갖추고 있는 게 도움이 됐다:
- Linux 경험이 부족합니다
- 영어 수준이 직무 요건에 미치지 못합니다
- 훌륭한 지원자시니 샘플 질문 단계로 넘어가겠습니다
![Hi [first_name], Thanks for applying for the [job_title] opening at [company_name] and for taking the time to learn more about the company. Unfortunately, I don't think this position would be a good match for your skills. This position requires someone more with more experience writing customer-facing content. Your English is pretty strong, but there were several syntax errors in your application, so I don't think this role would be a good fit. I'm sorry it didn't work out, but I wish you the best of luck in your search.](https://mtlynch.io/retrospectives/2022/09/poor-english-rejection.png)
자주 쓰는 유형별로 이메일 템플릿을 만들어 답변의 출발점으로 활용했다.
Homerun은 월 71달러로, 대부분의 소규모 기업이 부담할 만한 가격이다. 그리고 채용하지 않는 달에는 비용을 내지 않아도 된다는 점에서 과금도 합리적이다. 다른 지원자 추적 플랫폼 대부분은 월 정액을 내지 않으면 데이터를 전부 삭제하지만, Homerun은 채용을 하지 않을 때 무료 플랜으로 낮춰도 모든 데이터가 그대로 보존된다. 무료 플랜에서의 유일한 제한은 다시 유료로 전환하기 전까지는 신규 지원을 받을 수 없다는 점이다.
물론 Homerun에서도 몇 가지 큰 단점을 발견했다:
지원자 필터링이 안 된다
지원자가 워낙 많다 보니 유망한 지원자에게 먼저 연락할 방법이 필요했다. 영어권 국가에 거주하고 Linux에 능숙하다고 자평한 지원자만 추려보고 싶었다. Homerun에는 이 데이터가 있지만 이런 기준으로 필터링하는 기능을 제공하지 않는다. 대기열에서 그런 지원자를 찾는 유일한 방법은 지원서를 하나씩 일일이 검토하는 것뿐이다.
이메일 UX가 별로다
Homerun의 최악의 UI 결정 중 하나는 이메일 기능이다. 다른 지원자 추적 시스템처럼 Homerun도 웹 앱 안에서 지원자에게 이메일을 보낼 수 있게 해준다. 그런데 그걸 모달 창으로 띄운다:

Homerun의 인앱 이메일은 모달 창을 띄워 지원자에게 메일을 쓰는 동안 지원서를 참조할 수 없게 만든다.
모달 창이 지원자가 지원서에 쓴 내용을 완전히 가려버리기 때문에 내 메모나 이력서, 지원서 질문에 대한 답변을 전혀 참조할 수 없다. 고용주가 지원자에게 답장을 쓸 때 당연히 필요한 정보인데, 정말 형편없는 선택이다.
나는 Homerun을 창 두 개에 나란히 띄워 놓고 쓰는 방식으로 우회했다. 그럭저럭 쓸 만은 했지만 Homerun이 브라우저 창 간 동기화가 잘 안 된다. 한 창에서 지원자를 불합격으로 표시하면 다른 창이 혼란을 겪으며 지원자 목록 맨 위부터 다시 로드됐다.
이메일 도달률이 낮다
지원자들에게 샘플 과제를 PDF 링크로 보냈는데, 몇몇 지원자가 메일을 받지 못했다고 했다. Homerun이 발신자 평판이 약한 이메일 서버를 사용해서 링크가 포함된 메일이 스팸 필터에 걸린 게 아닐까 의심된다.
웹 앱이 느리다
Homerun 웹 앱은 짜증 날 정도로 느리다. 최신 데스크톱에 광랜 인터넷을 쓰는데도 대부분의 페이지가 로딩되는 데 2~5초가 걸린다. 어떤 페이지는 10초까지 걸리기도 한다.
다음 채용 때 개선할 점
이번 채용에서 지원자들을 대했던 방식에 만족하지 못한다. 지원 규모에 대비가 되어 있지 않았고, 합리적인 시간 안에 처리할 수 있는 것보다 더 많은 지원을 받으면서 지원자들의 시간을 낭비했다.
다음에 모두의 채용 경험을 개선하기 위해 바꿀 점들은 다음과 같다.
답장은 더 신중하게 보내기
처음 Homerun으로 지원을 처리하기 시작했을 때는 이메일 템플릿에 지나치게 의욕을 냈다. 지난 채용 때는 성의 없는 지원을 보내면 그냥 무시했는데, Homerun에서는 템플릿 덕분에 성의 없는 지원자에게도 쉽게 답장을 보낼 수 있었다.
지원서가 복사해서 붙여 넣은 것처럼 보여서 불합격 처리한다는 내용의 템플릿을 만들었다. 복사-붙여넣기식 지원이 오히려 기회를 잃게 만든다는 피드백이라도 주는 게 좋겠다고 생각했다.
![Hi [first_name], Thanks for applying for the [job_title] opening at TinyPilot. Unfortunately, I've decided not to move forward with your application. I read the answers to the questions you submitted, and it didn't seem like there was anything specific about the company or work that appealed to you, so I don't think this would be a good match. Sorry that it didn't work out, but I wish you luck in your job search.](https://mtlynch.io/retrospectives/2022/09/low-effort-rejection.png)
복사해 붙여 넣은 답변으로 지원한 지원자에게 보낸 정형화된 답변.
이 전략은 별로 효과가 없었다.
답장을 보내온 지원자 중 약 50%는 예의 바르게 피드백에 감사해 해서 좋았다. 약 20%는 무례하거나 적대적이라 좋지 않았다.
나머지 30%는 마침내 실제 사람이 자신과 소통하고 있고, 지원서가 허공으로 사라진 게 아니라는 걸 깨달았다. 그제야 회사를 조사하기 시작하더니 사실 TinyPilot에 관심이 있다고 말했다. 그 때문에 난처해졌다. 그들을 재고려하면 처음부터 성의 있게 답변을 쓴 지원자들에게 불공평한 느낌이 들었다. 그들은 모두에게 똑같은 내용을 복사해 붙여 넣지 않았으니까.
성의 없는 지원에 하루 이틀 시간을 허비한 뒤, 그 부류의 지원자에게는 아예 답장을 보내지 않기로 했다. 다음 두 조건을 모두 만족할 때만 답장하는 것으로 전략을 바꿨다:
- 지원자가 기본적인 수준에서 해당 직무에 적합한 경우
- 예: 직무 요건 중 하나가 “Linux에 익숙함”인데 지원자가 Linux를 써본 적이 없다고 하면 답장하지 않는다.
- 지원자가 지원서에 최소 몇 분이라도 투자한 경우
- 예: 답변이 명백히 복사-붙여넣기이거나 대충 휘갈긴 수준이면 답장하지 않는다.
이 새로운 전략은 적대적인 반응을 없애는 뜻밖의 부수 효과도 있었다. 성의 있는 답변을 쓴 지원자들을 탈락시키며 이유를 설명하면 항상 답장이 오진 않았지만, 답장이 올 때는 전문적이고 피드백에 감사해 했다.
초기 스크리닝을 도와줄 사람 고용하기
이력서와 지원서를 검토하는 데는 수십 시간이 걸리지만, 똑똑한 사람이라면 금방 가르쳐서 대신 맡길 수 있는 일이다.
멍청한 자동 필터나 머신러닝을 쓰고 싶진 않다. 지원자에게 ‘실제 사람이 지원서를 검토하고 있다’고 정직하게 말할 수 있는 게 내겐 중요하다. 다만 그 사람이 꼭 나일 필요는 없다.
고객 지원에 이중화 구축하기
지원자 답변을 늦춘 요인 중 하나는 평소 고객 지원을 담당하는 TinyPilot 직원이 일주일 동안 병가를 냈다는 점이다. 고객 지원은 지원 엔지니어가 대신할 수 있으니 이중화가 되어 있는 것처럼 느껴진다. 그마저 안 되면 내가 마지막 보루다. 하지만 평소 고객 지원을 맡는 직원이 자리를 비우자 우리 고객 지원 프로세스가 얼마나 취약한지 깨달았다.
내가 직접 고객 지원을 하면 얼마나 일이 많은지 잊고 있었다. 특히 800명의 지원자와 소통해야 하는 부담이 더해지니 더했다. 게다가 며칠 휴가를 가 있는 동안에는 TinyPilot 지원 엔지니어 한 명만 지원을 맡게 됐다. 그는 Shopify나 현지 물류 센터에 접근 권한이 없어 제공할 수 있는 지원에 한계가 있었기 때문에 상황이 불안정했다.
지원 엔지니어링 팀이 안정되면 고객 지원을 맡을 인원을 한 명 더 추가할 생각이다. 그러면 누군가 아프거나 휴가를 가도 업무가 원활하게 돌아갈 것이다.
지원자가 일정 수를 넘으면 지원 폼을 대기자 명단으로 전환하기
채용을 도와줄 사람을 구하더라도 합리적인 시간 안에 검토할 수 있는 지원서 수에는 한계가 있다. 400명 같은 일정 한도를 넘으면 지원 폼을 대기자 명단으로 전환해야 한다. 그래야 지원자에게 굳이 왜 우리와 일하고 싶은지 설명하게 하면서 시간을 낭비시키지 않을 수 있다.
얼마나 시간이 많이 드는지 잊지 않기
전에 채용 공고를 통해 사람을 뽑은 적이 있지만, 다시 해보기 전까지 그 과정이 얼마나 시간이 많이 드는지 잊고 있었다.
내 머릿속의 시간 투입은 이렇게 그려진다:

내 상상 속 채용 과정
첫날에 지원자가 한꺼번에 몰려든다. 지원자들을 추려 한 명으로 좁힌 뒤, 마침내 그 사람을 채용하면 그가 내가 하던 일을 맡아 하고 모든 게 좋아진다.
현실의 시간 투입은 더 이런 느낌이다:

현실의 채용 과정
지원자가 한 번에 몰려든 뒤, 내가 그들을 처리하는 동안에도 지원은 계속 들어온다. 그리고 마침내 한 명을 채용하고 나면, 뽑지 않은 모든 사람에게 후속 연락을 하면서 동시에 신규 채용자를 온보딩하고 교육해야 한다.
그러니 다음에 채용할 때는 이 아름답고 유익한 그래프를 다시 보며, 이 일을 해내려면 충분한 여유가 필요하다는 걸 스스로에게 상기시켜야겠다.
마무리
무엇을 해냈나?
- 두 번째 TinyPilot 지원 엔지니어 채용
- 차세대 업데이트 시스템을 TinyPilot Community 버전에 배포
- 부트스트래퍼를 위한 지원자 추적 시스템에 대한 노트 공개
- PicoShare의 메모리 문제 디버깅에 대한 노트 공개
교훈
- 채용은 언제나 예상보다 어렵다
다음 달 목표
- TinyPilot Pro를 차세대 업데이트 시스템으로 이전하기.
- TinyPilot Voyager를 리뷰용으로 유튜버 또는 블로거 두 명에게 보내기
- 새로운 케이스 제조 옵션 탐색하기
글을 무작위로 읽기
댓글
로그인하고 댓글 남기기