careermate 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/AGENTS.md +13 -10
  2. package/INSTALL.md +16 -15
  3. package/README.md +24 -24
  4. package/THIRD_PARTY_NOTICES.md +2 -3
  5. package/bin/careermate.mjs +8 -1
  6. package/dist/career-os/README.md +12 -6
  7. package/dist/career-os/eop/career-description.md +139 -0
  8. package/dist/career-os/eop/cover-letter.md +10 -5
  9. package/dist/career-os/eop/fit-analysis.md +16 -6
  10. package/dist/career-os/eop/interview-prep.md +209 -21
  11. package/dist/career-os/eop/job-analysis.md +6 -4
  12. package/dist/career-os/eop/profile-extraction.md +5 -4
  13. package/dist/career-os/knowledge/cover-letter.md +5 -4
  14. package/dist/career-os/knowledge/fit-matching.md +8 -8
  15. package/dist/career-os/knowledge/human-writing.md +2 -0
  16. package/dist/career-os/knowledge/interview-behavioral.md +76 -8
  17. package/dist/career-os/knowledge/interview-technical.md +106 -4
  18. package/dist/career-os/knowledge/linkedin-profile.md +1 -1
  19. package/dist/career-os/knowledge/networking-referrals.md +1 -1
  20. package/dist/career-os/knowledge/offer-evaluation-decision.md +10 -10
  21. package/dist/career-os/knowledge/portfolio.md +3 -3
  22. package/dist/career-os/knowledge/verifiers/ats-compat.md +8 -4
  23. package/dist/career-os/knowledge/verifiers/human-voice.md +4 -2
  24. package/dist/career-os/knowledge/verifiers/recency-staleness.md +1 -1
  25. package/dist/career-os/knowledge/verifiers/responsiveness-on-target.md +2 -2
  26. package/dist/career-os/knowledge/verifiers/truthfulness.md +1 -1
  27. package/dist/doctor.mjs +692 -71
  28. package/dist/mcp.mjs +710 -71
  29. package/dist/migrate.mjs +52 -1
  30. package/dist/public/app.js +42 -16
  31. package/dist/public/i18n/en/applications.js +23 -0
  32. package/dist/public/i18n/en/common.js +22 -0
  33. package/dist/public/i18n/en/documents.js +133 -0
  34. package/dist/public/i18n/en/home.js +75 -0
  35. package/dist/public/i18n/en/interview.js +69 -0
  36. package/dist/public/i18n/en/jobs.js +152 -0
  37. package/dist/public/i18n/en/nav.js +18 -0
  38. package/dist/public/i18n/en/profile.js +201 -0
  39. package/dist/public/i18n/en/settings.js +127 -0
  40. package/dist/public/i18n/en/status.js +22 -0
  41. package/dist/public/i18n/en.js +17 -0
  42. package/dist/public/i18n/ko/applications.js +23 -0
  43. package/dist/public/i18n/ko/common.js +22 -0
  44. package/dist/public/i18n/ko/documents.js +133 -0
  45. package/dist/public/i18n/ko/home.js +63 -0
  46. package/dist/public/i18n/ko/interview.js +69 -0
  47. package/dist/public/i18n/ko/jobs.js +152 -0
  48. package/dist/public/i18n/ko/nav.js +18 -0
  49. package/dist/public/i18n/ko/profile.js +201 -0
  50. package/dist/public/i18n/ko/settings.js +127 -0
  51. package/dist/public/i18n/ko/status.js +23 -0
  52. package/dist/public/i18n/ko.js +18 -0
  53. package/dist/public/i18n.js +55 -0
  54. package/dist/public/index.html +1 -0
  55. package/dist/public/lib.js +24 -17
  56. package/dist/public/pages/applications.js +17 -21
  57. package/dist/public/pages/documents.js +153 -107
  58. package/dist/public/pages/home.js +88 -53
  59. package/dist/public/pages/interview.js +105 -51
  60. package/dist/public/pages/jobs.js +330 -106
  61. package/dist/public/pages/profile.js +157 -152
  62. package/dist/public/pages/settings.js +154 -102
  63. package/dist/public/styles.css +28 -1
  64. package/dist/web.mjs +495 -75
  65. package/docs/FAQ.md +23 -3
  66. package/docs/MCP_TOOLS.md +22 -13
  67. package/docs/START_WORKFLOW.md +3 -3
  68. package/docs/SUPPORTED_AI_APPS.md +13 -0
  69. package/docs/WORKFLOWS.md +77 -20
  70. package/docs/career-os/README.md +12 -6
  71. package/docs/career-os/eop/career-description.md +139 -0
  72. package/docs/career-os/eop/cover-letter.md +10 -5
  73. package/docs/career-os/eop/fit-analysis.md +16 -6
  74. package/docs/career-os/eop/interview-prep.md +209 -21
  75. package/docs/career-os/eop/job-analysis.md +6 -4
  76. package/docs/career-os/eop/profile-extraction.md +5 -4
  77. package/docs/career-os/knowledge/cover-letter.md +5 -4
  78. package/docs/career-os/knowledge/fit-matching.md +8 -8
  79. package/docs/career-os/knowledge/human-writing.md +2 -0
  80. package/docs/career-os/knowledge/interview-behavioral.md +76 -8
  81. package/docs/career-os/knowledge/interview-technical.md +106 -4
  82. package/docs/career-os/knowledge/linkedin-profile.md +1 -1
  83. package/docs/career-os/knowledge/networking-referrals.md +1 -1
  84. package/docs/career-os/knowledge/offer-evaluation-decision.md +10 -10
  85. package/docs/career-os/knowledge/portfolio.md +3 -3
  86. package/docs/career-os/knowledge/verifiers/ats-compat.md +8 -4
  87. package/docs/career-os/knowledge/verifiers/human-voice.md +4 -2
  88. package/docs/career-os/knowledge/verifiers/recency-staleness.md +1 -1
  89. package/docs/career-os/knowledge/verifiers/responsiveness-on-target.md +2 -2
  90. package/docs/career-os/knowledge/verifiers/truthfulness.md +1 -1
  91. package/package.json +2 -2
  92. package/packages/core/src/onboarding.ts +2 -1
  93. package/packages/core/src/services.ts +134 -17
  94. package/packages/core/src/summary.ts +59 -1
  95. package/packages/core/src/verify/lint.ts +4 -0
  96. package/packages/db/src/index.ts +1 -0
  97. package/packages/db/src/repositories.ts +0 -0
  98. package/packages/db/src/schema.ts +17 -0
  99. package/packages/exporters/src/index.ts +28 -17
  100. package/packages/knowledge/src/index.ts +55 -9
  101. package/packages/mcp-tools/src/tools.ts +250 -24
  102. package/packages/mcp-tools/src/update.ts +30 -15
  103. package/packages/parsers/src/documents.ts +12 -1
  104. package/packages/prompts/src/humanize.ts +46 -0
  105. package/packages/prompts/src/index.ts +5 -1
  106. package/packages/prompts/src/install.ts +4 -4
  107. package/packages/prompts/src/onboarding.ts +4 -4
  108. package/packages/prompts/src/system.ts +9 -7
  109. package/packages/shared/src/enums.ts +14 -4
  110. package/packages/shared/src/schemas.ts +41 -0
  111. package/packages/workflows/src/definitions.ts +45 -8
  112. package/scripts/init.ts +284 -13
  113. package/dist/site/analytics.js +0 -97
  114. package/dist/site/favicon.svg +0 -1
  115. package/dist/site/fonts/PretendardVariable.woff2 +0 -0
  116. package/dist/site/icon-180.png +0 -0
  117. package/dist/site/icon-512.png +0 -0
  118. package/dist/site/index.html +0 -465
  119. package/dist/site/landing.js +0 -163
  120. package/dist/site/llms-install.txt +0 -218
  121. package/dist/site/robots.txt +0 -4
  122. package/dist/site/sitemap.xml +0 -21
  123. package/dist/site/start.html +0 -356
  124. package/dist/site/style.css +0 -665
  125. package/dist/site/vercel.json +0 -20
@@ -8,20 +8,23 @@
8
8
  - 자소서 = **특정 회사·직무를 겨냥한 설득 문서**(이력서 산문화 아님). 리크루터가 수십~수백 편을 스캔 → 첫 문장에 핵심이 꽂혀야 한다.
9
9
  - 합격 패턴: **두괄식 · 항목별 소제목 · STAR-lite(A~60%) · 활동이 아닌 델타 정량화 · 회사 고유성 · 인재상/직무 키워드 매핑.**
10
10
  - **각 문항엔 숨은 평가 의도** — 문자 그대로가 아니라 의도에 답한다(아래 §2-2).
11
- - 한국은 **AI 텍스트 탐지(GPT킬러·무하유)가 실재하는 게이팅 레이어** → 구체·고유·다양한 문장을 쓰고 슬롭 어휘를 금지하면 품질과 탐지 회피를 동시에 충족한다.
11
+ - **(ko 로케일·한국 지원 시)** 한국은 **AI 텍스트 탐지(GPT킬러·무하유)가 실재하는 게이팅 레이어** → 구체·고유·다양한 문장을 쓰고 슬롭 어휘를 금지하면 품질과 탐지 회피를 동시에 충족한다. (비한국 시장에서는 이 탐지 게이트를 전제하지 말 것.)
12
12
  - 사실·수치·고유명사는 저장 데이터에 앵커. **없는 수치를 발명하지 마라**(면접에서 즉시 무너진다). 근거 없으면 약한 주장을 빼되 숫자를 지어내지 않는다.
13
13
 
14
14
  ## 1. 입력 수집
15
15
  `get_application_context` → profile·대표 resume·경력/프로젝트·대상 job·기존 자소서·선호 문체. 사용자가 파일을 주면 `read_document`. 부족하면 사용자 확인.
16
+ **기존 자소서는 참고용이지 템플릿이 아니다(자기복제 주의).** 전문을 그대로 따라 쓰지 마라 — 특히 직전 자소서 1편을 변주만 하는 실패가 잦다. 합격 신호가 있는 과거 자소서(연결된 지원 status가 `document_passed` 이상 — `recent_applications`에서 `cover_letter_id`로 확인)가 있으면 그 *구조·앵글*을 참고하되 본문은 새로 쓴다. 차별화 절차는 §2-3.
16
17
  판정: **로케일**(ko 문항형 vs en 단일 레터), **문항 유형**(지원동기/성장과정/직무역량/입사후포부/약점·갈등), **글자수 상·하한과 count_mode**(공백포함/제외/byte — 실제 지원 필드로 검증; 미지정 시 공백포함 기본).
18
+ **문항·양식·글자수가 컨텍스트/공고에 없으면 작성 전 사용자에게 요청한다**(문항 텍스트·제출 양식·글자수 — 추측·임의 양식 금지). 끝내 없으면 일반 양식으로 진행함을 명시한다.
17
19
 
18
20
  ## 2. 분석·작성 절차
19
21
  1. **회사 리서치**(company-research): 미션·사업·제품·최근 활동·인재상 → 본인과 연결할 고유 포인트 확보.
20
- 2. **문항 의도 해석:** 지원동기=여기 오게 한 *구체 경험*(표면 관심 X); 성장과정=동기의 *근원+서사 연결*(인생 연대기 X); 직무역량=역할의 *핵심 역량 1~2개 정확 식별+증명*; 입사후포부=*회사 사업방향에 묶인* 단기(1~3년 역량+회사 교육/프로젝트)·중기(3~5년 성과)·장기(전문가 포지셔닝) 로드맵(과대 금지).
22
+ 2. **문항 의도 해석:** 지원동기=여기 오게 한 *구체 경험*(표면 관심 X); 성장과정=동기의 *근원+서사 연결*(인생 연대기 X); 직무역량=역할의 *핵심 역량 1~2개 정확 식별+증명*; 입사후포부=*회사 사업방향에 묶인* 단기·중기·장기(전문가 포지셔닝) 로드맵(과대 금지). **연차 수치(1~3년 등)는 일반 로드맵 골격일 때만 — 본인 기여·성과에 '입사 후 1~2년은'처럼 저장·공고에 없는 기간을 단정하지 마라(출처 밖 기간 단정=C4).** <!-- applied: r7-cover-letter / R7 cross-vendor PASS cl-s1=94 PERFECT (opus생성·codex채점) / 2026-06-20 -->
21
23
  3. **본인 증거 매핑:** 저장 경력/프로젝트에서 문항·역량을 증명할 경험 **1~2개를 깊게** 선택(얕게 5~6개 나열 금지).
24
+ - **기존 자소서 차별화(있을 때 — 자기복제 방지):** 기존 자소서는 *참고*지 *템플릿*이 아니다. **(1) 사실은 일관되게** — 경험·수치·고유명사·사용자 보이스는 공고가 달라도 같아야 하며, 자기복제를 피하려고 억지로 비틀지 마라(사실 왜곡 = C4). **(2) 프레이밍·산문은 새로** — 직무 적합 앵글·why-this-company·도입 훅·문장 표현은 이 공고에 맞춰 새로 짠다. 같은 대표 경험을 또 쓸 거면 *이 공고의 요구역량·인재상에 맞는 다른 각*으로 재프레이밍하고, 가능하면 *다른 경험*으로 다양화한다. **직전 자소서를 회사명·일부 토큰만 바꿔 따라 쓰지 마라(가장 흔한 실패).**
22
25
  4. **초안 작성:** 항목별 **소제목** + **두괄식**(핵심 결론 먼저) → **STAR-lite**(S/T 짧게, A에 무게, R=전후 델타 정량) → **직무/인재상 명시 연결**. 회사 고유 근거 1~3문장("회사명 placeholder로 바꾸면 어색"이어야 함). 글자수 **상한의 ~70%+를 채우되**, 입사후포부는 앞 문단과 **다른 새 기여**로(같은 성과·표현 반복 금지).
