careermate 0.0.5 → 0.0.6

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 (123) hide show
  1. package/AGENTS.md +9 -8
  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 +8 -3
  7. package/dist/career-os/eop/career-description.md +136 -0
  8. package/dist/career-os/eop/cover-letter.md +7 -5
  9. package/dist/career-os/eop/fit-analysis.md +15 -5
  10. package/dist/career-os/eop/interview-prep.md +209 -21
  11. package/dist/career-os/eop/job-analysis.md +5 -3
  12. package/dist/career-os/eop/profile-extraction.md +5 -4
  13. package/dist/career-os/knowledge/cover-letter.md +4 -4
  14. package/dist/career-os/knowledge/fit-matching.md +8 -8
  15. package/dist/career-os/knowledge/interview-behavioral.md +76 -8
  16. package/dist/career-os/knowledge/interview-technical.md +106 -4
  17. package/dist/career-os/knowledge/linkedin-profile.md +1 -1
  18. package/dist/career-os/knowledge/networking-referrals.md +1 -1
  19. package/dist/career-os/knowledge/offer-evaluation-decision.md +10 -10
  20. package/dist/career-os/knowledge/portfolio.md +3 -3
  21. package/dist/career-os/knowledge/verifiers/ats-compat.md +8 -4
  22. package/dist/career-os/knowledge/verifiers/human-voice.md +2 -2
  23. package/dist/career-os/knowledge/verifiers/recency-staleness.md +1 -1
  24. package/dist/career-os/knowledge/verifiers/responsiveness-on-target.md +2 -2
  25. package/dist/career-os/knowledge/verifiers/truthfulness.md +1 -1
  26. package/dist/doctor.mjs +678 -66
  27. package/dist/mcp.mjs +696 -66
  28. package/dist/migrate.mjs +52 -1
  29. package/dist/public/app.js +42 -16
  30. package/dist/public/i18n/en/applications.js +23 -0
  31. package/dist/public/i18n/en/common.js +22 -0
  32. package/dist/public/i18n/en/documents.js +133 -0
  33. package/dist/public/i18n/en/home.js +75 -0
  34. package/dist/public/i18n/en/interview.js +69 -0
  35. package/dist/public/i18n/en/jobs.js +152 -0
  36. package/dist/public/i18n/en/nav.js +18 -0
  37. package/dist/public/i18n/en/profile.js +201 -0
  38. package/dist/public/i18n/en/settings.js +127 -0
  39. package/dist/public/i18n/en/status.js +22 -0
  40. package/dist/public/i18n/en.js +17 -0
  41. package/dist/public/i18n/ko/applications.js +23 -0
  42. package/dist/public/i18n/ko/common.js +22 -0
  43. package/dist/public/i18n/ko/documents.js +133 -0
  44. package/dist/public/i18n/ko/home.js +63 -0
  45. package/dist/public/i18n/ko/interview.js +69 -0
  46. package/dist/public/i18n/ko/jobs.js +152 -0
  47. package/dist/public/i18n/ko/nav.js +18 -0
  48. package/dist/public/i18n/ko/profile.js +201 -0
  49. package/dist/public/i18n/ko/settings.js +127 -0
  50. package/dist/public/i18n/ko/status.js +23 -0
  51. package/dist/public/i18n/ko.js +18 -0
  52. package/dist/public/i18n.js +55 -0
  53. package/dist/public/index.html +1 -0
  54. package/dist/public/lib.js +24 -17
  55. package/dist/public/pages/applications.js +17 -21
  56. package/dist/public/pages/documents.js +153 -107
  57. package/dist/public/pages/home.js +88 -53
  58. package/dist/public/pages/interview.js +105 -51
  59. package/dist/public/pages/jobs.js +330 -106
  60. package/dist/public/pages/profile.js +157 -152
  61. package/dist/public/pages/settings.js +154 -102
  62. package/dist/public/styles.css +28 -1
  63. package/dist/web.mjs +494 -75
  64. package/docs/FAQ.md +23 -3
  65. package/docs/MCP_TOOLS.md +18 -11
  66. package/docs/START_WORKFLOW.md +2 -2
  67. package/docs/SUPPORTED_AI_APPS.md +13 -0
  68. package/docs/WORKFLOWS.md +77 -20
  69. package/docs/career-os/README.md +8 -3
  70. package/docs/career-os/eop/career-description.md +136 -0
  71. package/docs/career-os/eop/cover-letter.md +7 -5
  72. package/docs/career-os/eop/fit-analysis.md +15 -5
  73. package/docs/career-os/eop/interview-prep.md +209 -21
  74. package/docs/career-os/eop/job-analysis.md +5 -3
  75. package/docs/career-os/eop/profile-extraction.md +5 -4
  76. package/docs/career-os/knowledge/cover-letter.md +4 -4
  77. package/docs/career-os/knowledge/fit-matching.md +8 -8
  78. package/docs/career-os/knowledge/interview-behavioral.md +76 -8
  79. package/docs/career-os/knowledge/interview-technical.md +106 -4
  80. package/docs/career-os/knowledge/linkedin-profile.md +1 -1
  81. package/docs/career-os/knowledge/networking-referrals.md +1 -1
  82. package/docs/career-os/knowledge/offer-evaluation-decision.md +10 -10
  83. package/docs/career-os/knowledge/portfolio.md +3 -3
  84. package/docs/career-os/knowledge/verifiers/ats-compat.md +8 -4
  85. package/docs/career-os/knowledge/verifiers/human-voice.md +2 -2
  86. package/docs/career-os/knowledge/verifiers/recency-staleness.md +1 -1
  87. package/docs/career-os/knowledge/verifiers/responsiveness-on-target.md +2 -2
  88. package/docs/career-os/knowledge/verifiers/truthfulness.md +1 -1
  89. package/package.json +2 -2
  90. package/packages/core/src/onboarding.ts +2 -1
  91. package/packages/core/src/services.ts +134 -17
  92. package/packages/core/src/summary.ts +59 -1
  93. package/packages/core/src/verify/lint.ts +4 -0
  94. package/packages/db/src/index.ts +1 -0
  95. package/packages/db/src/repositories.ts +0 -0
  96. package/packages/db/src/schema.ts +17 -0
  97. package/packages/exporters/src/index.ts +28 -17
  98. package/packages/knowledge/src/index.ts +46 -7
  99. package/packages/mcp-tools/src/tools.ts +246 -22
  100. package/packages/mcp-tools/src/update.ts +30 -15
  101. package/packages/parsers/src/documents.ts +12 -1
  102. package/packages/prompts/src/humanize.ts +46 -0
  103. package/packages/prompts/src/index.ts +5 -1
  104. package/packages/prompts/src/install.ts +4 -4
  105. package/packages/prompts/src/onboarding.ts +4 -4
  106. package/packages/prompts/src/system.ts +8 -7
  107. package/packages/shared/src/enums.ts +14 -4
  108. package/packages/shared/src/schemas.ts +41 -0
  109. package/packages/workflows/src/definitions.ts +45 -8
  110. package/scripts/init.ts +284 -13
  111. package/dist/site/analytics.js +0 -97
  112. package/dist/site/favicon.svg +0 -1
  113. package/dist/site/fonts/PretendardVariable.woff2 +0 -0
  114. package/dist/site/icon-180.png +0 -0
  115. package/dist/site/icon-512.png +0 -0
  116. package/dist/site/index.html +0 -465
  117. package/dist/site/landing.js +0 -163
  118. package/dist/site/llms-install.txt +0 -218
  119. package/dist/site/robots.txt +0 -4
  120. package/dist/site/sitemap.xml +0 -21
  121. package/dist/site/start.html +0 -356
  122. package/dist/site/style.css +0 -665
  123. package/dist/site/vercel.json +0 -20
