| name | hiring-sim-resume-review |
| description | ATS 시뮬레이션과 리크루터 스크리닝을 거쳐 이력서를 실전 기준으로 평가합니다. |
| user-invocable | true |
이력서 리뷰 (Hiring Resume Review)
실제 기업의 채용 프로세스를 시뮬레이션합니다: ATS 자동 스크리닝 → 리크루터 검토 → 상세 피드백.
판정 기준 (인라인)
[PASS] — ATS 점수 70+ AND 리크루터 스크리닝 통과
[REJECT] — ATS 점수 70 미만 OR 필수 요건 미충족 OR 리크루터 Red Flag
실행 절차
Step 0: 평가 프레임워크 로딩 (선택)
다음 파일을 읽는다 (프로젝트 내 또는 ~/.codex/skills/ 경로):
hiring-common/evaluation-framework.md — 상세 평가 기준
- 읽을 수 없어도 위의 인라인 판정 기준으로 진행 가능
Step 1: 입력 수집
이력서 (필수):
- "리뷰할 이력서 파일 경로를 알려주세요. (PDF, Markdown, TXT)"
- 미제공 시: "이력서는 필수입니다. 파일 경로를 알려주세요." 후 대기
- DOCX 제공 시: "DOCX는 직접 읽을 수 없습니다. PDF로 변환 후 다시 제공해주세요."
채용 공고 (강력 권장):
- "채용 공고가 있으면 내용을 붙여넣어주세요. URL도 가능합니다."
- URL 제공 시: 웹 페이지 읽기로 시도. 실패하면 "내용을 직접 붙여넣어주세요."
- 미제공 시: "공고 없이 일반적 기준으로 평가합니다. 공고가 있으면 훨씬 정확한 피드백이 가능합니다."
Step 2: 이력서 파싱
Read 도구로 이력서를 읽는다.
- PDF의 경우 pages 파라미터 활용 (10페이지 초과 시 분할)
- 읽기 실패 시: "파일을 읽을 수 없습니다. 다른 형식(PDF, TXT)으로 제공해주세요."
이력서에서 다음을 추출한다:
- 경력 요약 / 자기소개
- 경력 사항 (회사명, 직무, 기간, 성과)
- 프로젝트/경험 목록
- 기술 스택
- 학력/자격증
- 경력 수준 추정 (주니어/미드/시니어)
Step 3: 채용 공고 분석 (제공 시)
공고에서 다음을 추출한다:
- 회사명, 포지션명, 경력 요건
- 필수 자격 요건 (Must-have) — 미충족 시 즉시 탈락
- 우대 자격 요건 (Nice-to-have) — 차별화 요소
- 기술 스택 요구사항
- 업무 내용 / 역할
Step 4: ATS 시뮬레이션
채용 공고와 이력서를 매칭하여 ATS 점수(0~100)를 산출한다.
회사 유형에 따라 Hard Filter 적용 범위와 경력 유연성이 달라진다.
4-0. 회사 유형 판별
공고에서 회사 유형을 판별한다:
- 전통 대기업 (삼성, LG, 현대, SK 등): "공채", "GSAT", "TOEIC", "인적성" 키워드
- 유니콘/스케일업 (토스, 카카오, 당근 등): "블라인드 채용", "연차 무관", "자유 양식"
- 스타트업 (Seed~Series B): "소규모 팀", "시리즈 A/B", "대표 면접", "빠른 성장"
- 글로벌 빅테크 (Google, Amazon, Meta 등): 회사명으로 판별
- 불분명 시: 유니콘/스케일업 기준을 기본 적용 (한국 IT 채용 공고의 다수)
파이프라인에서 실행 시 company-context.md에 회사 유형이 이미 기록되어 있으면 그것을 사용한다.
4-1. Hard Filter (즉시 탈락 체크)
필수 자격 요건을 하나씩 확인한다:
- 각 요건에 대해 O(충족) / X(미충족) / △(부분 충족) 판정
Hard Filter 적용 범위는 회사 유형에 따라 다르다:
전통 대기업:
→ 필수 자격 요건 전체를 Hard Filter로 적용
→ X가 1개라도 있으면 → ATS REJECT
→ 어학 성적 최소 기준 미달 시 → ATS REJECT
유니콘/스케일업:
→ 기술 스택 관련 핵심 필수만 Hard Filter (1~2개)
→ 나머지 필수 요건은 Soft Filter (점수 감점, 즉시 탈락 아님)
→ 학력/자격증은 Hard Filter에서 제외
스타트업:
→ Hard Filter 거의 없음 (기술 스택 핵심 1개 정도)
→ 포트폴리오/프로젝트 경험이 자격 요건을 대체 가능
글로벌 빅테크:
→ 기술 스택 관련만 Hard Filter
→ 학력/자격증 Hard Filter 없음
4-2. 매칭 점수 산출
| 항목 | 비중 | 평가 방법 |
|---|
| 기술 스택 매칭 | 40% | JD 기술 중 이력서에 언급된 비율 |
| 경력 연차 매칭 | 20% | 요구 경력 범위 내 여부 (회사 유형별 유연성 적용) |
| 직무 관련성 | 25% | 이전 직무/프로젝트와 포지션의 연관도 |
| 학력/자격증 | 15% | JD 요구 학력/자격 충족 여부 |
경력 연차 매칭 유연성:
공고의 요구 경력과 실제 경력 사이 갭을 회사 유형별로 다르게 평가한다:
| 공고 요구 | 전통 대기업 허용 | 유니콘 허용 | 스타트업 허용 |
|---|
| 3년 | 2~4년 | 1~4년 | 0~4년 |
| 5년 | 4~6년 | 3~6년 | 2~6년 |
| 7년+ | 6~8년 | 5~8년 | 4~8년 |
허용 범위 내 → 경력 점수 100%
경계 (±1년) → 경력 점수 70%
범위 초과 → 경력 점수 30% (전통 대기업은 0%)
핵심: 공고의 경력 요건은 "희망 사항"에 가깝다. 특히 유니콘/스타트업에서는
3년 차 공고에 1년 차가 지원해서 붙는 경우가 흔하다.
연차 부족 자체가 탈락 사유가 되지 않도록, 실력 증명 여부를 함께 고려한다.
ATS 점수 = Hard Filter 통과 시에만 산출
70점 이상 → ATS 통과
70점 미만 → ATS REJECT (개선 포인트와 함께)
Step 5: 리크루터 스크리닝
ATS 통과 이력서에 대해 실제 리크루터 관점에서 검토한다.
5-1. 6초 스캔 (첫인상)
- 현재/최근 직무가 포지션과 관련 있는가?
- 이력서 구조와 가독성이 좋은가?
- 눈에 띄는 Red Flag가 있는가?
5-2. Red Flag 체크
| Red Flag | 기준 | 전통 대기업 | 유니콘/스타트업 |
|---|
| 잦은 이직 | 3년 내 3회 이상 이직 (설명 없음) | REJECT | 주의 (스타트업은 이직 빈도가 높은 편) |
| 경력 공백 | 6개월 이상 공백 (설명 없음) | 주의 | 주의 (단독 REJECT 아님) |
| 경력/직급 불일치 | 시니어 포지션에 1~2년 경력 | REJECT | REJECT (유형 무관) |
| 이력서 품질 | 오탈자 다수, 형식 혼란 | REJECT | 주의 |
5-3. 강점 평가
5-4. 이력서 품질 평가
A. 서술 구조 평가 (사고 과정)
각 프로젝트/경험 항목을 분석한다:
- [문제-해결-성과] 3단 구조 충족 여부
- 문제(Problem): 왜 이 작업을 했는지 맥락이 있는가?
- 해결(Solution): 어떤 기술적 판단을 했는지 드러나는가?
- 성과(Result): 정량적 결과가 있는가?
- "~을 구현했다" 식의 기능 나열만 있는 항목은 개선 대상으로 표시
B. 성과 수치화 밀도
- 정량적 수치가 포함된 항목 수 / 전체 항목 수
- 80% 이상: 우수
- 50~79%: 보통
- 50% 미만: 개선 필요
- 수치의 품질: [구체적 Before/After + 맥락] > [수치만] > [모호한 서술]
- 작은 수치도 의미 있음 (에러 0건 달성, 테스트 커버리지 80% 등)
C. 가독성 평가
- 첫 3줄(요약/Summary)만 읽었을 때 핵심 역량이 파악되는가?
- 두괄식 서술인가? (결론 → 근거 순서)
- 임팩트 있는 항목이 상단에 배치되어 있는가?
- 불필요하게 긴 문장이나 반복이 있는가?
D. 면접 유도성 평가
- 면접관이 "이것 좀 더 자세히 듣고 싶다"고 느낄 만한 항목이 있는가?
- 기술 선택의 이유, 트레이드오프, 팀 기여가 드러나는가?
- 학습 흔적(블로그, 오픈소스, 기술 발표 등)이 첨부되어 있는가?
Step 6: 결과 출력
# 이력서 리뷰 결과
## 종합 판정: [PASS / REJECT]
경력 수준 기준: [주니어/미드/시니어]
---
### ATS 시뮬레이션 결과
**ATS 점수: [점수]/100 — [통과/탈락]**
#### 필수 자격 요건 체크
| 요건 | 판정 | 근거 |
|------|------|------|
| [요건] | O/X/△ | "[이력서 인용]" |
#### 매칭 점수 상세
| 항목 | 점수 | 상세 |
|------|------|------|
| 기술 스택 매칭 | [X]/40 | 매칭: [목록] / 누락: [목록] |
| 경력 연차 매칭 | [X]/20 | 요구: [N년] / 실제: [N년] |
| 직무 관련성 | [X]/25 | [분석] |
| 학력/자격증 | [X]/15 | [분석] |
#### ATS 최적화 팁
- [누락 키워드 추가 제안]
- [형식 개선 제안]
---
### 리크루터 스크리닝 결과 (ATS 통과 시)
#### Red Flag
- [발견된 Red Flag과 설명]
#### 경력 궤적 분석
[경력 성장/정체/하락 패턴 분석]
#### 정량적 성과 밀도
- 성과 포함 항목: [X]/[전체] ([비율]%)
- 성과 품질: [구체적 수치+맥락 / 수치만 / 모호한 서술]
---
### 강점
- [강점]: "[이력서 인용]"
### 개선 필요 사항
- [개선점]: [구체적 수정 방법]
---
### 이력서 품질 평가
#### 서술 구조 (사고 과정)
| 항목 | 구조 | 분석 |
|------|------|------|
| [프로젝트/경험] | ✅ 문제-해결-성과 / ⚠️ 부분적 / ❌ 기능 나열 | [상세 분석] |
**서술 구조 점수: [X]/[전체] 항목이 [문제-해결-성과] 구조 충족**
#### 성과 수치화
- 수치 포함 항목: [X]/[전체] ([비율]%) — [우수/보통/개선 필요]
- 수치 품질: [구체적 Before/After + 맥락 / 수치만 / 모호]
#### 가독성
- 첫인상 (3줄 스캔): [핵심 역량 파악 가능/불가]
- 배치 전략: [임팩트 순 / 시간순 / 혼재]
- 문장 간결성: [간결 / 개선 필요]
#### 면접 유도성
- 면접관 호기심 유발 항목: [목록]
- 기술 선택 이유 서술: [있음/없음]
- 학습 흔적: [블로그/GitHub/오픈소스/발표 — 있음/없음]
---
### 이력서 수정 제안 (Before/After)
[항목별 Before/After 수정 예시. [문제-해결-성과] 구조로 변환하는 예시를 반드시 포함한다]
주의사항
- 개인 정보(연락처, 주소)는 평가하지 않는다
- 학력 자체를 평가하지 않는다 (JD 요구 학력 충족 여부만 확인)
- 추측하지 않는다. 확인 불가 항목은 "확인 불가"로 표기
- ATS REJECT여도 구체적 개선 포인트를 반드시 제공한다
- 공고 없이 평가 시 ATS 시뮬레이션은 생략하고 리크루터 스크리닝만 수행
- 이력서 품질 평가 시 "기능 나열"과 "사고 과정 서술"의 차이를 명확히 구분한다
- ❌ "Redis를 활용한 중복 요청 제거 기능 구현"
- ✅ "동일 클라이언트의 반복 요청으로 데이터 정합성 문제 발생 → Redis TTL 기반 멱등성 키로 중복 차단 → 정합성 훼손 0건 달성"
- Before/After 수정 제안은 반드시 위 [문제-해결-성과] 구조로 변환하는 예시를 포함한다