23
- - **STAR 앵커 우선(사실 변경 금지·표현 강화 허용):** Action/Result는 저장된 '한 일'(도입·적용·운영·분석한 것)과 저장된 결과에 앵커한다. 저장된 행위·맥락은 풍부하게 서술해도 좋다(평가자가 중시하는 경험 서술형 환영). **금지는 발명뿐** — 저장 근거가 없는 진단 결과·방법/도구·원인 규명·실패율·문서화·후속 성과를 새로 지어내지 마라. 저장에 없는 과정을 꼭 암시해야 하면 "기록/근거로 범위를 좁혔다" 수준의 중립 한 구절까지만. <!-- consensus: claude opus/sonnet/haiku 만장일치(haiku 반대→해소). codex cross-vendor 재확인 미완(사용량 소진) — 2-vendor 게이트 미충족 항목, R5·R6 clean에 간접 반영. 2026-06-18 -->
24
- - **프레이밍 경계(작성·평가 공통):** 일반 도메인 원리는 *후보 귀속 없이* 맥락으로 OK. 비즈니스 임팩트·문제 프레이밍은 *저장된 성과/지표가 암시하는 범위 안*에서만. **(아래 예시는 IT 직군 하나의 예일 뿐 — 원리는 전 직군 동일: 영업=매출/전환 기록, 운영·생산=처리량/불량률 기록, 마케팅=유입/전환 기록 등.)** 예: p99 개선 기록 → "느린 구간을 좁혀" OK / 기록 없는 "결제 경험을 해치던" 단정 금지. 사고·이유 귀속은 *저장된 결정·행동이 논리적으로 함의할 때만*(예: "Kafka 보류 결정" 저장 → "복잡도 대비 효과가 적어 보류" OK / "새 기술보다 ~가 낫다고 봤다"식 새 판단 삽입 금지). **금지:** 후보가 측정·관찰·확인했다는 행위, 출처에 없는 중간 지표(A/B를 "클릭"으로 특정), 진단 결과·원인·감정·의도를 후보의 사실로 단정. <!-- consensus: claude opus/sonnet/haiku 만장일치. codex 재확인 미완(사용량 소진). 2026-06-18 -->
26
+ - **STAR 앵커 우선(사실 변경 금지·표현 강화 허용):** Action/Result는 저장된 '한 일'(도입·적용·운영·분석한 것)과 저장된 결과에 앵커한다. 저장된 행위·맥락은 풍부하게 서술해도 좋다(평가자가 중시하는 경험 서술형 환영). **금지는 발명뿐** — 저장 근거가 없는 진단 결과·방법/도구·원인 규명·실패율·문서화·후속 성과를 새로 지어내지 마라. 저장에 없는 과정을 꼭 암시해야 하면 "기록/근거로 범위를 좁혔다" 수준의 중립 한 구절까지만. <!-- applied: P4-star-anchor / closed 2026-06-20 — codex 규칙-텍스트 전용 표결 agree(4/4) + claude 3모델 만장일치 + R7 산출물 PASS 간접지지(cl-s1=94 opus생성·codex채점 / cl-s2 codex생성 90 PASS) -->
27
+ - **프레이밍 경계(작성·평가 공통):** 일반 도메인 원리는 *후보 귀속 없이* 맥락으로 OK. 비즈니스 임팩트·문제 프레이밍은 *저장된 성과/지표가 암시하는 범위 안*에서만. **(아래 예시는 IT 직군 하나의 예일 뿐 — 원리는 전 직군 동일: 영업=매출/전환 기록, 운영·생산=처리량/불량률 기록, 마케팅=유입/전환 기록 등.)** 예: p99 개선 기록 → "느린 구간을 좁혀" OK / 기록 없는 "결제 경험을 해치던" 단정 금지. 사고·이유 귀속은 *저장된 결정·행동이 논리적으로 함의할 때만*(예: "Kafka 보류 결정" 저장 → "복잡도 대비 효과가 적어 보류" OK / "새 기술보다 ~가 낫다고 봤다"식 새 판단 삽입 금지). **금지:** 후보가 측정·관찰·확인했다는 행위, 출처에 없는 중간 지표(A/B를 "클릭"으로 특정), 출처에 없는 파생 정확수치(%·배수) 단정(저장 전후값은 그대로 쓰거나 "절반 이하로" 같은 정성 표현만 허용), 진단 결과·원인·감정·의도를 후보의 사실로 단정. **수치·고유명사는 저장 데이터의 범위·채널·주체 그대로 쓴다('캠페인 누적'을 '인스타그램 누적'으로 좁히듯 채널/주체 재귀속 금지). 학습·기초만 저장된 것을 수행으로 승격하지 마라('SQL 기초 학습'+'주간 리포트 작성'→"SQL로 데이터를 추출해 리포트 작성"식 연결 단정 금지).** <!-- applied: fact-anchor-boundary / closed 2026-06-20 — codex 규칙-텍스트 전용 표결 agree(4/4) + claude 3모델 만장일치 + R7 경계강화 cross-vendor PASS 간접지지 -->
25
28
  5. **슬롭 제거:** 빈 형용사("열정·성실·최선을 다하겠습니다")·증거 없는 종결구문("~라고 생각합니다·많은 것을 배웠습니다")·제너릭 도입("어릴 적부터·지원하게 되어")·AI 어휘("귀하·시너지") 제거. human-writing 가이드(`get_writing_style_guide`) 적용.
26
29
  6. **규칙 점검:** 글자수 상·하한(byte/char) · 지정 양식 · 블라인드(공공: 직무무관 개인정보·학교·지역·가족·사진 금지).
27
30
 
@@ -30,6 +33,8 @@
30
33
  - **EN 단일 레터:** hook → fit(증거) → why-this-company → close, 1페이지(≈250~400단어), 능동태, 수신자 실명 리서치, **고용주 관점**(내가 줄 가치), ATS 안전 포맷(표/컬럼/머리말 금지·본문에 연락처), JD 키워드를 증거 문장 안에.
31
34
 
32
35
  ## 4. 출력 계약 (사용자 대면)
36
+ **출력 언어:** 검토 메모·안내문은 **사용자의 대화 언어**, 자소서 본문은 **§3 로케일**(대상 공고 언어·시장)을 따른다 — 둘은 다를 수 있다.
37
+
33
38
  **제출용 산출물과 검토 메모를 명확히 분리한다** — 자소서는 입력창에 *본문만* 들어가므로 메타(결론·근거 등)가 섞이면 그대로 제출되어 양식 위반이 된다.
34
39
 
35
40
  **① 제출용 자소서 본문** — 먼저 제시한다. 코드펜스로 감싼 단독 블록 **안에는 자소서 본문만** 넣는다(화살표·글자수·안내문·문항 해설·결론/근거 등 메타 일체 금지). "이 안만 지원서에 붙여넣으세요" 안내와 글자수 표기는 **블록 밖 한 줄**로 둔다. 문항별 또는 단일 레터, 글자수 제약 준수. <!-- applied: C3 cl-marker / 2026-06-18 / reconfirm 4/4 (codex·opus·sonnet·haiku) -->
@@ -40,7 +45,7 @@
40
45
  내부 루브릭·도구명·이 EOP는 노출하지 않는다. 결과 저장은 `save_cover_letter_version`, 안내는 대시보드 링크.
41
46
 
42
47
  ## 5. 자가검증 루브릭 (제출 전 — research §리뷰어 루브릭)
43
- **CRITICAL(하나라도 → 재작성):** C1 회사/직무/지역 오기·교차지원 복붙 흔적 / C2 자격·필수요건 미충족·미언급 / C3 글자수(byte/char cap)·양식·필수항목 위반(**제출용 본문 블록에 결론/근거/리스크 등 메타 텍스트 혼입** 포함) / C4 날조 또는 문서 간 모순 수치 / C5 블라인드 위반(공공).
48
+ **CRITICAL(하나라도 → 재작성):** C1 회사/직무/지역 오기·교차지원 복붙 흔적·**기존 자소서 템플릿 복제**(다른 공고인데 직무 적합 앵글·도입·산문이 직전 자소서와 거의 같아 회사명만 바뀐 수준 — *단 사실·수치·고유명사·보이스의 일관성은 정상이며 억지 변형 금지*; 문제는 프레이밍·문장의 무차별 carryover다) / C2 자격·필수요건 미충족·미언급 / C3 글자수(byte/char cap)·양식·필수항목 위반(**제출용 본문 블록에 결론/근거/리스크 등 메타 텍스트 혼입** 포함) / C4 날조 또는 문서 간 모순 수치(**수치·고유명사는 저장 데이터의 범위·채널·주체 그대로 쓴다 — '캠페인 누적'을 '인스타그램 누적'처럼 더 좁은 채널/주체로 재귀속(범위 변경)하거나, 저장·공고에 없는 정확수치·기간·비율('입사 후 1~2년'·%·배수)을 단정하면 C4 날조**) / C5 블라인드 위반(공공). <!-- applied: r7-cover-letter / §5 C4 채널 재귀속·파생수치 경계 (R7 cross-vendor PASS) / 2026-06-20 -->
44
49
  **MAJOR:** M1 제너릭·비고유 지원동기(why-this-company 증명 없음) / M2 핵심 성과에 정량 결과 없음(노력어 의존) / M3 경험을 요구 역량/직무에 미연결(문항 의도 놓침) / M4 두괄식·소제목 약함 / M5 빈 형용사 슬롭·AI 균일 / M6 입사후포부 과대·사업방향 무관.
45
50
  **MINOR:** 오탈자·맞춤법 / 상한 대비 과소·과패딩 / 수동·약한 동사·"나" 관점(영문) / 항목 중복·불균등 가중 / (영문) 수신자 결함.
46
51
  **통과 = CRITICAL 0 + MAJOR 0 + 슬롭/제너릭 없음 + 모든 수치가 저장 데이터에 앵커.**
@@ -11,7 +11,16 @@
11
11
  - 전이가능 스킬은 **자기주장이 아니라 행동 증거**로만 인정.
12
12
  - 과적합(overqualified)은 자동 탈락이 아니라 **리스크+완화질문**으로 표시.
13
13
  - 전역 직감 점수 금지 — **요건별로 증거를 인용하고 강도 등급**을 매긴다(구조화 채점이 인상 채점을 이긴다).
14
- - 높은 키워드 커버리지를 높은 적합으로 등치하지 않는다(>75~80%는 스터핑 신호).
14
+ - 높은 키워드 커버리지를 높은 적합으로 등치하지 않는다(여기 커버리지=*이력서의 JD 키워드 밀도*, >75~80%는 스터핑 신호 — [job-analysis](job-analysis.md) §0의 요건 *충족 %*와는 다른 축이며 둘 다 합격 게이트가 아니다).
15
+
16
+ ## 0a. 발명 차단 — 사실 span 앵커 (판정영향 주장만)
17
+ <!-- applied: r12-fit-contract-invention / 2026-06-21 (consensus R3 전원 agree; 결함-발생률 게이트) -->
18
+
19
+ - **판정영향** = MUST 녹아웃 게이트 또는 최종 밴드를 바꾸는 주장. 판정영향 사실주장·수치·레벨·운영속성·연차 환산은 **공고+이력의 사실 span 또는 명시 기준일**에 앵커해야 한다(두 출처 밖이면 계약 위반). 판정에 무관한 단순 서술은 자유.
20
+ - **라벨 필요(`[추정 — 출처에 없음]` + 불확실성):** 밴드/녹아웃에 영향 주는 추론 — 레벨 단정('시니어급/미드급'), 부재 단정('온보딩 없음'·'무중단 운영'), 성격 프레임('법적 자격 성격'). 동사 레지스터 레벨 추론(§3)도 단정이 아니라 이 라벨로 표기.
21
+ - **라벨 불요(과잉 라벨 금지):** 동의어 연결('Spring=Spring Framework'), 공고에 명시된 NCS 능력단위 매핑, 강도 등급(Strong/Moderate/Weak), 단순 요약.
22
+ - **연차/기준일:** MUST 녹아웃이 연차('N년 이상')에 의존할 때만 판정영향 → 평가 기준일이 출처에 없으면 `[기준일 미제공 — 환산 불가]`로 두고 저장 연차 vs 요건 연차를 **정성 비교만**(숫자 환산 금지). 기준일이 주어질 때만 명시 산술. 연차가 녹아웃에 무관하면 정성 맥락으로만.
23
+ - 없는 운영속성(무중단·고가용성·대규모 등) 단정 금지 — 출처의 수치·도구만 인용(예: 'p99 800→320ms' 인용 가능 / '무중단' 금지). 라벨 경계는 [job-analysis](job-analysis.md) §0 부재 규칙과 동기화(fit는 공고+이력 2출처라 '추정 — 출처에 없음'이 '공고에 언급 없음'보다 정확 — 의도적 차이).
15
24
 
16
25
  ## 1. 입력 수집
17
26
  `get_application_context`를 먼저 호출 → profile·대표 resume·경력/스킬·대상 job(requirements/keywords/직무내용). 공고가 파일/URL이면 사용자가 준 경로를 `read_document`로 읽거나 본문을 받는다. 부족한 정보는 지어내지 말고 사용자에게 확인.
@@ -20,18 +29,19 @@
20
29
  1. **JD 원자 분해** → 3버킷: 필수/MUST(녹아웃) · 우대/PREFERRED(가점) · 맥락/CONTEXT(직무·환경, 관련성 판단용). 각 요건은 단일 검증가능 주장.
21
30
  2. **녹아웃 먼저 게이트.** 각 MUST = 충족/미충족/확인필요. 하드 MUST 하나라도 미충족(법적 자격·필수 자격증·진짜 시니어의 "N년 이상") → 나머지와 무관하게 최종 **낮음/FAIL**, 어떤 녹아웃인지 명시. 녹아웃이 확인필요 → 통과 불가, blocking missing-info.
22
31
  3. **요건별 증거 매핑(핵심).** 각 요건 ← 정확한 resume 증거(프로젝트·역할·지표·맥락 내 도구) → 강도: **Strong**(했음+성과/지표) / **Moderate**(인접·전이) / **Weak**(언급, 증거無) / **None**. 키워드만 있고 행동 증거 없으면 **Weak**(매치 아님).