@@ -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
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## 1. 무엇을 하는가
6
6
 
7
- 이 도메인은 지원자 여정의 **끝단**, 즉 오퍼가 나온 뒤부터 입사 정착·탈락 환류까지의 **"결정"** 영역이다. 인접한 salary-negotiation은 "어떻게 더 받아낼 것인가(전술·앵커링)"이고, 이 도메인은 그 결과로 손에 쥔 오퍼들을 두고 **"어느 것을 택할까 / 거절을 어떻게 통보할까 / 카운터오퍼를 받을까 / 수락 후 번복 비용은 / 첫 90일을 어떻게 설계할까 / 떨어진 이유를 어떻게 진단할까"** 를 결정하는 것이다. 따라서 리크루터 스크린의 보상 질문 응답·범위 앵커링 같은 **협상 전술은 salary-negotiation 도메인으로 위임**하고, 여기서는 **이미 받은 복수 오퍼의 비교·결정**에 집중한다. 핵심 원리: 결정은 직관이 아니라 **가중 비교 매트릭스 + 명시적 결정 임계값**으로 내리고(인간은 미래 효용을 체계적으로 오예측한다), total comp은 명목 합이 아니라 **세후·다년 현가**로 비교하며(한국은 RSU가 아니라 퇴직금·포괄임금·비상장 스톡옵션 세제가 진짜 함정), 수락 후 번복은 **법적 위험이 아니라 평판 비용**으로(단 한국 채용내정 법리는 별도) 다룬다.
7
+ 이 도메인은 지원자 여정의 **끝단**, 즉 오퍼가 나온 뒤부터 입사 정착·탈락 환류까지의 **"결정"** 영역이다. 인접한 salary-negotiation은 "어떻게 더 받아낼 것인가(전술·앵커링)"이고, 이 도메인은 그 결과로 손에 쥔 오퍼들을 두고 **"어느 것을 택할까 / 거절을 어떻게 통보할까 / 카운터오퍼를 받을까 / 수락 후 번복 비용은"** 를 결정하는 것이다(수락 직전 결정까지가 이 도메인 소유 — **오퍼 결정 후 탈락 진단은 정본 `rejection-triage-iteration`(§2 8-stage), 입사 정착 30-60-90은 정본 `onboarding-first-90-days`에 위임**하고 여기서 재정의하지 않는다). 따라서 리크루터 스크린의 보상 질문 응답·범위 앵커링 같은 **협상 전술은 salary-negotiation 도메인으로 위임**하고, 여기서는 **이미 받은 복수 오퍼의 비교·결정**에 집중한다. 핵심 원리: 결정은 직관이 아니라 **가중 비교 매트릭스 + 명시적 결정 임계값**으로 내리고(인간은 미래 효용을 체계적으로 오예측한다), total comp은 명목 합이 아니라 **세후·다년 현가**로 비교하며(한국은 RSU가 아니라 퇴직금·포괄임금·비상장 스톡옵션 세제가 진짜 함정), 수락 후 번복은 **법적 위험이 아니라 평판 비용**으로(단 한국 채용내정 법리는 별도) 다룬다.
8
8
 
