2,200번의 지원 끝에 얻은 두 번의 인터뷰 경험
요약
이 글은 지원 과정에서 겪었던 어려움을 바탕으로, ATS(Applicant Tracking Systems)에 최적화된 이력서 작성 도구 'Adapt to Success'를 개발한 경험을 공유합니다. 단순히 AI 모델 사용법을 넘어, 채용 공고와 CV 간의 사실 기반 비교 및 구조화 원칙 등 주변 규칙 파악이 핵심임을 강조합니다.
핵심 포인트
- ATS 최적화를 위해 이력서 디자인보다 구조가 중요함.
- AI는 '무엇을 지어내지 말아야 하는지'에 대한 제약 조건 설정이 필수.
- 도구 개발 시 복잡한 아키텍처보다 단순하고 이해하기 쉬운 구성을 선택하는 것이 가치 있음.
2022년에 저는 2,200개가 넘는 직무에 지원하는 데 약 1년을 보냈습니다.
그 결과, 두 번의 면접 기회를 얻었습니다.
단지 두 번이었습니다.
시간이 지나면서 저는 모든 것에 대해 의문을 갖기 시작했습니다. 제가 너무 높은 목표를 설정한 걸까요? 제 이력서가 형편없는 건 아닐까요? 아니면 저 자신에게 문제가 있는 걸까요?
당시에는 대부분의 이력서가 사람이 보기 전에 소프트웨어에 의해 검토된다는 것을 알지 못했습니다. Applicant tracking systems (ATS)는 이름, 연락처 세부 정보, 직무명, 날짜 및 기술과 같은 정보를 이력서에서 추출합니다.
저는 제 이력서를 보기 좋게 디자인하는 데 집중했습니다. 모든 것이 세련되게 보이도록 배치되었고, 소프트웨어가 이를 읽는 데 어려움을 겪을 수도 있다는 생각은 전혀 하지 못했습니다. 저는 심지어 applicant tracking systems가 존재한다는 사실조차 몰랐습니다.
제가 멀티미디어 디자인을 공부하기 시작했을 때 비로소 ATS에 대해 알게 되었습니다. 더 많이 배울수록, 제가 겪었던 일을 다른 사람들이 피할 수 있도록 도울 무언가를 만들고 싶다는 열망이 커졌습니다.
그렇게 저는 Adapt to Success를 만들게 되었습니다.
기능 설명
PDF, DOCX 또는 TXT 파일로 이력서를 업로드하고, 선택적으로 채용 공고를 붙여넣으세요. 약 1분 후에는 최적화된 이력서와 원본을 페이지별로 비교할 수 있습니다.
결과가 마음에 들면 한 번 결제하고 Word 파일로 다운로드하세요. 그렇지 않다면 그냥 창을 닫기만 하면 됩니다. 계정 생성도, 구독도 필요 없으며, 이력서는 저장되지 않습니다.
의도적으로 지루한 스택
프레임워크나 번들러는 사용하지 않았습니다. 순수한 HTML 페이지와 약간의 vanilla JavaScript, CSS를 위한 Tailwind, 그리고 일반 공유 호스팅에 PHP만 사용했습니다. 결제 처리는 Stripe가 담당합니다.
저는 모든 부분을 이해하고 파일을 업로드하는 방식으로 배포할 수 있기를 바라며 간단한 구성을 선택했습니다. 1인 프로젝트에게는 세련된 아키텍처를 갖는 것보다 이것이 더 가치 있었습니다.
어려운 부분은 AI가 아니었다
이 도구는 언어 모델(language model)을 사용하여 이력서를 최적화하지만, 진정한 작업은 그 주변의 규칙들을 파악하는 것이었습니다.
일반적인 챗봇에게 채용 공고에 맞춰 이력서를 작성해 달라고 요청하면, 실제로 가지고 있지 않은 기술이나 키워드를 추가할 수도 있습니다. 이는 본인 이름으로 제출할 결과물이라는 점에서 심각한 문제입니다.
대부분의 프롬프트는 모델이 무엇을 해서는 안 되는지에 관한 것입니다. CV에 이미 없는 내용을 지어내거나(invent), 추론하거나(infer) 과장해서는 안 됩니다. 또한, 직무 공고(job ad)의 문구를 사용하는 경우에도 CV가 동일한 사실을 뒷받침할 때만 사용해야 합니다. 그리고 단순히 재작성하기 위해서 정보를 다시 쓰는 것이 아니라, 정보를 선택하고 순서대로 배열하며 구조화하는 데 초점을 맞춰야 합니다.
CV는 원래 언어를 유지합니다. 영어 직무 공고와 독일어 CV를 나란히 붙여넣어도 결과물은 여전히 독일어로 나옵니다.
서버 없이 ‘이전 모습’ 보여주기
사용자들이 자신의 CV와 결과를 비교할 수 있도록, 원본 파일이 브라우저에 바로 표시됩니다. pdf.js가 PDF를 처리하고, docx-preview가 Word 파일을 처리하며, 다른 형식은 A4 용지 위에 일반 텍스트로 나타납니다.
파일을 보여주기 위해서 어딘가로 전송할 필요가 없습니다. 글꼴과 색상도 그대로 유지됩니다.
Word 파일 직접 만들기
PHP 백엔드가 다운로드 가능한 .docx 자체를 만듭니다. 라이브러리에 의존하지 않고 XML 부분과 zip 컨테이너를 작성합니다.
.docx는 본질적으로 여러 XML 파일로 가득 찬 zip 파일입니다. 필요한 부분에 대한 사양을 읽어보니 놀라울 정도로 관리하기 쉬웠습니다. 직접 해보면서 문서에 무엇이 들어갈지 정확하게 제어할 수 있다는 것도 장점입니다. 즉, 한 개의 열(column), 실제 텍스트, 그리고 표준 제목 같은 레이아웃 파서가 잘 처리할 수 있는 종류의 구조화된 내용들 말이죠.
일곱 개 언어 중 하나는 오른쪽에서 왼쪽으로 쓰기
이 사이트는 영어, 독일어, 스페인어, 프랑스어, 중국어, 힌디어, 아랍어로 이용 가능합니다.
아랍어를 배우면서 많은 것을 알게 되었습니다. 예를 들어, padding-left 대신 padding-inline-start와 같은 논리적인 CSS 속성을 사용해야 했고, 파일 확장자와 같은 라틴 용어가 잘못된 순서로 나타나지 않도록 처리해야 했습니다.
추적 없음(No tracking)
분석 스크립트나 트래킹 픽셀이 없습니다. 쿠키 없이 서버에서 퍼널 단계(funnel steps)를 계산하여, 사람들이 어디서 이탈하는지에 대한 대략적인 아이디어만 얻을 뿐 누가 그런지는 알 수 없습니다.
CV를 다루는 도구로서 이것이 유일하게 정직한 선택이라고 느꼈습니다.
2022년의 나에게 하고 싶은 말
또 100개의 지원서를 보내기 전에, 소프트웨어가 실제로 당신의 이력서(CV)를 읽을 수 있는지 확인해 보세요. PDF에서 텍스트를 복사하여 일반 텍스트 편집기에 붙여넣어 보세요. 만약 이름, 이메일 또는 직책이 뒤섞이거나 누락된다면, 그것이 바로 파서(parser)가 처리하는 방식과 비슷합니다.
도구가 당신의 이력서를 어떻게 인식하는지 보고 싶다면 ats.rip에서 확인해 보세요.
저는 또한 일반적인 신화보다는 공급업체 자체 문서를 기반으로 이러한 시스템이 실제로 어떻게 작동하는지에 대한 몇 가지 글을 작성했습니다: ats.rip/explained/articles.
빌드(build), 프롬프트 규칙(prompt rules) 또는 구직 활동 자체에 관한 질문에는 기꺼이 답변해 드리겠습니다. 🙏😊
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기