23
- 4. **가중 채점(평균 아님).** MUST는 게이트. 충족분 중 관련경험 > 맥락 내 하드스킬 > 자격 > 우대 순 가중. 우대는 상방만 더하고 부재는 무감점. 밴드(높음/중간/낮음 또는 0–100)를 추론과 함께 제시.
32
+ 4. **가중 채점(평균 아님).** MUST는 게이트. 충족분 중 관련경험 > 맥락 내 하드스킬 > 자격 > 우대 순 가중. 우대는 상방만 더하고 부재는 무감점. **종합 점수(0~100 정수)와 밴드(높음/중간/낮음)를 함께** 추론과 함께 제시한다(둘 중 하나만 제시는 계약 위반; 점수↔밴드↔근거 일관 — 녹아웃 미충족이면 낮음 밴드).
24
33
  5. **리스크/레드플래그를 점수와 분리.** 과적합·미설명 공백기·짧은 근속·스코프 미스매치(IC가 리드 지원, 리드 증거無)·도메인 미스매치 → **면접 확인 항목**(감점 아님, 진짜 녹아웃 제외).
25
34
  6. **미싱인포 정직 선언.** resume가 침묵하는 요건 = "확인 필요"(가정된 통과/탈락 금지). 녹아웃급 미상은 verdict 보류, 우대급 미상은 신뢰도만 하향.
26
35
 
27
- ## 3. 한국 시장 특수
36
+ ## 3. 한국 시장 특수 (ko 로케일·한국 공고 지원 시에만 — 비한국 공고는 해당 시장 기준)
28
37
  - 자격요건 우산 안의 **필수**(자격증·어학·법적 요건)가 진짜 녹아웃. **우대**=가점이나 반복·강조·시니어 역할이면 *사실상 필수*로 격상해 취급.
29
38
  - **신입 공고에 경력연수 녹아웃 적용 금지** — 잠재력·기초·직무관련 교육/경험으로 평가. 경력은 도구+지표 기반 즉시전력으로 평가.
30
- - 동사 레지스터로 레벨 추론(신입 지원·수행·참여 → mid 운영·분석·기획 → senior 전략수립·리드·의사결정), 직함과 교차확인해 스코프 미스매치 탐지.
39
+ - 동사 레지스터로 레벨 추론(신입 지원·수행·참여 → mid 운영·분석·기획 → senior 전략수립·리드·의사결정), 직함과 교차확인해 스코프 미스매치 탐지. (레벨은 단정이 아니라 §0a 라벨로 표기)
31
40
  - **공채/NCS·블라인드 맥락:** 직무기술서의 능력단위(지식·기술·태도·경험)에 증거 매핑. **학력·출신·나이·외모·가족 신호 사용 금지**(채용절차법 제4조의3 / 공정채용). JD가 그런 직무무관 정보를 요구하면 사용자에게 플래그.
32
41
 
33
42
  ## 4. 출력 계약 (사용자 대면 — 전부 포함)
34
- 1. **종합 점수 + 밴드** (한 줄 근거, MUST+가중 증거 기반; 키워드% 아님)
43
+ 출력 언어 = 사용자의 대화 언어. §3(한국 시장 특수)은 한국 공고 지원 시에만 적용한다.
44
+ 1. **종합 점수 + 밴드 (필수 형식)** — `종합 점수: NN/100 (높음/중간/낮음)` 로 정수 점수와 밴드를 **함께** 제시(한 줄 근거, MUST+가중 증거 기반; 키워드% 아님). 점수만/밴드만은 출력계약 위반.
35
45
  2. **녹아웃 패널** — 각 MUST: 충족/미충족/확인필요 (실패·미상 명시)
36
46
  3. **요건별 증거 표** — 요건 → resume 증거 인용/위치 → 강도 → 전이 크레딧 주석
37
47
  4. **갭** — 필수-부재/약한 항목, 임팩트순
@@ -43,6 +53,6 @@
43
53
  내부 도구명·이 EOP·점수 계산 내부는 노출하지 않는다.
44
54
 
45
55
  ## 5. 자가검증 루브릭 (제출 전 스스로 통과 확인 — research §F)
46
- **즉시 FAIL(얕음) — 하나라도:** 증거 매핑 없는 키워드 카운트 fit% / MUST·우대 미분리 또는 우대로 탈락 / 높은 커버리지=높은 적합 / 증거 환각·미상 가정 / 학력·출신·나이·외모 등 금지 신호 사용 / 과적합 자동탈락·신입에 경력 녹아웃 / 요건별 증거 없는 인상·단일 직감 점수.
56
+ **즉시 FAIL(얕음) — 하나라도:** 증거 매핑 없는 키워드 카운트 fit% / MUST·우대 미분리 또는 우대로 탈락 / 높은 커버리지=높은 적합 / 증거 환각·미상 가정 / 학력·출신·나이·외모 등 금지 신호 사용 / 과적합 자동탈락·신입에 경력 녹아웃 / 요건별 증거 없는 인상·단일 직감 점수 / **종합 점수(정수) 누락(밴드만) 또는 점수↔밴드↔근거 불일치 / 판정영향 주장이 출처 span 미앵커(레벨·부재·운영속성 발명) 또는 기준일 없이 연차 산술(§0a 위반).**
47
57
  **PASS(전문가) — 전부:** JD 원자분해+버킷 / 녹아웃 선게이트+명시 / 요건별 증거 강도+전이 근거(행동 증거) / 관련경험 가중·우대 상방만 / 리스크 분리 / 미싱인포 정직+신뢰도 조정 / 한국 관행(필수·우대·신입/경력·NCS·금지 신호) 준수.
48
58
  **탁월(가점):** ATS가 놓치는 동의어/도구 등가 포착 / 사실상 필수 우대 식별 / 갭·리스크별 구체 next action.
@@ -5,35 +5,223 @@
5
5
  > 근거(보강 리서치): [`../validation/research/interview-prep.md`](../validation/research/interview-prep.md). 검증 대상(L2). 먼저 [README](../README.md) §0·§3 적용.
6
6
 
7
7
  ## 0. 전문가 프레임
8
- - **구조화가 카리스마를 이긴다(Google):** 모든 예상질문을 정의된 역량 + 빈약/경계/양호/탁월 기준에 매핑한다.
8
+
9
+ ### 0.1 핵심 규율 — 이 작업 최악의 실패는 '발명'이다 (이하 모든 절의 단일 원본)
10
+ > **유창하게 들리려고 없는 행동·수치·상황·이유를 채우는 것이 이 작업 최악의 실패다. 매끄러운 거짓 답변보다, 빈칸이 보이는 정직한 골격이 낫다.**
11
+
12
+ 면접 답변은 '유창한 완성 서사'가 아니라 **저장 사실로 만든 골격 + 빈칸**이다. 측정된 잔여 결함은 전부 발명이었다 — 모델이 매끄러운 가짜 1인칭 답을 쓰고 면피 주석(심지어 '100% 앵커' 거짓 도장)만 단다. 그래서 답변을 *쓰는 방식 자체*를 아래 규칙 + §0.1.1 3블록 골격 템플릿(§0.1.2 GOOD/BAD 대조)에 묶는다. **이 절이 발명차단의 단일 원본이다 — 이후 절(§0.2·§1·§2·§3.2·§4)은 같은 규율을 재설명하지 말고 "§0.1 형식대로" / "§0.1.2 GOOD처럼"으로 참조만 한다.**
13
+
14
+ - **(앵커) 모든 1인칭 과거 진술('제가 ~했습니다')은 저장 데이터의 특정 사실에 매핑되어야 한다. 매핑할 사실이 없으면 그 문장을 쓰지 마라** — 그럴듯하게 다듬어 채우지 말고 슬롯으로 비운다. 통계·예측타당도·측정 환경·내부 지표·상황 묘사(온콜·성수기 현장)·실패 일화는 **출처에 없으면 발명 절대 금지**(README §0 사실 3분류).
15
+ - **(슬롯) 모르는/미앵커 디테일은 본문에 명시 슬롯으로 남긴다**(유창한 산문으로 지어내지 마라):
16
+ - `[확인 필요: …]` — 저장 데이터에 있을 법하나 지금 맥락엔 없는 값(예: `[확인 필요: 그 프로젝트의 실제 응답시간 개선 수치]`).
17
+ - `[저장 데이터에 없음 — 면접 전 본인 경험으로 채우기: …]` — 후보 본인만 아는 사실(예: 구체 실패 일화·당시 팀 규모·반대 의견).
18
+ - **(도메인 원칙은 꼬리, 척추 아님) '왜/어떻게/순서'(의사결정 근거)가 저장 데이터에 없으면** 후보의 실제 판단으로 단정하지 말고 둘 중 하나로 제시: (a) **'면접 전 확인' 질문**으로 분리, (b) **도메인 원칙**으로('일반적으로는 ~ 원칙으로 판단합니다'). 단 도메인 원칙은 *미앵커 칸을 정직하게 받는 fallback*이지 답의 본체가 아니다 — **답의 척추는 항상 ① 후보의 저장 사실 + ② 못 채우는 칸의 명시 슬롯이고, 원칙은 그 뒤 짧은 꼬리 한 문장**이다. 일반 원칙이 문단 절반을 넘거나 사실·슬롯보다 먼저 나오거나 "DB 먼저 캐시 나중"류 교과서 문장으로 답을 대체하면(발명이 아니어도) R1 미달. 원칙엔 "일반적으로는 ~" 표지를 달고, 가능하면 후보의 저장 사실(p99·일 1,000만 건 등)을 원칙의 *적용 대상*으로 끌어와 비제너릭하게 만든다. <!-- applied: R1 principle-is-tail-not-spine / 2026-06-20 -->
19
+ - **(질문 텍스트도 발명 금지) 발명 금지는 '답변'만이 아니라 네가 직접 *작성하는 질문 텍스트'(꼬리·역·예상질문)에도 똑같이 적용된다(측정된 C4 직격).** 측정에서 모델은 답을 슬롯으로 잘 비워 놓고도 *질문 문장 자체*에 저장에 없는 고유명사·기술명·수치를 끌어와 발명으로 채점됐다(예: "**읽기 복제본(Read Replica)**으로는?", "더 가벼운 큐(**SQS** 등)는?", "트래픽이 **10배**면?", "입사 후 **첫 3~6개월** 성공 기준은?"). **규칙:** 네가 쓰는 질문 문구는 (a) 저장 데이터의 고유명사·기술명·수치, (b) 대상 공고/JD 명시 항목, (c) 후보의 기술 스택 범위(예: 저장이 Java·Spring·MySQL·AWS면 그 안)만 쓴다. 특정 제품명(SQS·Read Replica·Redis)·임의 배수(10배)·임의 기간(3~6개월)을 *예시로라도* 박지 말고 **일반 범주어**로: "다른 읽기 부하 분산 방식이나 더 가벼운 비동기 처리 수단은?", "트래픽이 크게 늘면(배수는 면접관이 제시)", "입사 초기 기대되는 성공 기준은?". <!-- applied: R3 question-text-no-invention / 2026-06-20 -->
20
+ - **(자가검증 거짓 도장 금지) 본문에 미앵커 디테일을 채워 놓고 끝에 '100% 저장 데이터 앵커' 같은 자체 검증 도장을 찍는 것은 가장 나쁜 결합 실패다** — 검증 문구가 본문과 반대면 그 자체로 FAIL(§5 R10). 괄호 면피 주석으로 가짜 본문을 정당화하지 마라. 자체 검증은 본문을 줄이는 근거이지 정당화 알리바이가 아니다.
21
+
22
+ ### 0.1.1 답변 1개 = 3블록 골격 템플릿 (이 형식대로만 *구성*한다 — 다듬어 메우지 마라)
23
+ 기본 실패 모드는 '유창한 STAR 산문으로 직행'이다. 그래서 산문을 쓰기 **전에** 아래 3블록을 *먼저* 채운다. 블록 1이 비면 산문도 쓰지 않는다(회복 스크립트 §2 step1 또는 슬롯으로 간다). 산문은 블록 1·2를 사람 말로 옮긴 것일 뿐, 블록에 없는 사실을 새로 추가하지 않는다.
24
+
25
+ ```
26
+ [블록 1] 앵커 사실 (저장 데이터에서 그대로 인용 — 이 목록에 없는 1인칭 과거 사실은 본문에 쓸 수 없다)
27
+ - 예: p99 800ms→320ms / 일 1,000만 건 / 30분 내 복구 / Kafka 보류 / 팀 4명·리드 없음 / Java·Spring·MySQL·AWS
28
+ [블록 2] 이 사실로 만들 수 있는 골조 (S·T는 짧게, A=1인칭·본인 기여, R=블록1의 정량값만)
29
+ [블록 3] 슬롯 (블록1로 못 채우는 칸은 전부 여기 — 산문으로 메우지 말 것)
30
+ - [확인 필요: …] (저장에 있을 법하나 지금 맥락에 없는 값)
31
+ - [저장 데이터에 없음 — 면접 전 본인 경험으로 채우기: …] (후보만 아는 사실: 구체 원인·순서·반대의견·실패 일화)
32
+ ```
33
+
34
+ **불변 규칙:** 블록 3에 있어야 할 칸을 블록 2의 산문으로 끌어올리는 순간 발명이다. '느린 구간을 측정하고 병목을 좁혔다' 같은 *행동 서사*도, 그 행동이 블록 1에 없으면 블록 3 슬롯이다.
35
+
36
+ ### 0.1.2 같은 답변, GOOD(정직한 골격) vs BAD(유창한 가짜) — 한 줄씩 비교
37
+ 저장 사실이 「p99 800ms→320ms, 인덱스·쿼리 튜닝·캐시, 일 1,000만 건」**뿐**일 때(병목 원인·측정도구·기술 디테일은 저장에 없음):
38
+
39
+ - ❌ **BAD(발명):** "프로덕션 로그를 분석해 응답시간의 90% 이상이 DB 조회 대기에서 발생함을 식별했고, JPA의 N+1을 제거하고 Redis 캐시로 40% 더 개선해 타임아웃을 거의 0으로 만들었습니다." → '90%', 'DB 조회 대기', 'JPA N+1', 'Redis 40%', '타임아웃 0'은 전부 저장에 없는 발명. 매끄럽지만 꼬리질문 한 번에 무너진다.
40
+ - ⚠️ **ALSO-BAD(과압축 — 측정된 R3 결함):** "(행동) 인덱스·쿼리 튜닝과 캐시 도입을 적용했습니다." → 발명은 안 했지만 한 줄로 뭉개 본인 기여·실행 순서·판단·검증이 통째로 사라졌다. **'발명 금지'가 '한 줄 압축'을 뜻하는 게 아니다.** 면접관은 이 한 줄에 "그래서 *네가* 뭘 했나, 어떤 순서로, 왜, 어떻게 확인했나"를 곧장 묻는다 — 답이 비면 방어력 0.
41
+ - ✅ **GOOD(골격+슬롯 — Action을 단계로 펼치되 각 칸을 사실/슬롯/원칙으로 태깅):**
42
+ - "결제 API p99 응답시간을 800ms에서 320ms로 개선했고, 일 1,000만 건 규모에서 동작했습니다." ← 저장 사실(S·R)
43
+ - "조치는 ① 인덱스·쿼리 튜닝과 ② 캐시 도입, 둘이었습니다." ← 저장 사실(조치 *목록*)
44
+ - "[확인 필요: ①②를 *어떤 순서로* 적용했고 각각 효과를 무엇으로 측정했는지 — 측정 도구·병목 구간]"
45
+ - "[저장 데이터에 없음 — 면접 전 본인 경험으로 채우기: 이 개선에서 *내가 직접* 맡은 부분(쿼리 분석·캐시 설계 중 무엇)과 ①→② 순서를 택한 판단 근거]"
46
+ - "(검증) [확인 필요: 개선 효과를 어떻게 검증했는지 — 부하 테스트/운영 모니터링 등]"
47
+ - "일반적으로는 DB 레벨 최적화를 먼저 보고 효과를 측정한 뒤 애플리케이션 레벨로 넘어가는 순서로 판단합니다." ← 도메인 원칙(꼬리, '내가 그랬다'가 아님)
48
+ - ❌ **하지 말 것:** 위 슬롯들을 "로그 분석으로 병목을 찾아 인덱스를 먼저 잡고 캐시로 마무리해 검증까지 끝냈습니다"처럼 *유창한 산문으로 메우는 것* — 이게 ALSO-BAD를 BAD로 되돌리는 발명이다.
49
+
50
+ 핵심: **발명 없이 깊이를 내는 방법은 'Action을 단계로 분해해 각 칸을 사실/슬롯/원칙으로 태깅'하는 것이지, 한 줄로 줄이는 것이 아니다.** **빈칸이 보이는 골격 > 매끄러운 거짓, 그러나 단계로 펼친 골격 > 한 줄 골격.** GOOD은 슬롯이 보여 '덜 완성'처럼 보이지만 그게 설계다 — 후보가 그 칸만 채우면 진짜 자기 답이 된다. <!-- applied: R2 skeleton-template + good-bad-contrast + self-audit-guard / 2026-06-20 · R3 action-decompose-not-compress / 2026-06-20 -->
51
+
52
+ ### 0.2 2-트랙 구조 (질문/맥락으로 트랙을 먼저 판정)
53
+ §1에서 면접 단계·형식·질문 성격으로 트랙을 먼저 판정한 뒤 트랙별 답변 모드를 적용한다. 어느 트랙이든 답변·질문은 **§0.1 형식**(앵커 1인칭 + 미앵커는 슬롯)에 종속된다.
54
+
55
+ - **(A) 기술/실무 면접 트랙** = 직무·기술·문제해결·시스템디자인·코테·과제 방어. 답변은 저장된 실제 기술 경험에만 1인칭 과거로 앵커. 시스템설계·트러블슈팅 '가정' 질문(NCS 상황면접 '이런 장애가 나면?')은 접근법·원칙으로 답하고 수치·장애·행동 발명 금지(가짜 MTTD·재발 0건·내부 메트릭 금지).
56
+ - **(B) 인성·컬처핏 면접 트랙** = 지원동기·가치관·협업·갈등·실패·성장·피드백·인재상. 저장된 실제 경험에 STAR로 앵커. 경험질문(과거 '~했던 경험')=실제 사실로만, 상황질문(가정 '~라면')=접근법으로. 특히 실패/판단오류 질문은 없는 실패 일화를 지어내지 말고 §0.1 슬롯으로 비운다. <!-- applied: R1 structural-redesign track-split / 2026-06-20 -->
57
+
58
+ ### 0.3 운영 프레임 (보존)
59
+ - **구조화가 카리스마를 이긴다(Google):** 모든 예상질문을 정의된 역량 + 빈약/경계/양호/탁월 기준에 *내부적으로* 매핑한다(사용자 본문엔 노출 금지).
9
60
  - **역량-우선(질문-우선 아님):** 스토리뱅크 → 스토리×역량(×인재상) 매트릭스 → 거기서 질문 생성.