9
9
  ## 2. 플레이북
10
10
 
@@ -18,10 +18,10 @@
18
18
  - **(stock 분해는 한국 오퍼 유형에 맞춰 적용한다)** "연환산·cliff·refresh" RSU 모델은 미국 빅테크 모델이다. 한국은 **상장 대기업=주식 거의 없음(현금·퇴직금 위주), 비상장 스타트업=스톡옵션(주식매수선택권)·4년 베스팅이 표준이 아닐 수 있음, 중견=현금 위주**다. 비상장 스톡옵션은 행사가·희석·청산우선권으로 기대가치를 할인하고, **행사이익이 근로소득으로 과세되나 벤처기업법 과세특례(연 한도 내 비과세·분할납부)**가 있는지 확인한다. *(과세특례 한도·요건은 현행법 기준이며 개정·사안별로 달라질 수 있음 — 실제 적용 전 최신 세법·세무사 확인 권장)* stock이 없는 오퍼에는 stock 행을 비우고 현금·퇴직금·성장으로 비교한다(빈 stock을 가짜로 통과시키지 말 것). _(출처: levels.fyi(연환산) / 벤처기업법 스톡옵션 과세특례, 벤더/한국 1차)_
19
19
  - **(현직 카운터오퍼는 "근본 원인 진단"으로 결정한다 — 기본값 고정 아님)** 카운터오퍼를 받으면 먼저 **"왜 떠나려 했는가"(매니저·성장 정체·번아웃·저평가 연봉)** 를 적고, 그 원인이 돈으로 해결되는지 검증한다. 원인이 **순수 저평가 연봉**이고 카운터가 그것을 시장가로 맞춘다면 수락이 합리적일 수 있다(정답은 "depends"다 — 한쪽으로 못박지 말 것). 원인이 비보상 요인이면 돈은 고치지 못한다. 사용자에게 설명할 때 **"카운터오퍼 수락자 80%가 6개월 내 퇴사" 류 수치는 출처 추적이 거의 불가능한 도시전설(존재 불명 기관 인용)이므로 "통계"가 아니라 "근본 원인 논리"로 설득**한다. _(출처: LHH/Progressive(일화적·출처 검증 불가, 벤더) — 비판적 인용)_
20
20
  - **(수락 후 번복은 평판 비용으로, 한국은 채용내정 법리도 본다)** 미국 맥락에서 reneging은 소송보다 **리크루터·추천인·해당 회사 네트워크의 신뢰 상실**이 진짜 비용이다(업계 전체 블랙리스트는 실재하지 않으나 개별 리크루터의 기억은 실재). 다만 **한국은 비대칭**이다: 근로계약서 체결 전 오퍼 단계에서는 지원자 번복의 법적 위험이 낮지만, **회사가 "채용내정"을 일방 취소하면 판례상 근로계약 성립으로 보아 손해배상 다툼 여지**가 있다(at-will 전제의 미국 가이드를 한국에 그대로 적용하지 말 것). *(채용내정 성립 여부·손해배상 범위는 사안별 판례 기준이며 개정·상황별로 달라질 수 있음 — 실제 분쟁 시 노무사·변호사 확인 권장)* 불가피한 번복은 최대한 빨리·사과와 함께·짧은 사유·다리를 태우지 않는 톤으로 통보한다. _(출처: MIT Sloan CDO + CU Boulder(평판 비용, 1차/2차) / 한국 채용내정 법리, 한국 판례)_
