---
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. 강점 평가

- [ ] 정량적 성과가 포함된 항목 수 (성과 있는 항목 / 전체 항목)
- [ ] 경력 궤적 (책임 범위, 직급, 팀 규모의 성장)
- [ ] 기술 스택 깊이 (단순 나열 vs 활용 맥락 제시)
- [ ] 면접에서 확인하고 싶은 포인트

#### 5-4. 이력서 품질 평가

**A. 서술 구조 평가 (사고 과정)**

각 프로젝트/경험 항목을 분석한다:
- [문제-해결-성과] 3단 구조 충족 여부
  - 문제(Problem): 왜 이 작업을 했는지 맥락이 있는가?
  - 해결(Solution): 어떤 기술적 판단을 했는지 드러나는가?
  - 성과(Result): 정량적 결과가 있는가?
- "~을 구현했다" 식의 기능 나열만 있는 항목은 개선 대상으로 표시

**B. 성과 수치화 밀도**

- 정량적 수치가 포함된 항목 수 / 전체 항목 수
  - 80% 이상: 우수
  - 50~79%: 보통
  - 50% 미만: 개선 필요
- 수치의 품질: [구체적 Before/After + 맥락] > [수치만] > [모호한 서술]
- 작은 수치도 의미 있음 (에러 0건 달성, 테스트 커버리지 80% 등)

**C. 가독성 평가**

- 첫 3줄(요약/Summary)만 읽었을 때 핵심 역량이 파악되는가?
- 두괄식 서술인가? (결론 → 근거 순서)
- 임팩트 있는 항목이 상단에 배치되어 있는가?
- 불필요하게 긴 문장이나 반복이 있는가?

**D. 면접 유도성 평가**

- 면접관이 "이것 좀 더 자세히 듣고 싶다"고 느낄 만한 항목이 있는가?
- 기술 선택의 이유, 트레이드오프, 팀 기여가 드러나는가?
- 학습 흔적(블로그, 오픈소스, 기술 발표 등)이 첨부되어 있는가?

### Step 6: 결과 출력

```markdown
# 이력서 리뷰 결과

## 종합 판정: [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 수정 제안은 반드시 위 [문제-해결-성과] 구조로 변환하는 예시를 포함한다

<!--
Original skill: techeer-sv/Career-Skills/skills/hiring-sim-resume-review/SKILL.md
Source: https://github.com/techeer-sv/Career-Skills/blob/9a5d83c5d5176cf0f0918a543f443dbac2f67150/skills/hiring-sim-resume-review/SKILL.md
License: MIT

MIT License

Copyright (c) 2025 techeer-sv

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

-->