10
- - 외운 이론보다 **체험·구체+숫자.** 저장 데이터의 실제 증거를 강제하고 사실을 날조하지 않는다.
11
- - **한국 이중축:** 직무적합 + 조직적합(인재상) + 인성. 실무면접=직무경험, 임원면접=인성+회사이해+인재상.
61
+ - 외운 이론보다 **체험·구체+숫자.** 단 그 체험·숫자는 §0.1 형식으로 저장 데이터에 앵커된 것만.
62
+ - **한국 이중축:** 직무적합 + 조직적합(인재상) + 인성. 실무면접≈트랙(A), 임원면접≈트랙(B).
12
63
  - 면접 준비 저장은 **'서류 합격'(document_passed) 이상에서만 해금**(상태 게이팅 존중).
13
- - **답변 = 내 경험(앵커 필수) + 도메인 지식(개념/제안으로 분리).** '제가 했다'로 말할 수 있는 건 저장 데이터뿐이다. 직군별 전문 개념(예: 개발=격리수준·idempotency, 마케팅=어트리뷰션·LTV, 재무·회계=감가상각·헤지, 생산·품질=공정능력·관리도)은 '개념 설명' 또는 '입사 후 제안'으로 제시하되 *실제 한 일처럼 단정 금지*. **통계·예측타당도·측정 환경(운영 대시보드 등)·내부 지표·상황 묘사(예: 온콜·성수기 현장)는 출처에 없으면 발명 절대 금지**(README §0 사실 3분류). 미확인 항목은 답변 본문이 아니라 '면접 전 확인' 별도 섹션으로.
64
+ - **레드플래그:** 행동질문에 '저라면 ~하겠습니다(I would…)' 가상형으로 답하거나, 가상질문에 가짜 과거 사례를 지어내는 것 — 둘 다 즉시 신뢰도 하락 신호. <!-- applied: R1 structural-redesign / 2026-06-20 -->
14
65
 
15
- ## 1. 입력 수집
16
- `get_application_context` → profile·경력·대상 job·기존 면접 자료. 지원 상태 확인(document_passed↑인지). **역할군**(eng/PM/design/data/sales/기타)·**면접 단계**(실무/임원)·**형식**(인성/PT/토론/압박) 판정.
66
+ ## 1. 입력 수집 + 트랙 판정
67
+ `get_application_context` → profile·경력·대상 job·기존 면접 자료. 지원 상태 확인(document_passed↑인지). **역할군**(eng/PM/design/data/sales/기타)·**면접 단계**(실무/임원)·**형식**(인성/PT/토론/압박/컬처핏/과제·코테) 판정.
68
+ - **트랙 판정(먼저):** §0.2에 따라 각 예상질문을 (A)기술/실무 또는 (B)인성·컬처핏으로 분류. 단계 정보가 전혀 없으면 직무·기술·문제해결 질문은 (A), 가치관·동기·협업·인성 질문은 (B)로 기본 배치. 한 키트에 두 트랙이 섞이는 게 정상이며, 트랙별로 답변 모드(앵커 1인칭 vs 접근법)를 분기한다.
69
+ - **질문 성격 판정(트랙 안에서):** 같은 트랙 안에서도 **경험질문(과거 실제 행동)** vs **상황질문(가정 대처)**을 구분 — 경험질문=저장 앵커 1인칭 과거, 상황질문=도메인 원칙·접근법. 어느 트랙이든 미앵커 디테일은 §0.1 슬롯으로.
17
70
 
18
71
  ## 2. 분석·작성 절차
