n8n 이력서 자동 심사 만들기 — Mistral OCR와 Gemini로 CV 스크리닝 자동화
이 글과 연결된 글 보기
드래그로 이동 · 휠/두 손가락으로 확대 · 방향키로 글 선택 · 0으로 맞춤. 실선: 본문 링크, 점선: 시리즈·주제의 대표 연결.표시된 글 7편 목록
n8n.io 공식 템플릿 마켓플레이스에 공개된 이력서 자동 심사 워크플로우를 가져오면, 지원자가 웹 폼에 이력서를 올리는 순간 Mistral OCR가 텍스트를 뽑고 Gemini가 채용 요건과 대조해 점수와 설명을 매겨 구글시트 한 줄로 정리되는 채용 심사 파이프라인을 약 15분 만에 만들 수 있습니다.
이 템플릿 하나로 보여줄 수 있는 것
면접에서 요즘 자주 나오는 질문 중 하나가 "AI로 문서를 분석해본 적 있나요?"입니다. 이 템플릿은 그 질문에 실제 사례로 답할 수 있게 해주는데, 특이하게도 분석 대상 문서가 바로 이력서입니다. "지원자가 웹 폼에 이력서를 올리면 OCR로 텍스트를 뽑고, AI가 채용 요건과 대조해 점수와 설명을 매겨 구글시트에 정리하는 채용 심사 파이프라인을 n8n으로 구성해봤습니다"라고 말할 수 있습니다.
문장 하나지만 안에 들어간 역량은 세 가지입니다.
- 멀티모달 문서 처리 — PDF라는 비정형 파일을 OCR로 텍스트로 바꾸고, 그 텍스트를 다시 AI 분석의 입력으로 넘기는 파이프라인을 구성한 경험
- AI 채점과 구조화 출력 — LLM에게 "채점하고 이유를 설명하라"는 역할을 주고, 그 결과를 JSON Output Parser로 표에 바로 들어갈 수 있는 형태로 강제한 경험
- 실패에 강한 로깅 설계 — 뒤에 오는 AI 분석 단계가 실패하더라도 지원자 이름과 이메일은 먼저 기록해, 지원 이력 자체는 잃지 않게 만든 경험
그런데 이 템플릿은 포트폴리오용 역량 나열 이상의 것을 보여줍니다. 지금 이력서를 넣고 있는 취준생 입장에서 보면, 이 워크플로우는 "내 이력서가 이렇게 심사될 수도 있다"는 걸 코드 레벨로 확인할 수 있는 거울이기도 합니다. 뒤에서 볼 채점 단계에서 AI는 이력서 텍스트를 채용 공고의 요건 문단과 그대로 대조해 점수를 매깁니다. 즉 이 프롬프트를 직접 만들어보면, 채용 공고에 적힌 표현과 이력서에 적힌 표현이 얼마나 겹치느냐가 실제로 점수에 영향을 준다는 사실을 눈으로 확인하게 됩니다. 채용 담당자 시선으로 이 템플릿을 한 번 만들어보는 경험이, 지원자 시선에서 자기 이력서를 다시 읽는 데도 그대로 도움이 됩니다.
이 템플릿은 무엇인가
이 워크플로우는 데이터팝콘이 만든 게 아닙니다. n8n 공식 템플릿 마켓플레이스(n8n.io/workflows)에 Automate CV screening with AI candidate analysis라는 이름으로 공개된 템플릿이고, 제작자는 Lucas Peyrin입니다. 카테고리는 HR과 Multimodal AI로 등록돼 있습니다.
공식 설명에 따르면 이 템플릿은 웹 폼으로 채용 지원서를 받아, AI가 지원자의 이력서를 채용 공고와 대조해 분석하고 그 결과를 구글시트에 정리하는 채용 파이프라인 초기 단계를 자동화한 CV 스캐너입니다.
n8n 설치나 기본 노드 조작법은 n8n으로 반복업무 자동화 포트폴리오 만들기에 정리돼 있으니, 이 글은 이 템플릿의 구조 자체에 집중합니다.
구조 — Trigger / Task / Target
공식 문서의 "How it works"와 단계별 설명을 데이터팝콘 방식인 Trigger/Task/Target 세 칸으로 정리하면 이렇습니다. 지원서가 들어올 때마다 도는 본 흐름과 별개로, 스프레드시트를 처음 한 번 만들어두는 수동 흐름이 하나 더 있습니다.
- Trigger —
Form Trigger가 지원서 제출 순간 본 흐름을 시작합니다.Manual Trigger(Start Here)는 최초 설정 때 딱 한 번 눌러CVs스프레드시트를 만드는 용도로 따로 있습니다. - Task — 제출 즉시 이름과 이메일을 구글시트에 먼저 기록해 지원 이력을 남기고, 업로드된 이력서 PDF는
Extract CV Text노드(Mistral OCR)로 텍스트화됩니다. 이 텍스트는AI Qualification노드로 들어가는데, 여기 연결된Gemini 2.5 Flash Lite가 채용 요건과 대조해 점수와 설명을 만들고,JSON Output Parser가 그 결과를 정해진 필드로 구조화합니다. - Target — 최종 결과는 점수와 설명이 채워진 지원자의 구글시트 행입니다. 초기 로그와 최종 분석이 같은 지원자 레코드로 합쳐지는 구조입니다.
마켓플레이스 카드 미리보기에는 Google Sheets, Sticky Note, Manual Trigger 등 일부 노드명과 "+5 more" 표시만 나옵니다. 위 구조는 카드 미리보기가 아니라 공식 How it works·Setup 문서에 실제로 이름이 언급된 노드만으로 정리한 것입니다.
만들기
공식 Setup 단계는 총 6개이고, 공식 문서 기준 소요 시간은 약 15분입니다. 순서는 그대로 두고 각 단계에서 무엇을 확인해야 하는지를 풀어씁니다.
1. Mistral API 키 발급
console.mistral.ai/api-keys에서 API 키를 발급받아 Extract CV Text 노드의 크리덴셜에 붙여넣습니다. 이 노드가 이력서 PDF를 텍스트로 바꾸는 OCR을 담당합니다.
2. Google AI API 키 발급
aistudio.google.com/app/apikey에서 API 키를 발급받아 Gemini 2.5 Flash Lite 노드의 크리덴셜에 붙여넣습니다. 이 모델이 이력서를 채점하는 역할을 합니다.
3. 구글 계정 크리덴셜 연결
Create 'CVs' Spreadsheet 노드에서 구글 계정 크리덴셜을 새로 만들고, 같은 크리덴셜을 Log Candidate Submission과 Add CV Analysis 두 노드에도 재사용합니다. 세 노드가 모두 같은 구글시트를 다루기 때문에 크리덴셜 하나를 공유하면 됩니다.
4. CVs 스프레드시트 자동 생성
Start Here 노드의 재생 아이콘을 누르면 올바른 칼럼 구성을 갖춘 CVs 구글시트가 자동으로 만들어집니다. 시트 구조를 손으로 설계할 필요가 없다는 뜻입니다.
5. 채용 공고 내용 채워넣기
AI Qualification 노드의 Text 파라미터 안 job_requirements 항목에 들어 있는 예시 채용 공고를 실제 채용 공고로 바꿔 넣습니다. 공식 문서는 이 항목을 더 자세히 적을수록 채점 품질이 올라간다고 설명합니다. AI가 이 텍스트를 기준으로 이력서를 대조하기 때문입니다.
6. 활성화하고 테스트 제출
워크플로우를 Active로 켠 뒤 Application Form 노드의 "Open Form URL"을 열어 테스트 지원서를 한 건 제출해봅니다. 구글시트에 새 행이 뜨는지 확인하면 설정이 끝난 겁니다.
주의할 점 · 제약
공식 문서와 노드 구조에서 확인되는 제약을 정리하면 다섯 가지입니다.
- 서로 다른 세 곳의 크리덴셜이 필요합니다. Mistral, Google AI Studio(Gemini), 구글 계정(시트)까지 세 서비스를 각각 준비해야 해서, 하나의 서비스로 끝나는 템플릿보다 초기 설정 시간이 깁니다.
- 지원 폼은 공개 웹 폼입니다. 이름·이메일·이력서 PDF 같은 지원자 개인정보가 별도 로그인 없이 시트로 들어오는 구조라서, 실제 채용에 쓴다면 시트 접근 권한과 개인정보 보관 정책을 별도로 챙겨야 합니다.
- 초기 로깅과 AI 분석이 분리돼 있습니다. OCR이나 Gemini 호출이 중간에 실패하면 이름·이메일만 있고 점수·설명 칸은 비어 있는 행이 시트에 남을 수 있습니다. 공식 문서는 이를 "지원자를 놓치지 않는" 설계로 설명하지만, 운영 중이라면 빈 칸이 있는 행을 주기적으로 확인하는 절차가 따로 필요합니다.
- 채점 품질이 프롬프트에 넣은 채용 공고의 상세도에 좌우됩니다. 공식 문서도 "더 상세할수록 채점이 좋아진다"고 명시합니다. 짧은 한두 줄짜리 공고만 넣으면 점수의 변별력이 떨어질 수 있습니다.
- 전체 노드 구성이 공식 문서에 다 공개돼 있지는 않습니다. How it works와 Setup 단계에 등장하는 노드 이름 외의 세부 파라미터(예: 정확한 프롬프트 전문, 시트 칼럼 전체 목록)는 공식 페이지에 나오지 않아 이 글에도 담지 않았습니다.
포트폴리오·면접 포인트
포트폴리오에는 지원 폼에 테스트 지원서를 제출하는 장면과, 구글시트에 점수와 설명이 채워진 행이 뜨는 장면 두 개를 캡처해두면 됩니다. 여기에 실제 채용 공고 하나를 job_requirements에 넣고 서로 다른 이력서 두세 개를 각각 제출해 점수 차이가 나는 걸 함께 보여주면, 템플릿을 그대로 가져다 쓴 것 이상의 이해를 보여줄 수 있습니다.
면접에서는 "AI가 이력서를 채점한다면 편향은 어떻게 다루나요?" 같은 질문이 따라올 수 있습니다. 이 템플릿을 직접 만들어봤다면 "점수는 프롬프트에 넣은 채용 요건 텍스트와 이력서 텍스트를 대조해 만들어지고, 그 요건을 얼마나 구체적으로 쓰느냐가 채점 품질을 좌우한다는 걸 노드 설정에서 확인했다"고 구체적으로 답할 수 있습니다. 이 구조를 이해했다면 취준생 입장에서 "내 이력서도 이런 방식으로 스캔될 수 있으니, 채용 공고의 핵심 요건 표현을 이력서에도 그대로 반영해야 한다"는 실전 조언까지 함께 말할 수 있습니다. 노드 이름을 나열하는 데 그치지 않고 채점 구조가 지원자에게 어떤 의미인지까지 설명할 수 있으면, 다른 지원자와 구분됩니다.
다음 액션
다음 편에서는 같은 마켓플레이스에 공개된 인보이스 PDF 파싱 템플릿을 다룹니다. LlamaParse로 문서를 구조화하고 Airtable에 헤더와 라인아이템을 관계형으로 나눠 저장하는 구조인데, 이번 편에서 본 "문서를 텍스트로 뽑고 AI로 구조화해 표에 저장하는" 패턴을 인보이스라는 다른 문서 유형에 한 번 더 적용해보는 셈입니다.