21
- - **(입사 전 30-60-90일 정착 계획을 초안한다)** 수락이 정해지면 입사 첫날 전에 0~30일=흡수·학습(기여 아님), 31~60일=초기 성과(early win)·동맹 구축, 61~90일=손익분기 계획을 초안하고, **90일 시점의 "성공 정의"를 매니저와 입사 전/직후 합의**한다. 단 한국에서는 90일 이전에 **전직 통보기간(보통 1개월)·인수인계 의무·경업금지(non-compete) 조항**이 입사일 협상의 제약이므로 함께 점검한다. _(출처: Michael Watkins, The First 90 Days, 1차 / 한국 전직 실무)_
21
+ - **(수락이 정해지면 30-60-90 정착 계획은 정본 도메인으로 위임한다)** 30-60-90 정착 계획(0-30/31-60/61-90 마일스톤·매니저 성공정의·한국 전직 통보기간/경업금지)은 **정본 `onboarding-first-90-days`**를 따른다. 이 도메인이 소유하는 것은 **'수락 직전 준비 결정'**(입사일·통보기간이 오퍼 협상에 거는 제약 점검)까지이고 **'입사 후 실행'은 onboarding 소유**다 — 30-60-90을 여기서 재작성하지 않고 수락 확정(`final_passed`) 시점에 정본으로 연결만 한다. _(정본: `knowledge/onboarding-first-90-days.md`)_
22
22
  - **(한국 오퍼레터는 "최종 확정"이 아니라 "처우 조율 단계"로 다루되 구속력은 사안별)** 오퍼레터는 근로계약서와 달리 구속력이 약한 경우가 많아 직급(호봉)·입사일·부서/직무 배치·사이닝 등 **비-연봉 레버**로 협상할 여지가 있다. 단 "구속력 약함"을 단정하지 말고 **"구속력은 사안별이며 채용내정 성립 시 달라진다"** 로 약화한다. **포괄임금제 여부를 확인**해 명목연봉끼리 단순 비교하지 않는다(같은 명목연봉도 실질 시급이 다르다). _(출처: 리멤버 채용 인사이트/잡코리아(2차) + 채용내정 법리(한국 판례))_
23
23
  - **(직군별 오퍼 구조 차이를 반영한다)** 백엔드/SRE는 **온콜 수당**, ML·리서치 사이언티스트는 **equity 비중·연구 자율성**, 프론트/PM은 base·성장 경로가 더 무겁고, **신입 vs 시니어 sign-on 관행**도 다르다. 모든 직군에 같은 매트릭스 가중치를 기계적으로 들이대지 말고 직군에 맞춰 축·가중치를 조정한다. _(출처: 직군별 보상 구조 실무 — 보조)_
24
- - **(탈락은 "환류 루프"로 처리한다)** 탈락 통보를 받으면 (1) 정중한 1회 한정 피드백 요청, (2) 단계별(서류/코딩/1차/최종/처우) 막힌 지점 기록·패턴화, (3) 다음 액션 1~2개로 환원한다. 면접까지 자주 가는데 최종에서 떨어지면 적합도/마무리 문제, 서류에서 막히면 포지셔닝 문제로 진단이 갈린다. 거절을 관계 종료가 아니라 미래 파이프라인(재오픈 포지션 추천 경로)으로 처리한다. _(출처: 대학 커리어센터(UW, CU Boulder), 2차)_
24
+ - **(탈락은 정본 도메인으로 위임한다)** 탈락 통보 수신 후의 단계 진단·재지원 타이밍·피드백 요청·반복 패턴 감지는 **정본 `rejection-triage-iteration`(§2 8-stage enum: `pre_screen|recruiter_screen|aptitude_test|assignment|interview|final_fit|ghosted_pre|ghosted_post`)**을 따른다. 이 도메인은 탈락 진단을 자체 단계 enum으로 재정의하지 않고, `update_application_status(rejected)` 시점에서 그 정본으로 연결만 한다. _(정본: `knowledge/rejection-triage-iteration.md`)_
25
25
 
26
26
  ### Do
27
27
 
@@ -33,8 +33,8 @@
33
33
  - 복수 오퍼 만료일을 한 시점으로 정렬하고, 짧은 마감(exploding)에는 **통상 3~5영업일**(진행 중 최종단계가 있으면 그 일정까지)을 **단 한 번 구체 날짜로** 요청한다.