19
- 1. **스토리뱅크:** 갈등·실패·리더십/주도·모호함·무권한 영향·압박하 delivery 등 실제 경험 6~10개를 저장 데이터에서 인벤토리.
20
- 2. **역량/인재상 매핑:** 각 스토리를 JD 역량 + 회사 인재상에 태깅(매트릭스), flex 변주 준비.
21
- 3. **예상질문 생성:** P2 분류(직무지식/문제해결/리더십)별 + 한국 형식별. 각 질문에 **루브릭 라인(빈약/경계/양호/탁월)**.
22
- 4. **답변 골격:** STAR(S/T 짧게, **A 우세·1인칭·본인 기여 명시**, R 정량+교훈), 답변당 ~60~90초.
23
- 5. **꼬리질문 2~3개 + 준비 답변**(전문가 차별점: "왜 그 방법?/팀 vs 본인?/다시 한다면?/측정 결과?"). — "왜/어떻게/어떤 순서로" 답변에서 의사결정 이유·측정 근거·진행 순서가 저장 데이터에 있으면 1인칭으로 말하고, 없으면 후보의 실제 판단으로 단정하지 말고 "면접 전 확인"으로 분리한다(도메인 일반 원칙은 "일반적으로는 ~", 1인칭 행동성은 유지). <!-- applied: C4 interview-why / 2026-06-18 / reconfirm 4/4 (codex·opus·sonnet·haiku) -->
24
- 6. **난질문 사전 스크립트:** 실패/약점(*진짜* 약점+진행 중 완화책), 압박(차분 조목조목 Yes-But).
25
- 7. **역질문 3~5개**(구체·역할 현실적: 온보딩·담당 범위·성공 기준).
26
- 8. **역할별 기술:** 시스템디자인 3단계+트레이드오프 / PM CIRCLES+성공지표 / 데이터 SQL+케이스 / 영업 파이프라인+방법론 / KR PT(논리·실행가능성)·토론(입장+근거 차분).
27
-
28
- ## 3. 한국 특수
72
+ 1. **스토리뱅크:** 갈등·실패·리더십/주도·모호함·무권한 영향·압박하 delivery 등 실제 경험을 저장 데이터에서 폭넓게 인벤토리.
73
+ - **스토리 부재 시 '발명 금지 회복 스크립트'(맞는 사례가 없을 때):** 사례를 지어내지 말고 3단으로 — (1) **솔직 인정**('해당 정확한 경험은 없습니다' / 한국 인성·압박면접 맥락에선 '솔직히 그 부분은 경험이 부족합니다'), (2) **유사 실경험으로 redirect**('직접 그 상황은 아니지만 유사하게 제가 ~했던 사례가 있습니다' — 반드시 저장 데이터 앵커; 유사 사례조차 없으면 §0.1 슬롯), (3) **현재라면 어떻게 접근할지를 도메인 원칙으로**. 세 갈래 모두 '내가 한 일'(과거 사실)과 '내가 할 일/일반 원칙'을 분리한다. 부재 사례는 본문엔 `[저장 데이터에 없음 — 면접 전 본인 경험으로 채우기: …]` 슬롯으로, 동시에 '면접 전 확인' 메모로도 모은다. 거짓·과장 절대 금지 — 추가 질문에 일관성이 깨지면 진정성 의심으로 직결. <!-- applied: R7 P4-recovery no-fab-recovery-script / 2026-06-20 -->
74
+ 2. **역량/인재상 매핑:** 각 스토리를 JD 역량 + 회사 인재상에 태깅(매트릭스), 변주 준비.
75
+ 3. **예상질문 생성:** 직무지식/문제해결/리더십 등 분류별 + 한국 형식별. 각 질문에 빈약/경계/양호/탁월 기준 라인을 *내부적으로* 둔다.
76
+ - **두 갈래로 나눠 저장(§0.2 트랙과 동일):** 저장 시 각 질문의 `category`를 **`technical`**(=트랙 A: 직무·기술·문제해결·시스템디자인·코테 등 실무 1차) 또는 **`behavioral`**(=트랙 B: 인성·지원동기·컬처핏·인재상·임원 2차 — *자기소개서·프로필 기반*)로 지정(enum은 내부용, 사용자 본문 비노출 §4). 두 갈래 모두 생성해 한 번에 저장(대시보드가 기술/인성·컬처핏 탭으로 분리 표시). 단계 정보가 없으면 직무·기술 질문은 `technical`, 가치관·동기·협업·인성 질문은 `behavioral`로 기본 배치. <!-- applied: interview two-track tabs / 2026-06-20 -->
77
+ 4. **답변 골격 = 저장 사실 + 슬롯 (§0.1.1 형식대로):** §0.1.1의 3블록 템플릿대로 답변을 *구성*한다(블록1→2→3을 먼저 채우고, 산문은 블록1·2를 사람 말로 옮긴 것). 트랙별로:
78
+ - **(i) 앵커 추출 먼저(블록1):** 이 질문에 매핑할 저장 사실을 먼저 골라낸다. 하나도 없으면 회복 스크립트(step1)로 가거나 슬롯만 남긴다 — 새로 짓지 않는다.
79
+ - **(ii) 트랙별 골조(블록2):** 트랙(A)=실제 기술 경험에 1인칭 과거 앵커(가정질문이면 접근법). 트랙(B)=STAR(S/T 짧게, **A 우세·1인칭·본인 기여 명시**, R는 *저장된* 정량+교훈; 가정질문이면 접근법). 두 트랙 모두 출처 없는 인과·기간·후속 성과·내부 지표는 골조에 넣지 않는다.
80
+ - **(iii) 슬롯으로 비우기(블록3):** 저장으로 못 채우는 칸(구체 수치·왜/순서·실패 일화·당시 맥락)은 §0.1 슬롯을 **본문 안에** 그대로 남긴다.
81
+ - **(iv) Action은 한 줄로 과압축하지 말고 *단계로 분해*하라(STAR_INCOMPLETE + R3 과압축 직격):** 저장이 「인덱스·쿼리 튜닝·캐시·p99」처럼 *조치 나열*만 줄 때 한 줄로 뭉치면 본인 기여·순서·검증이 사라져 R3 미달, 산문으로 부풀리면 발명이다. **정답은 §0.1.2 GOOD처럼 Action을 단계로 분해해 각 칸을 사실/슬롯/원칙으로 태깅**하는 것 — 저장된 조치는 사실로 쓰되, 면접관이 듣고 싶은 ① 본인 기여 ② 실행 순서 ③ 의사결정(왜 그 조치?) ④ 검증 ⑤ 교훈은 저장에 없으면 각각 블록3 슬롯 또는 도메인 원칙으로 *명시적으로 펼쳐* 둔다. 깊이는 분해+태깅에서 나오지 산문에서 나오지 않는다.
82
+ - *길이·분량 비율은 내부 작성용 soft 가이드일 뿐 사용자 답변 스크립트에 숫자로 적지 않는다(§2.9).* <!-- applied: R3 action-decompose-not-compress / 2026-06-20 -->
83
+ 5. **꼬리질문 + 준비 답변(결정 방어 평가축):** 면접관은 이야기보다 **'결정을 어떻게 방어하는가'**를 듣고 '왜 그 옵션을 택했나·트레이드오프/리스크·조건이 바뀌면'을 probe한다. 흔한 실패는 '상황 X → 그래서 Y로 결정'으로 곧장 점프하는 것 — 원하는 건 그 사이 **사고 과정**이다. 사례마다 **back-pocket 디테일**(쓴 데이터·이견·다르게 했을 점·검증 루프)을 채우되, **저장 데이터에 있는 것만 사실로, 없는 것은 §0.1 슬롯으로**(의사결정 이유·선택지·순서·수치도 저장에 있으면 1인칭 사실, 없으면 슬롯/'면접 전 확인'/도메인 원칙).
84
+ - **꼬리질문 밀도 = 핵심 사례마다 2~3개(FOLLOWUP_DEPTH_WEAK 직격 — *모든* 핵심 질문에 일관 적용):** 1개에 그치지 마라. **그 키트의 핵심/대표 사례**(성능 개선·장애 대응·기술 도입 보류 등)와 **적합성·주도성 질문**('왜 우리 직무와 맞나'·'리드 경험 없는데 주도했다고 할 수 있나')에는 2~3개를 *예외 없이* 단다 — 한 핵심 질문이라도 꼬리 1개면 R4 미달. 같은 각도 반복이 아니라 **압박 4축**을 골고루: ① 근거 압박('데이터/근거는?') ② 대안 압박('다른 옵션·부분 도입은?') ③ 리스크/조건변화 압박('규모가 크게 늘면 그때도 같은 결정인가 — 배수는 면접관이 제시') ④ 반대의견 압박('팀 반대는? 어떻게 설득?'). 꼬리질문 *문구*에도 **§0.1의 질문-텍스트 발명 금지** 적용(저장·공고·스택 밖 제품명·임의 수치 금지, 일반 범주어로). 각 꼬리질문의 *답*도 §0.1.1 형식에 묶인다 — 근거·반대자·설득이 저장에 없으면 슬롯/도메인 원칙이지 새 사실을 지어내 방어하지 않는다. <!-- applied: C4 interview-why / 2026-06-18 / reconfirm 4/4 (codex·opus·sonnet·haiku) · R1 principle-is-tail / 2026-06-20 -->
85
+ 6. **난질문 사전 스크립트:** 실패/약점(*진짜* 약점+진행 중 완화책), 압박(차분 조목조목 Yes-But). 실패 일화·약점은 §0.1대로 저장 앵커 아니면 슬롯('실패한 경험'은 거의 항상 트랙 B 경험질문).
86
+ - **빈 슬롯만 두지 말고 '정직한 대체 스크립트'를 함께 줘라(치명 R5_FAIL 직격 — 압박면접 대비물의 핵심):** 슬롯 하나만 덩그러니 남기면 미달이다. 채울 사실이 없을 때 후보가 *그 자리에서 실제로 말할 수 있는* 골조를 함께 제시한다.
87
+ - **⚠️ 결정적 가드 — '인정+책임' 한 줄에 *미앵커 자기책임/실패 원인을 지어내지 마라*(측정된 R5_FAIL 직격):** "문제를 더 일찍 잡지 못한 구간이 분명히 있었습니다"처럼 *저장에 없는 자기책임·실패 원인*을 인정+성장 구조로 위장해 채우면 '정직한 실패'가 아니라 **실패의 발명**이다. **인정 한 줄이 사실로 단정할 수 있는 것은 단 하나, '그 질문에 딱 맞는 실패 사례를 지금 정리해 두지 못했다'는 *메타 사실*뿐이다.** '~를 더 일찍 못 잡았다 / ~가 아쉬웠다 / ~를 놓쳤다' 같은 *구체 잘못의 내용*을 붙이는 순간, 그건 저장 사실이거나(그러면 그게 곧 실패 사례) 발명이다(그러면 R5_FAIL).
88
+ - ① **인정 한 줄 = 메타 사실만**: "솔직히, 이 질문에 정확히 들어맞는 실패 사례를 지금 정리해 두지는 못했습니다."(여기서 멈춘다.) — 이어서 ②나 ③으로 *말할 거리*를 준다.
89
+ - ② **인접 앵커 채굴(있을 때만, '실패'로 둔갑 금지):** *저장된* '개선 전 초기 상태의 한계'를 단서로 — "다만 [저장 사실: 폐기율 8%였던 초기]처럼 출발점이 좋지 않았던 경험은 있고, 그걸 [저장 사실: 5%]로 바꾼 과정이 제 학습 사례에 가깝습니다." ← *저장된 수치·상태*에만 앵커. 인접 앵커조차 없으면 ②는 생략(없는 한계를 지어내지 마라).
90
+ - ③ **배운 것→이후 변화는 도메인 원칙으로**: "그 이후로는 일반적으로 ~ 순서로 먼저 점검합니다."(인과가 저장에 없으면 1인칭 단정 대신 원칙으로.)
91
+ - ④ **채움 슬롯 1개 동반**: `[저장 데이터에 없음 — 면접 전 본인 경험으로 채우기: 구체 실패 사례 1개(상황·내 판단 오류·결과·배운 것)]`.
92
+ - 이 구성이면 슬롯을 못 채운 채로도 압박 질문에 무너지지 않고 *정직하게* 받는다 — 침묵도, **실패의 발명**도 아니다. <!-- applied: R5 honest-failure no-fabricated-self-blame / 2026-06-20 -->
93
+ 7. **역질문(마지막 질문) — 좋은 예 / 안티패턴:** 구체·역할 현실적 질문 준비(온보딩·담당 범위·성공 기준). 실전 분기는 §3.3.
94
+ 8. **역할별 기술 (트랙 A):** 시스템디자인 3단계+트레이드오프 / PM CIRCLES+성공지표 / 데이터 SQL+케이스 / 영업 파이프라인+방법론 / KR PT(논리·실행가능성)·토론(입장+근거 차분). 한국 사기업 일반직군·과제전형·코딩테스트는 §2.10·§2.11.
95
+ - **트랙(A) 안의 '실경험 vs 일반 원칙' 답변 단위 분리(§0.2 적용):** (a) '제가 실제로 한 진단·조치·결과'는 저장 앵커 1인칭 과거(없는 디테일은 §0.1 슬롯), (b) '일반 개념·베스트프랙티스·만약 ~라면'은 '일반적으로는 ~' / '입사 후 ~을 제안하겠습니다'로 분리. 한국 NCS 상황면접('이런 장애가 나면?')은 (b) 모드 — 가짜 과거 장애·가짜 메트릭(MTTD·재발 0건) 발명 금지, 접근 순서·트레이드오프만. 시스템디자인·코딩의 추론·복잡도·추정 수치도 '내가 과거에 쟀다'가 아니라 '현장에서 추정하는 방법'으로, 후속 'why/10x로 늘면?' probe엔 병목 이동을 원칙으로 답하되 내부 수치를 지어내지 않는다. <!-- applied: R7 P1-tech fact-vs-principle-split / 2026-06-20 -->
96
+ - **개념 나열 말고 '결정 프레임'으로(TECH_FRAMEWORK_TOO_GENERIC 직격):** 시스템설계·결제 코어 가정질문(멱등성·정합성·순서보장·재처리)에서 '멱등성이 중요합니다'처럼 개념을 나열하면 미달이다. 면접관이 듣고 싶은 건 *어떤 선택을 어떤 기준으로 하는가* — 각 개념을 **선택지 + 판단 기준 + 트레이드오프 한 쌍**으로 제시한다(도메인 원칙, '내가 했다'가 아님):
97
+ - **멱등성:** "재시도·중복이 불가피하므로 멱등키(주문/요청 단위 unique key)로 중복 실행을 막는 걸 기본으로 봅니다. *기준* = 외부 재시도 가능한 쓰기 경로인가, 부작용이 금전적인가."
98
+ - **정합성 vs 가용성:** "결제 확정·잔액 차감처럼 돈이 틀리면 안 되는 경로는 강한 정합성(동기·트랜잭션), 조회·집계는 결과적 정합성. *기준* = 데이터가 틀렸을 때 비용 > 지연 비용인가."
99
+ - **순서보장:** "전 이벤트가 아니라 *순서가 정말 필요한 핵심 이벤트만* 보장하고 나머지는 완화. *기준* = 순서 위반이 만드는 오류·그 빈도."
100
+ - **실패/재처리:** "분산 쓰기는 보상 트랜잭션·재처리 큐로 최종 일관성. *기준* = 부분 실패 시 사용자에게 보이는 상태를 어떻게 수렴시킬까."
101
+ - 이 프레임은 **원칙**이다 — 1인칭 사실로 바꾸지 마라(저장에 있으면 그 부분만 사실). 후속 'why this not that?' probe엔 위 *기준* 줄로 방어한다. <!-- applied: R2 tech-decision-frame payment-core / 2026-06-20 -->
102
+
103
+ ### 2.9 절차 수치는 내부 휴리스틱이다 (사용자 대면 비노출)
104
+ 다음은 **내부 작성용 soft 가이드**일 뿐 합격 게이트도, 사용자에게 보여줄 값도 아니다 — 키트 본문·답변 스크립트에 노출하지 마라.
105
+ - 스토리 개수(약 8~12개 인벤토리), 답변 길이(약 45~90초/답변), STAR 분량 비율(예: 50/25/15/10)은 대학 커리어센터 코칭 휴리스틱이지 1차 채점 연구가 아니다.
106
+ - 길이 비율 대신 **구체 결정 동사 개수·결정 방어 가능성**이 진짜 품질 신호다.
107
+ - 스토리 개수는 데이터가 허용하는 만큼만, 목표 숫자를 채우려 발명하지 않는다. MIT CAPD도 '여러 테마에 변주 가능한 3~5개 핵심 스토리'를 권하며 고정 비율을 강제하지 않는다. <!-- applied: R7 P4-proc-numbers internal-heuristics / 2026-06-20 -->
108
+
109
+ ### 2.10 1분 자기소개 (면접 첫 60초 설계)
110
+ 한국 사기업 면접의 사실상 표준 오프닝. 검증된 3단 구조로 설계한다.
111
+ - (1) **현재** = 직무 + 핵심 키워드(가장 짧게, 도입) → (2) **경험** = 활동 + 구체 성과/수치(가장 큰 비중, 하중 구간) → (3) **연결** = 지원동기 + 기여방안, 회사 이해를 자연스럽게(마무리). 최적 길이는 짧게(대략 45초~1분). *(시간 배분은 내부 가이드로만, 본문에 숫자 비노출 §2.9.)*
112
+ - 면접관이 듣고 싶은 5가지: ① 강점 정리·전달 능력(이력서와 일관) ② 직무 역량의 구체 표현 ③ 성과 수치화 ④ 기업 이해도(자연스러운 연결) ⑤ 시간 내 핵심 추리기.
113
+ - 금지 표현: 추상 형용사('열정적·책임감 있는'), 비유('스펀지/형광등 같은'), 부정어 시작, 직무무관 신상 나열, 과한 회사 찬사.
114
+ - 신입은 컬처핏+커뮤니케이션 신호, 경력은 직무경험+재현가능성을 1분에 압축.
115
+ - **발명 금지:** 수치·성과는 저장 데이터에 있는 것만 1인칭으로, 없으면 §0.1 형식대로 `[확인 필요: …]` 슬롯 + '면접 전 확인'으로 분리. <!-- applied: R7 pass2 one-minute-intro / 2026-06-20 -->
116
+
117
+ ### 2.11 과제전형·코딩테스트 (채용 단계 형식)
118
+ 한국 사기업(특히 IT·스타트업)에서 흔한 전형. 형식별 준비 키트를 분기한다.
119
+ - **과제전형:** 흐름은 '서류→과제→1차→2차' 또는 '1차(과제 논의)→2차'. 보통 수일 걸리는 실무형 과제(서비스 분석·기획안·디자인·데이터 분석)를 문서/슬라이드로 제출 후 면접에서 발표·방어. 키트 = (a) 산출물의 핵심 의사결정·트레이드오프를 발표용으로 압축, (b) 예상 추궁('왜 이 방법?'·'다른 대안?'·'데이터 근거?')에 답변 골격, (c) 직무 역량이 산출물 어디에서 드러나는지 명시.
120
+ - **코딩테스트:** 온라인 코테(면접관 없이 긴 시간, 복잡한 알고리즘)와 라이브코딩(영상통화 단시간)으로 구분. 라이브 평가 = 시간/공간 복잡도(빅오), 풀이 속도/완성도, 코드 가독성, 그리고 **커뮤니케이션** — 코드 작성 전에 접근을 면접관과 상의하고 피드백받는 협업적 진행이 시그널. 키트는 접근 내레이션 스크립트(명확화→접근+복잡도→코딩 중 설명→엣지/테스트). <!-- applied: R7 pass2 assignment-coding-test / 2026-06-20 -->
121
+
122
+ ### 2.12 직군별 빈출 질문 세트 (한국 사기업 일반직군)
123
+ 역할군 분기에 한국 사기업 일반직군의 빈출 질문·평가 포인트를 추가한다. **이 질문들은 '예상 질문 풀'일 뿐 — 답변은 §0.1 형식(앵커 1인칭 + 미앵커는 슬롯)으로 만들고, 도메인 개념은 '개념 설명/입사 후 제안'으로 분리. 풀을 채우려고 사례를 발명하지 마라.**
124
+ - **경영기획:** '당사 강점·약점?'·'미래 핵심 트렌드 3가지와 이유?'(전략적 사고·산업분석·경영감각).
125
+ - **인사:** '인사 직무 핵심 역량?'·'채용 프로세스 개선방안?'(인재관리 철학·조직문화 이해).
126
+ - **회계/재무:** '세무회계와 재무회계 차이?'·'당사 재무 보완점?'(회계지식·세무이해).
127
+ - **홍보:** '홍보와 마케팅 차이?'·'부정 기사 대응?'(미디어 이해·위기소통).
128
+ - **구매:** '협상 대표 경험?'(원가의식·협상·SCM 이해).
129
+ - **생산/품질:** '품질관리와 품질경영 차이?'·'불량 개선방안?'(문제해결·프로세스).
130
+ - **R&D:** '팀 프로젝트 본인 역할?'·'창의적 문제해결 경험?'(전공활용·협업).
131
+ - **마케팅:** '좋아하는 브랜드/서비스는? + 왜?'·'성공/실패 캠페인 사례'·'제한 예산 마케팅'·'브랜딩 vs 퍼포먼스 균형'·'경쟁사 분석법'(시장감각·창의성·고객이해).
132
+ - **영업:** '목표 초과달성 경험'·'영업관리 개념'(실적지향·고객만족·대인).
133
+ - 공통 평가축 = 기업이해도·직무적합성·성장잠재력·윤리의식. <!-- applied: R7 pass2 role-specific-question-bank / 2026-06-20 -->
134
+
135
+ ## 3. 한국 특수 (ko 로케일·한국 면접일 때만 — 인재상·압박면접·컬처핏·잡플래닛/Blind는 비한국 면접에 적용하지 않는다)
29
136
  실무 vs 임원 단계별 가중 조정. 인재상은 *본인 언어*로 패러프레이즈 + 개인 가치 연결(암기 금지). 압박면접 빈출(좋아하는 일 vs 잘하는 일·공백기·부당 지시·안 맞으면·중복 업무) 사전 대비. 커뮤니티 기출(잡플래닛/Blind)은 방향성 참고만(검증).
