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
@@ -14,7 +14,7 @@
14
14
  - **(증거 1:1 매핑 + 원문 substring 인용 강제)** 각 요건에 후보자 이력서·경력의 **구체적 증거 1개 이상**을 출처 식별자(sourceType·sourceId)와 함께 매핑하고, `quotedBullet`/`quotedMetric`은 **입력 원문의 정확한 부분문자열**로 담는다(의역·요약 금지). 매핑 증거가 없으면 그 요건은 gap이며, 증거를 지어내지 마라. substring 강제는 CareerMate가 LLM 없이 환각·수치변형을 서버측에서 거를 수 있게 하는 핵심 장치다. _(출처: STAR 성과 불릿; AGENTS.md 프라임 디렉티브)_
15
15
  - **(의미 매칭은 AI 추론, 표면 키워드는 별도 트랙)** JD 용어와 이력서 표현이 다르면('A/B 테스트'≈'실험 설계') 동의어·상위어로 연결하되, 이 **의미 매칭의 정합성 판단은 연결된 AI의 책임**이며 CareerMate가 검증하지 못한다(루브릭에서 자가검증 항목으로 분리). 동시에 JD 핵심 키워드(고유 기술명·자격증명)가 이력서에 그대로 들어가는지 **표면 존재 O/X**로 별도 보고한다. 키워드는 ATS에서 보통 자동탈락 게이트가 아니라 랭킹·가독성 신호다(방향성만 차용; 구체 % 수치는 출처가 약해 인용하지 않음). _(출처: ATS 실증 정리; O*NET 동의어 매핑은 AI 추론 영역)_
16
16
  - **(gap 3단계 처리 + false-negative 방지)** gap을 발견하면: (a) 인접·전이가능 증거가 있으면 **partial로 재분류**하되 '왜 full이 아닌지' 사유 1문장을 필수로 적고, (b) 진짜 없으면 **미충족**으로 정직하게 표기, (c) 미충족 must-have에는 완화 전략(전이가능 경험 강조·학습계획·커버레터 해명) 1개를 붙인다. **gap으로 분류한 must-have마다 인접 증거 탐색을 최소 1회 시도한 흔적**을 남겨, 좋은 후보를 과소평가(false-negative)하지 않는다. _(출처: O*NET KSA 위계는 전이가능성의 참고 프로파일이지 직접 판정 근거 아님 — 전이 판단은 AI 추론)_
17
- - **(충족률은 맥락 신호, 결정적 갭은 단독 게이트)** must-have 충족률(분자=met인 must 개수; **partial은 분자에서 제외**, 분모=전체 must 개수)을 계산하되, 이는 **합격 신호가 아니라 맥락 신호**다. '약 50~60% 구간부터 면접 콜백이 의미있게 오른다'는 관찰은 지원자 풀의 생존편향이 섞인 상관일 뿐 인과가 아니며, must-have만으로 재정의한 임계값은 별도 캘리브레이션이 없는 휴리스틱이다. **critical(직무 핵심)·hard-gate must-have가 하나라도 gap이면 충족률·60% 무관하게 '지원 권장'을 내지 않는다.** _(출처: TalentWorks 분석(CNBC 2018) — 단일·비피어리뷰, 방향성만 차용)_
17
+ - **(충족률은 맥락 신호, 결정적 갭은 단독 게이트)** must-have 충족률(분자=met인 must 개수; **partial은 분자에서 제외**, 분모=전체 must 개수)을 계산하되, 이는 **합격 신호가 아니라 맥락 신호**다. '약 50~60% 구간부터 면접 콜백이 의미있게 오른다'는 관찰은 지원자 풀의 생존편향이 섞인 상관일 뿐 인과가 아니며, must-have만으로 재정의한 임계값은 별도 캘리브레이션이 없는 휴리스틱이다. **critical(직무 핵심)·hard-gate must-have가 하나라도 gap이면 충족률·60% 무관하게 '지원 권장'을 내지 않는다.** 집계 비율(키워드 커버리지%·must-have 충족률)은 그 자체로 권장(recommend) 게이트가 아니라 맥락·랭킹·응답성 신호이며, 권장 게이트는 개별 하드요건(knockout) 충족 여부다(판정은 본 문서 R6·fit-analysis). <!-- B1/P5: 집계비율≠게이트, knockout이 게이트 (consensus R1→R3) --> _(출처: TalentWorks 분석(CNBC 2018) — 단일·비피어리뷰, 방향성만 차용)_
18
18
  - **(사실·수치·고유명사 보존)** 기간·규모·도구·회사명 등 사실·수치·고유명사는 변형 없이 보존하고, 매핑 시 원문 수치를 그대로(substring) 인용한다. 추정·반올림·과장 금지. _(출처: AGENTS.md 보존 규칙; STAR 정량화)_
19
19
  - **(하드 게이트 별도 식별 + ATS knockout 인지)** '경력 N년 이상'·국가자격증·면허·비자·근무지 같은 **하드 게이트**는 별도 표시하고 소프트 스킬로 상쇄되지 않음을 분명히 한다. 이런 binary 요건은 ATS의 knockout/스크리닝 사전질문에서 **실제로 자동탈락되는 경우가 흔하다**(키워드 자동탈락은 드물어도 구조화 사전질문 탈락은 흔하다). 따라서 '자동탈락은 드뭄'을 하드 게이트에 일반화하지 마라. _(출처: O*NET 규제요건; NCS 자격요건; ATS knockout 실무)_
20
20
  - **(범위 한계 명시 + 오버퀄/방향 불일치)** 이 분석은 '증거로 매핑 가능한 하드 요건' 중심이며, 협업·커뮤니케이션 같은 **soft/culture fit는 다루지 않음을 명시**한다(적합도 ≠ 합격가능성). 또한 미달뿐 아니라 **오버퀄(시니어가 주니어 JD 지원)·커리어 방향 불일치**도 리스크로 표기한다. _(출처: 채용 매니저 실무; O*NET은 soft 신호 판정 도구 아님)_
@@ -29,7 +29,7 @@
29
29
  - JD 핵심 키워드(기술명·자격증·도구)의 이력서 표면 존재 O/X를 의미 매칭과 분리해 별도 점검한다.
30
30
  - 저장된 이력서/JD가 바뀌면 분석이 낡으므로, 분석에 **근거가 된 이력서 버전 ID·JD 식별자**를 기록해 재분석 트리거를 남긴다.