34
34
  - 수락/거절 통보는 결정 후 24~48시간 내, (감사 + 결정 + 비방 없는 사유 + 관계 유지) 4요소 스크립트로 보낸다.
35
35
  - 현직 카운터오퍼는 "왜 떠나려 했는가"를 먼저 적고 그 원인이 보상으로 해결되는지 검증한다(저평가 연봉이면 수락도 합리적 — depends).
36
- - 수락 확정 시 30-60-90일 계획 초안과 "90일 성공 정의"를 매니저와 합의하고, 한국이면 전직 통보기간·인수인계·경업금지를 입사일 협상에 반영한다.
37
- - 탈락 시 단계(서류/면접/최종/처우)별 막힌 지점을 기록·진단하고 정중한 1회 피드백 요청과 관계 유지를 시도한다.
36
+ - 수락 확정 시 30-60-90 정착 계획은 정본 `onboarding-first-90-days`로 연결한다(이 도메인에서 재작성하지 않는다). 한국 전직 통보기간·인수인계·경업금지 중 **입사일 협상에 거는 제약**만 여기서 점검한다.
37
+ - 탈락 시 단계 진단·재지원·피드백 요청은 정본 `rejection-triage-iteration`(8-stage)로 연결한다(이 도메인에서 단계 enum을 재정의하지 않는다).
38
38
  - 한국: 연봉 여지가 좁으면 직급·입사일·부서배치·사이닝으로 협상하고, 포괄임금제·퇴직금 포함여부를 확인한다.
39
39
  - "80% 퇴사" 류 수치를 쓸 때는 일화적이고 출처 검증 불가임을 함께 밝힌다(과신 금지).
40
40
 
@@ -52,7 +52,7 @@
52
52
  - 리크루터 스크린의 보상 질문 응답·범위 앵커링을 이 도메인에서 다루지 않는다(salary-negotiation으로 위임).
53
53
  - 한국 오퍼레터를 근로계약서와 동일한 최종 확정으로 오해하거나, 반대로 "구속력 무조건 약함"으로 단정하지 않는다.
54
54
  - 포괄임금 연봉과 비-포괄 연봉을 같은 명목값으로 동일 취급하지 않는다.
55
- - 탈락을 관계 종료로 처리해 환류·재지원 경로를 닫지 않는다.
55
+ - 탈락 진단·재지원을 이 도메인에서 단계 enum으로 재정의하지 않는다(정본 `rejection-triage-iteration` 8-stage 사용). 탈락을 관계 종료로 처리해 재지원 경로를 닫지도 않는다.
56
56
  - "매니저=가장 강한 잔류 예측 변수" 같은 단정을 출처 없이 사용자에게 사실로 제시하지 않는다.
57
57
 
58
58
  ### 워크드 예시 (Before → After)
@@ -83,8 +83,8 @@
83
83
  | R6 | decline_script_4elements — 거절/번복 통보가 4요소를 갖췄는가 | (감사 + 결정 + 비방 없는 사유 + 관계 유지) 존재 AND 시점(24~48h) 언급 | **[det 부분]** 시점 토큰 {24시간, 48시간, 24~48} ≥1, 비방어휘 부재(블랙리스트 욕설·비난어 == 0). **[ai/H]** "감사·관계유지·비방 없는 사유" 3요소의 진위는 의미 판단 → ai | critical |
84
84
  | R7 | counteroffer_root_cause — 카운터오퍼 시 근본 원인 진단이 있고 기본값을 한쪽으로 못박지 않는가 | 근본 원인 진단 단계 존재 AND "depends/원인별 분기" 표현 존재 AND ('80%' 류 통계 등장 시에만 '일화적/출처 검증 불가' 동반) | **[det 부분]** {왜 떠나려, 근본 원인, 이직 동기, 떠나려던 이유} ≥1 + {depends, 경우에 따라, 저평가면 수락, 원인이 보상} ≥1. **안티패턴 0건 조건:** `'80%'|'80퍼'|'대부분 퇴사'` 등장 횟수 == 0 **이거나**, 등장 시 같은 30토큰 내 `일화적|anecdotal|출처 검증 불가|도시전설` 동반. **[ai/H]** "진단이 실제로 보상해결성을 검증했는지"는 의미 판단 | critical |
85
85
  | R8 | reneging_reputation_kr_law — 번복을 평판 비용으로 프레이밍하되 한국 채용내정 비대칭을 다루는가 | 평판 비용 키워드 존재 AND 소송 위험 과장 부재 AND (locale=KR이면 채용내정/회사 측 취소 언급) | **[det 부분]** {평판, 리크루터, 추천인, 네트워크} ≥1 + {소송/형사처벌 단정 표현} == 0. **[ai/H]** locale=KR일 때 "채용내정 법리·회사 측 일방취소 비대칭"을 정확히 다뤘는지는 의미 판단 → ai (보조: {채용내정, 채용 내정, 회사가 취소} ≥1) | critical |