30
137
 
138
+ ### 3.1 실무면접 vs 임원면접 실제 흐름
139
+ 일반적 사기업 흐름: 서류 → 1차 실무면접 → 2차 임원(최종)면접.
140
+ - **1차 실무면접:** 면접관 = 실무진(현업 팀장/선임). 평가 = 이력서·포트폴리오 기반 허위이력 여부, 기술/직무 이해도, 성장가능성. 빈출 = 제품·사업·직무 노력·전문성, 프로젝트의 문제상황·해결과정·수치 결과(특히 개발은 본인 GitHub/블로그/포트폴리오를 면접관이 직접 짚어 질문 → 모르면 신뢰 상실).
141
+ - **2차 임원면접:** 면접관 = 임원+인사. 1차에서 실무를 봤으므로 자소서·인적사항·인성 중심. 초점이 '말 잘하는 사람'이 아니라 '신뢰를 줄 수 있는 사람'으로 전환 — 사람됨됨이, 태도·논리, 차분한 사고 전개, 회사 가치와 개인 목표의 연결. 임원 빈출 Best: ① 'OO기업에 관해 아는 것?' ② '우리 회사를 선택한 이유?' ③ 자기평가('1년/30대에 자기평가') ④ '입사 후 어떤 일을 하고 싶나'.
142
+ - 키트는 단계별로 가중치를 바꿔 생성(1차 = 직무 디테일·기술추궁, 2차 = 인재상·회사이해·인성 일관성). <!-- applied: R7 pass2 working-vs-exec-interview-flow / 2026-06-20 -->
143
+
144
+ ### 3.2 컬처핏(culture fit) 면접 (스타트업·IT 사기업)
145
+ 정의 = 직무역량을 넘어 조직 문화·가치관·일하는 방식의 부합도 평가('함께 일할 동료' 검증).
146
+ - 빈출 행동질문: ① '가장 어려웠던 협업 경험?' ② '의견 충돌 시 대처?' ③ '가장 큰 실패와 배운 것?' ④ '받은 피드백 중 기억에 남는 것과 개선 방법?'.
147
+ - 평가 포인트 = 회사 관심·애정, 소통/유연성(경청·조율·공동목표), 성장 의지, 건설적 갈등해결, 피드백 수용, 장기 기여 의지.
148
+ - 키트는 인재상(대기업식 인성·암기형) 트랙과 컬처핏(스타트업식 협업·행동 증거) 트랙을 구분 — 컬처핏은 '본인 언어로 가치관' + 협업·갈등·피드백 행동 스토리(저장 앵커)를 매핑.
149
+ - **트랙(B)는 '결손 목록'이 아니라 '사용 가능한 정직한 킷'이어야 한다(BEHAVIOR_TRACK_GAPS 직격):** 인성·컬처핏 질문(협업·갈등·실패·피드백·지원동기)의 답이 전부 빈 슬롯이면 준비 킷이 아니라 '못 채운 칸 목록'이다 — 발명은 여전히 §0.1대로 금지하되, 빈칸을 줄이는 두 단계를 *먼저* 거친다:
150
+ 1. **인접 앵커 우선 채굴:** 정확히 맞는 일화가 없어도 저장된 *모든* 다인(多人) 활동·개선 경험에서 끌어온다 — 협업/갈등은 '여러 사람이 함께 움직인 프로젝트'(팀·학회·동아리·아르바이트)에서, 실패/아쉬움은 '개선 전 초기 상태의 한계'(폐기율 8%였던 초기 등)에서, 피드백은 '조치를 바꾼 계기'에서 1인칭 사실로 앵커. 정확한 일화만 고집하다 전부 슬롯으로 비우지 마라 — 인접 실경험이 있으면 우선이다.
151
+ 2. **그래도 비면, 빈 슬롯이 아니라 '사용 가능한 골조 3종'으로:** ① **정직한 인정 한 줄**('정확히 그 갈등/실패 경험은 저장된 자료에 없습니다' — 경험질문일 때) ② **도메인 원칙 접근**('상황이 생긴다면 목표 합의 → 근거 비교 → 작은 검증 순서로' — 상황질문 모드) ③ **채움 슬롯 1개**(`[저장 데이터에 없음 — 면접 전 본인 경험으로 채우기: 협업/갈등 일화 1개(상황·내 행동·결과)]`). N개 빈칸 나열(X) vs 인정+원칙+채움슬롯(O).
152
+ - **지원동기도 같다:** 회사 고유 사실(제품·뉴스·경쟁사)이 저장에 없으면 '평판·시스템·비전'을 단정해 지어내지 말고(환각), 공고에 명시된 사실 + '면접 전 회사 리서치로 채울 지원동기 1문장' 슬롯으로. <!-- applied: R2 behavior-track usable-kit-not-deficit-list / 2026-06-20 · R7 pass2 culture-fit / 2026-06-20 -->
153
+
154
+ ### 3.3 역질문 실전 (좋은 예 / 피해야 할 질문)
155
+ - **좋은 역질문(관심·적극성·직무이해 신호):** '이 직무를 통해 회사의 어떤 목표 달성에 기여할 수 있을까요?', '이 팀에서 필요로 하는 핵심 역량은?', '제 역량이 조직에서 어떻게 발휘될지', '입사 초기에 제게 기대되는 성공 기준이나 온보딩은?', 업무 관련 회사 최신 이슈의 방향성. **(역질문 *문구*에도 §0.1 질문-텍스트 발명 금지 — '첫 3~6개월'처럼 임의 기간이나 회사 고유 사실을 박지 말고 '입사 초기'처럼 일반 표현으로 묻는다.)**
156
+ - **피해야 할 역질문(레드플래그):** 복리후생/연차/야근만 묻기(처우는 합격 후 조율), 체계를 의심하는 질문('이 업무가 정말 필요한가요?'), 즉답 피드백/합격여부 요구('제가 적합한가요?'), 사전준비 부족 신호('뭐 하는 회사예요?').
157
+ - 키트는 좋은 역질문 몇 개 + '피할 질문' 경고 라인을 함께 출력한다. <!-- applied: R7 pass2 reverse-question-anti-patterns / 2026-06-20 -->
158
+
159
+ ### 3.4 압박면접 빈출 질문 (실제 문구·평가의도)
160
+ 현 빈출 목록에 더해 실제 문구·평가의도와 함께 보강한다. 각 질문은 '평가 의도 + 차분 대응 골격' 1쌍으로. **공통 발명 가드(§0.1):** 압박 답변에 회사 평판·내부 시스템·타사 비교 같은 *미저장 사실*을 끌어와 방어하지 마라 — 공고 사실 + 저장 경험 + 도메인 원칙으로만 차분히.
161
+ - ① '다른 회사에도 지원했나요? 합격하면 어떻게?'(지원 우선순위·진정성). **발명 차단:** 타사 지원 여부·1순위 여부는 *후보 본인만 아는 개인 상태*다 — 저장에 없으면 '지원했습니다, 여기가 1순위입니다'라고 단정하지 마라(측정된 R5 발명). 단정 대신 **채움형**: 「(타사 지원은 솔직히) + [면접 전 본인 결정으로 채우기: 우선순위와 근거] + 직무·관심사가 공고와 맞는다는 *공고 앵커* 한 줄」.
162
+ - ② '지원자 역량은 우리 회사에 필요 없을 것 같은데요?'(자신감·방어적 태도 — 감정 없이 강점-직무 연결을 논리적으로). 강점은 저장 앵커만, 우려 인정 한 박자 후 연결.
163
+ - ③ '이전 실패 경험과 배운 것?'(자기반성·책임·학습). 실패 일화는 step6대로 저장 앵커 아니면 슬롯 — 압박 맥락이라고 그럴듯한 실패담을 지어내지 마라.
164
+ - ④ '그건 틀린 생각 아닌가요?'(근거 없이 물러서는지·비판 수용 — 방어 회피, 근거+상대 존중).
165
+ - ⑤ '상사가 부당한 지시를 내린다면?'(윤리·판단 — 상황질문이므로 접근법 모드: 사실확인→대응→조직절차, 가짜 과거 사례 X).
166
+ - 공통 화법 = 평정심, 'Yes...But' 조목조목, 감정반응·말 끊기 금지. <!-- applied: R7 pass2 stress-interview-questions / 2026-06-20 · R2 R5-personal-status-fillin / 2026-06-20 -->
167
+
31
168
  ## 4. 출력 계약 (사용자 대면)
32
- - **면접 준비 킷:** 예상질문 + 모범 답변 골격 + 질문별 루브릭 라인 + 꼬리질문/준비답변
169
+ 출력 언어 = 사용자의 대화 언어. §3(한국 특수)은 한국 면접일 때만 적용.
170
+
171
+ **제출용 산출물 = 정직한 골격(+슬롯)이다(§0.1).** 매끄럽게 완성된 가짜 답변이 아니라, 저장 사실로 만든 골격에 미앵커 칸이 `[확인 필요: …]` / `[저장 데이터에 없음 — 면접 전 본인 경험으로 채우기: …]`로 **보이는 채** 제출된다. 이 슬롯은 결함이 아니라 설계다.
172
+
173
+ **① 제출 블록(면접 준비 킷 본문) — 먼저 출력:**
174
+ - **면접 준비 킷:** 예상질문 + 답변 골격(저장 사실 앵커 + 슬롯) + 꼬리질문/준비답변. 트랙(A)기술/실무 와 (B)인성·컬처핏을 구분해 묶는다.
33
175
  - **스토리×역량 매트릭스** · **역질문 목록** · **난질문 대비**(실패·약점·압박)
176
+ - (해당 시) 1분 자기소개 골격 · 단계별(실무/임원) 대비 · 컬처핏/과제·코테 대비
177
+
178
+ **② 검토 메모 — 제출 블록 뒤 별도 섹션으로:**
34
179
  - 결론 / 근거(저장 경험 인용) / 리스크·한계 / 신뢰도 / 다음 단계