31
31
  - 결과는 `save_fit_analysis`로 저장하고 대시보드 링크(http://127.0.0.1:4319)를 안내한다.
32
- - 기술 용어(must-have, ATS, hard-gate 등)는 쉬운 한국어로 풀어 설명한다.
32
+ - 기술 용어(must-have, ATS, hard-gate 등)는 사용자의 언어로 풀어 설명한다.
33
33
 
34
34
  ### Don't
35
35
 
@@ -63,17 +63,17 @@
63
63
  | ID | 검사 항목 | 합격 기준 | 측정 방법(LLM 없이 셀 수 있게) |
64
64
  |----|-----------|-----------|--------------------------------|
65
65
  | R1 | 모든 요건에 [필수/우대] 라벨 + 복합 요건 분해 | 라벨 누락 0개; 쉼표·'및'·'and/or'로 묶인 줄이 개별 항목으로 분리됨 | 추출 항목 수를 세고 각 항목에 'must'/'nice' 토큰 존재 확인(누락==0). 원문에서 구분자 포함 줄 수 대비 분해 항목 수가 ≥ 구분자+1 인지 검사 |
66
- | R2 | 충족·부분충족 판정에 출처 ID + evidence 존재 | status가 met·partial인데 evidence[] 배열이 빈 항목 0개 | (서버 검증 가능) met·partial 항목 수 대비 `evidence.length>0` 항목 수 비율 == 100% |
67
- | R3 | quotedBullet/quotedMetric이 원문 substring (환각·수치변형 차단) | 인용 문자열이 해당 sourceId 입력 텍스트의 부분문자열이 아닌 항목 0개 | (서버 검증 가능) 각 evidence의 quotedBullet을 입력 이력서/경력 텍스트에 대해 indexOf/`includes` 문자열 검색 → 미발견 개수 == 0 |
66
+ | R2 | 충족·부분충족 판정에 출처 ID + evidence 존재 | status가 met·partial인데 evidence[] 배열이 빈 항목 0개 | (AI 셀프체크 — 서버 자동검사는 아직 없음) met·partial 항목 수 대비 `evidence.length>0` 항목 수 비율 == 100% |
67
+ | R3 | quotedBullet/quotedMetric이 원문 substring (환각·수치변형 차단) | 인용 문자열이 해당 sourceId 입력 텍스트의 부분문자열이 아닌 항목 0개 | (AI 셀프체크 — 서버 자동검사는 아직 없음) 각 evidence의 quotedBullet을 입력 이력서/경력 텍스트에 대해 indexOf/`includes` 문자열 검색 → 미발견 개수 == 0 |
68
68
  | R4 | gap 표기 + must-have 미충족마다 완화 전략 | 미충족 must 중 mitigation 문장이 없는 항목 0개 | 미충족 must 개수 == mitigation 문장 개수 비교 |
69
69
  | R5 | must-have 충족률 수치 제시 + partial 제외 규칙 | 'met must 수 / 전체 must 수' 분수·% 1개 이상; 분자에 partial 미포함 | 분수/% 정규식(예: `\d+/\d+`, `\d+%`)이 must 문맥과 함께 1회 이상; 분자 == status=='met' 개수와 일치 확인 |
70
- | R6 | critical·hardGate gap 시 '권장 불가' 병기 (게이트 단독 우선) | hardGate 또는 critical이 gap인데 verdict가 'recommend'인 사례 0개 | (서버 검증 가능 — 경고 아닌 **거부**) `requirements`에 `hardGate&&status==gap` 또는 `critical&&status==gap`이 1개라도 있으면 `verdict=='recommend'` 금지 |
70
+ | R6 | critical·hardGate gap 시 '권장 불가' 병기 (게이트 단독 우선) | hardGate 또는 critical이 gap인데 verdict가 'recommend'인 사례 0개 | (AI 셀프체크 — 서버 자동검사는 아직 없음) `requirements`에 `hardGate&&status==gap` 또는 `critical&&status==gap`이 1개라도 있으면 `verdict=='recommend'` 금지 |
71
71
  | R7 | 키워드 표면 존재가 의미 매칭과 분리 보고 | JD 핵심 키워드별 'O/X' 표기 1개 이상, 의미 매칭 충족 판정과 별도 필드 | 출력에 `keywordSurfacePresent` 또는 'O/X·있음/없음' 항목 카운트 ≥ 1 |
72
72
  | R8 | partial 남용 방지 (사유 강제) | partial 항목 중 '왜 full이 아닌지' 사유 문장이 없는 항목 0개 | partial 항목 수 == partialReason 문장 수 비교 |
73
73
  | R9 | gap 과소평가(false-negative) 방지 | gap으로 분류한 must마다 인접 증거 탐색 시도 흔적 존재 | gap must 개수 대비 `transferAttempt` 표기(예: "인접 검토: …") 항목 수 == 100% |
74
74
  | R10 | 신선도 추적 | 분석에 근거가 된 이력서 버전 ID·JD 식별자가 기록됨 | 출력/페이로드에 `resumeVersionId`·`jobId`(또는 JD 해시) 필드 존재 여부 == 있음 |
75
75
 
76
- **의미 매칭·전이가능성은 LLM 없이 검증 불가** → R2·R3·R5·R6은 CareerMate 서버가 LLM 없이 강제(존재 여부·substring·산술·게이트). 반면 '의역 동의어 매칭이 타당한가', '전이가능성 판단이 옳은가', '요건 추출이 빠짐없는가'는 **외부 AI의 셀프체크 책임**이며 서버가 보증하지 않는다(R1·R4·R8·R9는 형식 카운트만 강제, 내용 타당성은 AI 책임).
76
+ **의미 매칭·전이가능성은 LLM 없이 검증 불가** → R2·R3·R5·R6은 **Phase B에서** CareerMate 서버가 LLM 없이 강제하도록 *설계*된 항목이다(존재 여부·substring·산술·게이트). **Phase A 현재 save_fit_analysis는 구조화 requirements[]를 받지 않고 자유텍스트만 저장하므로 이 서버 강제는 미구현이며, 연결 AI가 셀프체크로 적용한다.** 반면 '의역 동의어 매칭이 타당한가', '전이가능성 판단이 옳은가', '요건 추출이 빠짐없는가'는 **외부 AI의 셀프체크 책임**이며 서버가 보증하지 않는다(R1·R4·R8·R9는 형식 카운트만 강제, 내용 타당성은 AI 책임).
77
77
 
78
78
  **주요 실패 모드:**
79
79
  - (과대평가) 의역 인용으로 충족 위장 → R3 substring 강제로 차단.
@@ -94,7 +94,7 @@
94
94
 
95
95
  ## 5. Phase B 힌트 (아키텍처로 연결)
96
96
 
97
- - **MCP 도구 아이디어:** `get_fit_analysis_guide` — 연결된 AI가 적합도 분석 직전 호출하면 (1) 요건 분해·복합 요건 분리 체크리스트, (2) 증거-매핑 템플릿(substring 인용 규칙 포함), (3) R1~R10 셀프-체크 루브릭, (4) 60% '맥락 신호' 규칙·critical/hardGate 단독 게이트 규칙을 구조화 JSON으로 반환. `save_fit_analysis`는 `requirements[]` 구조를 입력받아 **LLM 없이** 충족률·갭 개수를 서버측에서 재계산·검증한다.
97
+ - **MCP 도구 아이디어:** `get_fit_analysis_guide` — 연결된 AI가 적합도 분석 직전 호출하면 (1) 요건 분해·복합 요건 분리 체크리스트, (2) 증거-매핑 템플릿(substring 인용 규칙 포함), (3) R1~R10 셀프-체크 루브릭, (4) 60% '맥락 신호' 규칙·critical/hardGate 단독 게이트 규칙을 구조화 JSON으로 반환. (Phase B) `save_fit_analysis`가 `requirements[]` 구조를 입력받으면 **LLM 없이** 충족률·갭 개수를 서버측에서 재계산·검증하도록 *설계*한다(현재 스키마는 자유텍스트만 — 미구현).
98
98
  - **데이터 형태 힌트:**
99
99
  ```
100
100
  {
@@ -118,4 +118,4 @@
118
118
  generatedBy: 'claude'|'gpt'|'gemini'
119
119
  }
120
120
  ```
121
- **서버측 검증(LLM 불요):** ① `status∈{met,partial}`인데 `evidence[]` 빈 항목 → **거부**(R2). ② 각 `quotedBullet`이 해당 sourceId 입력 텍스트의 부분문자열이 아니면 → **거부**(R3). ③ `mustHaveMet`를 status=='met' 개수로 재계산(클라이언트 자기보고 불신, R5). ④ `hardGate&&status==gap` 또는 `critical&&status==gap`이 1개라도 있는데 `verdict=='recommend'` → **거부**(경고 아님, R6). ⑤ partial인데 `partialReason` 없음(R8)·gap must인데 `transferAttempt` 없음(R9)·미충족 must인데 `mitigation` 없음(R4) → 거부.
121
+ **서버측 검증(Phase B 설계 — 현재 미구현):** 아래는 `save_fit_analysis`가 구조화 `requirements[]`를 받게 될 Phase B의 강제 *설계안*이다. **Phase A 현재 스키마는 자유텍스트만 받으므로 이 검증은 동작하지 않으며, 연결 AI가 셀프체크로 적용한다.** ① `status∈{met,partial}`인데 `evidence[]` 빈 항목 → **거부**(R2). ② 각 `quotedBullet`이 해당 sourceId 입력 텍스트의 부분문자열이 아니면 → **거부**(R3). ③ `mustHaveMet`를 status=='met' 개수로 재계산(클라이언트 자기보고 불신, R5). ④ `hardGate&&status==gap` 또는 `critical&&status==gap`이 1개라도 있는데 `verdict=='recommend'` → **거부**(경고 아님, R6). ⑤ partial인데 `partialReason` 없음(R8)·gap must인데 `transferAttempt` 없음(R9)·미충족 must인데 `mitigation` 없음(R4) → 거부.
@@ -2,6 +2,8 @@
2
2
 
3
3
  > 이 문서는 CareerMate가 **연결된 AI에게 제공(serve)** 하는 지식이다. CareerMate 안에는 LLM이 없다 — 분석·작성·검증은 연결된 AI가 수행하고, 이 플레이북·루브릭은 그 AI가 **세계 최고 수준**으로 일하도록 안내한다.
4
4
 
5
+ > **역할 경계:** 이 문서는 글을 **쓰는·생성하는(write)** 단계의 플레이북이다(`get_playbook`, 작성 직전). 다 쓴 초안을 **저장 직전 점검·채점**하는 일은 짝 검증기 [`verifiers/human-voice.md`](verifiers/human-voice.md)(`get_verifier`)가 맡는다 — 같은 주제라도 *쓰기 지침*과 *검증 루브릭*은 역할이 다르고, 두 곳의 강도 차이(예: 사실 보존이 여기선 LLM-플래그, 검증기 C8·C9에선 하드 게이트)는 **의도된 것**이다. 두 문서는 슬롭·과장·클리셰·번역투 사전을 **의도적으로 각자 온전히 복제**해 들고 있다 — 한쪽만 호출돼도 사전이 온전하도록 함이니, **단일 출처로 합치거나 다른 문서 포인터로 대체하지 마라(독립 serve가 깨진다).**
6
+
5
7
  ## 1. 무엇을 하는가
6
8
 
7
9
  커리어 문서(자기소개서·자기 PR·지원 메일·면접 답변)를 "AI가 쓴 티" 없이, 사용자 고유의 목소리로, 사실을 보존하며 쓰도록 연결된 AI를 안내한다. CareerMate의 **1차 사용자층은 한국어 자소서 작성자**이므로 이 플레이북은 한국어 슬롭(번역투·클리셰·기계적 병렬·수동태)을 1차 기준으로, 영어 마커는 영문 지원서일 때만 적용하는 **보조 기준**으로 둔다. 이 문서는 기존 `packages/prompts/src/humanize.ts`의 정성 가이드(한국어 8개 항목, `epoko77-ai/im-not-ai` 근거)를 **상위 단일 원본으로 흡수·확장**하고, 거기에 "LLM 없이 셀 수 있는" 결정론 루브릭과 채용 적합성 축을 더한 것이다. 핵심은 슬롭 제거가 아니라 **"거짓 없고 직무에 맞닿은, 사람 목소리의 글"**을 만드는 것이다 — 슬롭이 0이어도 동문서답·내용 공백이면 떨어진다.
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## 1. 무엇을 하는가
6
6
 
7
- 행동 면접은 "과거 행동이 미래 성과를 예측한다"는 행동 일관성(behavioral consistency) 원리에 기반한 구조화 면접이다. 면접관은 지원자의 과거 사례를 STAR(Situation·Task·Action·Result) 형태로 듣고, 직무 관련 역량(competency)·회사 가치에 매핑해 채점한다. CareerMate는 LLM이 없으므로, 연결된 외부 AI가 사용자의 실제 경험을 STAR로 재구성하고, 역량에 매핑하며, 실측 정량 결과를 분리해내고, **후속 질문(probing)에 견디는 스토리 뱅크**를 만들도록 돕는 지식·루브릭을 제공한다. 핵심은 ① 개인 기여를 1인칭으로 분리, ② Result를 **검증 가능한** 실측 수치로, ③ 각 스토리를 controlled vocabulary 역량 태그에 매핑, ④ 사례마다 probing 답(왜·대안·되돌아보면)을 미리 준비하는 것이다. 아래 루브릭은 어느 체크가 **결정론적으로 셀 수 있고(D)**, 어느 체크가 **외부 AI의 의미 판단을 전제로 한 보조 휴리스틱(H)**인지를 등급으로 명시 구분한다 — 전부 동급의 기계 검증인 척하지 않는다.
7
+ 행동 면접은 "과거 행동이 미래 성과를 예측한다"는 행동 일관성(behavioral consistency) 원리에 기반한 구조화 면접이다. **이 원리의 방법론적 계보는 Flanagan(1954)의 Critical Incident Technique에서 파생해 McClelland가 Behavioral Event Interview(BEI)로 발전시킨 계열이다 — BEI의 핵심은 '당신은 어떤 사람인가(특성·가정형)'가 아니라 '그때 실제로 무엇을 말하고/행동하고/생각했는가'라는 구체적 과거 사건의 행동 코딩으로 우수자(outstanding)와 평균자(typical)를 변별하는 것이다. McClelland(1998)는 BEI로 코딩한 역량 점수가 (면접관·코더가 결과에 blind인 상태에서도) 경영 성과를 신뢰성 있게 예측했고 프로토콜 길이·전년도 성과에 의한 편향이 없었음을 보였다 — 이것이 본 문서가 '미래 가정형 답변 금지'·'특성·형용사 나열 금지'·'probing으로 진위 검증'을 강조하는 1차 학술 근거다(4절 출처).** 면접관은 지원자의 과거 사례를 STAR(Situation·Task·Action·Result) 형태로 듣고, 직무 관련 역량(competency)·회사 가치에 매핑해 채점한다. CareerMate는 LLM이 없으므로, 연결된 외부 AI가 사용자의 실제 경험을 STAR로 재구성하고, 역량에 매핑하며, 실측 정량 결과를 분리해내고, **후속 질문(probing)에 견디는 스토리 뱅크**를 만들도록 돕는 지식·루브릭을 제공한다. 핵심은 ① 개인 기여를 1인칭으로 분리, ② Result를 **검증 가능한** 실측 수치로, ③ 각 스토리를 controlled vocabulary 역량 태그에 매핑, ④ 사례마다 probing 답(왜·대안·되돌아보면)을 미리 준비하는 것이다. 아래 루브릭은 어느 체크가 **결정론적으로 셀 수 있고(D)**, 어느 체크가 **외부 AI의 의미 판단을 전제로 한 보조 휴리스틱(H)**인지를 등급으로 명시 구분한다 — 전부 동급의 기계 검증인 척하지 않는다.
8
8
 
9
9
  ## 2. 플레이북
10
10
 
@@ -18,6 +18,15 @@
18
18
  - **(사례는 최신성·직무관련성을 갖춰야 한다.)** — 시니어/경력직에게 8년 전 인턴·학부 프로젝트만 가득한 뱅크는 반려 사유다. 각 사례에 연도·역할단계를 기록하고, 경력직은 최근 N년 내 사례 비율을 확보한다. _(출처: 채용 실무 — recency/relevance, hiring manager review)_
19
19
  - **(사실·수치·고유명사는 절대 지어내지 않는다. 실패 사례는 조건부로만 쓴다.)** — 면접관은 probing으로 꾸민 이야기를 검증한다. 실패 사례는 회복·재발방지 행동이 Result보다 길고 구체적일 때만 강점이 되며, 일부 문화권 면접관은 부정 신호로 받을 수 있으므로 '학습·후속 개선'이 핵심이 아닐 거면 쓰지 않는다. **커리어 공백·전직 경험을 묻는 질문은 '짧게 사실을 밝히고 현재 준비 상태로 전환'하는 간략한 안심 확인으로 처리하라 — 길게 해명하거나 사과조로 이어가면 오히려 레드플래그 신호로 읽힌다(한국 면접 맥락).** _(출처: CareerMate AGENTS.md, Amazon probing follow-ups, UVA)_
20
20
  - **(키워드 스터핑을 경계한다.)** — 회사 가치에 '단어 수준으로 맞추라'는 조언은 과하면 '준비된 앵무새'로 보인다. LP/가치 키워드는 실제 사례의 행동이 그 가치를 **입증**할 때만 쓰고, 키워드를 라벨처럼 나열하지 않는다. 구조화 면접은 adverse impact를 줄이고 법적 방어가능성을 높이는 공정성 도구라는 점도 기억한다. _(출처: U.S. OPM Structured Interviews)_
21
+ - **(STAR를 기본형으로 두되, 직무·면접 형식에 따라 변형을 선택한다 — soft 가이드, 게이트 아님.)** — (a) **SOAR**(Situation·Obstacle·Action·Result): Task를 Obstacle/Objective로 치환해 '배정받은 과제'를 '극복한 장애·달성한 목표'로 바꾸는 변형 — 문제해결·전략성을 변별하는 시니어/리더십 직무에 적합. (b) **CAR**(Challenge·Action·Result): Situation+Task를 Challenge로 압축한 3요소 버전 — 폰스크린·시간 제약·빠른 기술 라운드처럼 30~90초 답변이 필요할 때 적합. (c) **PAR**(Problem·Action·Result): CAR와 거의 동형의 문제 중심 압축형. **어느 변형을 쓰든 채점 축은 불변이다 — Action을 1인칭 결정 동사로(R3·R4), Result를 label·sourceRef 붙은 실측 수치로(R5·R6), probing 3종을(R8) 그대로 유지한다. 변형은 '요소 라벨'만 바꿀 뿐이며, 변형을 핑계로 Result·probing을 빠뜨리지 않는다.** _(출처: The Interview Guys, Resumeble, UT Austin — 코칭 휴리스틱, 4절 참조)_
22
+ - **(한국 구두면접 실전 압축형: S→A→R(+배움).)** — 헤드헌터·플랫폼 실무 콘텐츠는 흔히 Task를 Situation에 흡수해 S→A→R로 운영하며, 특히 갈등·실패 질문에서는 '결과 및 배움(R)'에 무게를 둔다(전문성+성숙함을 동시에 보임). **한국 면접관이 보는 3축('감정적이 아니라 객관적으로 대응했는가 / 회피가 아니라 협업으로 풀었는가 / 개인 입장이 아니라 팀 목표를 우선했는가')에 Action이 닿도록 구성한다.** 단 이는 평가 휴리스틱이지 합격 공식이 아니므로 soft 가이드로만 적용하고, 후보의 실제 경험·수치는 저장 데이터에 앵커한다. _(출처: 커리어플랜 헤드헌팅, 인크루트 — 한국 면접, 2차)_
23
+ - **(한국 사기업은 1차 실무면접 / 2차 임원면접으로 단계마다 타깃이 다르다.)** — 일반적 흐름은 서류 → 1차 실무면접 → 2차 임원(최종)면접이다. **1차 실무면접**(면접관=현업 실무진): 이력서·포트폴리오 기반으로 직무역량·성과의 진위를 비교적 정량적으로 검증한다 — 담당 업무·가장 도전적이었던 프로젝트·기술 트레이드오프를 STAR로 묻고, 개발 직군은 본인 GitHub/블로그/포트폴리오를 면접관이 직접 짚어 질문하므로 모르면 신뢰를 잃는다. **2차 임원/대표 면접**(면접관=임원+인사): 1차에서 실무를 봤으므로 인성·조직적합성(컬처핏)을 소프트스킬 관점에서 종합 평가한다 — 평가 초점이 '말 잘하는 사람'이 아니라 '신뢰를 줄 수 있는 사람'으로 전환되며, 직업관·가치관·5년 후 모습·갈등 대처·회사 이해도를 본다. 임원 빈출 Best: 'OO기업에 관해 아는 것?'(경영전략·사업 이해), '우리 회사를 선택한 이유?'(비전·문화 이해), 자기평가, '입사 후 어떤 일을 하고 싶나'(구체 커리어 비전). **따라서 같은 경험이라도 1차는 '무엇을 어떻게 해냈나(역량·정량 임팩트)', 2차는 '왜 그렇게 판단했나·우리와 맞나(가치·핏)'를 강조하도록 스토리 뱅크에 단계 태그(round1=실무 / round2=임원)를 단다. 1차의 우수 평가가 2차에 긍정적으로 이월되는 경향이 있으므로 1차에서 정량 임팩트를 확실히 남긴다.** _(출처: 잡코리아 2026 면접 50선; 인크루트 임원 Best10; 리멤버·코멘토 현직자 일화 — 한국 면접, 2차/참고)_
24
+ - **(경력직·중고신입의 '이직 사유'는 표준 패턴으로 처리한다.)** — 한국 경력직 면접에서 이직 사유는 면접관이 '지원자가 일·회사를 보는 태도'를 즉시 읽는 1순위 질문이며, 인사담당자는 ① 사유의 **합리성**, ② 지원 동기·커리어 서사와의 **일관성**, ③ **전 직장에 대한 부정적 언급 여부**를 평가축으로 본다. 따라서 (a) 전 직장·상사·동료 비난/남 탓 금지('상사와 갈등 때문에' 식 답변은 '여기서도 같은 불만으로 나갈 사람' 우려를 부른다), (b) 현 직장에서 쌓은 경험을 먼저 인정한 뒤 '전문성 심화·새 영역으로 커리어 확장'이라는 성장 목표로 전환하고 지원 회사의 구체 프로젝트/방향과 연결, (c) 부정적 사유라도 '그래서 무엇을 배웠고 다음 직장에서 무엇을 하려는가'라는 미래지향으로 프레이밍한다 — 이는 워크드 예시 3·4번(실패 사례)의 '재발방지·학습이 핵심' 원리와 동일하다. 희망 연봉은 시장 데이터 기반으로 답하되 처우 외 가치(역량 발휘·성장)에 유연성을 함께 표한다. 모든 사유는 후보의 실제 이력에 앵커하고 미화·날조하지 않는다. _(출처: Robert Walters Korea, 하이잡 HAIJOB; 잡플래닛 일화 — 한국 면접, 2차/참고)_
25
+ - **(한국 공공·NCS 타깃이면 경험면접과 상황면접을 분리 준비한다.)** — 한국 공기업·공공기관 채용은 NCS(국가직무능력표준) 기반 구조화 면접으로, ① **경험면접**(직업기초능력 평가 — 실제 과거 경험을 STAR로 듣고 채점)과 ② **상황면접**(직무수행능력 평가 — 직무에서 벌어질 수 있는 가상 상황을 제시하고 대응 행동을 묻는 situational interview 계열)으로 나뉜다. 따라서 NCS 타깃이면 스토리 뱅크의 '과거 사례'뿐 아니라 '상황 제시형 대응'도 별도로 준비하며, 이는 Don't의 '미래 가정형으로만 답하기 금지'와 충돌하지 않는다 — **상황면접은 가정형 질문이 정식 포맷이므로 질문 유형으로 분기한다.** NCS 면접관의 꼬리질문은 '사실 검증'과 '역량 검증'의 이중 목적을 가지므로, probing 3종 준비(R8)는 NCS 맥락에서 더욱 필수다. _(출처: NCS 국가직무능력표준 공식 면접문항 라이브러리(1차), JobKorea NCS 가이드(2차) — 한국 공공 트랙)_
26
+ - **(probing 3종은 면접관이 실제 던지는 후속질문 유형에 양방향으로 앵커한다.)** — 스토리 뱅크 probing 3종('왜 그 결정을 했나 / 대안은 무엇이었나 / 되돌아보면 무엇을 바꾸겠나')이 R8 핵심 게이트인 이유는 지원자 코칭이 아니라 **면접관 측 표준 probe**에서 나온다: 'What specifically did you do?'(개인 기여 분리), 'What was the measurable result?'(정량 결과), 'Why did you...?'(원인·판단 검증), 'What would you do differently today?'(자기인식·캘리브레이션). 이 probe들이 '리허설된 답'과 '실제 경험'을 갈라낸다는 것이 면접 설계 측 합의다. 본 문서의 probing 3종은 정확히 이 분류(why=원인검증, alternatives=의사결정 검증, whatIdChange=자기인식)에 대응하므로 R8을 '존재 게이트'로 강제하는 것이 면접관 기법에 비추어 정당하다. _(출처: SocialTalent, Yardstick — 면접관 기법, 2차)_
27
+ - **(스타트업·IT 컬처핏 면접은 대기업식 인성면접과 구조가 다르다.)** — 토스·당근·우아한형제들 등은 대화형으로 가치관·일하는 방식·협업 성향이 조직과 맞는지를 본다(우아한형제들은 120문항 WSP 같은 도구를 면접 대화 보조로 활용). 빈출 행동질문: '가장 어려웠던 협업 경험은?', '의견 충돌 시 어떻게 대처했나?', '가장 큰 실패 경험과 거기서 배운 것?', '동료·상사에게 받은 피드백 중 기억에 남는 것과 개선 방법?'. 평가 포인트=회사에 대한 관심·애정, 소통/유연성(경청·조율·공동목표), 성장 의지, 건설적 갈등해결, 피드백 수용, 장기 기여 의지. **정량 채점이 어려운 만큼 '키워드 맞추기'보다 실제 행동으로 가치를 입증하고, 회사 가치/일하는 방식을 사전 조사해 본인 사례와 연결한다(기존 companyValueTags 가드·키워드 스터핑 경계와 결합).** 인재상 트랙(대기업식 인성·암기형)과 컬처핏 트랙(스타트업식 협업·행동 증거)을 구분해 준비하되, 협업/갈등 경험은 저장 데이터에 있는 것만 사용한다. _(출처: 조선비즈, 한국경제, Specter HR, 원티드 블로그, flex — 한국 면접, 2차)_
28
+ - **(압박면접은 정답보다 평정심·객관성·균형을 본다.)** — 약점 파고들기·개인 vs 조직·희망부서 미배치·나이/스펙 약점 등은 대응력 테스트다. 빈출 실제 문구·평가의도: ① '다른 회사에도 지원했나요? 합격하면?'(지원 우선순위·진정성 — 솔직하되 1순위 근거 제시) ② '지원자의 역량은 우리 회사에 필요 없을 것 같은데요?'(자신감·방어성 — 감정 없이 강점-직무 연결을 논리적으로) ③ '그건 틀린 생각 아닌가요?'(근거 없이 물러서는지·비판 수용 — 방어 회피, 근거+상대 존중 동시) ④ '상사가 부당한 지시를 내린다면?'(윤리·판단 — 맹종 아닌 상급자 확인, 사실확인→대응→조직절차 순). **공통 화법=평정심 유지, 'Yes...But'으로 조목조목, 감정반응·말 끊기 금지. 약점은 치명적이지 않은 것으로 인정+개선노력.** _(출처: 잡코리아 압박면접 5가지; 하이잡; Superookie 일화 — 한국 면접, 2차/참고)_
29
+ - **(역질문(마지막 질문)은 사실상 필수 기대값이다 — 처우가 아니라 직무·전략·조직을 묻는다.)** — **좋은 역질문**(관심·적극성·직무이해 신호): '이 직무를 통해 회사의 어떤 목표 달성에 기여할 수 있을까요?', '이 팀에서 필요로 하는 핵심 역량은?', '입사 후 첫 3~6개월 성공 기준/온보딩은?', 업무 관련 회사 최신 이슈의 방향성. **피해야 할 역질문**(레드플래그): 복리후생/연차/야근만 묻기(개인 이득만 추구 인상 — 처우는 합격 후 조율), 체계를 의심하는 질문('이 업무가 정말 필요한가요?'), 즉답 피드백/합격여부 요구('제가 적합한가요?'), 사전준비 부족 신호('뭐 하는 회사예요?'). 스토리 뱅크에 직무·전략·조직 관련 역질문 1~2개를 준비시킨다. _(출처: 인크루트 마지막 질문 좋은/나쁜 예; 링커리어 — 한국 면접, 2차)_
21
30
 
22
31
  ### Do
23
32
 
@@ -30,6 +39,10 @@
30
39
  - 채용공고 요구 역량에서 역으로 어떤 사례를 쓸지 고르고, 회사 고유 가치를 '키워드'가 아니라 '행동으로 입증'하는 방식으로 맞춰라.
31
40
  - 실패/약한 결과 사례는 회복·재발방지 행동이 충분할 때만 쓰고, '내 판단의 오류'와 '배운 점·후속 개선'으로 프레이밍하라.
32
41
  - 답변을 소리 내어 리허설해 30초~2분(영어 약 130~330단어 / 한국어 약 90~230어절)로 다듬어라.
42
+ - **(한국 사기업)** 표준 인성·경험 질문 풀을 카테고리별로 스토리 뱅크에 사전 매핑하라 — [공통 빈출] 1분 자기소개 / 지원동기(회사·직무 분리) / 강점·약점 / 살면서 가장 힘들었던 경험과 극복 / 갈등 경험(동료·상사 의견 차이) / 실패 경험과 배운 점 / 협업·팀워크 / 스트레스 해소법 / 입사 후 5년 모습 / 회사 기여점·차별점 / 마지막 할 말(역질문). 이 질문들은 **'예상 질문 풀·매핑 신호'일 뿐** 후보의 사실·경험은 절대 지어내지 말고 저장 데이터에서 끌어와라.
43
+ - **(직군별 변형, 해당 직군 지원 시에만 우선 노출)** 개발자: 기술 면접(버그·코딩 습관·트레이드오프)과 별개로 HR 면접에서 '기획자·디자이너와의 협업·소통'을 행동질문으로. 마케팅/영업: '좋아하는 브랜드/요즘 쓰는 서비스+왜', 좋아하는 캠페인·광고, 소비자 행동 예측, 4P 중 중요한 것, 성공/실패 캠페인, 제한 예산 마케팅, 경쟁사 분석법. 디자이너/PM/UX: '개발·기획과 의견이 가장 크게 달랐던 지점과 설득/양보 방식', '제약이 있을 때 가장 먼저 포기할 것', '디자인할 때 가장 중요한 가치', '이 선택의 근거와 대안'(꼬리질문 중심). 경영기획·인사·회계/재무·홍보·구매·생산/품질·R&D 등 비-기술 일반직군도 직군별 빈출 질문이 있으나 모두 '예상 질문 풀'로만 쓰고 도메인 개념은 '개념 설명/입사 후 제안'으로 분리하라(사실·경험 발명 금지).
44
+ - **(컬처핏 트랙)** 협업·갈등·피드백 행동 스토리를 본인 언어의 가치관과 함께 매핑하고, 회사 가치/일하는 방식을 사전 조사해 본인 사례와 연결하라(저장 데이터 앵커).
45
+ - **(압박·역질문)** 각 압박 질문에 '평가 의도 + 차분 대응 골격'을 1쌍으로 준비하고, 직무·전략·조직 관련 역질문 1~2개를 함께 준비하라('피할 질문'은 출력에서 경고로 표시).
33
46
 
34
47
  ### Don't
35
48
 
@@ -43,6 +56,10 @@
43
56
  - 회사 가치/LP 키워드를 행동 입증 없이 라벨처럼 나열하지 마라('준비된 앵무새' 신호).
44
57
  - 미래 가정형('저라면 ~할 것입니다')으로만 답하지 마라 — 실제 과거 사례를 들어라.
45
58
  - 5년 전 학부 프로젝트만으로 시니어 직무에 답하지 마라(최신성·직무관련성 결여).
59
+ - **(한국 경력직)** 이직 사유를 전 직장·상사 비난이나 남 탓으로 답하지 마라 — '여기서도 같은 불만으로 나갈 사람' 신호다.
60
+ - **(역질문)** 복리후생·연차·야근만 묻거나('개인 이득' 인상), 체계를 의심하거나('이 업무가 정말 필요한가요?'), 즉답 피드백·합격여부를 요구하거나('제가 적합한가요?'), 사전준비 부족 신호('뭐 하는 회사예요?')를 내지 마라.
61
+ - **(압박면접)** 압박 질문에 감정적으로 방어하거나 말을 끊거나 극단으로 회피하지 마라 — 평정심·논리·균형이 평가 대상이다.
62
+ - **(변형)** SOAR/CAR/PAR로 압축한다는 핑계로 Result(실측 수치)·probing 3종을 빠뜨리지 마라 — 변형은 라벨만 바꿀 뿐 채점 축은 불변이다.
46
63
 
47
64
  ### 워크드 예시 (Before → After)
48
65
 
@@ -70,9 +87,11 @@
70
87
 
71
88
  ## 3. 검증 루브릭 (연결된 AI가 산출물을 이 기준으로 자가검증)
72
89
 
73
- > **전제(중요):** 루브릭은 자유 텍스트가 아니라 **`StoryBankEntry` 구조화 레코드 배열**을 입력으로 받는다. S/T/A/R 경계는 자유 텍스트를 LLM이 의미로 갈라야 하므로, CareerMate는 먼저 `save_interview_prep`으로 STAR를 **필드 분리 저장**하게 한다. 그러면 다수 체크가 필드 non-empty / 패턴 카운트로 결정론적이 된다.
90
+ > **전제(중요):** 루브릭은 자유 텍스트가 아니라 **`StoryBankEntry` 구조화 레코드 배열**을 입력으로 받는 것을 *목표 설계*로 한다. S/T/A/R 경계는 자유 텍스트를 LLM이 의미로 갈라야 하므로, 이상적으로는 `save_interview_prep`으로 STAR를 **필드 분리 저장**하게 하면 다수 체크가 필드 non-empty / 패턴 카운트로 결정론적이 된다.
74
91
  >
75
- > **등급 표기:** `D` = LLM 없이 결정론적으로 셀 수 있음(필드 존재·정규식·카운트). `H` = 외부 AI(또는 사람)의 의미 판단을 전제로 한 보조 휴리스틱 — 자동 합격 판정 금지, `warn`/`needs_review`로만 반환. 이 구분을 흐려 전부 기계 검증인 척하지 않는다.
92
+ > **⚠ 구현 상태(Phase A 정직화):** **현재 `save_interview_prep`이 실제로 저장하는 것은 `star_guides`(STAR 4필드 situation/task/action/result, 선택 사항)뿐이다.** 아래 루브릭이 참조하는 구조화 필드 — `metrics[]`(label·sourceRef), `competencies[]`(고정 enum), `probing{}`, `lang`, `year`/`careerStage`, `questionMappings[]`, `wordCounts{}`, `companyValueTags[]` — 와 `lint_interview_kit`/`get_behavioral_interview_kit` 도구는 **모두 Phase B 미구현**이다. 따라서 R1~R13의 "LLM 없이 결정론적으로 셀 수 있음(D)" 표기는 *데이터가 그 형태로 저장될 때 성립하는 설계상 등급*이며, **Phase A 현재는 이 검증을 런타임이 자동 실행하지 않는다 — 연결된 AI가 위 항목들을 수동으로 적용한다.** 미구현 검증을 이미 자동화된 것처럼 표기하지 않는다.
93
+ >
94
+ > **등급 표기:** `D` = (구조화 저장이 전제될 때) LLM 없이 결정론적으로 셀 수 있음(필드 존재·정규식·카운트). `H` = 외부 AI(또는 사람)의 의미 판단을 전제로 한 보조 휴리스틱 — 자동 합격 판정 금지, `warn`/`needs_review`로만 반환. 이 구분을 흐려 전부 기계 검증인 척하지 않는다. **Phase A에서는 D/H 모두 연결 AI의 수동 적용이며, 런타임 게이트가 아니다.**
76
95
 
77
96
  | ID | 등급 | 검사 항목 | 합격 기준 | 측정 방법(LLM 없이 셀 수 있게 / H는 전제 명시) |
78
97
  |----|------|-----------|-----------|--------------------------------|
@@ -89,6 +108,8 @@
89
108
  | R11 BI-BANK-COVERAGE | **D** | 뱅크가 역량 카테고리를 충분히 커버하는가 | 서로 다른 entry ≥8 AND distinct 역량(enum) ≥6 | entry 개수 + `competencies[]` 합집합 distinct 카운트. **고정 enum 전제라 태그 인플레이션 없이 distinct가 유의미.** |
90
109
  | R12 BI-REUSE-GUARD | **D** | 한 사례를 과도하게 재탕하지 않는가 | 같은 entry를 서로 다른 질문 유형에 매핑한 횟수 ≤2 | `questionMappings[entryId]` 카운트가 entry당 ≤2인지. 만능 사례 우겨넣기 가드. |
91
110
  | R13 BI-NO-FABRICATION | **needs_review (H)** | 수치·고유명사가 지어내지 않았는가 | **자동 합격 판정 없음 — 확인 플래그만.** | **순수 set-diff 금지**(70분≈'약 1시간', 40→3분 같은 파생값, 단위변환, NER로 거짓양성/음성 폭발). 좁힌 D 검사: 답변의 숫자 리터럴이 `metrics[].value`(사용자 입력)에 매칭되는지 literal-match. 그 외 신규 수치·고유명사는 "검토 필요" 목록으로 모아 외부 AI/사람에게 토스. |
111
+ | R14 BI-CULTUREFIT-VALUE | **warn (H)** | (컬처핏/임원 타깃) 회사 가치 연결이 행동으로 입증되는가 | `companyValueTags[]` ≥1 **존재** AND 각 태그가 실제 사례 행동에 연결 | 존재는 셀 수 있으나 '키워드 맞추기 vs 행동 입증' 판별은 의미 판단(H). 자동 합격 금지, `warn`만. 키워드 스터핑 경계·companyValueTags 가드와 결합. |
112
+ | R15 BI-REVERSE-QUESTION | **warn (H)** | (한국 사기업) 역질문이 준비됐고 직무·전략형인가 | `reverseQuestions[]` ≥1 AND 처우·로지스틱스 위주가 아닌 직무/전략/조직 질문 | 존재는 D지만 '좋은 역질문 vs 레드플래그(복리후생·즉답 피드백·사전준비 부족)' 판별은 H. 자동 합격 금지, `warn`만. |
92
113
 
93
114
  **Controlled vocabulary (역량 enum, 태그 인플레이션 방지 — distinct 카운트의 전제):**
94
115
  `leadership`, `ownership`, `conflict`, `failure-learning`(=growth-learning), `initiative`, `data-driven`, `customer-focus`, `collaboration`, `deadline-pressure`, `ambiguity`, `influence`, `mentoring`. 회사 고유 가치는 `companyValueTags`(예: `Amazon:Ownership`)로 별도 부여하되, 반드시 위 enum 중 하나에 연결한다.
@@ -107,7 +128,8 @@
107
128
  > **신뢰도 주석(중요):** **예측타당도 '.51'은 Schmidt & Hunter(1998)의 수치이며, Sackett, Zhang, Berry & Lievens(2022)가 range-restriction 과대보정 오류를 지적해 사실상 하향됐다.** 보정 관행이 타당도를 과대추정했음이 드러나, 구조화 면접의 현재 최선 추정치는 **약 .42(80% credibility interval 약 .18~.66, 즉 ±.24 수준의 넓은 폭)**이고, 인지능력검사(GMA) 등 다른 도구와의 순위도 재배열됐다. **따라서 '.51로 채용 도구 중 최상위권'이라 단정하지 않는다** — 절대값은 신뢰구간으로 보고하고, 유지되는 것은 '구조화 > 비구조화'라는 **순서**뿐이다. 두 출처는 '상호 보강'이 아니라 **충돌**(후자가 전자를 보정)임을 명시한다. 또한 STAR 50/25/15/10 비율은 어느 1차 연구에도 없는 **코칭 휴리스틱**이며, 대학 커리어센터 자료는 학부생 코칭 콘텐츠이지 채용 타당도의 1차 근거가 아니다(방향성 참고용).
108
129
 
109
130
  - **Schmidt & Hunter (1998) "The Validity and Utility of Selection Methods"** — 구조화 면접 .51 / 비구조화 .38의 **원출처(현재는 과대추정으로 간주)**. 1998년 메타분석을 2026년 정설로 인용하지 않는다.
110
- - **Sackett, Zhang, Berry & Lievens (2022)** — range-restriction 보정 재분석. 구조화 면접 ~.42(80% CI 약 .18~.66), GMA ~.31로 하향, 신뢰구간 보고 관행. **본 문서의 헤드라인 수치는 이 보정치를 따른다.**
131
+ - **Sackett, Zhang, Berry & Lievens (2022)** — range-restriction 보정 재분석. 구조화 면접 operational validity 평균 **~.42(80% credibility interval 약 .18~.66, 따라서 SD ≈ ±.24)**, GMA/인지능력 **~.31**로 하향, 신뢰구간 보고 관행. **본 문서의 헤드라인 수치는 이 보정치를 따른다.** 동급 예측도구도 함께 명기: **job knowledge tests ~.40, empirically keyed biodata ~.38, work sample tests ~.33**. 즉 '구조화 면접 단독이 최강'이 아니라 '구조화 면접·직무지식·바이오데이터·워크샘플이 .33~.42 밴드에서 함께 상위권'이며, 이것이 '절대값은 신뢰구간으로 보고하고 유지되는 건 순서뿐'이라는 본 주석의 입장을 수치로 뒷받침한다. 저널=Journal of Applied Psychology(2022), DOI=10.1037/apl0000994, 제목='Revisiting Meta-Analytic Estimates of Validity in Personnel Selection: Addressing Systematic Overcorrection for Restriction of Range' · 1차 서지(PubMed): https://pubmed.ncbi.nlm.nih.gov/34968080/
132
+ - _보강 출처(2차, 수치 정리·교차확인):_ SIOP — Is Cognitive Ability the Best Predictor of Job Performance?(구조화 .42 / GMA .31 / job knowledge .40 / biodata .38 / work sample .33) · https://www.siop.org/tip-article/is-cognitive-ability-the-best-predictor-of-job-performance-new-research-says-its-time-to-think-again/ · Master-HR — Insights from Sackett et al.(구조화 .42, 80% CI .18~.66, SD ≈ ±.24) · https://www.master-hr.com/insights/insights-from-sackett-et-al-2023/
111
133
  - **U.S. OPM — Structured Interviews** — 행동 일관성 원리, 구조화의 핵심 동인(표준화·동일 질문·앵커드 채점표 BARS), 직무관련 역량 차원 채점, adverse impact 감소·법적 방어가능성 · https://www.opm.gov/policy-data-oversight/assessment-and-selection/other-assessment-methods/structured-interviews/
112
134
  - **Amazon Leadership Principles / STAR 면접 가이드** — Situation 압축·Result 정량화·Action 시간 집중, 인터뷰어가 가치 2~3개씩 배정 채점, probing follow-up(깊이 질문). **단, 한국 지원자 다수의 실제 타깃(국내 대기업 인성면접·스타트업 컬처핏)과는 거리가 있어 '대표 예시'가 아닌 '한 사례'로만 사용** · https://www.amazon.jobs/en/landing_pages/in-person-interview
113
135
  - **Northwestern Career Advancement — STAR Approach** — STAR 4요소 정의, 직무기술서 기반 사례 선택 · STAR 분량 비율은 **휴리스틱**으로만 인용 · https://www.northwestern.edu/careers/jobs-internships/interviewing/the-star-approach.html _(학부 코칭 콘텐츠)_
@@ -115,12 +137,58 @@
115
137
  - **Bauer College (University of Houston) — STAR Behavioral Interview Technique** — 1인칭 개인 기여 강조, STAR 실무 적용 · https://careercenter.bauer.uh.edu/resources/star-behavioral-interview-technique/ _(학부 코칭 콘텐츠)_
116
138
  - **AGENTS.md (CareerMate 프라임 디렉티브)** — 사실·수치·고유명사 보존, 과장·날조 금지 · 저장소 내부
117
139
 
140
+ **행동면접의 학술 근원 (1차):**
141
+ - **McClelland, D.C. (1998) "Identifying Competencies with Behavioral-Event Interviews", Psychological Science 9(5)** — BEI의 핵심: 특성·가정형이 아니라 구체적 과거 사건의 행동 코딩으로 우수자/평균자 변별, blind 상태에서도 경영성과 예측·길이/전년성과 무편향. 본 문서 Don't(미래 가정형·형용사 나열 금지)·probing 진위검증의 1차 학술 근거. DOI 10.1111/1467-9280.00065 · https://journals.sagepub.com/doi/10.1111/1467-9280.00065
142
+ - **[참고] Wikipedia — Critical Incident Technique (Flanagan 1954, BEI의 모태)** — 행동면접 계보의 출발점(일반 참고 자료) · https://en.wikipedia.org/wiki/Critical_incident_technique
143
+
144
+ **STAR 변형 프레임워크 (2차, 코칭 휴리스틱):**
145
+ - **The Interview Guys — STAR Method vs SOAR Method** — SOAR=Obstacle 치환, 시니어 문제해결에 적합 · https://blog.theinterviewguys.com/star-method-vs-soar-method/
146
+ - **Resumeble — Behavioral Interview Techniques: SHARE, CAR, SOAR & PAR vs STAR** — 변형 정의 비교 · https://www.resumeble.com/career-advice/behavioral-interview-techniques
147
+ - **University of Texas at Austin 'It's Your Career' — CAR Storytelling Method** — CAR=시간제약용 압축(8~12개 사례, 45~90초) · https://itsyourcareer.blog/ace-your-next-job-interview-with-the-car-storytelling-method/
148
+
149
+ **면접관 측 probing 기법 (2차):**
150
+ - **SocialTalent — How to Ask Better Behavioral Interview Questions** — probe로 리허설 답 vs 실제 경험 변별 · https://www.socialtalent.com/blog/interviewing/the-worst-behavioral-interview-questions-and-how-to-fix-them
151
+ - **Yardstick — Behavioral Interview Questions for Follow-Through** — why / what would you do differently 후속질문 · https://www.yardstick.team/interview-questions/follow-through
152
+
153
+ **한국 공공·NCS 트랙 (1차/2차):**
154
+ - **NCS 국가직무능력표준 — 공정채용 면접문항 예시 라이브러리 (1차)** — 경험면접(직업기초능력) vs 상황면접(직무수행능력) 공식 문항 · https://www.ncs.go.kr/blind/blp/bbs_lib_list.do?libDstinCd=56
155
+ - **JobKorea — NCS 면접, STAR 구조를 기억하라 (2차)** — 경험/상황면접 구분, 꼬리질문=사실+역량 이중 검증 · https://www.jobkorea.co.kr/goodjob/tip/view?News_No=13224
156
+
157
+ **한국 사기업 실전 트랙 (2차 — 평판 매체/플랫폼 공식 콘텐츠; 한국 면접에만 적용):**
158
+ - **잡코리아 — 2026 면접 50가지 질문 총정리** — 공통 빈출 + 1차 실무/2차 임원 구분 · https://www.jobkorea.co.kr/goodjob/tip/view?News_No=11119
159
+ - **인크루트 — 임원면접 질문 Best 10** — 임원 빈출 실제 문구·평가의도(회사이해·전략·역질문 기대) · https://news.incruit.com/news/newsview.asp?newsno=435266
160
+ - **커리어플랜(헤드헌팅) — 상사 갈등 면접질문, S→A→R(결과 및 배움) 프레임·평가 3축** · https://www.careerplan.be/28/?bmode=view&idx=168262204
161
+ - **인크루트 — 갈등 해결 경험 합격률 올리는 답변(STAR 적용)** · https://news.incruit.com/news/newsview.asp?newsno=436510
162
+ - **인크루트 — 면접 마지막 질문 좋은 예 vs 나쁜 예** — 좋은/나쁜 역질문 문구·사유 · https://news.incruit.com/news/newsview.asp?newsno=436499
163
+ - **링커리어 커뮤니티 — 면접 마지막 질문으로 임팩트 주는 법** — 추천 역질문 교차확인 · https://community.linkareer.com/employment_data/4858253
164
+ - **Robert Walters Korea — 이직 면접 예상 질문·이직 사유 답변 전략** — 비난 금지→성장 프레이밍(글로벌 헤드헌터) · https://www.robertwalters.co.kr/insights/career-advice/blog/tips-job-change-interview.html
165
+ - **HAIJOB — 경력직 면접 질문 TOP 10 & 모범답변** — 이직사유=불만 아닌 성장 · https://www.haijob.co.kr/blog/interview-questions-for-experienced-workers-top-10-best-answer-example-summary/
166
+ - **잡코리아 — 압박면접 현명하게 대처하는 방법 5가지** · https://www.jobkorea.co.kr/goodjob/tip/view?News_No=13378
167
+ - **하이잡 — 압박면접 질문 예시 5가지와 답변 전략·대처법** — 5개 압박 질문 문구·평가의도 · https://www.haijob.co.kr/blog/stress-interview-questions-answers-tips/
168
+ - **원티드 블로그 — 그럼에도 컬처핏 면접이 꼭 필요한 이유** — 4개 행동질문·평가 3축 · https://blog.wantedlab.com/hr/trend/culture-fit-interview
169
+ - **flex 공식 블로그 — 컬처핏 면접: 어떻게 평가해야 적합한 인재를 만날까** · https://flex.team/blog/2025/04/02/culture-fit-interview-prapare/
170
+ - **Specter(HR) — 컬처핏 면접 필수 질문 4가지** — 평가 의도: 성향·일하는 방식·팀워크·성장 · https://www.specter.co.kr/blog/%EC%9D%B8%EC%84%B1%EB%A9%B4%EC%A0%91-%EC%BB%AC%EC%B2%98%ED%95%8F%EB%A9%B4%EC%A0%91-%EC%A7%80%EC%9B%90%EC%9E%90%EC%97%90%EA%B2%8C-%EB%AC%BC%EC%96%B4%EB%B4%90%EC%95%BC-%ED%95%A0-%ED%95%84%EC%88%98-%EC%A7%88%EB%AC%B8-4%EA%B0%80%EC%A7%80
171
+ - **조선비즈(via Daum) — 토스·당근도 하는 컬처핏 면접, 우아한형제들 WSP 120문항** · https://v.daum.net/v/20250219060115271
172
+ - **한국경제 — 대기업 채용 컬처핏 평가(인적성 64%·실무 56.8%·임원 41.5%)** · https://www.hankyung.com/article/202503166308i
173
+ - **사람인 HR — 인성면접 빈출 질문(갈등·실패·협업) 콘텐츠 허브** · https://www.saramin.co.kr/zf_user/interview-review
174
+ - **CIO Korea — 개발자 면접 단골 질문 13개(기술 면접 vs HR 협업 면접 구분)** · https://www.cio.com/article/3503434/%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%A9%B4%EC%A0%91-%EC%8B%9C-%EB%8B%A8%EA%B3%A8-%EC%A7%88%EB%AC%B8-13%EA%B0%9C-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EB%AA%A8%EB%B2%94%EB%8B%B5%EC%95%88.html
175
+
176
+ **한국 사기업 실전 트랙 (참고 — 일화·자기보고·미검증; 단일 일화 단정 금지, 복수 후기 공통 패턴만):**
177
+ - **[참고] 리멤버 커뮤니티 — 2차(임원)면접과 1차면접의 차이** — 현직자 자기보고 일화 · https://community.rememberapp.co.kr/post/64578
178
+ - **[참고] 코멘토 — 2차 임원면접에 1차 실무평가가 영향 미치나요** — 현직자 Q&A 일화 · https://comento.kr/job-questions/%EB%AA%A8%EB%93%A0%ED%9A%8C%EC%82%AC/%EB%AA%A8%EB%93%A0%EC%A7%81%EB%AC%B4/2%EC%B0%A8_%EC%9E%84%EC%9B%90%EB%A9%B4%EC%A0%91%EC%97%90%EC%84%9C_1%EC%B0%A8_%EC%8B%A4%EB%AC%B4_%ED%8F%89%EA%B0%80%EA%B0%80_%EC%98%81%ED%96%A5_%EB%AF%B8%EC%B9%98%EB%82%98%EC%9A%94-443275
179
+ - **[참고] 잡플래닛(컴퍼니타임스) — 경력직 이직 사유 답변 예시** — 평가축(합리성·일관성·전 직장 비난 회피); 본문 403, 검색 스니펫만 확인(일화) · https://www.jobplanet.co.kr/contents/news-7126
180
+ - **[참고] Brunch(@cliche-cliche) — UX 면접 35개 꼬리질문** — 디자이너 자기보고 일화 · https://brunch.co.kr/@cliche-cliche/309
181
+ - **[참고] Brunch(@jenjenny) — 프로덕트 디자이너 컬처핏 면접 실제 질문** — 자기보고 일화 · https://brunch.co.kr/@jenjenny/7
182
+ - **[참고] Superookie — 탈압박 면접 비법과 주요 질문 대응법** — 자기보고 일화(압박 질문 패턴 교차) · https://www.superookie.com/contents/5e1beae88b129f585b497cb9
183
+
118
184
  ## 5. Phase B 힌트 (아키텍처로 연결)
119
185
 
120
- - **MCP 도구 아이디어:**
121
- - `get_behavioral_interview_kit({ job_id?, competency?, count? })` — `get_application_context`의 프로필·경력·스킬·대상 공고를 받아 (1) 저장된 스토리 뱅크에서 요청 역량/회사가치에 매핑되는 STAR 사례를 서빙, (2) 비어 있는 역량 카테고리·probing 누락·노후 사례를 `gap`으로 알려주고, (3) 본 루브릭(R1~R13, 등급 D/H 표기)을 함께 반환해 외부 AI가 자가검증하게 한다. read-only 지식 도구.
122
- - `save_interview_prep({ job_id, stories[] })` — STAR를 **필드 분리(situation/task/action/result)** 로 강제 저장(자유 텍스트 금지 → S/T/A/R 경계 문제 해소, 루브릭 결정성 확보). `metrics[]`에 label·sourceRef를 강제해 R6/R13 가드를 데이터 구조 차원에서 건다.
123
- - `lint_interview_kit(job_id?)` — R1~R13을 등급별로 실행. **D 항목은 pass/fail, H 항목(R3 적합·R7 적합·R13)은 `warn`/`needs_review`만 반환**(자동 합격 금지). `lang` 필드로 R4·R9 분기. 8단계 게이팅상 **면접 준비는 `document_passed` 이상에서만 해금.**
186
+ > **현재(Phase A) 구현 경계:** 지금 런타임에 존재하는 면접 저장은 `save_interview_prep`이며, 실제 영속화 필드는 **`star_guides`(STAR 4필드, 선택)뿐**이다. 아래 도구·필드(`metrics[]`·`competencies[]`·`probing{}`·`lang`·`year`·`questionMappings`·`get_behavioral_interview_kit`·`lint_interview_kit`)는 **모두 Phase B 설계안**으로, 현재는 연결된 AI가 본 루브릭을 수동으로 적용한다(런타임 자동 검증 아님).
187
+
188
+ - **MCP 도구 아이디어(Phase B):**
189
+ - `get_behavioral_interview_kit({ job_id?, competency?, count? })` *(미구현)* — `get_application_context`의 프로필·경력·스킬·대상 공고를 받아 (1) 저장된 스토리 뱅크에서 요청 역량/회사가치에 매핑되는 STAR 사례를 서빙, (2) 비어 있는 역량 카테고리·probing 누락·노후 사례를 `gap`으로 알려주고, (3) 본 루브릭(R1~R13, 등급 D/H 표기)을 함께 반환해 외부 AI가 자가검증하게 한다. read-only 지식 도구.
190
+ - `save_interview_prep({ job_id, stories[] })` — **(Phase A 현재)** STAR 4필드를 `star_guides`로 선택 저장한다. **(Phase B 목표)** STAR를 **필드 분리(situation/task/action/result)** 로 강제 저장(자유 텍스트 금지 → S/T/A/R 경계 문제 해소, 루브릭 결정성 확보)하고, `metrics[]`에 label·sourceRef를 강제해 R6/R13 가드를 데이터 구조 차원에서 건다 — 이 강제·확장 필드는 아직 미구현이다.
191
+ - `lint_interview_kit(job_id?)` *(미구현)* — R1~R13을 등급별로 실행. **D 항목은 pass/fail, H 항목(R3 적합·R7 적합·R13)은 `warn`/`needs_review`만 반환**(자동 합격 금지). `lang` 필드로 R4·R9 분기. 8단계 게이팅상 **면접 준비는 `document_passed` 이상에서만 해금.**
124
192
  - **데이터 형태 힌트:**
125
193
  ```
126
194
  StoryBankEntry {
@@ -10,7 +10,13 @@
10
10
 
11
11
  ## 2. 플레이북
12
12
 
13
- > **트랙 분리가 먼저다.** 기술 면접은 단일 포맷이 아니다. 최소 다섯 갈래로 나뉘고 평가 축이 서로 다르다: ① 온라인 코딩테스트(자동채점, 소통 0점) ② 라이브 코딩(소통 중심) ③ 백엔드 시스템 디자인 ④ FE/ML/데이터/모바일 시스템 디자인(축이 다름) ⑤ 디버깅/기존 코드 확장형. 아래 원칙은 트랙·세션 길이·레벨에 따라 **강도를 조절**해 적용한다(획일 적용 금지).
13
+ > **트랙 분리가 먼저다.** 기술/실무 면접은 단일 포맷이 아니다. 갈래가 여럿이고 평가 축이 서로 다르다.
14
+ >
15
+ > **개발 직군 트랙**: ① 온라인 코딩테스트(자동채점, 소통 0점) ② 라이브 코딩(소통 중심) ③ 백엔드 시스템 디자인 ④ FE/ML/데이터/모바일 시스템 디자인(축이 다름) ⑤ 디버깅/기존 코드 확장형.
16
+ >
17
+ > **비개발 직군 트랙(직군별 실무/기술 면접도 따로 존재)**: ⑥ 마케팅(캠페인·지표 케이스) ⑦ 영업(롤플레이/모의세일즈) ⑧ 기획·PM(케이스·과제전형) ⑨ 디자인(포트폴리오 리뷰) ⑩ 데이터 분석(SQL 실기 + 지표/통계 케이스). 각 트랙은 "코딩 정답 도달"이 아니라 직군 고유 평가축이 다르다 — 마케팅=목적별 지표 선택의 논리, 영업=니즈 파악·거절 대응의 실시간 수행, 기획=문제정의·우선순위 추론, 디자인=의사결정 근거, 데이터=지표 정의의 정합성. _(출처: HAIJOB — 마케팅 면접; Recatch — 세일즈 면접; brunch @jenjenny — 프로덕트 디자이너 실무면접[참고/일화])_
18
+ >
19
+ > 아래 원칙은 트랙·세션 길이·레벨에 따라 **강도를 조절**해 적용한다(획일 적용 금지).
14
20
 
15
21
  ### 원칙
16
22
 
@@ -24,6 +30,51 @@
24
30
  - **(면접은 모놀로그가 아니라 대화)** — 막히면 침묵하지 말고 현재 가설·막힌 지점을 소리 내어 말하고 힌트를 활용한다. 침묵이 가장 큰 감점이다. _(출처: Tech Interview Handbook — Communication 축)_
25
31
  - **(과설계 금지: 단순하게 시작해 점진 확장)** — 요구사항이 정당화하지 않는 MSA/Kafka/k8s를 넣지 않는다. 정당화 사슬이 끊기면 mid-level 신호. _(출처: DesignGurus — 7 Anti-Patterns)_
26
32
  - **(레벨로 기대치가 다르다)** — 같은 문제라도 주니어(L3/L4)는 "동작하는 설계"·"명확화 1~2개", 시니어(L5)는 "트레이드오프·실패모드·비용", 스태프(L6+)는 "요구사항 자체를 협상/축소·조직/운영 경계 설계"가 변별점이다. 준비 자료는 후보 레벨에 맞춰 기대치를 적는다. _(출처: DesignGurus — Google SD Rubric 차원; 레벨 차등은 본 플레이북 보정)_
33
+ - **(추론을 입 밖으로 내지 않으면 0점)** — 면접관은 *관찰된 신호*만 채점한다(Interviewers score observed signals, not unspoken reasoning). 머릿속으로만 한 트레이드오프 검토·요구사항 분석은 평가에 잡히지 않으므로, 모든 트랙에서 사고 과정을 명시적으로 말·다이어그램·주석으로 드러낸다. _(출처: GreatFrontend — Evaluation Axes)_
34
+ - **(비개발 직군은 거의 항상 경험 서사를 STAR로 묻는다)** — 코드 대신 본인이 주도한 프로젝트의 목적→행동→수치 성과를 요구하므로, 산출물은 저장된 후보 경력/성과 데이터에 **앵커**하고 수치·고유명사를 지어내지 않는다. 직군별 예상 질문은 '답변 구조' 보강 신호일 뿐, 후보의 캠페인 수치·매출·실적·프로젝트 성과는 발명 금지(없으면 '면접 전 확인'으로 분리). _(출처: HAIJOB — 마케팅 면접; Recatch — 세일즈 면접)_
35
+
36
+ ### 트랙별 평가축 (직무 차등)
37
+
38
+ > 트랙은 같은 골격(요구사항→아키텍처→데이터→인터페이스→심층)을 쓰더라도 **무엇을 1순위로 보는지**가 다르다. 아래는 개발 SD 하위 트랙과 비개발 직군 트랙의 차등이다. 어느 트랙도 "정답 도달"이 아니라 트랙 고유 신호를 입 밖으로 드러내는 것이 변별점이다.
39
+
40
+ #### 프런트엔드 시스템 디자인 — RADIO 프레임 + 6 평가축
41
+
42
+ RADIO 단계: **R**(Requirements Exploration: 기능/비기능 요구·지원 브라우저·디바이스·a11y·i18n 범위) → **A**(Architecture/High-level: 컴포넌트 분해·책임 경계·상태관리·데이터 흐름) → **D**(Data Model: 클라이언트 상태·정규화·서버상태 vs UI상태) → **I**(Interface Definition: 컴포넌트 props/API·이벤트·서버 API 계약) → **O**(Optimizations & Deep Dive: 렌더링 전략 CSR/SSR/SSG, 네트워크/캐시, 번들 크기, 성능예산, 접근성, 보안).
43
+
44
+ 채점 6축: ① Problem Exploration ② Architecture ③ Technical Proficiency(Performance/Networking/Accessibility/Security/i18n) ④ Exploration & Tradeoffs ⑤ Product & UX Sense(로딩/에러/모바일/perceived performance) ⑥ Communication.
45
+
46
+ 핵심 차등: **백엔드 SD가 서버·DB·LB·분산 확장성을 보는 반면, FE SD는 클라이언트 아키텍처·렌더링 전략·번들/네트워크·UX·a11y를 본다.** 45분 중 코드(의사코드)는 ~5분, 나머지는 아키텍처 다이어그램·데이터흐름·결정 방어에 쓴다. **FE SD는 미니 백엔드 면접이 아니다.** _(출처: GreatFrontend — Evaluation Axes; Tech Interview Handbook — Front End vs Back End SD; SystemDesignHandbook — Frontend SD Guide[참고])_
47
+
48
+ #### ML/데이터 시스템 디자인 — 7단계 프레임 + ML 고유 메트릭
49
+
50
+ 단계: ① 문제 프레이밍·요구 명확화(비즈니스 목표→ML 태스크 정의: 분류/회귀/랭킹/추천) ② 데이터 파이프라인(수집·라벨링·품질·누수 방지) ③ 피처 엔지니어링 ④ 모델 선택(단순 베이스라인부터, SOTA 디폴트 금지) ⑤ 학습 ⑥ 평가(오프라인 메트릭 vs 온라인 A/B; precision/recall/F1·confusion matrix, calibration, group fairness/bias, robustness) ⑦ 배포·서빙·모니터링(프로덕션 드리프트·재학습). 시간 배분 예: 정의 8분 + 각 설계영역(데이터/피처/모델/학습·평가/배포) ~8분 + 마무리 5분.
51
+
52
+ 핵심 차등: **백엔드 SD가 QPS·일관성·샤딩을 1순위로 보는 반면, ML SD는 문제 프레이밍과 데이터/평가가 1순위 변별 구간이다.** 모델 아키텍처로 직행하거나 데이터 파이프라인·모니터링을 빼면 "연구자처럼 생각하고 프로덕션 엔지니어처럼 생각하지 못한다"는 강한 감점 신호다. 2026년 추세는 평가 방법론·비용·지연·가드레일·모니터링이 아키텍처 다이어그램보다 더 중요하게 채점된다. _(출처: Exponent — ML System Design Interview 2026; Interview Kickstart — ML SD Guide[참고]; alirezadir/Machine-Learning-Interviews — ml-system-design.md[참고])_
53
+
54
+ #### 백엔드 규모 추정 — 표준 상수 도구상자
55
+
56
+ LLM이 임의 latency·가용성 수치를 쓰면 형식(R5)은 통과하나 값이 틀린다. 다음 **업계 표준 상수**에 앵커한다:
57
+
58
+ - **power-of-two 표**(저장량 자릿수 정렬): 2^10≈1K, 2^20≈1M, 2^30≈1GB, 2^40≈1TB, 2^50≈1PB.
59
+ - **Jeff Dean — Numbers Every Programmer Should Know**: L1 참조 ~0.5ns, 메모리 1MB 순차 읽기 ~0.25ms, SSD가 메모리보다 ~4배 느림, 디스크 seek ~10ms, 같은 DC 라운드트립 ~0.5ms, 대륙간 라운드트립 ~150ms(메모리는 빠르고 디스크/네트워크는 느리다·전송 전 압축·멀티리전은 비싸다).
60
+ - **가용성 9의 개수↔다운타임**: 99%≈연 3.65일, 99.99%≈연 52.6분, 99.999%≈연 5.26분.
61
+ - **추정 원칙**: 정확값이 아니라 **자릿수(order of magnitude)**가 목표, 라운딩(99,987→100,000, 9.1→10), 가정은 적어두고, **단위를 반드시 표기**('5'가 아니라 '5MB'), '병목 서비스의 읽기/쓰기 처리량'·'총 저장량'처럼 설계를 가르는 양만 추정하고 무관한 양은 건너뛴다. 차원분석 예: '300M MAU, 50% 일사용, 2건/일 → ~3,500 QPS(피크 ~7,000), 미디어 30TB/일, 5년 ~55PB'.
62
+
63
+ _(출처: ByteByteGo — Back-of-the-Envelope Estimation; Hello Interview — Mastering Estimation)_
64
+
65
+ #### 라이브 코딩 절차 — 대학 1차 출처 앵커
66
+
67
+ (1) **Clarify first** — 곧장 코딩하지 말고 문제를 자기 말로 재진술하고 입력/출력 예시를 직접 제시. (2) **Brainstorm multiple approaches** — 코딩 전에 여러 접근을 검토하고 "어느 접근을 선호하시나요?"라고 면접관에게 물어 차선해 구현을 피한다. (3) **Outline as comments** — 알고리즘을 에디터에 주석/글머리표로 먼저 적는다. (4) **During coding** — 계획을 따라가고 있음을 보이며 진행상황을 계속 소통; 작은 부분에 막히면 'TODO' 노트를 남기고 넘어간다. 행동질문은 CAR(Circumstance–Action–Result) 또는 STAR로 정리. **안티패턴 경고**: 'LeetCode 암기에 시간 전부 쓰기·hard만 풀기·첫 해법으로 직행'은 잘못된 준비다. _(출처: Binghamton University — Mastering Technical Coding Interviews[1차]; Princeton University — Coding Interview Preparation[1차])_
68
+
69
+ #### 비개발 직군 트랙 부록 (예상 질문·평가 포인트)
70
+
71
+ > 아래는 여러 후기·가이드에 **공통으로 나타나는 패턴** 질문 세트와 평가 포인트다. 단일 일화 단정 금지 — '예상 질문·답변 구조 신호'로만 쓰고, 후보의 수치·실적은 저장 데이터에 앵커한다.
72
+
73
+ - **마케팅** — 공통 질문: '캠페인 성과를 어떻게 측정했나', 'KPI를 어떻게 설정했나', 'A/B 테스트 경험', 'GA/광고관리도구 사용 경험', '성공한 마케팅 사례를 분석하라'. 평가 포인트: ① 캠페인 목적별 지표 분기 능력(인지=도달·노출, 참여=CTR·공유, 전환=전환율·ROAS·CPA, 앱=CPI) ② 데이터 기반 의사결정 입증 ③ '목적→관리 지표→액션→수치 성과' 서사. 답변 구조: STAR + 구체 수치('약 30% 증가' > '크게 증가'). _(출처: HAIJOB — 마케팅 면접; 링커리어 — 마케팅 면접 50선[참고])_
74
+ - **영업** — 형식: 모의 세일즈/롤플레이('이거 팔아보세요' — 펜·휴대폰·영양제 등 즉석 물건). 평가 포인트: 이 질문은 '진짜 팔기'가 아니라 ① 당황하지 않고 세일즈 상황을 차분히 리드하는가 ② 니즈 파악 → 상품 기능/가치 전달 순서를 아는가 ③ 거절·꼬리질문·압박에 대응하는가. 추가: 텍스트 커뮤니케이션(콜드메일 등) 비중↑, 팀 성과 강조 여부, 셀프피드백→즉시 2차 시연으로 '빠른 학습' 측정, 스크립트 낭독이 아닌 '질문으로 문제 발굴' 능력. _(출처: Recatch — 세일즈 채용 5체크리스트; inthiswork — 제약영업 롤플레이[참고/일화])_
75
+ - **기획·PM** — 거의 항상 확인하는 3축: ① 직무 이해('서비스 기획자/PM 역할은?') ② 우리 서비스 분석·개선안('써봤나, 개선점은?') ③ 본인 주도 프로젝트(성과·실패 포함). 케이스/과제전형: 짧은 장표로 '문제 파악→논리적 해결' 제시, 상황형('신규 유입 급증 + 공급 총량 고정이면 어떻게?'), 우선순위 결정(RICE = Reach·Impact·Confidence/Effort 등 프레임 설명 가능해야), 일정 지연·리소스 제약·이해관계자 의견 충돌 대처. 답변: '기본 서사' 먼저 만들고 세부는 파생, STAR. _(출처: brunch @a33f93b357b349e — 7년차 PM 질문리스트[참고/일화]; Medium @2nd.planner — 서비스 기획자 면접[참고/일화]; brunch @ywkim36 — RICE 해설[참고])_
76
+ - **디자인** — 형식: 포트폴리오 발표 + 질의응답. 평가 4축: ① 문제 정의·가설 근거('이 가설을 세운 배경은?') ② 의사결정('왜 A로 풀었나, B는 왜 아니었나') ③ 개인 기여도('본인이 한 부분은?' — 과장 필터) ④ 협업·업무 속도·우선순위(PM/개발과 일정 협의, 품질↔양 균형). 핵심: '모르는 걸 아는 척하지 말 것'(신빙성). _(출처: brunch @jenjenny — 프로덕트 디자이너 실무면접[참고/일화]; pxd story — UX/UI 항상 묻는 질문[참고/일화]; wishket — UX디자이너 면접 팁)_
77
+ - **데이터 분석** — 형식: SQL 실기 + 지표/통계/케이스 구술. 공통 영역: JOIN(inner/left/outer)·GROUP BY·쿼리 실행순서·인덱스, 통계(A/B 테스트 설계·p-value·평균·표준편차), 데이터 전처리(결측·이상치·중복), 지표 정의의 정합성과 비즈니스 임팩트로의 연결. 평가: 기술 정확성 + '왜 이 지표인가'의 논리. _(데이터 분석가 실무 면접은 §2의 system_design_data 트랙과 평가 축이 다름.)_
27
78
 
28
79
  ### Do
29
80
 
@@ -38,6 +89,8 @@
38
89
  - 공통: 막히면 침묵하지 말고 현재 가설·막힌 지점을 소리 내어 말하고 힌트를 활용한다.
39
90
  - 공통(가상 면접): CoderPad/공유에디터에서 화면공유 중 think-aloud를 유지하고, 시간이 부족하면 "여기까지 동작하고, 남은 부분은 이렇게 마무리할 계획"이라고 **우아하게 마무리**한다. AI 보조 도구가 허용되면 "왜 이 코드인지"를 직접 설명할 수 있어야 한다.
40
91
  - 한국 맥락: CS 구술(자료구조·네트워크·OS·DB 인덱스/트랜잭션) 예상 질문과 답을 한국어로 준비한다. 경력직은 시스템 설계 대신 **트러블슈팅 경험 구술**이 나올 수 있으니 STAR로 정리한다.
92
+ - 한국 맥락(사기업 개발 채용 루프): 한국 사기업은 흔히 (1) **코테 1차**(자동채점, 프로그래머스/백준/SWEA) → (2) 실무 기술면접에서 **라이브코딩(45~60분, 빅오 설명 필수)과 CS 구술이 자소서·인성 질문과 한 세션에 결합**되어 진행된다. 신입일수록 자료구조·알고리즘·CS 비중이 높고, 본인이 작성한 코드의 시간복잡도를 빅오로 설명할 수 있어야 한다. 비개발 직군도 직무 실무 질문이 인성/동기/컬처핏 질문과 한 면접에 섞이므로(스타트업은 가치관·상황형 개방질문 비중↑), 트랙 자료는 **`interview-behavioral`과 함께** 쓰도록 안내한다. _(출처: 원티드 — 개발자 면접 정복(1) 코딩테스트 편; 잡코리아 — 네이버 면접 후기[참고/일화]; IMHR — 스타트업 면접 질문 리스트[참고])_
93
+ - 한국 맥락(공공·블라인드 트랙): NCS(한국산업인력공단)는 블라인드/공정채용 표준을 운영하며 면접 문항을 **4유형(경험면접·상황면접·발표면접·토론면접)**으로 표준화한다. 직무별(예: 정보보호) 예시 면접문항이 공개돼 있으니, 공공기관·NCS 기반 IT 직무 지원자에게는 (a) 4유형별로 준비, (b) 직업기초능력(의사소통·문제해결·자원관리 등) 기반으로 경험을 STAR/CAR로 매핑, (c) IT 직무는 '최신 기술 능동적 학습·다양한 이해관계자와의 소통·논리/분석적 사고'가 핵심 역량으로 평가됨을 명시한다. **민간 빅테크 라이브 코딩과 공공기관 NCS 면접은 평가 포맷이 다르므로 지원 대상에 맞춰 트랙을 분리**한다. _(출처: NCS 국가직무능력표준 — 공정채용 포털[1차]; NCS 공정채용 — 면접문항 예시 라이브러리[1차])_
41
94
 
42
95
  ### Don't
43
96
 
@@ -69,6 +122,10 @@
69
122
  ## 3. 검증 루브릭 (연결된 AI가 산출물을 이 기준으로 자가검증)
70
123
 
71
124
  > **이 루브릭은 "형식 floor 검사(format lint)"다 — 합격 점수가 아니다.** 모든 검사는 키워드·개수·정규식·위치 비교로 LLM 없이 측정하므로 **구조의 존재만** 본다(예: 'O(n)'이 *맞는지*는 못 본다, 'vs'가 든 문장이 *공허한지*는 못 본다). 따라서 self_check 결과는 `passedCount/totalCount`가 아니라 **"형식 최소 요건 충족/미충족"** 으로 라벨링하고, "정확성·추론 품질은 연결된 AI가 별도 판정"이라는 경고를 반드시 함께 반환한다. 아래 임계값(≥2, ≥3 등)은 **휴리스틱 컷이며 회사/레벨/문제 난이도에 따라 조정 대상**이다(절대선 아님). R10~R11은 안티패턴을 **역검출**하는 negative-check다.
125
+ >
126
+ > **트랙별 적용 범위(중요):** 이 형식 floor 검사는 **코딩·시스템디자인 트랙 기준으로 설계**되었다. 마케팅/영업/기획/디자인/데이터 등 **비개발 트랙에는 R3(복잡도)·R5(규모 추정)·R7(타임박싱) 같은 코딩/SD 전용 검사가 적용되지 않는다(트랙별 skip)** — 예컨대 마케터 자료에 'O(n)'·'QPS'가 없는 게 정상이다. 비개발 트랙의 형식 floor는 **'직군 평가축 커버리지'**로 대체한다: 마케팅=목적별 지표 분기 언급 + 수치 성과 서사; 영업=니즈파악→기능전달 순서 + 거절 대응 스크립트; 기획=문제정의 + 우선순위 근거; 디자인=의사결정 근거('why not B') + 개인 기여도; 데이터=지표 정의 정합성 + 비즈니스 연결. 단 이들도 '구조 존재'만 LLM 없이 측정하며 내용 정확성·답변 품질은 연결된 AI가 별도 판정한다(위 경고 동일 적용). _(출처: HAIJOB — 마케팅 면접 평가 5축; brunch @jenjenny — 디자이너 평가축[참고/일화])_
127
+ >
128
+ > **개발 SD 하위 트랙 분기(R4/R5/ML):** R4(요구사항 우선)·R5(규모 추정)는 백엔드 SD(QPS·DAU·저장량) 가정에 고정돼 있어 FE/ML 산출물에 그대로 돌리면 위음성이 난다. track이 `system_design_frontend`면 R5의 NFR 키워드 집합을 **'성능예산/번들 크기/렌더링(CSR·SSR·SSG)/접근성·a11y/i18n/네트워크 캐시'**로 치환하고, DAU·QPS·저장량 대신 **'동시 사용자·페이로드 크기·렌더 예산(ms)·번들 KB'**를 단위 추정 대상으로 인정한다. track이 `system_design_ml`이면 신규 형식 floor를 추가한다: **평가 메트릭 명시(precision/recall/F1/AUC 중 ≥1) + 데이터 파이프라인 섹션 존재 + 모니터링/드리프트 키워드 ≥1**, 누락 시 negative 플래그. 단 트랙 분기는 '무엇을 세는가'만 바꾸지 '정확성을 측정한다'는 주장으로 격상하지 않는다(위 경고 그대로 유지). _(출처: GreatFrontend — Evaluation Axes; Exponent — ML System Design Interview)_
72
129
 
73
130
  | ID | 검사 항목 | 합격 기준 (형식 floor) | 측정 방법(LLM 없이 셀 수 있게) |
74
131
  |----|-----------|-----------|--------------------------------|
@@ -97,14 +154,59 @@
97
154
  - **DesignGurus — System Design Rubric 차원 / 7 Anti-Patterns** — 평가 차원(요구사항·아키텍처·기술깊이·트레이드오프), 과설계 등 안티패턴. **2차(블로그) 출처이며 실제 회사 1차 루브릭이 아님에 주의.** · https://www.designgurus.io/blog/
98
155
  - **Exponent — System Design Interview Guide** — 45분 단계별 시간 배분의 *기본값*, 10x/100x 밀어붙이기, 심층에서 차별화. **회사별 세션 길이(Amazon 60분·한국 60~120분·스타트업 2~3h)와 레벨 차등은 본 플레이북의 보정이며 이 단일 소스에 과의존하지 말 것.** · https://www.tryexponent.com/blog/system-design-interview-guide
99
156
  - **GeeksforGeeks / SystemDesignHandbook — Common Mistakes** — 핵심 안티패턴(명확화 없이 다이어그램, 모놀로그, 한꺼번에 다루기). 2차 출처 · https://www.geeksforgeeks.org/system-design/common-mistakes-to-avoid-in-a-system-design-interview/
100
- - **본 플레이북 보정(1차 자료 없음, 실무 관찰 기반)** — 온라인 코딩테스트 vs 라이브 코딩 분리, 세션 길이별 프레임 강도(라이트/풀 UMPIRE), 레벨(L3~L6+) 차등 기대치, FE/ML/데이터/모바일·디버깅 트랙 존재, AI 보조도구 정책, 한국 채용 루프(자동채점 1차 → 라이브 2차, 경력직 트러블슈팅 구술). 이 항목들은 위 2차 출처가 직접 뒷받침하지 않으므로 회사/연도별로 재확인 대상이다.
157
+
158
+ ### 트랙별 평가축 (FE/ML SD, 코딩 절차)
159
+
160
+ - **[2차] GreatFrontend — Front End System Design Playbook: Evaluation Axes** — FE SD의 RADIO 프레임 + 6 평가축(Problem Exploration/Architecture/Technical Proficiency/Tradeoffs/Product-UX/Communication), FE NFR(Performance/Networking/Accessibility/Security/i18n), '추론을 입 밖으로 내지 않으면 0점' 원칙 · https://www.greatfrontend.com/front-end-system-design-playbook/evaluation-axes
161
+ - **[2차] Tech Interview Handbook — Front End vs Back End System Design Interviews** — FE SD가 백엔드와 골격은 같되 NFR 축이 다름·'45분 중 코드 5분' 교차확인(직접 fetch 403, 검색 스니펫 교차) · https://www.techinterviewhandbook.org/blog/front-end-vs-back-end-system-design-interviews/
162
+ - **[참고] SystemDesignHandbook — Frontend System Design: The Complete Guide 2026** — 클라이언트 아키텍처·렌더링·번들 축 교차확인 · https://www.systemdesignhandbook.com/guides/frontend-system-design/
163
+ - **[2차] Exponent — Machine Learning System Design Interview (2026)** — ML SD 6단계 프레임 + ML 고유 메트릭(F1/precision/recall·calibration·drift/monitoring), '문제 프레이밍·데이터·평가가 1순위 변별 구간' · https://www.tryexponent.com/blog/machine-learning-system-design-interview-guide
164
+ - **[참고] Interview Kickstart — ML System Design Interview Guide** — 7단계 프레임(요구·프레이밍·데이터·모델·평가·배포·모니터링)·시간배분 교차확인 · https://interviewkickstart.com/blogs/articles/machine-learning-system-design-interview-guide
165
+ - **[참고] alirezadir/Machine-Learning-Interviews — ml-system-design.md** — 오픈소스 ML SD 템플릿 교차확인 · https://github.com/alirezadir/machine-learning-interviews/blob/main/src/MLSD/ml-system-design.md
166
+
167
+ ### 규모 추정 표준 상수
168
+
169
+ - **[2차] ByteByteGo — Back-of-the-Envelope Estimation** — power-of-two 표·Jeff Dean latency numbers·가용성 9의 개수↔다운타임·Twitter 워크드 예시·라운딩/단위/가정 팁 · https://bytebytego.com/courses/system-design-interview/back-of-the-envelope-estimation
170
+ - **[2차] Hello Interview — System Design Fundamentals: Mastering Estimation** — crux/병목만 추정·order-of-magnitude·차원분석·라운딩 · https://www.hellointerview.com/blog/mastering-estimation
171
+
172
+ ### 코딩 면접 절차 — 대학 1차 출처
173
+
174
+ - **[1차] Binghamton University — Fleishman Center: Mastering Technical Coding Interviews** — Clarify/Brainstorm/Outline 단계·CAR Method·안티패턴 경고(LeetCode 암기·hard만·첫 해법 직행) · https://careertools.binghamton.edu/resources/mastering-technical-coding-interviews/
175
+ - **[1차] Princeton University — Center for Career Development: Coding Interview Preparation** — timed test vs live·평가 대상·think-aloud(직접 fetch 403, 검색 스니펫 교차) · https://careerdevelopment.princeton.edu/guides/interviews/coding-interview-preparation
176
+
177
+ ### 한국 공공·블라인드 트랙 — 정부 1차 출처
178
+
179
+ - **[1차] NCS 국가직무능력표준 — 공정채용(블라인드) 공식 포털 (한국산업인력공단)** — 블라인드/공정채용 표준 운영 · https://www.ncs.go.kr/
180
+ - **[1차] NCS 공정채용 — 면접문항 예시문항 라이브러리** — 면접 4유형(경험/상황/발표/토론)·정보보호 등 직무별 예시·직업기초능력 태깅 · https://www.ncs.go.kr/blind/blp/bbs_lib_list.do?libDstinCd=56
181
+
182
+ ### 한국 사기업 실전 — 개발 채용 루프 & 비개발 직군 트랙
183
+
184
+ - **[2차] 원티드 — 개발자 면접 완전 정복 (1) 코딩 테스트 편** — 온라인 코테 vs 라이브코딩(45~60분) 구분·시간·평가4축·빅오 설명 필수·코드 작성 전 접근 상의 · https://www.wanted.co.kr/events/22_11_s01_b15
185
+ - **[참고] 잡코리아 — 네이버 면접 후기(일화)** — 자소서 기반 질문 중간에 라이브코딩이 한 세션에 결합 · https://www.jobkorea.co.kr/starter/review/view?C_Idx=215&Half_Year_Type_Code=0&Ctgr_Code=3&FavorCo_Stat=0&G_ID=0&Page=30
186
+ - **[참고] IMHR — 스타트업 면접 질문 리스트 20** — 가치관·상황형 개방질문 중심(2차 HR 콘텐츠, 본문 미렌더로 참고 강등) · https://www.imhr.work/brand/startup-interview-questions/
187
+ - **[2차] HAIJOB — 마케팅 면접 질문 리스트** — 목적별 지표 분기(ROAS/CPA/CTR/CPI/도달)·평가 5축(논리·데이터·창의·실무적용·커뮤니케이션)·STAR·구체 수치 · https://www.haijob.co.kr/blog/marketing-interview-question-list-real-time-questions-how-to-answer-and-summary-of-acceptance-points/
188
+ - **[참고] 링커리어 커뮤니티 — 마케팅 직무 면접 질문 리스트 50(일화)** — ROI·KPI·A/B·GA·타겟팅 반복 교차확인 · https://community.linkareer.com/jayuu/2722774
189
+ - **[2차] Recatch — 세일즈맨 면접 질문 5가지 체크리스트** — 모의세일즈로 실무 역량 검증·텍스트커뮤·셀프피드백→재시연 빠른학습·질문능력 · https://www.recatch.cc/ko/blog/5-checklists-for-hiring-salesman/
190
+ - **[참고] inthiswork — 제약영업 '이거 팔아보세요' 롤플레이(일화)** — 니즈파악→기능전달·거절·꼬리질문 · https://inthiswork.com/?kboard_content_redirect=309
191
+ - **[참고] brunch @a33f93b357b349e — 7년차 PM 면접 질문리스트(일화/현직자)** — 직무이해·실패·우선순위·이해관계자 · https://brunch.co.kr/@a33f93b357b349e/42
192
+ - **[참고] Medium @2nd.planner — 면접 보는 서비스 기획자에게(일화/현직자)** — 직무이해·서비스 개선안·주도 프로젝트 3축 · https://medium.com/@2nd.planner/%EB%A9%B4%EC%A0%91%EC%9D%84-%EB%B3%B4%EB%8A%94-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B8%B0%ED%9A%8D%EC%9E%90%EB%93%A4%EC%97%90%EA%B2%8C-1-816318317f88
193
+ - **[참고] brunch @ywkim36 — RICE 프레임워크 해설** — 우선순위 정의(Reach·Impact·Confidence/Effort) 교차확인 · https://brunch.co.kr/@ywkim36/124
194
+ - **[참고] brunch @jenjenny — 프로덕트 디자이너 실무면접(일화)** — 포트폴리오 평가 축(문제정의 근거·why a not b·개인 기여도) · https://brunch.co.kr/@jenjenny/6
195
+ - **[참고] pxd story — UX/UI 직군 항상 묻는 질문 3가지(일화)** — 대표 프로젝트·협업·우선순위 · https://story.pxd.co.kr/1574
196
+ - **[2차] wishket 블로그 — UX디자이너 면접 질문 팁** — 디자이너 면접 평가 포인트 · https://blog.wishket.com/ux%EB%94%94%EC%9E%90%EC%9D%B4%EB%84%88-%EB%98%91%EC%86%8C%EB%A6%AC%EB%82%98%EA%B2%8C-%EA%B5%AC%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95-%EA%B5%AC%EC%9D%B8%EA%B8%80-%EC%9E%91%EC%84%B1-%EB%A9%B4%EC%A0%91/
197
+ - **[참고] off-dngw.github.io — SQL/DB 면접 질문 정리(일화)** — JOIN·실행순서·DDL/DML · https://off-dngw.github.io/posts/DB%EB%A9%B4%EC%A0%91%EC%A7%88%EB%AC%B8%EC%A0%95%EB%A6%AC/
198
+ - **[참고] velog @sainteye01 — 데이터 분석 직군 공통 면접 질문(일화)** — 역량·도구 중심 · https://velog.io/@sainteye01/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EC%A7%81%EA%B5%B0-%EA%B3%B5%ED%86%B5-%ED%95%AD%EB%AA%A9-%EB%A9%B4%EC%A0%91-%EC%A7%88%EB%AC%B8-%EB%A6%AC%EC%8A%A4%ED%8A%B8
199
+
200
+ > **출처 등급 주의(정직 고지):** 위 '한국 사기업 실전·비개발 직군 트랙' 항목 중 [참고]로 표시된 것은 **현직자·취준생 블로그/커뮤니티 후기(일화·자기보고·미검증)**다. 본문 enrichment는 '여러 후기·가이드에 공통으로 나타나는 패턴만 채택, 단일 일화 단정 금지, 예상 질문·답변 구조 신호로만'을 지켰다. 각 직군 질문 세트는 최소 2개 출처(2차 가이드 + 참고 후기)에서 교차확인된 패턴만 반영했다. NCS/공공기관 1차 자료(블라인드)는 민간 사기업 트랙과 섞지 않고 별도 트랙으로 유지한다.
201
+
202
+ - **본 플레이북 보정(1차 자료 없음, 실무 관찰 기반)** — 온라인 코딩테스트 vs 라이브 코딩 분리, 세션 길이별 프레임 강도(라이트/풀 UMPIRE), 레벨(L3~L6+) 차등 기대치, 모바일 SD 트랙 존재, AI 보조도구 정책. 이 항목들은 위 출처가 직접 뒷받침하지 않으므로 회사/연도별로 재확인 대상이다. _(FE/ML/데이터 SD 트랙·한국 채용 루프·비개발 직군 트랙은 위 신규 출처로 앵커되어 더 이상 무출처 보정이 아니다.)_
101
203
 
102
204
  ## 5. Phase B 힌트 (아키텍처로 연결)
103
205
 
104
206
  - **MCP 도구 아이디어:**
105
- - `get_interview_prep_playbook({ track, role?, company?, level?, session_minutes?, locale? })` — `track`은 `online_coding_test | live_coding | system_design_backend | system_design_frontend | system_design_ml | debugging | behavioral` 로 확장. 트랙별 (a) 프레임(자동채점 체크 / 라이트·풀 UMPIRE / SD 타임박스), (b) do/dont, (c) 막힘·시간초과 마무리 스크립트, (d) 형식 루브릭을 반환. `level`로 passBar 분기, `session_minutes`로 R7 합산 기준 설정, `locale:'ko'`면 CS 구술 세트 + 한국어 스크립트 + 경력직 트러블슈팅 STAR 템플릿 포함.
207
+ - `get_interview_prep_playbook({ track, role?, company?, level?, session_minutes?, locale? })` — `track`은 `online_coding_test | live_coding | system_design_backend | system_design_frontend | system_design_ml | debugging | behavioral` 에 **비개발 직군 트랙** `marketing | sales | pm_planning | design_portfolio | data_analyst` 추가. 트랙별 (a) 프레임(자동채점 체크 / 라이트·풀 UMPIRE / SD 타임박스 / 직군 평가축), (b) do/dont, (c) 막힘·시간초과 마무리 스크립트, (d) 형식 루브릭을 반환. **신규 비개발 트랙은 각각** (a) 직군 평가축, (b) 공통 예상 질문 세트, (c) 답변 구조 템플릿(마케팅/영업/기획/데이터=STAR+수치, 디자인=문제정의→과정→의사결정 근거→결과→기여도), (d) 롤플레이/케이스/과제전형 대응 스크립트, (e) 트랙별 형식 floor 검사를 반환. `level`로 passBar 분기, `session_minutes`로 R7 합산 기준 설정, `locale:'ko'`면 CS 구술 세트 + 한국어 스크립트 + 경력직 트러블슈팅 STAR 템플릿 + 한국 사기업 개발 루프(코테1차→라이브코딩+CS 결합)·NCS 4유형 세트 포함.
106
208
  - `self_format_lint_interview_prep({ artifact_text, track, session_minutes?, level? })` — **이름을 `self_check`에서 `self_format_lint`로 변경**(정직성). LLM 없이 R1~R11 패턴/개수/위치/negative만 측정. 반환에 **경고 플래그 강제 포함**: 형식 충족 여부일 뿐 합격·정확성 보장 아님.
107
- - `generate_mock_questions({ track, topic })` — `get_application_context`에 **기술 스택 필드가 실제 있는지 먼저 검증**하고, 없으면 role/company로 폴백. 컨텍스트 기반 예상 질문 세트 serve.
209
+ - `generate_mock_questions({ track, topic })` — `get_application_context`에 **기술 스택 필드가 실제 있는지 먼저 검증**하고, 없으면 role/company로 폴백. 컨텍스트의 직군(role)·기술스택·저장된 프로젝트/성과 데이터를 읽어 직군 예상 질문 세트를 serve하되, **답변 예시에는 저장 데이터에 없는 수치·실적을 절대 채우지 않는다(no-fabrication 가드 — 저장 데이터 앵커 원칙을 코드 수준까지 내림)**.
108
210
  - `save_interview_prep` — 기존 8단계 게이팅(**document_passed 이상에서만 해금**)을 그대로 존중. 단 **track/framework/rubric_result 필드 추가가 필요하면 스키마 확장 + 기존 데이터 마이그레이션 영향(현 스키마는 questions/star_guides/self_introduction/notes만 받음)을 Phase B에서 명시 설계**할 것.
109
211
  - **데이터 형태 힌트:**
110
212
  ```
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## 1. 무엇을 하는가
6
6
 
7
- LinkedIn 프로필을 **(1) 리크루터 검색에 노출되고(키워드·완성도), (2) 5~10초 스캔에서 클릭을 유발하며(헤드라인·About 첫 문장), (3) 신뢰를 증명하는(추천서·정량 성과·Featured)** 세 축으로 최적화하기 위한 플레이북과, **LLM 없이 셀 수 있는 자가검증 루브릭**이다. CareerMate에는 LLM이 없으므로, 연결된 외부 AI(Claude/GPT/Gemini)가 이 규칙으로 프로필 초안을 작성·진단하고, `validate_linkedin_profile`이 루브릭을 기계적으로(개수·존재·비율·정규식) 실행한다.
7
+ LinkedIn 프로필을 **(1) 리크루터 검색에 노출되고(키워드·완성도), (2) 5~10초 스캔에서 클릭을 유발하며(헤드라인·About 첫 문장), (3) 신뢰를 증명하는(추천서·정량 성과·Featured)** 세 축으로 최적화하기 위한 플레이북과, **LLM 없이 셀 수 있는 자가검증 루브릭**이다. CareerMate에는 LLM이 없으므로, 연결된 외부 AI(Claude/GPT/Gemini)가 이 규칙으로 프로필 초안을 작성·진단한다. 루브릭을 기계적으로(개수·존재·비율·정규식) 실행하는 `validate_linkedin_profile`은 **Phase B 설계이며 현재 미구현** — 지금은 연결 AI가 이 루브릭을 **수동(advisory)**으로 적용한다(§5 Phase B 힌트).
8
8
 
9
9
  **책임 경계(매우 중요):** 키워드 기반 검사는 모두 **타깃 키워드 사전**을 전제한다. 이 사전(동의어·한영 매핑·약어 확장 포함)을 만드는 일은 **의미 판단이라 외부 AI의 몫**이다 — AI가 `get_application_context`(타깃 공고 JD)로 사전을 채워 넘기면, validate는 그 사전을 받아 **기계적 부분문자열 매칭**만 한다. 사전이 비었거나 부실하면 키워드 체크는 `INSUFFICIENT_INPUT`을 반환하고 통과/실패를 판정하지 않는다. 즉 "LLM 없이 측정"은 *사전이 주어진 뒤*의 매칭에 한정된다.
10
10
 
@@ -41,7 +41,7 @@
41
41
  - 팔로업 간격: 1차 4-5일, 마지막 가치-부가 "break-up", 그 뒤 정지. 상대가 답하면 카운터 리셋, "거절"이면 케이던스 영구 정지.
42
42
  - 정보성 대화 끝에 1-2개의 **질 좋은** 추가 소개와 진척 공유 허락을 청한다.
43
43
  - 네트워크가 없으면 콜드/커뮤니티 경로로 분기하고, 한국 채널(커피챗·학과 선배·오픈채팅·블라인드)을 제시한다.
44
- - 저장(연락처·노트·아웃리치 초안) 후 대시보드 링크(http://127.0.0.1:4319)를 보여주고 각 단계를 쉬운 한국어로 설명한다.
44
+ - 저장(연락처·노트·아웃리치 초안) 후 대시보드 링크(http://127.0.0.1:4319)를 보여주고 각 단계를 사용자의 언어로 쉽게 설명한다.
45
45
 
46
46
  ### Don't
47
47