86
- | R9 | onboarding_30_60_90 — 30-60-90 계획과 매니저 성공정의가 있는가 | 3개 구간(0-30/31-60/61-90) 모두 존재 AND 각 구간 목표 ≥1 AND 한국이면 전직 통보기간/경업금지 언급 | **[det]** 구간 마커 {0-30·31-60·61-90 또는 30/60/90} 3개 + 각 구간 bullet ≥1 카운트 + (locale=KR이면 {통보기간, 인수인계, 경업금지} ≥1) | advisory |
87
- | R10 | rejection_diagnosis_loop — 탈락 처리에 단계별 진단과 환원 액션이 있는가 | 탈락 단계 분류 존재 AND 다음 액션 ≥1 | **[det]** 단계 라벨 {서류, 코딩, 1차, 최종, 처우} ≥2 distinct + {다음 액션, next action, 액션} 항목 ≥1 카운트 | advisory |
86
+ | R9 | onboarding_delegated — 30-60-90 정착을 정본으로 위임했는가(자체 재작성 금지) | 수락 확정 시 `onboarding-first-90-days` 참조 존재; 30-60-90 초안이 있으면 세부 구조·마일스톤은 정본(onboarding §3·§5 R9)이 소유 | **[det]** {onboarding-first-90-days, 30-60-90 정본, 정착 계획 도메인} 참조 ≥1. 구간 마커가 있으면 존재로 카운트하되 세부 목표 검증은 onboarding 정본 R9에 위임(정본 stage 정의 변경 시 본 라인도 동기화) | advisory |
87
+ | R10 | rejection_delegated — 탈락 진단을 정본 도메인으로 위임했는가(자체 stage enum 재정의 금지) | `rejection-triage-iteration` 참조 존재 AND 본 문서가 자체 stage 라벨 집합을 재정의하지 않음 | **[det]** `rejection-triage-iteration.md §2`(8-stage enum) 참조 토큰 ≥1, 그리고 경쟁 stage enum({서류·코딩·1차·최종·처우}) 동시정의 부재. 단계 분류 루브릭 소유=정본 rejection-triage §2 R1·R2(정본 stage 정의 변경 시 본 라인도 동기화) | advisory |
88
88
  | R11 | korea_locale_lever — 한국 맥락이면 비-연봉 레버·함정이 반영됐는가 | locale=KR일 때 한국 특화 항목 ≥2 distinct | **[det 부분]** {오퍼레터, 포괄임금, 처우표/연봉등급, 호봉, 입사일, 부서배치, 사이닝, 퇴직금} distinct ≥2. **[ai/H]** "단어 나열이 아니라 실제 레버로 작동하는지"는 의미 판단 | advisory |
89
89
  | R12 | evidence_grounding — 권고에 명명된 출처가 매핑되고 일화적 수치가 표시됐는가 | 출처 토큰 수 ≥ 핵심 권고 수와 같은 규모 AND 일화적 수치에 단서 부착 | **[det 부분]** 출처 토큰 {PON, levels.fyi, First 90 Days, Watkins, MIT Sloan, LHH} 개수가 0 초과이고 핵심 권고 블록 수에 비해 결손 아님(`sources_count`와 권고 수 비교). **[ai/H]** "어느 출처가 어느 권고를 실제로 근거하는지"의 매핑 정확성은 의미 판단 → ai | advisory |
90
90
 
@@ -116,6 +116,6 @@
116
116
  - **신선도/정합성 검사(LLM 없이 규칙):** 벤치마크의 `captured_at`이 6개월 초과면 "stale", 오퍼 통화·지역과 벤치마크 불일치면 "mismatch", `locale=KR`인데 stock 모델이 RSU로 채워졌으면 "rsu_locale_mismatch" 플래그를 함께 반환.
117
117
  - **데이터 형태 힌트:**
118
118
  - `offer_decision = { application_id, deadline(ISO date), total_comp:{ base, stock:{ grant, vest_years, annualized, cliff_note, is_kr_stock_option:bool, tax_special_treatment:bool }, bonus, sign_on, after_tax_estimate, retirement_in_base:bool, multiyear_raise_pct }, comp_is_inclusive_wage:bool(KR), weighted_matrix:[{ axis, weight:int, score_per_offer{} }], weights_sum:int, batna_column:{ type:'current_job'|'other_process'|'no_offer', scored:bool }, decision_threshold_pct:int, tiebreaker_order:[str], decision:'accept'|'decline'|'counter'|'pending', rationale, scripts:{ decline, accept, extend_request, counteroffer_response } }`