35
- 숨길 것: 내부 루브릭·도구명·EOP. 저장=`save_interview_prep`(document_passed↑).
180
+ - 발명 금지·미싱인포 질문 등 안전항목은 생략하지 않는다(저장에 없는 사실은 '면접 전 확인'으로 분리·집계).
181
+ - **신뢰도는 사실대로 적는다(§0.1 자가검증 거짓 도장 금지):** 본문에 미앵커 디테일이 남았는데 '100% 저장 데이터 앵커'라 적지 마라 — 슬롯·원칙·앵커 비중을 사실대로 적고, 어긋나면 본문을 고치거나 신뢰도를 낮춘다.
182
+
183
+ **⚠️ 첫 글자 가드 — 작업 해석 메타로 시작하지 마라(측정된 OUTPUT_CONTRACT 위반 직격):** 측정에서 산출물이 "요청을 검토했습니다. 이 과제는 … 발명 차단 형식으로 … 생성하는 작업입니다. 바로 작성하겠습니다."로 *시작*해 출력 계약을 위반했다. **제출 블록의 *맨 처음 출력*은 면접 준비 킷의 제목(예: "# OO페이 백엔드 엔지니어 — 면접 준비 킷")이어야 한다.** 그 앞에 작업 해석·자기 다짐·방법론 선언을 단 한 줄도 붙이지 마라. 슬롯이 결함이 아니라 설계라는 *사용자용 안내* 한 줄은 허용되지만, 제목 *뒤* 인용구로 두고 'EOP/발명 차단 형식/출력 계약' 같은 내부 어휘 없이 평이하게 쓴다.
184
+
185
+ **출력 가드(반드시 준수):** 산출물만 출력하라. 작성 과정·작업 해석 서두·루브릭·EOP 절번호·역량 enum·트랙 라벨(A/B)·도구명·파일경로·프레임워크·내부 분류 어휘·`## DONE`·절차 수치를 산출물 본문에 노출하지 마라(질문은 자연스러운 한국어 그룹 제목으로 묶고 'category=technical' 같은 표기 금지). 역량은 평이한 한국어로(예: 'INITIATIVE'→주도성). 슬롯 표기(`[확인 필요: …]`/`[… 면접 전 본인 경험으로 채우기: …]`)는 본문에 그대로 둔다(내부 어휘가 아니라 사용자용 안내). 검토 메모는 제출 블록 **뒤** 별도 섹션으로만. 저장은 적절한 저장 도구로(document_passed↑에서만 해금). <!-- applied: R7 P1-output-contract reorder+no-leak / 2026-06-20 · R3 first-line-no-task-meta / 2026-06-20 -->
186
+
187
+ ## 5. 자가검증 루브릭 (research §리뷰어 — **R1·R2·R5·R9·R10 중 FAIL이면 전체 FAIL**)
188
+ R1 증거기반·비제너릭(후보의 실제 스토리/숫자; **도메인 원칙이 답의 척추를 대체하지 않고 짧은 꼬리로만 쓰였는가 — "DB 먼저 캐시 나중"류 교과서 일반론으로 핵심 답을 메우면 미달**) / R2 역량·인재상 매핑(매트릭스) / R3 STAR 품질(A 우세·1인칭·R 정량+교훈; '조치 나열'에 그치지 않고 의사결정/순서/판단기준/교훈을 사실 또는 슬롯·원칙으로 갖췄는가; **Action을 한 줄로 과압축하지 않고 단계로 분해해 각 단계를 사실/슬롯/원칙으로 태깅했는가 — '인덱스·쿼리·캐시 적용했습니다' 한 줄은 미달**) / R4 꼬리질문 깊이(결정 방어·back-pocket 디테일 + **핵심/대표 사례·적합성·주도성 질문마다 2~3개 — 한 핵심 질문이라도 꼬리 1개면 미달**, 근거·대안·리스크·반대의견 4축을 골고루) / R5 난질문 처리(실패·약점=인정+성장, **실패 일화는 저장 앵커 아니면 슬롯**, **정직한 실패 스크립트의 '인정 한 줄'이 미앵커 자기책임/실패 원인을 지어내지 않았는가 — 인정 한 줄은 '사례를 정리 못 했다'는 메타 사실까지만, '~를 더 일찍 못 잡았다'식 미앵커 자기책임 0건**, 압박 사전스크립트, **타사 지원·1순위 등 개인 상태는 단정 말고 채움형**, 레드플래그 없음) / R6 역할별 기술 = **개념 나열이 아니라 '선택지+판단 기준+트레이드오프' 결정 프레임**(시스템설계·결제 코어 가정질문이 멱등성·정합성·순서보장을 *어떤 기준으로 택하는지*까지) / R7 역질문(좋은 예+피할 질문 경고) / R8 슬롭·환각 없음 / R9 **가상질문에 가짜 과거 미발명 + 사고 과정·의사결정 이유·내부 지표를 저장 데이터에 앵커**(미앵커는 슬롯/'면접 전 확인'/'일반 원칙'으로 분리) / R10 **발명차단 형식(§0.1) 준수**: ① 모든 1인칭 과거 진술이 저장 사실에 매핑되는가(매핑 안 되면 슬롯 — 산문 발명 0건) ② 미앵커 디테일이 산문이 아니라 명시 슬롯(`[확인 필요]`/`[저장 데이터에 없음…]`)으로 남았는가 ③ 트랙(A/B) 판정·분기가 맞는가(가정질문에 가짜 과거 0건) ④ **자가검증 거짓 도장 0건**(본문에 미앵커가 남았는데 '100% 앵커'라 적지 않았는가) ⑤ **트랙(B)가 결손 목록이 아니라 사용 가능한 킷인가**(빈 슬롯 나열 대신 인접 앵커 채굴 + 인정+원칙+채움슬롯) ⑥ **내가 작성한 질문 텍스트(꼬리·역·예상)에 저장·공고·후보 스택 밖의 고유명사·제품명·임의 수치(Read Replica·SQS·'10배'·'3~6개월')를 끌어오지 않았는가 — 답뿐 아니라 질문 문구의 발명도 FAIL** ⑦ **제출물이 작업 해석/방법론 선언 서두 없이 킷 제목으로 시작하는가**. 괄호 면피 주석으로 가짜 본문을 정당화했으면 FAIL.
189
+ **통과 = R1·R2·R5·R9·R10 PASS + 나머지 양호 + 모든 1인칭 과거 진술이 저장 데이터에 앵커(아니면 슬롯).** <!-- applied: R2 rubric R3-nonlist·R4-density·R5-personalstatus·R6-decisionframe·R10-selfaudit+behaviorkit / 2026-06-20 · R3 rubric R1-principle-tail·R3-action-decompose·R4-no-exception·R5-no-fab-selfblame·R10-question-text+first-line / 2026-06-20 -->
190
+
191
+ ## 6. 출처 / Provenance
192
+ > tier 등급: **[1차]** = 권위 출처(대학 커리어센터·HR 기관) · **[2차]** = 평판 매체/플랫폼 공식 콘텐츠 · **[참고]** = 일화(자기보고·미검증).
193
+
194
+ ### 6.1 권위 출처 (pass1)
195
+ - [1차] Northwestern University HR — Behavioral Based Interviewing (과거 실제 사례 요구·구체 사례 못 대면 레드플래그): https://hr.northwestern.edu/for-managers/hiring/hiring-process/interviewing-candidates/behavioral-based-interviewing.html
196
+ - [1차] MIT CAPD — Interviewing (mock interview, authenticity / subject-matter expert): https://capd.mit.edu/resources/interviewing/
197
+ - [1차] MIT CAPD — Interview Primer (STAR 4요소; 비율 강제 아님; prepare 3-5 adaptable stories): https://capd.mit.edu/resources/interview-primer/
198
+ - [1차] Yale Office of Career Strategy — The Behavioral Interview: https://ocs.yale.edu/channels/the-behavioral-interview/
199
+ - [1차] Northwestern Career Advancement — The STAR Approach (STAR 분량 비율은 코칭 휴리스틱): https://www.northwestern.edu/careers/jobs-internships/interviewing/the-star-approach.html
200
+ - [2차] Performance Reviews Software — behavioral vs situational / 'I would' vs 'I did' red flag: https://www.performancereviewssoftware.com/interview-red-flags/
201
+ - [2차] JobKorea — NCS 면접, STAR 구조를 기억하라(경험면접 과거 경험 STAR화): https://www.jobkorea.co.kr/goodjob/tip/view?News_No=13224
202
+ - [2차] SEN/NCS PLUS — NCS 면접 유형(경험·상황·PT·토론) 정의: https://www.sentv.co.kr/news/view/574815
203
+ - [2차] WayUp — Sample Responses for When You Don't Know the Answer (acknowledge→redirect→approach): https://www.wayup.com/guide/response-when-you-dont-know-the-answer-to-an-interview-question/
204
+ - [2차] JobKorea — 면접 시 모르는 질문을 받았을 때(솔직 인정 + 유사 경험 재정의): https://www.jobkorea.co.kr/goodjob/tip/view?News_No=16235&schCtgr=120002
205
+ - [2차] CaseBasix — Hidden Criteria Behind Behavioral Interview Questions (결정 방어·trade-off·adjustment probe): https://www.casebasix.com/pages/hidden-criteria-behavioral-interview-questions
206
+ - [2차] Elevatus — Decision-Making Interview Questions ('walk me through a key decision; what factors'): https://www.elevatus.io/template/decision-making-interview-questions/
207
+ - [2차] Staffing Advisors — Conducting Interviews That Predict Impact (situation→decision 점프 금지): https://www.staffingadvisors.com/blog/conducting-interviews-that-actually-predict-impact/
208
+ - [2차] Exponent — Amazon Behavioral Interview (3-5 follow-ups; back-pocket details): https://www.tryexponent.com/blog/how-to-nail-amazons-behavioral-interview-questions
209
+ - [2차] Exponent — System Design Interview Guide (추론·트레이드오프; 10x 시 병목 이동): https://www.tryexponent.com/blog/system-design-interview-guide
210
+ - [참고] Linkareer 커뮤니티 — 면접 모르는 질문 대처(일화·자기보고·미검증): https://community.linkareer.com/mentoring/5706260
36
211
 
37
- ## 5. 자가검증 루브릭 (research §리뷰어 — **R1·R2·R5 중 FAIL이면 전체 FAIL**)
38
- R1 증거기반·비제너릭(후보의 실제 스토리/숫자) / R2 역량·인재상 매핑(매트릭스) / R3 STAR 품질(A 우세·1인칭·R 정량+교훈) / R4 꼬리질문 깊이(질문당 2~3) / R5 난질문 처리(실패·약점=인정+성장, 압박 사전스크립트, 레드플래그 없음) / R6 역할별 기술 프레임+결정 강조 / R7 역질문 3~5 / R8 슬롭·환각 없음.
39
- **통과 = R1·R2·R5 PASS + 나머지 양호 + 모든 답변이 저장 데이터에 앵커.**
212
+ ### 6.2 한국 사기업 실전 (pass2)
213
+ - [2차] 잡코리아 — 1분 자기소개, 면접관은 뭘 듣고 싶을까요? 5가지 핵심: https://www.jobkorea.co.kr/goodjob/tip/view?News_No=15062
214
+ - [2차] 링커리어 커뮤니티 — 면접 1분 자기소개 구성 템플릿·합격 예시·분량: https://community.linkareer.com/employment_data/4406080
215
+ - [2차] 인크루트 — 임원면접 질문 Best10으로 준비하기: https://news.incruit.com/news/newsview.asp?newsno=435266
216
+ - [2차] 링커리어 커뮤니티 — 임원 면접 질문 유형별 정리·답변 포인트: https://community.linkareer.com/employment_data/4195156
217
+ - [2차] 리멤버 커뮤니티 — 2차(임원)면접과 1차면접의 차이: https://community.rememberapp.co.kr/post/64578
218
+ - [2차] 브런치 인사팀(insateam) — 지원 직무별 준비해야 할 필수 면접 질문 모음: https://brunch.co.kr/@insateam/190
219
+ - [2차] 링커리어 커뮤니티 — 마케팅 직무 면접 예상 질문 50개: https://community.linkareer.com/jayuu/2757939
220
+ - [2차] 원티드 — 개발자 면접 완전 정복 (1) 코딩 테스트 편: https://www.wanted.co.kr/events/22_11_s01_b15
221
+ - [2차] 원티드 블로그 — 그럼에도 컬처핏 면접이 꼭 필요한 이유: https://blog.wantedlab.com/hr/trend/culture-fit-interview
222
+ - [2차] flex 공식 블로그 — 컬처핏 면접: 어떻게 평가해야 적합한 인재를 만날까: https://flex.team/blog/2025/04/02/culture-fit-interview-prapare/
223
+ - [2차] 인크루트 — 면접 마지막 질문 좋은 예 vs 나쁜 예: https://news.incruit.com/news/newsview.asp?newsno=436499
224
+ - [2차] 링커리어 커뮤니티 — 면접 마지막 질문으로 임팩트 주는 법: https://community.linkareer.com/employment_data/4858253
225
+ - [2차] 하이잡 — 압박면접 질문 예시 5가지와 답변 전략·대처법: https://www.haijob.co.kr/blog/stress-interview-questions-answers-tips/
226
+ - [참고] Superookie — 채용 과제를 하는 마음(스타트업 채용 절차 후기, 일화·자기보고·미검증): https://www.superookie.com/contents/5f28f1f68b129f4017146d92
227
+ - [참고] Superookie — 탈압박 면접 비법과 주요 질문 대응법(일화·자기보고·미검증): https://www.superookie.com/contents/5e1beae88b129f585b497cb9
@@ -6,14 +6,15 @@
6
6
 
7
7
  ## 0. 전문가 프레임
8
8
  - **스크랩 말고 디코드.** 필수 vs 우대는 소프트 위계이며, 우대가 *팀이 진짜 원하는 것*을 더 드러내기도 한다.
9
- - **우선순위 = 위치 + 반복**(상단·교차 반복 = 입장료). 핵심 요건 70~80% 매치면 충분.
9
+ - **우선순위 = 위치 + 반복**(상단·교차 반복 = 입장료). 커버리지/충족 %는 맥락 신호일 뿐 합격 게이트가 아니다 — 권장 게이트는 하드요건(knockout) 충족이며, 정밀 적합 판정은 fit-matching에 위임한다('70~80% 매치면 충분' 같은 임계값으로 통과 단정 금지). <!-- applied: r7-job-analysis / R7 cross-vendor PASS job-s1=84 (FIXES.md P5 임계값 단일화) / 2026-06-20 -->
10
10
  - **시니어리티는 동사에 인코딩**(총괄·주도·owns vs 보조·지원·assists), 직함과 교차확인.
11
11
  - **행간 신호**(팀 단계·긴급도·스코프 모호·문화 톤)와 **레드플래그**(모호 동사만, "멀티플레이어", self-starter+무지원, 급여밴드/팀정보 없음, **열정페이**)를 *트리거 문구 인용*과 함께.
12
- - **증거(JD 인용)와 추론(라벨링)을 분리** — 추론을 사실로 제시하지 않는다.
12
+ - **증거(JD 인용)와 추론(라벨링)을 분리** — 추론을 사실로 제시하지 않는다. **부재(없는 것)도 분리**: (a) 텍스트로 직접 관찰되는 미기재·미공개(예: 급여 "면접 후 협의", 근무지 "추후 안내")는 관찰 사실로 기술, (b) **추론된 부재**(ATS 미사용·1인 전담·온보딩 없음 등)는 반드시 "추정 — 공고에 언급 없음" 라벨 + 관찰 근거 + 불확실성을 붙인다(부재-추론만 의무 라벨).
13
+ - **공고에 없는 고유명사 발명 금지.** 공고에 명시되지 않은 플랫폼·ATS·도구명을 예시로라도 단정하지 마라 — 생략하거나 일반 범주어("채용 플랫폼"·"지원서 관리 시스템")로만 칭한다. <!-- applied: r7-job-analysis / R7 cross-vendor PASS job-s1=84 (부재 분리 P3 동반) / 2026-06-20 -->
13
14
  - **확신도 분리:** 원문 인용=확정, 그 외는 '추정'이며 확신도를 낮춰 표현한다(예: "이메일 접수형"은 확정, "수시 채용"은 낮은 확신의 추론). **외부 분류 코드(NCS 번호 등)는 데이터로 확정될 때만** 쓰고 아니면 계열명만(코드 발명 금지). 산출물에 'EOP'·내부 기준명을 노출하지 않는다.
14
15
 
15
16
  ## 1. 입력 수집
16
- 공고 텍스트(`get_application_context`의 job, 또는 사용자가 준 경로를 `read_document`/본문 붙여넣기). 회사·플랫폼 맥락.
17
+ 공고 텍스트(`get_application_context`의 job, 또는 사용자가 준 경로를 `read_document`/본문 붙여넣기). **공고가 URL(링크)이면 CareerMate가 가져오지 않으니, 네 브라우징·웹 도구로 본문을 직접 읽어 분석하고 `save_job_posting`에 텍스트로 저장한다(웹 도구가 없으면 사용자에게 본문을 붙여넣어 달라고 요청).** 회사·플랫폼 맥락.
17
18
 
18
19
  ## 2. 분석 절차
19
20
  1. **세그먼트:** 직무내용 / 자격요건(필수) / 우대사항 / 처우·복지 / 회사소개.
@@ -25,10 +26,11 @@
25
26
  7. **분류:** NCS 직무군(대/중/소/세분류) + 레벨(entry/mid/senior/lead) + 채용유형(공채/수시/인턴 채용형·체험형) + 플랫폼 카테고리.
26
27
  8. **증거 vs 추론 분리.**
27
28
 
28
- ## 3. 한국 특수
29
+ ## 3. 한국 특수 (ko 로케일·한국 공고일 때만 — NCS 직무군·공채/수시·채용절차법 등은 비한국 공고에 적용하지 않는다)
29
30
  우대 = 가점이나 반복·강조·시니어 역할이면 *사실상 필수*로 격상. NCS 직무기술서 = 공공 표준 JD(능력단위). 공채(연 1~2회 배치) vs 수시(롤링·현재 지배적). **열정페이**(경험 포장 저임금)는 명시 플래그. 직무무관 정보(나이·사진·가족 등)를 요구하면 채용절차법 위반 가능으로 플래그.
30
31
 
31
32
  ## 4. 출력 계약 (사용자 대면)
33
+ 출력 언어 = 사용자의 대화 언어. §3(한국 특수)·NCS 분류는 한국 공고일 때만 적용(비한국 공고는 그 시장 기준).
32
34
  - **핵심 요약**(직무·레벨·채용유형 한눈에)
33
35
  - **필수 vs 우대 분리 표** + 우선순위
34
36
  - **시니어리티·팀 단계 추론**("추정"으로 명시, 증거 인용)
@@ -15,23 +15,24 @@
15
15
 
16
16
  ## 2. 추출 절차
17
17
  1. **원문 인덱싱**(verbatim span 근거 유지).
18
- 2. **스키마 추출**(JSON Resume: basics/work/education/skills/projects), 각 필드 = 원문 span.
18
+ 2. **스키마 추출**(JSON Resume: basics/work/education/skills/projects), 각 필드 = 원문 span. 표준에 없는 확장 필드(예: isCurrent·impact)를 더하면 '표준 JSON Resume 준수'로 단정하지 말고 'JSON Resume 기반(일부 필드 확장: 확장 필드 명시)'으로 정직히 표기한다.
19
19
  3. **volatile 필드만 정규화:** 날짜 → ISO 8601(현재 역할 endDate null), 조직명 접미("(주)"/"Inc.") 노이즈 제거; 직함은 통제 매핑 요청 없으면 원형 유지.
20
20
  4. **근무항목별 각 불릿을 responsibility | achievement 2분류로 태깅.** achievement는 원문에 **명시적 outcome**(완료된 결과·지표·전후 변화·수상/선정/달성)이 있을 때만(예: "처리 시간 2시간→20분 단축", "신규 거래처 전환 완료", "전사 평가 1위 선정"); 수치·결과 없이 수행/담당/참여/진행/개선만 서술된 불릿(예: "고객 응대 프로세스 개선 작업 진행")은 **responsibility**. 정량 임팩트는 명시될 때만 (metric, value, delta). <!-- applied: profile-duty / 2026-06-18 / reconfirm 4/4 (codex·opus·sonnet·haiku) -->
21
21
  5. **모호성 → 질문**(날짜 충돌/중복·직함 과장·공백기·숫자 단위·기준 미상·FT vs 프리랜스·숙련도 미제공): 옵션 제시, 사실로 자동 해소 금지.
22
22
  6. **스킬 택소노미:** dedupe + 그룹(level은 명시될 때만); NCS/플랫폼 통제 어휘에 매핑하되 **원 토큰 유지**.
23
23
  7. **충실도 노트:** 폐기/불확실 항목을 명시 나열.
24
24
 
25
- ## 3. 한국 특수
25
+ ## 3. 한국 특수 (ko 로케일·한국 문서일 때만)
26
26
  경력기술서(실행·성과)와 자소서(동기·배움)를 **분리** 추출. 정량 불가 역할은 *날조 대신* 역량 키워드. "면접에서 설명 가능한 수치만". 날짜/직함 변이(재직중·음/양력 혼재)는 ISO 정규화하되 원형 보존.
27
27
 
28
28
  ## 4. 출력 계약 (사용자 대면)
29
+ 출력 언어 = 사용자의 대화 언어(추출 span 원문 보존). §3(한국 특수)은 한국 문서일 때만 적용.
29
30
  - **구조화 결과**(스키마 형태, 사람이 읽기 쉬운 요약 동반)
30
31
  - **책임 vs 성과 태깅** · **모호성 질문 목록**(확인 필요)
31
32
  - **충실도 노트**(무엇을 폐기/확인했는지) · **신뢰도**
32
- - **발명 0 보장** 명시 — 사용자 확인 후 저장(`add_resume`/프로필 갱신).
33
+ - 발명 없이 추출했음은 **자기 도장이 아니라 충실도 노트(폐기/확인 항목)로** 보여준다 — '발명 0 보장' 같은 자기평가·보장 표현은 금지(검증은 사용자·평가자 몫). 사용자 확인 후 저장(`add_resume`/프로필 갱신).
33
34
  숨길 것: 내부 도구명·EOP.
34
35
 
35
36
  ## 5. 자가검증 루브릭 (research §B 루브릭)
36
- **PASS:** 추출된 모든 사실(고용주·직함·날짜·지표·스킬)이 verbatim span에 추적 가능 · **발명 0** / 책임 vs 성과 정확 태깅 / 날짜 ISO 정규화 + 현재 역할 처리 / 모호성을 사실 해소 대신 질문으로 / 스키마 준수 / 정량 임팩트는 명시될 때만.
37
+ **PASS:** 추출된 모든 사실(고용주·직함·날짜·지표·스킬)이 verbatim span에 추적 가능 · **발명 0** / 책임 vs 성과 정확 태깅 / 날짜 ISO 정규화 + 현재 역할 처리 / 모호성을 사실 해소 대신 질문으로 / 스키마 준수(표준 JSON Resume이거나, 확장 시 '기반(일부 확장)'으로 정직 표기) / 정량 임팩트는 명시될 때만 / '발명 0 보장' 등 자기 도장 0건(무발명은 충실도 노트로 보여줌).
37
38
  **FAIL:** 고용주·날짜·숫자·스킬 환각 / duty를 가짜 성과로 격상 / 날짜 오정규화·발명 / 모호성을 미검증 사실로 붕괴 / 원문 항목 누락·왜곡 / 구조·스키마 오류.
@@ -31,7 +31,7 @@
31
31
  - 약점·실패·갈등 문항은 정량 성과가 아니라 **성찰·개선 행동**으로 답하라(이 문항에 'quantified ≥2'를 강요하지 마라).
32
32
  - 글자수 제한을 적용할 때 **count_mode(공백포함/공백제외/byte)** 를 먼저 확인하라.
33
33
  - 클로징에 명확한 다음 단계(면접 요청/연락 가능 시점)를 한 문장으로 넣어라(로케일상 가능할 때).
34
- - 저장 전 lint(루브릭 자동 검사)를 통과시킨 뒤 save_cover_letter_version으로 보관하라.
34
+ - 저장 전 `validate_cover_letter`(현재 구현: 수치 출처·문체 신호 자동 검사 / 글자수 게이트·키워드 커버리지는 Phase B 미구현 — 연결 AI 수동)를 적용한 뒤 save_cover_letter_version으로 보관하라.
35
35
  - 초안은 get_writing_style_guide의 문체를 적용해 사람이 쓴 듯 자연스럽게 다듬어라.
36
36
 
37
37
  ### Don't
@@ -40,6 +40,7 @@
40
40
  - '성실한·책임감·열정·소통을 잘하는 / 꼼꼼한·끈기있는·헌신적인·주도적인 / hard-working·team player·detail-oriented·motivated·proactive·dedicated·diligent·people person' 같은 **증거 없는 평가형 형용사**나 그 동의어로 자신을 묘사하지 마라.
41
41
  - '~라고 생각합니다', '많은 것을 배웠습니다', '~을 통해 성장했습니다', '귀사' 같은 증거 없는 자기서술 종결구문을 남발하지 마라.
42
42
  - 이력서 불릿을 문장으로 바꿔 그대로 반복하지 마라.
43
+ - **다른 공고에 낸 자소서를 회사명·일부 토큰만 바꿔 재사용하지 마라(자기복제).** 사실·수치·보이스는 공고 간 일관되게 두되(억지 변형 금지), 직무 적합 앵글·도입·산문은 공고마다 새로 짠다. 자기복제는 C1 위반이고, 한국은 표절검사(무하유·Copy Killer)·AI 탐지에서 자기표절로 걸린다.
43
44
  - 회사명을 바꿔도 말이 되는 제너릭 지원동기를 쓰지 마라.
44
45
  - 한 통/한 문항에 5~6개 경험을 얕게 나열하지 마라(1~2개 깊게).
45
46
  - '규모'(담당 규모·팀 인원·연도)를 '성과'로 위장하지 마라 — 본인 행동의 변화량이 결과다.
@@ -65,7 +66,7 @@
65
66
 
66
67
  ## 3. 검증 루브릭 (연결된 AI가 산출물을 이 기준으로 자가검증)
67
68
 
68
- 각 항목의 `measure.type`을 정직하게 표기한다 — **`regex`/`count`/`ratio`** 는 LLM 없이 lint로 자동 검사 가능, **`ai-judge`** 는 연결 AI의 의미 판단이 필요(정규식 불가). lint_cover_letter는 `regex`/`count`/`ratio` 항목만 자동 채점하고, `ai-judge` 항목은 연결 AI에게 위임 표시한다.
69
+ 각 항목의 `measure.type`을 정직하게 표기한다 — **`regex`/`count`/`ratio`** 는 LLM 없이 lint로 자동 검사 가능, **`ai-judge`** 는 연결 AI의 의미 판단이 필요(정규식 불가). 현재 실재하는 정적 검사기는 `validate_cover_letter`(→lintArtifact)이며 **수치 출처(fabricated 차단) + 문체 신호**만 자동 채점한다 — 글자수 상·하한 게이트·키워드 커버리지 카운트는 **Phase B 미구현**이라 연결 AI가 수동(advisory) 적용한다. `ai-judge` 항목은 연결 AI에게 위임한다. (문서의 `lint_cover_letter`는 Phase B 도구 아이디어 명칭이다.)
69
70
 
70
71
  | ID | 검사 항목 | 합격 기준 | 측정 방법(type · LLM 없이 셀 수 있게) |
71
72
  |----|-----------|-----------|--------------------------------|
@@ -77,8 +78,8 @@
77
78
  | R6 | 회사 고유성 | 회사명/제품/미션 고유명사 ≥2회 + 비종속 검사 | `count`(부분 자동) + `ai-judge`(완전 판정) — 토큰 등장 횟수 ≥2는 카운트 가능. '회사명 placeholder 치환 시 어색해지는 문장 ≥1'은 **연결 AI 판정(위임)** |
78
79
  | R7 | 이력서 비반복 | locale별 임계 이하 | `ratio` — 영문: 단어 5-gram 중복 ≤20%. **한국어: 어절 n-gram은 교착어 특성상 부정확 → 임계 신뢰 낮음, 의미 중복은 `ai-judge` 보조 필요(한계 명시)** |
79
80
  | R8 | STAR 행동+성과 동반 | 행동동사 단락 중 결과 절 동반 ≥1, 단 '규모≠성과' | `regex`(약) + `ai-judge` — 행동동사+결과신호 동시출현은 카운트되나 '우연 동시출현·규모 수치'를 구분하려면 연결 AI가 'R이 본인 행동의 변화량인가' 판정 |
80
- | R9 | 분량/글자수 | locale·count_mode별 상·하한 이내 | `count` — 영문 word_count ≤400. 한국: char_count가 지정 limit 이내 **그리고 하한 이상**. **count_mode(with_space\|no_space\|byte) 입력 필수**(미지정 시 fail-safe로 가장 빡빡한 기준 사용) |
81
- | R10 | 공고 요구 매핑 | 공고 키워드 ≥3개가 증거와 함께 등장 | `count`+`ai-judge` — 토큰 매치 카운트는 가능하나 '증거 동반' 판정은 의미 판단. **`job.requirements`/`keywords`가 비면 skip(N/A)** — 데이터 부재 시 통과/실패 강제 금지 |
81
+ | R9 | 분량/글자수 | locale·count_mode별 상·하한 이내 | `count` — 영문 word_count ≤400. 한국: char_count가 지정 limit 이내 **그리고 하한 이상**. **count_mode(with_space\|no_space\|byte) 입력 필수**(미지정 시 fail-safe로 가장 빡빡한 기준 사용). **⚠ 현재 validate_cover_letter는 charCount 계산만 하고 max/min 게이트는 Phase B 미구현 — 글자수 상·하한 판정은 연결 AI 수동(advisory).** |
82
+ | R10 | 공고 요구 매핑 | 공고 키워드 ≥3개가 증거와 함께 등장 | `ai-judge`(+count는 설계) — '증거 동반' 판정은 의미 판단이라 위임. **⚠ 키워드 토큰 매치 카운트는 현재 validate_cover_letter에 미구현(Phase B) — 키워드 커버리지·증거 동반 모두 연결 AI 수동.** **`job.requirements`/`keywords`가 비면 skip(N/A)** — 데이터 부재 시 통과/실패 강제 금지 |
82
83
  | R11 | 블라인드 가드레일 | 직무무관 개인정보 패턴 0건 | `regex` — `/(\d{2,3}\s?세|남자|여자|아버지|어머니|출신|본적|사진 첨부)/` 등 NCS 금지정보 매치 = 0(locale='ko') |
83
84
  | R12 | 1인칭 과다 | '저는/I'로 시작하는 문장 비율 ≤40% | `ratio` — 문장 분리 후 시작 토큰이 (저는\|제가\|^I\b)인 비율 계산 ≤0.40 |
84
85