119
- - `onboarding_plan = { application_id, phases:[{ window:'0-30'|'31-60'|'61-90', goals:[], success_definition_agreed:bool }], kr_constraints:{ notice_period_weeks:int, non_compete:bool, handover_note } }`
120
- - `rejection_diagnosis = { application_id, stage:'screen'|'document'|'coding'|'interview'|'final'|'comp', pattern_note, next_actions:[] }`
119
+ - **(Phase B 힌트 — 런타임 미serve)** 30-60-90 온보딩 데이터 모델(`plan{...}`)의 **정본은 `onboarding-first-90-days` §5**다. 이 도메인은 그 모델을 재정의하지 않고 `final_passed` 전이 시 연결만 한다.
120
+ - **(Phase B 힌트 — 런타임 미serve)** 탈락 진단 데이터 모델(`rejection_reviews`, stage enum)의 **정본은 `rejection-triage-iteration` §5의 8-stage**다. 이 도메인은 그 모델을 재정의하지 않고 `update_application_status(rejected)` 시점에서 연결만 한다.
121
121
  - 루브릭은 LLM 없이 셀 수 있게 평탄화: `axes_count:int`, `weights_sum:int`, `batna_column_scored:bool`, `decision_threshold_present:bool`, `comp_components:[enum]`, `has_after_tax:bool`, `is_kr_stock_option:bool`, `decline_elements:[enum]`, `anecdotal_stat_present:bool`, `anecdotal_caveat_present:bool`, `kr_renege_law_present:bool`, `phases_count:int`, `rejection_stages:[enum]`, `sources_count:int`, `check_weight:'critical'|'advisory'`, `check_grade:'det'|'ai'`. **`check_grade='ai'` 필드는 외부 AI 판정 결과를 받아 저장**(CareerMate는 det 필드만 자동 카운트).
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## 1. 무엇을 하는가
6
6
 
7
- 포트폴리오는 "예쁘게 보여주기"가 아니라 **채용 의사결정자가 짧은 시간에 지원자의 문제 해결 능력을 신뢰하게 만드는 증거 모음**이다. 핵심은 다섯 축이다: (1) `problem → approach → impact` 3막 서사, (2) 직무에 맞는 3~6개 선별(큐레이션), (3) 팀 작업에서 "내가 실제로 한 것"을 1인칭으로 분리, (4) 정량 결과(숫자·전후 비교)로 임팩트 입증, (5) 직군별 규범(eng/design/PM/data) 준수. CareerMate는 LLM이 없으므로, 작성은 연결된 외부 AI가 하고 CareerMate는 그 결과를 **구조화 레코드(`PortfolioItem`)로 저장**한 뒤 **LLM 없이 결정적으로 셀 수 있는 lint 루브릭**으로 검증한다. 따라서 아래 루브릭은 자유 텍스트가 아니라 **구조화 필드를 입력 전제**로 설계되어 있다.
7
+ 포트폴리오는 "예쁘게 보여주기"가 아니라 **채용 의사결정자가 짧은 시간에 지원자의 문제 해결 능력을 신뢰하게 만드는 증거 모음**이다. 핵심은 다섯 축이다: (1) `problem → approach → impact` 3막 서사, (2) 직무에 맞는 3~6개 선별(큐레이션), (3) 팀 작업에서 "내가 실제로 한 것"을 1인칭으로 분리, (4) 정량 결과(숫자·전후 비교)로 임팩트 입증, (5) 직군별 규범(eng/design/PM/data) 준수. CareerMate는 LLM이 없으므로, 작성은 연결된 외부 AI가 한다. 결과를 **구조화 레코드(`PortfolioItem`)로 저장**하고 **LLM 없이 결정적으로 셀 수 있는 lint 루브릭**으로 검증하는 `save_portfolio_item`·`lint_portfolio`는 **Phase B 설계이며 현재 미구현** — 지금은 연결 AI가 아래 루브릭을 **수동(advisory)**으로 적용한다(§5 Phase B 힌트; 자유텍스트 입력 시 구조화 필드 전제인 R1·R3·R4 등은 측정이 degrade되므로 연결 AI가 해석 적용). 따라서 아래 루브릭은 자유 텍스트가 아니라 **구조화 필드를 입력 전제**로 설계되어 있다.
8
8
 
9
9
  ## 2. 플레이북
10
10
 
@@ -16,7 +16,7 @@
16
16
  - **임팩트는 가능한 한 숫자 + 단위 + 전후(before→after) 비교로 표현한다(예: 전환율 3.2%→4.7%, +47%, 처리시간 -40%).** 숫자가 없으면 비교 기준·규모·범위(사용자 수·기간·트래픽)라도 제시한다. **이 수치는 반드시 사용자가 제공한 실측이어야 하며, AI가 그럴듯하게 지어내선 안 된다.** _(출처: The Muse STAR Method)_
17
17
  - **직군별 규범을 따른다.** eng = 실행 가능한 README(목적·문제·실행법·라이브 데모/스크린샷) + 깔끔한 커밋 + 최소 1개 end-to-end 프로젝트; design = 리서치→결정→반복의 why; PM = 북극성/가드레일/진단 지표로 가치 정의; data = train/test 분리·복수 평가지표·온라인 A/B·가드레일·비즈니스 임팩트 정량화. _(출처: Flatiron README best practices / Meta Analytics DS framework)_
18
18
  - **작업 당시의 제약(constraints)을 한 줄이라도 명시한다** — 마감, 기존 브랜드/legacy 시스템, 기술적 제약, 이해관계자/NDA. 제약 속 결정을 보여줘 맥락 인지를 입증한다. _(출처: icreatives Portfolio Review)_
19
- - **한국 채용 맥락의 '경력기술서'는 포트폴리오 역할을 하되 형식이 다르다.** 회사·기간·역할·성과를 표/불릿로 쓰는 경우가 많아 산문 3막을 강제하면 정상 경력기술서를 오탐한다. 따라서 3막 검증은 **`item_type`이 `case_study`인 항목에만** 적용하고, `경력기술서` 유형은 필드(역할·성과·기간) non-empty로만 검증한다. 사실·수치·고유명사는 **절대 과장·날조하지 않는다**(AGENTS.md 프라임 디렉티브). _(출처: AGENTS.md 사실 보존 규칙)_
19
+ - **한국 채용 맥락의 '경력기술서'는 포트폴리오 역할을 하되 형식이 다르다.** 경력기술서 **작성 규범·루브릭의 정본은 `eop/career-description.md`(+ `resume.md`)**이며, 이 포트폴리오 도메인은 그 규범을 재정의하지 않고 `case_study`가 아닌 `경력기술서` 항목을 그 정본으로 위임한다(**`case_study`의 3막 구성·증거 링크 규범은 이 portfolio.md 소유**). 회사·기간·역할·성과를 표/불릿로 쓰는 경우가 많아 산문 3막을 강제하면 정상 경력기술서를 오탐하므로, 3막 검증은 **`item_type`이 `case_study`인 항목에만** 적용하고, `경력기술서` 유형은 필드(역할·성과·기간) non-empty로만 검증한다. 사실·수치·고유명사는 **절대 과장·날조하지 않는다**(AGENTS.md 프라임 디렉티브). _(출처: AGENTS.md 사실 보존 규칙)_
20
20
 
21
21
  ### Do
22
22
 
@@ -57,7 +57,7 @@
57
57
 
58
58
  ## 3. 검증 루브릭 (연결된 AI가 산출물을 이 기준으로 자가검증)
59
59
 
60
- > **전제(중요):** 모든 루브릭은 자유 텍스트가 아니라 **`PortfolioItem` 구조화 레코드 배열**을 입력으로 받는다. "항목(item) 경계"는 **레코드 1개 = 1 항목**으로 못박는다. 자유 텍스트는 루브릭 대상이 아니며, 먼저 `save_portfolio_item`으로 구조화해야 한다. 이로써 대부분 체크가 키워드 매칭 대신 **필드 non-empty / 패턴 카운트**로 결정적(deterministic)·LLM-프리가 된다.
60
+ > **전제(중요):** 모든 루브릭은 자유 텍스트가 아니라 **`PortfolioItem` 구조화 레코드 배열**을 입력으로 받는다. "항목(item) 경계"는 **레코드 1개 = 1 항목**으로 못박는다. 자유 텍스트는 루브릭 대상이 아니며, 먼저 `save_portfolio_item`으로 구조화해야 한다. 이로써 대부분 체크가 키워드 매칭 대신 **필드 non-empty / 패턴 카운트**로 결정적(deterministic)·LLM-프리가 된다. **단 `save_portfolio_item`·`lint_portfolio`는 Phase B 미구현 — Phase A 현재는 연결 AI가 이 구조를 적용해 루브릭을 수동(advisory)으로 점검한다(자유텍스트 입력 시 결정성 degrade).**
61
61
 
62
62
  | ID | 검사 항목 | 합격 기준 | 측정 방법(LLM 없이 셀 수 있게) |
63
63
  |----|-----------|-----------|--------------------------------|