careermate 0.0.4 โ†’ 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 (124) hide show
  1. package/AGENTS.md +11 -7
  2. package/INSTALL.md +18 -16
  3. package/README.md +28 -26
  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 +1019 -127
  27. package/dist/mcp.mjs +1036 -126
  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 +25 -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 +270 -72
  62. package/dist/public/styles.css +38 -3
  63. package/dist/web.mjs +859 -103
  64. package/docs/FAQ.md +26 -5
  65. package/docs/MCP_TOOLS.md +26 -12
  66. package/docs/START_WORKFLOW.md +2 -2
  67. package/docs/SUPPORTED_AI_APPS.md +13 -0
  68. package/docs/WORKFLOWS.md +80 -23
  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 +138 -21
  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/bridge.ts +194 -13
  100. package/packages/mcp-tools/src/tools.ts +390 -38
  101. package/packages/mcp-tools/src/update.ts +31 -16
  102. package/packages/parsers/src/documents.ts +12 -1
  103. package/packages/prompts/src/humanize.ts +46 -0
  104. package/packages/prompts/src/index.ts +5 -1
  105. package/packages/prompts/src/install.ts +4 -4
  106. package/packages/prompts/src/onboarding.ts +4 -4
  107. package/packages/prompts/src/system.ts +17 -8
  108. package/packages/shared/src/enums.ts +14 -4
  109. package/packages/shared/src/schemas.ts +41 -0
  110. package/packages/workflows/src/definitions.ts +47 -10
  111. package/scripts/init.ts +284 -13
  112. package/dist/site/analytics.js +0 -97
  113. package/dist/site/favicon.svg +0 -1
  114. package/dist/site/fonts/PretendardVariable.woff2 +0 -0
  115. package/dist/site/icon-180.png +0 -0
  116. package/dist/site/icon-512.png +0 -0
  117. package/dist/site/index.html +0 -565
  118. package/dist/site/landing.js +0 -54
  119. package/dist/site/llms-install.txt +0 -218
  120. package/dist/site/robots.txt +0 -4
  121. package/dist/site/sitemap.xml +0 -21
  122. package/dist/site/start.html +0 -353
  123. package/dist/site/style.css +0 -559
  124. package/dist/site/vercel.json +0 -20
package/docs/FAQ.md CHANGED
@@ -6,6 +6,20 @@
6
6
 
7
7
  ---
8
8
 
9
+ ## ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—
10
+
11
+ ### ๋ˆ์ด ๋“œ๋‚˜์š”? API ํ‚ค๊ฐ€ ํ•„์š”ํ•œ๊ฐ€์š”?
12
+ CareerMate ์ž์ฒด๋Š” **๋ฌด๋ฃŒยท์˜คํ”ˆ์†Œ์Šค**์ด๊ณ , ๋‚ด๋ถ€์— LLM์ด ์—†์–ด **๋ณ„๋„ API ํ‚ค๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.**
13
+ ๋ถ„์„ยท์ž‘์„ฑ์€ ์ด๋ฏธ ์“ฐ๊ณ  ์žˆ๋Š” AI ๊ตฌ๋…(Claude ๋“ฑ)์ด ๊ทธ๋Œ€๋กœ ์ˆ˜ํ–‰ํ•˜๊ณ , CareerMate๋Š” ์ปค๋ฆฌ์–ด
14
+ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ์ปฌ์— ์ €์žฅยท์ œ๊ณตํ•˜๋Š” "์„œ๋ž์žฅ" ์—ญํ• ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.
15
+
16
+ ### ์–ด๋–ป๊ฒŒ ์—…๋ฐ์ดํŠธํ•˜๋‚˜์š”?
17
+ AI์—๊ฒŒ **"CareerMate ์—…๋ฐ์ดํŠธํ•ด์ค˜"**(`update_careermate`)๋ผ๊ณ  ํ•˜๋ฉด ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.
18
+ ํ™•์ธ๋งŒ ํ•˜๋ ค๋ฉด "์ตœ์‹ ์ด์•ผ?"(`check_for_update`). ์—…๋ฐ์ดํŠธ ํ›„์—๋Š” AI ์•ฑ ๋˜๋Š” MCP ์—ฐ๊ฒฐ์„
19
+ **์žฌ์‹œ์ž‘**ํ•ด ์ฃผ์„ธ์š”.
20
+
21
+ ---
22
+
9
23
  ## ์„ค์น˜ / ์—ฐ๊ฒฐ
10
24
 
11
25
  ### "MCP ๋„๊ตฌ๊ฐ€ ์•ˆ ๋ณด์—ฌ์š”" / AI๊ฐ€ CareerMate๋ฅผ ๋ชจ๋ฆ…๋‹ˆ๋‹ค
@@ -32,10 +46,11 @@ CareerMate๋Š” **Node.js 22.5.0 ์ด์ƒ**์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(`node:sqlite` ์‚ฌ์šฉ)
32
46
  ## ๋Œ€์‹œ๋ณด๋“œ
33
47
 
34
48
  ### "๋Œ€์‹œ๋ณด๋“œ๊ฐ€ ์•ˆ ์—ด๋ ค์š”" (`http://127.0.0.1:4319`)
35
- - ๊ทธ ์ฃผ์†Œ๋Š” **CareerMate๊ฐ€ ์‹คํ–‰ ์ค‘์ผ ๋•Œ๋งŒ** ์—ด๋ฆฝ๋‹ˆ๋‹ค. AI์—๊ฒŒ ๋ฌด์–ธ๊ฐ€๋ฅผ ์ €์žฅํ•ด ๋‹ฌ๋ผ๊ณ  ํ•ด
36
- ์„œ๋ฒ„๊ฐ€ ๋–  ์žˆ๋Š” ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•˜์„ธ์š”.
49
+ - ๊ทธ ์ฃผ์†Œ๋Š” **CareerMate๊ฐ€ ์‹คํ–‰ ์ค‘์ผ ๋•Œ๋งŒ** ์—ด๋ฆฝ๋‹ˆ๋‹ค. AI์—๊ฒŒ **"๋Œ€์‹œ๋ณด๋“œ ์—ด์–ด์ค˜"** ๋ผ๊ณ  ํ•˜๋ฉด
50
+ ์„œ๋ฒ„๊ฐ€ ๊บผ์ ธ ์žˆ์„ ๋•Œ๋„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์ž๋™ ์‹œ์ž‘ํ•œ ๋’ค ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
37
51
  - **ํฌํŠธ๊ฐ€ ์ด๋ฏธ ์‚ฌ์šฉ ์ค‘**์ด๋ฉด ์ž๋™์œผ๋กœ ๋‹ค๋ฅธ ํฌํŠธ๋กœ ํด๋ฐฑํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ๋ณ€์ˆ˜
38
52
  `CAREERMATE_PORT`๋กœ ๊ณ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
53
+ - ์ž๋™ ์‹œ์ž‘์ด ์‹คํŒจํ•˜๋ฉด `~/.careermate/server.log`๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
39
54
  - ๋Œ€์‹œ๋ณด๋“œ๋Š” ๋ณด์•ˆ์ƒ **`127.0.0.1`(์ด ์ปดํ“จํ„ฐ)** ์—๋งŒ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ธฐ๊ธฐ์—์„œ๋Š” ์ ‘์†๋˜์ง€
40
55
  ์•Š์Šต๋‹ˆ๋‹ค(์˜๋„๋œ ๋™์ž‘).
41
56
 
@@ -77,9 +92,15 @@ AI์—๊ฒŒ "์ด ๊ณต๊ณ  ์ €์žฅํ•˜๊ณ  ๋ถ„์„ํ•ด์ค˜"๋ผ๊ณ  ํ•˜๋ฉด์„œ URL์ด๋‚˜ ๋ณธ๋ฌธ
77
92
  - AI์—๊ฒŒ "๋ถ„์„ ์ „์— application context๋ถ€ํ„ฐ ๋ถˆ๋Ÿฌ์™€์ค˜"๋ผ๊ณ  ํ•˜๋ฉด ํ”„๋กœํ•„ยท์ด๋ ฅ์„œยท๊ณต๊ณ ๋ฅผ ํ•œ ๋ฒˆ์—
78
93
  ๋ชจ์•„ ๋ถ„์„ ๋งฅ๋ฝ์„ ๊ฐ–์ถฅ๋‹ˆ๋‹ค.
79
94
 
80
- ### ๋ฉด์ ‘ ์ค€๋น„๊ฐ€ ์ž ๊ฒจ ์žˆ์–ด์š”
81
- ๋ฉด์ ‘ ์ค€๋น„๋Š” ์ง€์› ์ƒํƒœ๊ฐ€ **'์„œ๋ฅ˜ ํ•ฉ๊ฒฉ(document_passed)' ์ด์ƒ**์ผ ๋•Œ๋งŒ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ๋จผ์ € ํ•ด๋‹น
82
- ๊ณต๊ณ ์˜ ์ƒํƒœ๋ฅผ ์„œ๋ฅ˜ ํ•ฉ๊ฒฉ์œผ๋กœ ๋ฐ”๊ฟ” ์ฃผ์„ธ์š”(`draft โ†’ planned โ†’ applied โ†’ document_passed โ†’ โ€ฆ`).
95
+ ### ๋ฉด์ ‘ ์ค€๋น„๋Š” ์–ธ์ œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‚˜์š”
96
+ ๊ณต๊ณ ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์œผ๋ฉด AI์—๊ฒŒ ๋ฉด์ ‘ ์ค€๋น„๋ฅผ ์š”์ฒญํ•ด ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ง€์› ์ƒํƒœ๊ฐ€
97
+ **'์„œ๋ฅ˜ ํ•ฉ๊ฒฉ(document_passed)' ์ด์ƒ**์ด ๋˜๋ฉด ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ ๋ฉด์ ‘ ์ค€๋น„๋ฅผ ๋‹ค์Œ ํ–‰๋™์œผ๋กœ ๋” ์ ๊ทน์ ์œผ๋กœ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.
98
+
99
+ ### ์ด๋ ฅ์„œยท์ž์†Œ์„œ๋ฅผ ํŒŒ์ผ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‚˜์š”?
100
+ ๋„ค. AI์—๊ฒŒ **"์ด๋ ฅ์„œ ํŒŒ์ผ๋กœ ๋‚ด๋ณด๋‚ด์ค˜"**(๋˜๋Š” ์ž์†Œ์„œ/ํ”„๋กœํ•„)๋ผ๊ณ  ํ•˜๋ฉด
101
+ `~/.careermate/exports`์— **Markdown** ๋˜๋Š” **์ธ์‡„์šฉ HTML**(๋ธŒ๋ผ์šฐ์ €์—์„œ "์ธ์‡„ โ†’ PDF๋กœ ์ €์žฅ")๋กœ
102
+ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค(`export_resume`/`export_profile`/`export_cover_letter`). ๋Œ€์‹œ๋ณด๋“œ **๋ฌธ์„œยทํ”„๋กœํ•„
103
+ ํŽ˜์ด์ง€**์—์„œ ๋ฒ„ํŠผ์œผ๋กœ ์ง์ ‘ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
83
104
 
84
105
  ---
85
106
 
package/docs/MCP_TOOLS.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  CareerMate๋Š” **MCP-์šฐ์„ ** ๋กœ์ปฌ ์ปค๋ฆฌ์–ด ๊ด€๋ฆฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ChatGPT/Claude/Gemini์™€ ๋Œ€ํ™”ํ•˜๊ณ , ๊ทธ AI๊ฐ€ ์—ฌ๊ธฐ ์ •์˜๋œ MCP ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•ด ๋กœ์ปฌ ์ปค๋ฆฌ์–ด DB(`~/.careermate/careermate.sqlite`)๋ฅผ ์ฝ๊ณ  ์”๋‹ˆ๋‹ค. **CareerMate ๋‚ด๋ถ€์—๋Š” LLM์ด ์—†์Šต๋‹ˆ๋‹ค.** ์ ํ•ฉ๋„ ๋ถ„์„ยท์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ ๊ฐ™์€ ์ถ”๋ก ์€ ๋ชจ๋‘ ์‚ฌ์šฉ์ž์˜ AI๊ฐ€ ์ˆ˜ํ–‰ํ•˜๊ณ , CareerMate๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋‹ค์‹œ ๋Œ๋ ค์ฃผ๋Š” ์—ญํ• ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.
4
4
 
5
- ์ด ๋ฌธ์„œ๋Š” `packages/mcp-tools/src/tools.ts`์— ์ •์˜๋œ ์ปค๋ฆฌ์–ด ์›Œํฌํ”Œ๋กœ **35๊ฐœ ๋„๊ตฌ**์˜ ๋ ˆํผ๋Ÿฐ์Šค์ž…๋‹ˆ๋‹ค. ๋„๊ตฌ์˜ ์ž…๋ ฅ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” `packages/shared/src/schemas.ts`์˜ zod ์Šคํ‚ค๋งˆ์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.
5
+ ์ด ๋ฌธ์„œ๋Š” `packages/mcp-tools/src/tools.ts`์— ์ •์˜๋œ ์ปค๋ฆฌ์–ด ์›Œํฌํ”Œ๋กœ **๋„๊ตฌ**์˜ ๋ ˆํผ๋Ÿฐ์Šค์ž…๋‹ˆ๋‹ค. ๋„๊ตฌ์˜ ์ž…๋ ฅ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” `packages/shared/src/schemas.ts`์˜ zod ์Šคํ‚ค๋งˆ์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.
6
6
 
7
7
  > ์„ค๊ณ„ ์›์น™: ์ด ๋„๊ตฌ๋“ค์€ ๋‹จ์ˆœ CRUD ๋ž˜ํผ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ ๋„๊ตฌ๋Š” AI๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ์‹ค์ œ ์ž‘์—…์— ๋Œ€์‘ํ•˜๋ฉฐ, ์„ค๋ช…์— *์–ธ์ œ* ๊ทธ๋ฆฌ๊ณ  *์–ด๋–ป๊ฒŒ* ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š”์ง€๊ฐ€ ๋‹ด๊ฒจ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋„๊ตฌ๋Š” [`get_application_context`](#get_application_context-) ์ž…๋‹ˆ๋‹ค.
8
8
 
@@ -16,7 +16,7 @@ CareerMate๋Š” **MCP-์šฐ์„ ** ๋กœ์ปฌ ์ปค๋ฆฌ์–ด ๊ด€๋ฆฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž
16
16
 
17
17
  | ์ฝ๊ธฐ์ „์šฉ(โœ…) ๋„๊ตฌ | ์“ฐ๊ธฐ/๋ถ€์ˆ˜ํšจ๊ณผ(โœ๏ธ) ๋„๊ตฌ |
18
18
  | --- | --- |
19
- | `read_document`, `read_inbox`, `get_onboarding_status`, `get_profile`, `get_resumes`, `get_experiences`, `get_projects`, `get_skills`, `get_cover_letters`, `get_job_posting`, `list_jobs`, `get_application_context`, `list_recent_activity`, `get_workflow_guide`, `get_playbook`, `get_verifier`, `validate_cover_letter`, `get_writing_style_guide`, `check_for_update` | `open_inbox`, `save_profile`, `add_resume`, `add_experience`, `add_project`, `add_skill`, `save_cover_letter_version`, `set_verify_mode`, `save_job_posting`, `save_fit_analysis`, `update_application_status`, `save_interview_prep`, `export_cover_letter`, `open_dashboard`, `open_application`, `update_careermate` |
19
+ | `read_document`, `read_inbox`, `get_onboarding_status`, `get_profile`, `get_resumes`, `get_experiences`, `get_projects`, `get_skills`, `get_cover_letters`, `get_job_posting`, `list_jobs`, `get_application_context`, `list_recent_activity`, `get_workflow_guide`, `get_playbook`, `get_verifier`, `validate_cover_letter`, `get_writing_style_guide`, `check_for_update` | `open_inbox`, `save_profile`, `add_resume`, `delete_resume`, `add_experience`, `delete_experience`, `add_project`, `delete_project`, `add_skill`, `delete_skill`, `save_cover_letter_version`, `delete_cover_letter`, `set_verify_mode`, `save_job_posting`, `delete_job_posting`, `save_fit_analysis`, `update_application_status`, `save_interview_prep`, `export_cover_letter`, `export_resume`, `export_profile`, `open_dashboard`, `open_application`, `update_careermate` |
20
20
 
21
21
  ---
22
22
 
@@ -35,16 +35,16 @@ CareerMate๋Š” **MCP-์šฐ์„ ** ๋กœ์ปฌ ์ปค๋ฆฌ์–ด ๊ด€๋ฆฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž
35
35
 
36
36
  ## 0-1. ์ธ์ž… ํด๋” (Inbox)
37
37
 
38
- CLI ํด๋ผ์ด์–ธํŠธ(Claude CodeยทCodex ๋“ฑ)๋Š” ํŒŒ์ผ ์ฒจ๋ถ€๊ฐ€ ์•ˆ ๋˜๋ฏ€๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ์กด ์ด๋ ฅ์„œยท๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ ํŒŒ์ผ์„ ๋Œ์–ด๋‹ค ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋กœ์ปฌ ์ธ์ž… ํด๋”(`~/.careermate/inbox`)๋ฅผ ๋‘๊ณ  ๊ทธ ์•ˆ์˜ ํŒŒ์ผ์„ ์ฝ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ **๊ฒฝ๋กœ**๋ฅผ ์ง์ ‘ ์•Œ๋ ค์ฃผ๋Š” ๊ฒฝ์šฐ์—๋Š” ์ธ์ž… ํด๋” ๋Œ€์‹  `read_document`๋ฅผ ์“ฐ์„ธ์š”.
38
+ CLI ํด๋ผ์ด์–ธํŠธ(Claude CodeยทCodex ๋“ฑ)๋Š” ํŒŒ์ผ ์ฒจ๋ถ€๊ฐ€ ์•ˆ ๋˜๋ฏ€๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ์กด ์ด๋ ฅ์„œยท๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œยทํฌํŠธํด๋ฆฌ์˜คยท์ž๊ธฐ์†Œ๊ฐœ์„œ ํŒŒ์ผ์„ ๋Œ์–ด๋‹ค ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋กœ์ปฌ ์ธ์ž… ํด๋”(`~/.careermate/inbox`)๋ฅผ ๋‘๊ณ  ๊ทธ ์•ˆ์˜ ํŒŒ์ผ์„ ์ฝ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ **๊ฒฝ๋กœ**๋ฅผ ์ง์ ‘ ์•Œ๋ ค์ฃผ๋Š” ๊ฒฝ์šฐ์—๋Š” ์ธ์ž… ํด๋” ๋Œ€์‹  `read_document`๋ฅผ ์“ฐ์„ธ์š”.
39
39
 
40
40
  | ๋„๊ตฌ | ๋ชฉ์  | ์ฃผ์š” ์ž…๋ ฅ | ๋ฐ˜ํ™˜ | ์–ธ์ œ ํ˜ธ์ถœ | ์ฝ๊ธฐ์ „์šฉ |
41
41
  | --- | --- | --- | --- | --- | --- |
42
- | `open_inbox` | ์ธ์ž… ํด๋”(`~/.careermate/inbox`)๋ฅผ ๋ณด์žฅํ•˜๊ณ  ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ๋กœ ์—ด๊ธฐ + ํ˜„์žฌ ๋“ค์–ด ์žˆ๋Š” ํŒŒ์ผ ๋ชฉ๋ก ๋ฐ˜ํ™˜ | ์—†์Œ | `{ dir, files[] }` | ์˜จ๋ณด๋”ฉ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ "๊ธฐ์กด์— ์ž‘์„ฑํ•ด ๋‘” ์ด๋ ฅ์„œ ํŒŒ์ผ์ด ์žˆ๋‹ค"๊ณ  ๋‹ตํ–ˆ์„ ๋•Œ๋งŒ(๋ฌป์ง€ ์•Š๊ณ  ์ž๋™์œผ๋กœ ์—ด์ง€ ๋งˆ์„ธ์š”) | โœ๏ธ |
42
+ | `open_inbox` | ์ธ์ž… ํด๋”(`~/.careermate/inbox`)๋ฅผ ๋ณด์žฅํ•˜๊ณ  ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ๋กœ ์—ด๊ธฐ + ํ˜„์žฌ ๋“ค์–ด ์žˆ๋Š” ํŒŒ์ผ ๋ชฉ๋ก ๋ฐ˜ํ™˜ | ์—†์Œ | `{ dir, files[] }` | ์˜จ๋ณด๋”ฉ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ "๊ธฐ์กด์— ์ž‘์„ฑํ•ด ๋‘” ๋ฌธ์„œ ํŒŒ์ผ์ด ์žˆ๋‹ค"๊ณ  ๋‹ตํ–ˆ์„ ๋•Œ๋งŒ(๋ฌป์ง€ ์•Š๊ณ  ์ž๋™์œผ๋กœ ์—ด์ง€ ๋งˆ์„ธ์š”) | โœ๏ธ |
43
43
  | `read_inbox` | ์ธ์ž… ํด๋”์— ๋„ฃ์–ด ๋‘” ๋ฌธ์„œ๋“ค์˜ ๋ณธ๋ฌธ์„ ํ•œ ๋ฒˆ์— ์ถ”์ถœํ•ด ๋ฐ˜ํ™˜ | `filename?`(๋Œ€์†Œ๋ฌธ์ž ๋ฌด์‹œ, ์ƒ๋žต ์‹œ ์ „์ฒด), `max_chars?`(ํŒŒ์ผ๋ณ„ ๊ธฐ๋ณธ 20000์ž) | `{ dir, files[] }`(๊ฐ `{ filename, path, format, unsupported, truncated, warnings[], text }`) | `open_inbox`๋กœ ์•ˆ๋‚ดํ•œ ๋’ค ์‚ฌ์šฉ์ž๊ฐ€ "๋‹ค ๋„ฃ์—ˆ์–ด"๋ผ๊ณ  ํ•  ๋•Œ | โœ… |
44
44
 
45
45
  - `open_inbox`๋Š” ํด๋”๋ฅผ ์—ด๊ธฐ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ์„ ๋‹ค ๋„ฃ์—ˆ๋‹ค๊ณ  ํ•˜๋ฉด `read_inbox`๋กœ ๋ณธ๋ฌธ์„ ์ฝ์œผ์„ธ์š”.
46
46
  - `docx`/`hwp`/`hwpx`/ํ…์ŠคํŠธ๋Š” ํ…์ŠคํŠธ๋ฅผ ์ถ”์ถœํ•˜๊ณ , **`pdf`ยท์ด๋ฏธ์ง€๋Š” ์ถ”์ถœํ•˜์ง€ ์•Š๊ณ  ํŒŒ์ผ ๊ฒฝ๋กœ๋งŒ** ๋Œ๋ ค์ฃผ๋‹ˆ(`unsupported`) AI ํด๋ผ์ด์–ธํŠธ์˜ ํŒŒ์ผ ์ฝ๊ธฐ ๊ธฐ๋Šฅ์œผ๋กœ ๊ทธ ๊ฒฝ๋กœ๋ฅผ ์ง์ ‘ ์—ด์–ด ์ฝ์œผ์„ธ์š”.
47
- - ์ฝ์€ ๋‚ด์šฉ์€ ๊ทธ๋Œ€๋กœ ์ƒˆ ํŒŒ์ผ๋กœ ๋‹ค์‹œ ์“ฐ์ง€ ๋ง๊ณ , ๊ตฌ์กฐํ™”ํ•ด `save_profile`ยท`add_resume` ๋“ฑ ์•Œ๋งž์€ ๋„๊ตฌ๋กœ CareerMate์— ์ €์žฅํ•˜์„ธ์š”.
47
+ - ์ฝ์€ ๋‚ด์šฉ์€ ๊ทธ๋Œ€๋กœ ์ƒˆ ํŒŒ์ผ๋กœ ๋‹ค์‹œ ์“ฐ์ง€ ๋ง๊ณ , ๊ตฌ์กฐํ™”ํ•ด ํ”„๋กœํ•„์€ `save_profile`, ์ด๋ ฅ์„œยท๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œยทํฌํŠธํด๋ฆฌ์˜ค๋Š” `add_resume`, ๊ธฐ์กด ์ž๊ธฐ์†Œ๊ฐœ์„œ๋Š” `save_cover_letter_version`์œผ๋กœ ์ €์žฅํ•˜์„ธ์š”.
48
48
  - ์‘๋‹ต ํญ๋ฐœ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ํŒŒ์ผ๋ณ„ ๋ณธ๋ฌธ์€ `max_chars`(๊ธฐ๋ณธ 20000์ž)๋กœ ์ž˜๋ผ์„œ ๋Œ๋ ค์ฃผ๋ฉฐ, ์ž˜๋ฆฐ ๊ฒฝ์šฐ `truncated: true`๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
49
49
 
50
50
  ---
@@ -85,6 +85,7 @@ AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด ์ด ๋„๊ตฌ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœํ•ด ์ƒํƒœ
85
85
  | --- | --- | --- | --- | --- | --- |
86
86
  | `add_resume` | ์ด๋ ฅ์„œยท๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œยทํฌํŠธํด๋ฆฌ์˜ค ๋“ฑ ๋ฌธ์„œ ์ €์žฅ | `title`, `content`(ํ•„์ˆ˜), `kind?`, `source?`, `is_primary?`, `tags?` | ์ €์žฅ๋œ `DocumentRecord` | ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œ/๋ถ™์—ฌ๋„ฃ์€ ํ…์ŠคํŠธ(๋˜๋Š” ์ •๋ฆฌํ•œ Markdown)๋ฅผ ๋ณด๊ด€ํ•  ๋•Œ | โœ๏ธ |
87
87
  | `get_resumes` | ์ €์žฅ๋œ ๋ฌธ์„œ ์กฐํšŒ(์ข…๋ฅ˜ ํ•„ํ„ฐ ๊ฐ€๋Šฅ) | `kind?` | `DocumentRecord[]` | ์ €์žฅ๋œ ์ด๋ ฅ์„œ/๋ฌธ์„œ๋ฅผ ํ™•์ธํ•  ๋•Œ | โœ… |
88
+ | `delete_resume` | ์ €์žฅ๋œ ๋ฌธ์„œ(์ด๋ ฅ์„œยท๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œยทํฌํŠธํด๋ฆฌ์˜ค) ์‚ญ์ œ | `document_id`, `confirm`(=`DELETE`) | `{ deleted, id }` | ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ๋ฌธ์„œ ์‚ญ์ œ๋ฅผ ๋ช…ํ™•ํžˆ ์š”์ฒญํ–ˆ์„ ๋•Œ(๋จผ์ € get_resumes๋กœ ํ™•์ธ) | โœ๏ธ |
88
89
 
89
90
  - `kind` ๊ฐ’: `resume`(์ด๋ ฅ์„œ, ๊ธฐ๋ณธ๊ฐ’) / `career_description`(๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ) / `portfolio` / `other`
90
91
  - `is_primary: true`๋กœ ๋Œ€ํ‘œ ๋ฌธ์„œ๋ฅผ ์ง€์ •ํ•˜๋ฉด `get_application_context`์˜ `primary_resume`๋กœ ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
@@ -99,11 +100,15 @@ AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด ์ด ๋„๊ตฌ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœํ•ด ์ƒํƒœ
99
100
  | --- | --- | --- | --- | --- | --- |
100
101
  | `add_experience` | ๊ฒฝ๋ ฅ(์ง์žฅ ๋‹จ์œ„) ํ•ญ๋ชฉ ์ €์žฅ | `experiences[]` โ€” ๊ฐ ํ•ญ๋ชฉ: `company`(ํ•„์ˆ˜), `role?`, `employment_type?`, `start_date?`, `end_date?`, `is_current?`, `description?`, `achievements?`, `tech?`, `order_index?` | `ExperienceRecord[]` + ์‹ ๊ทœ/๊ฐฑ์‹  ๊ฑด์ˆ˜ | ์ด๋ ฅ์„œ์—์„œ ๊ฒฝ๋ ฅ์„ ๊ตฌ์กฐํ™”ํ•ด ๋ณด๊ด€ํ•  ๋•Œ(์—ฌ๋Ÿฌ ๊ฑด ํ•œ ๋ฒˆ์—) | โœ๏ธ |
101
102
  | `get_experiences` | ์ €์žฅ๋œ ๊ฒฝ๋ ฅ์„ ์‹œ๊ฐ„ ์—ญ์ˆœ์œผ๋กœ ์กฐํšŒ | ์—†์Œ | `ExperienceRecord[]` | ๊ฒฝ๋ ฅ ๋ชฉ๋ก๋งŒ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•  ๋•Œ | โœ… |
103
+ | `delete_experience` | ๊ฒฝ๋ ฅ ํ•ญ๋ชฉ 1๊ฑด ์‚ญ์ œ | `experience_id`, `confirm`(=`DELETE`) | `{ deleted, id }` | ์ž˜๋ชป ์ถ”์ถœ/์ž…๋ ฅ๋œ ๊ฒฝ๋ ฅ์„ ์ง€์šธ ๋•Œ(๋จผ์ € get_experiences๋กœ ํ™•์ธ) | โœ๏ธ |
102
104
  | `add_project` | ๋Œ€ํ‘œ ํ”„๋กœ์ ํŠธ ํ•ญ๋ชฉ ์ €์žฅ | `projects[]` โ€” ๊ฐ ํ•ญ๋ชฉ: `name`(ํ•„์ˆ˜), `role?`, `description?`, `highlights?`, `tech?`, `url?`, `start_date?`, `end_date?`, `order_index?` | `ProjectRecord[]` + ์‹ ๊ทœ/๊ฐฑ์‹  ๊ฑด์ˆ˜ | ํ”„๋กœ์ ํŠธ ์ด๋ ฅ์„ ๊ตฌ์กฐํ™”ํ•ด ๋ณด๊ด€ํ•  ๋•Œ(์—ฌ๋Ÿฌ ๊ฑด ํ•œ ๋ฒˆ์—) | โœ๏ธ |
103
105
  | `get_projects` | ์ €์žฅ๋œ ํ”„๋กœ์ ํŠธ ์กฐํšŒ | ์—†์Œ | `ProjectRecord[]` | ํ”„๋กœ์ ํŠธ ๋ชฉ๋ก๋งŒ ํ™•์ธํ•  ๋•Œ | โœ… |
106
+ | `delete_project` | ํ”„๋กœ์ ํŠธ ํ•ญ๋ชฉ 1๊ฑด ์‚ญ์ œ | `project_id`, `confirm`(=`DELETE`) | `{ deleted, id }` | ์ž˜๋ชป ์ถ”์ถœ/์ž…๋ ฅ๋œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง€์šธ ๋•Œ(๋จผ์ € get_projects๋กœ ํ™•์ธ) | โœ๏ธ |
104
107
  | `add_skill` | ๊ธฐ์ˆ ์Šคํƒ ํ•ญ๋ชฉ ์ €์žฅ | `skills[]` โ€” ๊ฐ ํ•ญ๋ชฉ: `name`(ํ•„์ˆ˜), `category?`, `level?`, `years?`, `order_index?` | `SkillRecord[]` + ์‹ ๊ทœ/๊ฐฑ์‹  ๊ฑด์ˆ˜ | ๋ณด์œ  ๊ธฐ์ˆ ์„ ์ •๋ฆฌํ•ด ๋‘˜ ๋•Œ(์—ฌ๋Ÿฌ ๊ฐœ ํ•œ ๋ฒˆ์—) | โœ๏ธ |
105
108
  | `get_skills` | ์ €์žฅ๋œ ๊ธฐ์ˆ ์Šคํƒ ์กฐํšŒ | ์—†์Œ | `SkillRecord[]` | ๊ธฐ์ˆ  ๋ชฉ๋ก๋งŒ ํ™•์ธํ•  ๋•Œ | โœ… |
109
+ | `delete_skill` | ๊ธฐ์ˆ  ํ•ญ๋ชฉ 1๊ฑด ์‚ญ์ œ | `skill_id`, `confirm`(=`DELETE`) | `{ deleted, id }` | ์ž˜๋ชป ์ถ”์ถœ/์ž…๋ ฅ๋œ ๊ธฐ์ˆ ์„ ์ง€์šธ ๋•Œ(๋จผ์ € get_skills๋กœ ํ™•์ธ) | โœ๏ธ |
106
110
 
111
+ - `delete_*`๋Š” ํ•ญ๋ชฉ 1๊ฑด๋งŒ ์ง€์›๋‹ˆ๋‹ค. **์ˆ˜์ •**์€ ๋ณ„๋„ ๋„๊ตฌ ์—†์ด `add_*`๋กœ ๊ฐ™์€ ํ•ญ๋ชฉ(๊ฐ™์€ ์‹๋ณ„์ž)์„ ๋‹ค์‹œ ์ €์žฅํ•˜๋ฉด ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค(๋ฉฑ๋“ฑ).
107
112
  - ์„ธ ๋„๊ตฌ ๋ชจ๋‘ **๋ฐฐ์—ด์„ ๋ฐ›์•„ ์—ฌ๋Ÿฌ ๊ฑด์„ ํ•œ ๋ฒˆ์— ์ €์žฅ**ํ•ฉ๋‹ˆ๋‹ค(ํ•œ ๊ฑด์ด์–ด๋„ ๋ฐฐ์—ด๋กœ). ํ•ญ๋ชฉ๋งˆ๋‹ค ๋„๊ตฌ๋ฅผ ๋ฐ˜๋ณต ํ˜ธ์ถœํ•˜์ง€ ๋งˆ์„ธ์š”.
108
113
  - **๋ฉฑ๋“ฑ ์ €์žฅ**: ๊ฐ™์€ ํ•ญ๋ชฉ(์Šคํ‚ฌ=`name`, ๊ฒฝ๋ ฅ=`company`+`role`+`start_date`, ํ”„๋กœ์ ํŠธ=`name`, ๋Œ€์†Œ๋ฌธ์ž ๋ฌด์‹œ)์„ ๋‹ค์‹œ ๋„ฃ์–ด๋„ ์ค‘๋ณต ํ–‰์„ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๋ฝํ•œ ํ•„๋“œ๋Š” ๊ธฐ์กด ๊ฐ’์„ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ์˜ ํ˜ธ์ถœ์€ ํ•œ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์›์ž ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
109
114
  - `achievements`/`highlights`์—๋Š” ์ •๋Ÿ‰ ์ง€ํ‘œ๊ฐ€ ๋‹ด๊ธด ์„ฑ๊ณผ๋ฅผ, `tech`์—๋Š” ์‚ฌ์šฉ ๊ธฐ์ˆ ์„ ๋ฐฐ์—ด๋กœ ๋„ฃ์œผ๋ฉด ์ ํ•ฉ๋„ ๋ถ„์„ยท์ž์†Œ์„œยท๋ฉด์ ‘ ์ค€๋น„์—์„œ ๊ทผ๊ฑฐ๋กœ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.
@@ -117,6 +122,7 @@ AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด ์ด ๋„๊ตฌ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœํ•ด ์ƒํƒœ
117
122
  | --- | --- | --- | --- | --- | --- |
118
123
  | `get_cover_letters` | ์ €์žฅ๋œ ์ž๊ธฐ์†Œ๊ฐœ์„œ ์กฐํšŒ(๊ณต๊ณ ๋ณ„ ํ•„ํ„ฐ ๊ฐ€๋Šฅ). ๊ฐ ํ•ญ๋ชฉ์€ ํ˜„์žฌ ๋ฒ„์ „ ๋‚ด์šฉยท๋ฒ„์ „ ์ˆ˜ ํฌํ•จ | `job_id?` | `CoverLetterRecord[]` | ์ž์†Œ์„œ ๋ชฉ๋ก/๋‚ด์šฉ์„ ํ™•์ธํ•  ๋•Œ | โœ… |
119
124
  | `save_cover_letter_version` | ์ž๊ธฐ์†Œ๊ฐœ์„œ์˜ ์ƒˆ ๋ฒ„์ „ ์ €์žฅ โ€” ์ž์†Œ์„œ ์ž‘์„ฑ ์›Œํฌํ”Œ๋กœ์šฐ์˜ ํ•ต์‹ฌ ์ €์žฅ ๋‹จ๊ณ„ | `content`(ํ•„์ˆ˜), `cover_letter_id?`, `title?`, `job_id?`, `note?`, `source?`, `set_current?` | `{ coverLetter, version }` | ์ƒˆ ๊ณต๊ณ ์šฉ ์ž์†Œ์„œ๋ฅผ ์ƒ์„ฑยท๊ฐฑ์‹ ํ•ด ๋ฒ„์ „์œผ๋กœ ๋‚จ๊ธธ ๋•Œ | โœ๏ธ |
125
+ | `delete_cover_letter` | ์ž๊ธฐ์†Œ๊ฐœ์„œ ์‚ญ์ œ(๋ชจ๋“  ๋ฒ„์ „ ํฌํ•จ) | `cover_letter_id`, `confirm:"DELETE"` | ์‚ญ์ œ ๊ฒฐ๊ณผ | ์‚ฌ์šฉ์ž๊ฐ€ ๋ชฉ๋ก์—์„œ ์‚ญ์ œ ๋Œ€์ƒ์„ ํ™•์ธํ•œ ๋’ค | โœ๏ธ |
120
126
 
121
127
  `save_cover_letter_version` ๋™์ž‘(`CoverLetterVersionInputSchema`):
122
128
 
@@ -127,6 +133,8 @@ AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด ์ด ๋„๊ตฌ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœํ•ด ์ƒํƒœ
127
133
 
128
134
  > ๊ธฐ์กด ์ž์†Œ์„œ๋ฅผ ํ•™์Šต์šฉ์œผ๋กœ ๋ณด๊ด€ํ•˜๋“  ์ƒˆ ๊ณต๊ณ ์šฉ ์ž์†Œ์„œ๋ฅผ ์ƒˆ๋กœ ์“ฐ๋“ , ์ €์žฅ์€ ๋ชจ๋‘ `save_cover_letter_version`์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. `title`+`content`๋งŒ ์ฃผ๋ฉด ์ƒˆ ์ž์†Œ์„œ์˜ v1๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
129
135
 
136
+ `delete_cover_letter`๋Š” ๋˜๋Œ๋ฆด ์ˆ˜ ์—†๋Š” ์ž‘์—…์ด๋ฏ€๋กœ, ๋จผ์ € `get_cover_letters`๋กœ ๋ชฉ๋ก์„ ํ™•์ธํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์‚ญ์ œํ•  ํ•ญ๋ชฉ์„ ๋ช…ํ™•ํžˆ ๊ณ ๋ฅธ ๋’ค ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œ๋œ ์ž๊ธฐ์†Œ๊ฐœ์„œ์˜ ๋ฒ„์ „์€ ํ•จ๊ป˜ ์‚ฌ๋ผ์ง€๋ฉฐ, ์—ฐ๊ฒฐ๋œ ์ง€์› ๊ธฐ๋ก์€ ์ž๊ธฐ์†Œ๊ฐœ์„œ ์—ฐ๊ฒฐ๋งŒ ๋น„์›Œ์ง‘๋‹ˆ๋‹ค.
137
+
130
138
  ---
131
139
 
132
140
  ## 5. ์ฑ„์šฉ๊ณต๊ณ  (Jobs)
@@ -136,10 +144,12 @@ AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด ์ด ๋„๊ตฌ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœํ•ด ์ƒํƒœ
136
144
  | `save_job_posting` | ์ฑ„์šฉ๊ณต๊ณ  ์ €์žฅ(์žˆ์œผ๋ฉด ๊ฐฑ์‹ ). ์ €์žฅ ์‹œ ์ง€์›(application) ํ•ญ๋ชฉ ์ž๋™ ์ƒ์„ฑ | `company`, `position`(ํ•„์ˆ˜), `url?`, `location?`, `employment_type?`, `description?`, `requirements?`, `keywords?`, `deadline?`, `source?` | ์ €์žฅ๋œ `JobRecord`(`job_id` ํฌํ•จ) | ๊ณต๊ณ ๋ฅผ DB์— ๋“ฑ๋ก/๊ฐฑ์‹ ํ•  ๋•Œ | โœ๏ธ |
137
145
  | `get_job_posting` | ๊ณต๊ณ  1๊ฑด ์ƒ์„ธ ์กฐํšŒ | `job_id` | `{ job, fit, application, cover_letters, interview }` | ํ•œ ๊ณต๊ณ ์˜ ๋ถ„์„ยท์ƒํƒœยท์ž์†Œ์„œยท๋ฉด์ ‘ ์ž๋ฃŒ๋ฅผ ํ•œ ๋ฒˆ์— ๋ณผ ๋•Œ | โœ… |
138
146
  | `list_jobs` | ์ €์žฅ๋œ ๋ชจ๋“  ๊ณต๊ณ ๋ฅผ ์ง€์› ์ƒํƒœยท์ ํ•ฉ๋„ ์ ์ˆ˜์™€ ํ•จ๊ป˜ ๋ชฉ๋กํ™” | ์—†์Œ | ๊ณต๊ณ  ๋ฉ”ํƒ€ ํฌํ•จ ๋ฐฐ์—ด | ์ „์ฒด ๊ณต๊ณ ๋ฅผ ํ›‘์–ด๋ณผ ๋•Œ | โœ… |
147
+ | `delete_job_posting` | ์ฑ„์šฉ๊ณต๊ณ  ์‚ญ์ œ | `job_id`, `confirm:"DELETE"` | ์‚ญ์ œ ๊ฒฐ๊ณผ | ์‚ฌ์šฉ์ž๊ฐ€ ๋ชฉ๋ก์—์„œ ์‚ญ์ œ ๋Œ€์ƒ์„ ํ™•์ธํ•œ ๋’ค | โœ๏ธ |
139
148
 
140
149
  - `url`์ด ๊ฐ™์œผ๋ฉด ์ค‘๋ณต ์ƒ์„ฑ ์—†์ด ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค.
141
150
  - `requirements`์—๋Š” ์ž๊ฒฉ์š”๊ฑด/์šฐ๋Œ€์‚ฌํ•ญ ํ•ต์‹ฌ, `keywords`์—๋Š” ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ๋ฅผ ์ •๋ฆฌํ•ด ๋„ฃ์œผ๋ฉด ์ดํ›„ ์ ํ•ฉ๋„ ๋ถ„์„ยท์ž์†Œ์„œ ์ž‘์„ฑ์— ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.
142
151
  - ๋ถ™์—ฌ๋„ฃ์€ ๊ณต๊ณ  ์›๋ฌธ์˜ ๊ตฌ์กฐํ™”(ํšŒ์‚ฌ๋ช…/์ง๋ฌด/๋งˆ๊ฐ์ผ/ํ‚ค์›Œ๋“œ ์ถ”์ถœ)๋Š” AI๊ฐ€ ์ง์ ‘ ์ˆ˜ํ–‰ํ•œ ๋’ค `save_job_posting`์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
152
+ - `delete_job_posting`์€ ์—ฐ๊ฒฐ๋œ ์ง€์› ์ƒํƒœยท์ ํ•ฉ๋„ ๋ถ„์„ยท๋ฉด์ ‘ ์ค€๋น„๋ฅผ ํ•จ๊ป˜ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ๋œ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋Š” ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ๊ณต๊ณ  ์—ฐ๊ฒฐ๋งŒ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.
143
153
 
144
154
  ---
145
155
 
@@ -147,10 +157,11 @@ AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด ์ด ๋„๊ตฌ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœํ•ด ์ƒํƒœ
147
157
 
148
158
  | ๋„๊ตฌ | ๋ชฉ์  | ์ฃผ์š” ์ž…๋ ฅ | ๋ฐ˜ํ™˜ | ์–ธ์ œ ํ˜ธ์ถœ | ์ฝ๊ธฐ์ „์šฉ |
149
159
  | --- | --- | --- | --- | --- | --- |
150
- | `save_fit_analysis` | AI๊ฐ€ ๋„์ถœํ•œ ์ ํ•ฉ๋„ ๋ถ„์„ ๊ฒฐ๊ณผ ์ €์žฅ(๊ฐ™์€ ๊ณต๊ณ ์— ๋‹ค์‹œ ์ €์žฅํ•˜๋ฉด ๊ฐฑ์‹ ) | `job_id`(ํ•„์ˆ˜), `score?`(0~100), `summary?`, `strengths?`, `gaps?`, `matched_keywords?`, `missing_keywords?`, `recommendations?` | ์ €์žฅ๋œ `FitAnalysisRecord` | ๊ณต๊ณ ์™€ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๋น„๊ต ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  ๋•Œ | โœ๏ธ |
160
+ | `save_fit_analysis` | AI๊ฐ€ ๋„์ถœํ•œ ์ ํ•ฉ๋„ ๋ถ„์„ ๊ฒฐ๊ณผ ์ €์žฅ(๊ฐ™์€ ๊ณต๊ณ ์— ๋‹ค์‹œ ์ €์žฅํ•˜๋ฉด ๊ฐฑ์‹ ) | `job_id`(ํ•„์ˆ˜), `score?`(0~100), `summary?`, `strengths?`, `gaps?`, `matched_keywords?`, `missing_keywords?`, `recommendations?` | ์ €์žฅ๋œ `FitAnalysisRecord` + `suggested_next_action` | ๊ณต๊ณ ์™€ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๋น„๊ต ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  ๋•Œ | โœ๏ธ |
151
161
 
152
162
  - `job_id`๋Š” ํ•„์ˆ˜์ด๋ฉฐ, ๋จผ์ € `save_job_posting`์œผ๋กœ ๊ณต๊ณ ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
153
163
  - ๋ถ„์„ ์ž์ฒด๋Š” AI๊ฐ€ ์ˆ˜ํ–‰ํ•˜๊ณ , ์ด ๋„๊ตฌ๋Š” ๊ฒฐ๊ณผ๋งŒ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ถ„์„ ์ „์—๋Š” ๋ฐ˜๋“œ์‹œ [`get_application_context`](#get_application_context-)๋กœ ๋งฅ๋ฝ์„ ๊ฐ€์ ธ์˜ค์„ธ์š”.
164
+ - ์ €์žฅ ํ›„ ์‘๋‹ต์—๋Š” "์ด ๊ณต๊ณ ์— ๋งž์ถ˜ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์จ๋“œ๋ฆด๊นŒ์š”?" ์„ ํƒ์ง€๊ฐ€ ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. AI๋Š” ๊ณง์žฅ ์ž‘์„ฑํ•˜์ง€ ๋ง๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ "๋„ค"๋ฅผ ๊ณ ๋ฅธ ๊ฒฝ์šฐ์—๋งŒ ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ ํ๋ฆ„์œผ๋กœ ์ด์–ด๊ฐ‘๋‹ˆ๋‹ค.
154
165
 
155
166
  ---
156
167
 
@@ -173,7 +184,7 @@ AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด ์ด ๋„๊ตฌ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœํ•ด ์ƒํƒœ
173
184
  | `rejected` | ๋ถˆํ•ฉ๊ฒฉ |
174
185
  | `on_hold` | ๋ณด๋ฅ˜ |
175
186
 
176
- > `document_passed`(์„œ๋ฅ˜ ํ•ฉ๊ฒฉ) ์ด์ƒ์—์„œ ๋ฉด์ ‘ ์ค€๋น„๊ฐ€ ํ•ด๊ธˆ๋˜๋ฉฐ, ์ƒํƒœ ๋ณ€๊ฒฝ ์‘๋‹ต์— ๋ฉด์ ‘ ์ค€๋น„ ์ œ์•ˆ ํžŒํŠธ๊ฐ€ ํ•จ๊ป˜ ๋Œ์•„์˜ต๋‹ˆ๋‹ค.
187
+ > `document_passed`(์„œ๋ฅ˜ ํ•ฉ๊ฒฉ) ์ด์ƒ์—์„œ๋Š” ์ƒํƒœ ๋ณ€๊ฒฝ ์‘๋‹ต์— ๋ฉด์ ‘ ์ค€๋น„ ์ œ์•ˆ ํžŒํŠธ๊ฐ€ ํ•จ๊ป˜ ๋Œ์•„์˜ต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•˜๋ฉด ๊ทธ ์ „์—๋„ ๊ณต๊ณ  ๊ธฐ์ค€ ๋ฉด์ ‘ ์ค€๋น„ ์ž๋ฃŒ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
177
188
 
178
189
  ---
179
190
 
@@ -181,7 +192,7 @@ AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด ์ด ๋„๊ตฌ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœํ•ด ์ƒํƒœ
181
192
 
182
193
  | ๋„๊ตฌ | ๋ชฉ์  | ์ฃผ์š” ์ž…๋ ฅ | ๋ฐ˜ํ™˜ | ์–ธ์ œ ํ˜ธ์ถœ | ์ฝ๊ธฐ์ „์šฉ |
183
194
  | --- | --- | --- | --- | --- | --- |
184
- | `save_interview_prep` | ์˜ˆ์ƒ ์งˆ๋ฌธยท๊ผฌ๋ฆฌ ์งˆ๋ฌธยทSTAR ๋‹ต๋ณ€ ๊ฐ€์ด๋“œยท1๋ถ„ ์ž๊ธฐ์†Œ๊ฐœ ์ดˆ์•ˆ ๋“ฑ ๋ฉด์ ‘ ์ค€๋น„ ์ž๋ฃŒ ์ €์žฅ(๊ฐ™์€ ๊ณต๊ณ ๋ฉด ๊ฐฑ์‹ ) | `job_id`(ํ•„์ˆ˜), `questions?`, `star_guides?`, `self_introduction?`, `notes?` | ์ €์žฅ๋œ `InterviewPrepRecord`(์งˆ๋ฌธ ์ˆ˜ ํฌํ•จ) | ๋ณดํ†ต ์„œ๋ฅ˜ ํ•ฉ๊ฒฉ ํ›„, AI๊ฐ€ ์ƒ์„ฑํ•œ ๋ฉด์ ‘ ์ž๋ฃŒ๋ฅผ ์ €์žฅํ•  ๋•Œ | โœ๏ธ |
195
+ | `save_interview_prep` | ์˜ˆ์ƒ ์งˆ๋ฌธยท๊ผฌ๋ฆฌ ์งˆ๋ฌธยทSTAR ๋‹ต๋ณ€ ๊ฐ€์ด๋“œยท1๋ถ„ ์ž๊ธฐ์†Œ๊ฐœ ์ดˆ์•ˆ ๋“ฑ ๋ฉด์ ‘ ์ค€๋น„ ์ž๋ฃŒ ์ €์žฅ(๊ฐ™์€ ๊ณต๊ณ ๋ฉด ๊ฐฑ์‹ ) | `job_id`(ํ•„์ˆ˜), `questions?`, `star_guides?`, `self_introduction?`, `notes?` | ์ €์žฅ๋œ `InterviewPrepRecord`(์งˆ๋ฌธ ์ˆ˜ ํฌํ•จ) | ์‚ฌ์šฉ์ž๊ฐ€ ๊ณต๊ณ  ๊ธฐ์ค€ ๋ฉด์ ‘ ์ค€๋น„๋ฅผ ์š”์ฒญํ–ˆ์„ ๋•Œ | โœ๏ธ |
185
196
 
186
197
  ์ž…๋ ฅ ๊ตฌ์กฐ(`InterviewPrepInputSchema`):
187
198
 
@@ -197,9 +208,11 @@ AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด ์ด ๋„๊ตฌ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœํ•ด ์ƒํƒœ
197
208
  | ๋„๊ตฌ | ๋ชฉ์  | ์ฃผ์š” ์ž…๋ ฅ | ๋ฐ˜ํ™˜ | ์–ธ์ œ ํ˜ธ์ถœ | ์ฝ๊ธฐ์ „์šฉ |
198
209
  | --- | --- | --- | --- | --- | --- |
199
210
  | `export_cover_letter` | ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ Markdown ๋˜๋Š” ์ธ์‡„์šฉ HTML ํŒŒ์ผ๋กœ ๋ฐ์ดํ„ฐ ํด๋” `exports/`์— ์ €์žฅ | `cover_letter_id`, `format?`(`md`(๊ธฐ๋ณธ)/`html`) | `{ path, filename, content }` | ์‚ฌ์šฉ์ž๊ฐ€ "์ž์†Œ์„œ ํŒŒ์ผ๋กœ ๋ฐ›๊ณ  ์‹ถ์–ด"๋ผ๊ณ  ํ•  ๋•Œ | โœ๏ธ |
211
+ | `export_resume` | ์ €์žฅ๋œ ์ด๋ ฅ์„œยท๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ ๋“ฑ ๋ฌธ์„œ๋ฅผ Markdown ๋˜๋Š” ์ธ์‡„์šฉ HTML ํŒŒ์ผ๋กœ `exports/`์— ์ €์žฅ | `document_id`, `format?`(`md`(๊ธฐ๋ณธ)/`html`) | `{ path, filename, content }` | ๊ณต๊ณ  ๋งž์ถค ์ด๋ ฅ์„œ๋ฅผ `add_resume`๋กœ ์ €์žฅํ•œ ๋’ค "์ด๋ ฅ์„œ ํŒŒ์ผ๋กœ ๋ฐ›๊ณ  ์‹ถ์–ด"๋ผ๊ณ  ํ•  ๋•Œ | โœ๏ธ |
212
+ | `export_profile` | ํ”„๋กœํ•„ยท๊ฒฝ๋ ฅยทํ”„๋กœ์ ํŠธยท๋ณด์œ  ๊ธฐ์ˆ ์„ ํ•œ ์žฅ์˜ ์ด๋ ฅ์„œ ํ˜•์‹์œผ๋กœ ๋ชจ์•„ Markdown ๋˜๋Š” ์ธ์‡„์šฉ HTML ํŒŒ์ผ๋กœ `exports/`์— ์ €์žฅ | `format?`(`md`(๊ธฐ๋ณธ)/`html`) | `{ path, filename, content }` | ์‚ฌ์šฉ์ž๊ฐ€ "๋‚ด ํ”„๋กœํ•„์„ ์ด๋ ฅ์„œ๋กœ ๋ฝ‘์•„์ค˜"๋ผ๊ณ  ํ•  ๋•Œ | โœ๏ธ |
200
213
 
201
214
  - HTML์€ ์ธ์‡„์šฉ์œผ๋กœ, ๋ธŒ๋ผ์šฐ์ €์—์„œ PDF๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
202
- - ๋Œ€์‹œ๋ณด๋“œ์˜ Documents ํŽ˜์ด์ง€์—์„œ ์ง์ ‘ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
215
+ - ๋Œ€์‹œ๋ณด๋“œ์˜ DocumentsยทProfile ํŽ˜์ด์ง€์—์„œ ์ง์ ‘ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
203
216
 
204
217
  ---
205
218
 
@@ -229,7 +242,7 @@ AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด ์ด ๋„๊ตฌ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœํ•ด ์ƒํƒœ
229
242
  | --- | --- | --- | --- | --- | --- |
230
243
  | `get_workflow_guide` | ํ‘œ์ค€ ์›Œํฌํ”Œ๋กœ์šฐ์˜ ๋‹จ๊ณ„๋ณ„ ์•ˆ๋‚ด + ๊ทธ ์ž‘์—…์˜ **์ „๋ฌธ๊ฐ€ ์‹คํ–‰ ์ ˆ์ฐจ(EOP)**ยท์ ์šฉํ•  ํ”Œ๋ ˆ์ด๋ถยท์ €์žฅ ์ „ ๊ฒ€์ฆ๊ธฐ ์ˆœ์„œ ๋ฐ˜ํ™˜ | `workflow_id?` | ๋‹จ์ผ ์›Œํฌํ”Œ๋กœ์šฐ Markdown(EOPยทํ”Œ๋ ˆ์ด๋ถ/๊ฒ€์ฆ๊ธฐ ์ˆœ์„œ ํฌํ•จ) ๋˜๋Š” ์ „์ฒด ๋ชฉ๋ก(`{ id, title, trigger }[]`) | ์ปค๋ฆฌ์–ด ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ง์ „ | โœ… |
231
244
 
232
- `workflow_id` ๊ฐ’: `onboarding`, `analyze_job`, `write_cover_letter`, `manage_application_status`, `prepare_interview`. ์ƒ๋žตํ•˜๋ฉด ์ „์ฒด ๋ชฉ๋ก์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค. `analyze_job`/`write_cover_letter`/`prepare_interview`/`onboarding`์€ ํ•ด๋‹น ์ž‘์—…์˜ EOP ๋ณธ๋ฌธ๊ณผ `get_playbook`ยท`get_verifier` ํ˜ธ์ถœ ์ˆœ์„œ(`career_route`)๋ฅผ ํ•จ๊ป˜ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.
245
+ `workflow_id` ๊ฐ’: `onboarding`, `analyze_job`, `write_cover_letter`, `write_career_description`, `manage_application_status`, `prepare_interview`. ์ƒ๋žตํ•˜๋ฉด ์ „์ฒด ๋ชฉ๋ก์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค. `analyze_job`/`write_cover_letter`/`write_career_description`/`prepare_interview`/`onboarding`์€ ํ•ด๋‹น ์ž‘์—…์˜ EOP ๋ณธ๋ฌธ๊ณผ `get_playbook`ยท`get_verifier` ํ˜ธ์ถœ ์ˆœ์„œ(`career_route`)๋ฅผ ํ•จ๊ป˜ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.
233
246
 
234
247
  ---
235
248
 
@@ -267,7 +280,7 @@ AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด ์ด ๋„๊ตฌ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœํ•ด ์ƒํƒœ
267
280
 
268
281
  | ๋„๊ตฌ | ๋ชฉ์  | ์ฃผ์š” ์ž…๋ ฅ | ๋ฐ˜ํ™˜ | ์–ธ์ œ ํ˜ธ์ถœ | ์ฝ๊ธฐ์ „์šฉ |
269
282
  | --- | --- | --- | --- | --- | --- |
270
- | `get_writing_style_guide` | "AI ํ‹ฐ ์•ˆ ๋‚˜๋Š”" ํ•œ๊ตญ์–ด ๊ธ€์“ฐ๊ธฐ ๊ทœ์น™ ๋ฐ˜ํ™˜ | ์—†์Œ | `{ guide }` (์ž‘์„ฑ ๊ทœ์น™ + ์ €์žฅ ์ „ ์ž๊ฐ€ ์ ๊ฒ€) | ์ž๊ธฐ์†Œ๊ฐœ์„œยท์ž๊ธฐ PRยท์ง€์› ๋ฉ”์ผ ๋“ฑ ์‚ฌ๋žŒ์ด ์“ด ๋“ฏํ•œ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ธฐ ์ง์ „ | โœ… |
283
+ | `get_writing_style_guide` | "AI ํ‹ฐ ์•ˆ ๋‚˜๋Š”" ํ•œ๊ตญ์–ด ๊ธ€์“ฐ๊ธฐ ๊ทœ์น™ ๋ฐ˜ํ™˜ | `doc_type?`(career_descriptionยทresumeยทportfolio๋ฉด ๊ตฌ์กฐ ๋ณด์กด ๋ณด์ • ์ถ”๊ฐ€) | `{ guide }` (์ž‘์„ฑ ๊ทœ์น™ + ์ €์žฅ ์ „ ์ž๊ฐ€ ์ ๊ฒ€) | ์ž๊ธฐ์†Œ๊ฐœ์„œยท์ž๊ธฐ PRยท์ง€์› ๋ฉ”์ผยท๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ ๋“ฑ ์‚ฌ๋žŒ์ด ์“ด ๋“ฏํ•œ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ธฐ ์ง์ „ | โœ… |
271
284
 
272
285
  ๋ฒˆ์—ญํˆฌยทํด๋ฆฌ์…ฐยท๊ธฐ๊ณ„์  ๋ณ‘๋ ฌยท์ƒํˆฌ์  ์—ฐ๊ฒฐ์–ดยท๊ท ์ผํ•œ ๋ฌธ์žฅ ๋ฆฌ๋“ฌ ๊ฐ™์€ AI-tell์„ ์ œ๊ฑฐํ•˜๋ฉด์„œ, ์‚ฌ์‹คยท์ˆ˜์น˜ยท๊ณ ์œ ๋ช…์‚ฌ๋Š” ๊ทธ๋Œ€๋กœ ๋ณด์กดํ•˜๋„๋ก ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. `write_cover_letter` / `analyze_job` ์›Œํฌํ”Œ๋กœ์šฐ์˜ ์ž‘์„ฑ ๋‹จ๊ณ„์—์„œ ํ•จ๊ป˜ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. (๊ทœ์น™ ์ถœ์ฒ˜: `epoko77-ai/im-not-ai`, MIT.)
273
286
 
@@ -283,6 +296,7 @@ CareerMate๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์œ ์ง€๋ณด์ˆ˜ ๋„๊ตฌ์ž…๋‹ˆ
283
296
  | `update_careermate` | ์„ค์น˜ ํด๋”์— `careermate@latest`๋ฅผ npm์œผ๋กœ ์„ค์น˜ํ•ด ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ | ์—†์Œ | ์—…๋ฐ์ดํŠธ ๊ฒฐ๊ณผ(`{ ok, message, manual? }`) | ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ "์—…๋ฐ์ดํŠธํ•ด์ค˜"๋ผ๊ณ  ํ•  ๋•Œ๋งŒ | โœ๏ธ |
284
297
 
285
298
  - `check_for_update`๋Š” ํ™•์ธ๋งŒ ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์ด ์žˆ์œผ๋ฉด `update_careermate`๋กœ ์ ์šฉํ•˜์„ธ์š”.
299
+ - ์‚ฌ์šฉ์ž๊ฐ€ "์—…๋ฐ์ดํŠธํ•ด์ค˜", "CareerMate ์—…๋ฐ์ดํŠธํ•ด์ค˜", "์ตœ์‹ ์œผ๋กœ ์˜ฌ๋ ค์ค˜"์ฒ˜๋Ÿผ ์ ์šฉ์„ ๋ช…์‹œํ•˜๋ฉด `update_careermate`๋ฅผ ๋ฐ”๋กœ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๊ฐ€ ์ตœ์‹  ๋ฒ„์ „ ํ™•์ธ๋„ ํ•จ๊ป˜ ํ•˜๋ฏ€๋กœ ๋ณ„๋„ ํ™•์ธ ์งˆ๋ฌธ์€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.
286
300
  - `update_careermate` ์„ฑ๊ณต ํ›„์—๋Š” ์ ์šฉ์„ ์œ„ํ•ด AI ์•ฑ(๋˜๋Š” MCP ์—ฐ๊ฒฐ) **์žฌ์‹œ์ž‘**์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์žฌ์‹œ์ž‘ ์‹œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ž๋™ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋˜์–ด ๊ธฐ์กด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด์กด๋ฉ๋‹ˆ๋‹ค.
287
301
  - ์ž๋™ ์„ค์น˜๊ฐ€ ๋ง‰ํžˆ๋ฉด(๊ฐœ๋ฐœ ๋ชจ๋“œยท๋น„ํ‘œ์ค€ ์„ค์น˜) ์ง์ ‘ ์น  ๋ช…๋ น(`manual`)์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.
288
302
 
@@ -312,7 +326,7 @@ CareerMate๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์œ ์ง€๋ณด์ˆ˜ ๋„๊ตฌ์ž…๋‹ˆ
312
326
  | `fit_analysis` | (`job_id` ์ œ๊ณต ์‹œ) ๋Œ€์ƒ ๊ณต๊ณ ์˜ ์ด์ „ ์ ํ•ฉ๋„ ๋ถ„์„(`FitAnalysisRecord` ๋˜๋Š” `null`) |
313
327
  | `related_history` | ๊ฐ™์€ ํšŒ์‚ฌ/์ง๋ฌด ๊ด€๋ จ ์ด์ „ ๊ธฐ๋ก ๋ฐฐ์—ด โ€” ๊ฐ ํ•ญ๋ชฉ `{ job, application, fit_analysis }` |
314
328
  | `writing_preferences` | ์ž์†Œ์„œ ์ž‘์„ฑ ์„ ํ˜ธ โ€” `{ preferred_tone, emphasis_points[] }` |
315
- | `recommended_route` | ๋งฅ๋ฝ ๊ธฐ๋ฐ˜ ์ถ”์ฒœ ์›Œํฌํ”Œ๋กœ์šฐ id(`analyze_job`/`write_cover_letter`/`prepare_interview`/`onboarding`) ๋˜๋Š” `null`. `get_workflow_guide`์˜ `workflow_id`๋กœ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ |
329
+ | `recommended_route` | ๋งฅ๋ฝ ๊ธฐ๋ฐ˜ ์ถ”์ฒœ ์›Œํฌํ”Œ๋กœ์šฐ id(`analyze_job`/`write_cover_letter`/`prepare_interview`/`onboarding`) ๋˜๋Š” `null`. ๊ณต๊ณ  ์ค‘์‹ฌ ๋งฅ๋ฝ์ด ์•„๋‹Œ `write_career_description`์€ ์‚ฌ์šฉ์ž ์š”์ฒญ์— ๋”ฐ๋ผ ์ง์ ‘ ์„ ํƒํ•œ๋‹ค. `get_workflow_guide`์˜ `workflow_id`๋กœ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ |
316
330
  | `verifier_sequence` | ์ถ”์ฒœ ๊ฒฝ๋กœ์—์„œ ์ €์žฅ ์ง์ „ ์ ์šฉํ•  ๊ฒ€์ฆ๊ธฐ id ๋ฐฐ์—ด(Career-OS) |
317
331
  | `next_tool` | ๋‹ค์Œ์— ๋ถ€๋ฅผ ๋„๊ตฌ(๋ณดํ†ต `get_workflow_guide`) ๋˜๋Š” `null` |
318
332
 
@@ -1,6 +1,6 @@
1
1
  # CareerMate ์‹œ์ž‘ ๋Ÿฐ๋ถ (์—ฐ๊ฒฐ ์งํ›„ AI์šฉ)
2
2
 
3
- ์„ค์น˜ยท์—ฐ๊ฒฐ(`INSTALL.md`)์ด ๋๋‚œ ์งํ›„, AI(๋‹น์‹ )๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ๋น ๋ฅด๊ฒŒ ์ƒ์‚ฐ์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋”ฐ๋ผ๊ฐ€๋Š” ๋Ÿฐ๋ถ์ž…๋‹ˆ๋‹ค. ๋„๊ตฌ๋Š” ์ •ํ•ด์ง„ ์ˆœ์„œ๋กœ ํ˜ธ์ถœํ•˜๊ณ , ๋งค ๋‹จ๊ณ„ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ์‰ฌ์šด ํ•œ๊ตญ์–ด๋กœ ์„ค๋ช…ํ•˜์„ธ์š”. MCPยทjob_id ๊ฐ™์€ ๊ธฐ์ˆ  ์šฉ์–ด๋Š” ๋…ธ์ถœํ•˜์ง€ ๋งˆ์„ธ์š”. ํ™•์‹คํ•˜์ง€ ์•Š์€ ์ •๋ณด๋Š” ์ง€์–ด๋‚ด์ง€ ๋ง๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ํ™•์ธํ•˜์„ธ์š”.
3
+ ์„ค์น˜ยท์—ฐ๊ฒฐ(`INSTALL.md`)์ด ๋๋‚œ ์งํ›„, AI(๋‹น์‹ )๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ๋น ๋ฅด๊ฒŒ ์ƒ์‚ฐ์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋”ฐ๋ผ๊ฐ€๋Š” ๋Ÿฐ๋ถ์ž…๋‹ˆ๋‹ค. ๋„๊ตฌ๋Š” ์ •ํ•ด์ง„ ์ˆœ์„œ๋กœ ํ˜ธ์ถœํ•˜๊ณ , ๋งค ๋‹จ๊ณ„ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ์‚ฌ์šฉ์ž์˜ ์–ธ์–ด๋กœ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜์„ธ์š”. MCPยทjob_id ๊ฐ™์€ ๊ธฐ์ˆ  ์šฉ์–ด๋Š” ๋…ธ์ถœํ•˜์ง€ ๋งˆ์„ธ์š”. ํ™•์‹คํ•˜์ง€ ์•Š์€ ์ •๋ณด๋Š” ์ง€์–ด๋‚ด์ง€ ๋ง๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ํ™•์ธํ•˜์„ธ์š”.
4
4
 
5
5
  > ํ•ต์‹ฌ ์›์น™: **๋ถ„์„๊ณผ ๊ธ€์“ฐ๊ธฐ๋Š” ๋‹น์‹ (AI)์ด ์ˆ˜ํ–‰ํ•˜๊ณ , CareerMate๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตยท๋ณด๊ด€**ํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ณ  ๋ถ„์„์ด๋‚˜ ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ ์ „์—๋Š” ํ•ญ์ƒ `get_application_context`๋ฅผ ๋จผ์ € ํ˜ธ์ถœํ•ด ๊ทผ๊ฑฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค์„ธ์š”.
6
6
 
@@ -19,7 +19,7 @@
19
19
 
20
20
  ### 2. ํ”„๋กœํ•„ ์ˆ˜์ง‘ ๋ฐ ์ €์žฅ โ€” `save_profile`
21
21
 
22
- - ์‚ฌ์šฉ์ž๊ฐ€ ์˜ฌ๋ฆฐ ์ด๋ ฅ์„œ/์ž๊ธฐ์†Œ๊ฐœ์„œ ํŒŒ์ผ ๋˜๋Š” ์ง์ ‘ ์•Œ๋ ค์ค€ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ํ”„๋กœํ•„์„ ๊ตฌ์กฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
22
+ - ์‚ฌ์šฉ์ž๊ฐ€ ์˜ฌ๋ฆฐ ์ด๋ ฅ์„œ/๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ/ํฌํŠธํด๋ฆฌ์˜ค/์ž๊ธฐ์†Œ๊ฐœ์„œ ํŒŒ์ผ ๋˜๋Š” ์ง์ ‘ ์•Œ๋ ค์ค€ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ํ”„๋กœํ•„์„ ๊ตฌ์กฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
23
23
  - ์ •๋ฆฌ ํ•ญ๋ชฉ: ์ด๋ฆ„, ์—ฐ๋ฝ์ฒ˜, ํ•œ ์ค„ ์†Œ๊ฐœ(`headline`), ์š”์•ฝ(`summary`), ํฌ๋ง ์ง๋ฌด(`desired_roles`), ํฌ๋ง ๊ทผ๋ฌด ์กฐ๊ฑด(`desired_conditions`).
24
24
  - **๊ธ€์“ฐ๊ธฐ ์„ ํ˜ธ๋„**๋ฅผ ํ•จ๊ป˜ ๋ฌผ์–ด๋ณด์„ธ์š”: ์„ ํ˜ธ ๋ฌธ์ฒด(`preferred_tone`, ์˜ˆ: "๋‹ด๋ฐฑํ•˜๊ณ  ๊ตฌ์ฒด์ ")์™€ ๊ฐ•์กฐ ํฌ์ธํŠธ(`emphasis_points`). ์ด ๋‘ ๊ฐ’์€ ์ดํ›„ ์ž๊ธฐ์†Œ๊ฐœ์„œ ํ’ˆ์งˆ์— ์ง์ ‘ ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.
25
25
  - `save_profile`๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ „๋‹ฌํ•œ ํ•„๋“œ๋งŒ ๊ฐฑ์‹ ๋˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ์œ ์ง€๋ฉ๋‹ˆ๋‹ค(๋ถ€๋ถ„ ์ €์žฅ ์•ˆ์ „). ํ•œ๋‘ ๊ฐœ๋งŒ ๋ฐ”๊ฟ€ ๋•Œ๋„ ๊ทธ๋Œ€๋กœ `save_profile`์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
@@ -31,6 +31,19 @@ CareerMate๋Š” LLM์ด ์—†๋Š” **๋กœ์ปฌ MCP ๋„๊ตฌ**์ž…๋‹ˆ๋‹ค. *๋‚ด ์ปดํ“จํ„ฐ์—์„œ
31
31
  ### ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ
32
32
  **ChatGPT ยท Gemini ยท Claude์˜ ์›นยท๋ชจ๋ฐ”์ผ ์•ฑ์€ ์•ˆ ๋ฉ๋‹ˆ๋‹ค.** ํด๋ผ์šฐ๋“œ์—์„œ ์‹คํ–‰๋˜์–ด **์›๊ฒฉ URL ๊ธฐ๋ฐ˜ MCP๋งŒ** ์ง€์›ํ•˜๋ฏ€๋กœ, ๋‚ด ์ปดํ“จํ„ฐ์˜ ๋กœ์ปฌ stdio ์„œ๋ฒ„์— ์ง์ ‘ ๋‹ฟ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
33
33
 
34
+ ### ์ฒซ ์‚ฌ์šฉ ๋งˆ์ฐฐ โ€” ๋„๊ตฌ ์‚ฌ์ „ํ—ˆ์šฉ (์ž๋™)
35
+ `careermate init`์€ **์—ฐ๊ฒฐํ•œ ํด๋ผ์ด์–ธํŠธ์—๋งŒ**(๊ฐ์ง€๋œ/`--client`๋กœ ์ง€์ •ํ•œ ๊ฒƒ) ์ปค๋ฆฌ์–ด ๋ฐ์ดํ„ฐ ๋„๊ตฌ๋ฅผ ๋ฏธ๋ฆฌ ํ—ˆ์šฉํ•ด, ์ฒซ ์‚ฌ์šฉ ๋•Œ ๋„๊ตฌ๋งˆ๋‹ค ๋œจ๋Š” ์Šน์ธ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์—†์•ฑ๋‹ˆ๋‹ค. **๋ฏผ๊ฐ/ํŒŒ๊ดด 4๊ฐœ(`read_document`ยท`update_careermate`ยท`delete_cover_letter`ยท`delete_job_posting`)๋Š” ์–ด๋А ํด๋ผ์ด์–ธํŠธ์—์„œ๋„ ์ž๋™์Šน์ธํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋•Œ๊ทธ๋•Œ ํ™•์ธ**์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. `--no-allow-tools`๋กœ ์ „์ฒด๋ฅผ ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
36
+
37
+ | ์•ฑ | ์‚ฌ์ „ํ—ˆ์šฉ ๋ฐฉ์‹ | ์“ฐ๋Š” ํŒŒ์ผ |
38
+ |---|---|---|
39
+ | **Claude Code** | `permissions.allow` + ์„œ๋ฒ„ ์‹ ๋ขฐ(`enabledMcpjsonServers`) | ์ž‘์—… ํด๋” `.claude/settings.local.json` |
40
+ | **Codex CLI** | ์„œ๋ฒ„ ๋„๊ตฌ ์ž๋™์Šน์ธ(`default_tools_approval_mode = "auto"`) + ๋ฏผ๊ฐ 4๊ฐœ๋งŒ `approval_mode = "prompt"` | `~/.codex/config.toml` |
41
+ | **Cursor (โ‰ฅ3.6)** | `mcpAllowlist`์— SAFE ๋„๊ตฌ๋งŒ(`"careermate:<tool>"`) | `~/.cursor/permissions.json` |
42
+ | **Gemini CLI ยท Antigravity** | (์ž๋™ ์•ˆ ํ•จ) โ€” ๋„๊ตฌ๋ณ„ ์‚ฌ์ „ํ—ˆ์šฉ์ด ์—†๊ณ  ์„œ๋ฒ„ ๋‹จ์œ„ ์ผ๊ด„ ์‹ ๋ขฐ๋งŒ ์žˆ์–ด, ๋ฏผ๊ฐ ๋„๊ตฌ๊นŒ์ง€ ์ž๋™์Šน์ธ๋˜๋Š” ๊ฑธ ํ”ผํ•˜๋ ค๊ณ  **์ฒซ ์‚ฌ์šฉ 1ํšŒ "ํ—ˆ์šฉ"**๋งŒ ๋ฐ›์Šต๋‹ˆ๋‹ค | โ€” |
43
+ | **Claude Desktop "์ฑ„ํŒ…"** | (์ž๋™ ์•ˆ ํ•จ) โ€” ์•ฑ์ด ์„ธ์…˜ UI์—์„œ "ํ•ญ์ƒ ํ—ˆ์šฉ"์œผ๋กœ ๊ธฐ์–ต | โ€” |
44
+
45
+ > ํด๋”๋ฅผ ์ฒ˜์Œ "์‹ ๋ขฐ"ํ•˜๋Š” 1ํšŒ ๋‹ค์ด์–ผ๋กœ๊ทธ(Claude Code์˜ ํด๋” ์‹ ๋ขฐ, Codex์˜ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์‹ ๋ขฐ)๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ•์ œํ•˜๋Š” ๋ณด์•ˆ ๊ฒŒ์ดํŠธ๋ผ ์‚ฌ๋ผ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค โ€” ํ•œ ๋ฒˆ๋งŒ ์Šน์ธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
46
+
34
47
  ---
35
48
 
36
49
  ## ๊ตฌ๋…ยท์ค€๋น„๋ฌผ (2026)
package/docs/WORKFLOWS.md CHANGED
@@ -8,23 +8,25 @@ CareerMate๋Š” ๋‚ด๋ถ€์— LLM์„ ๋‘์ง€ ์•Š๋Š”๋‹ค. ๋ถ„์„๊ณผ ์ž‘์„ฑ์€ ์‚ฌ์šฉ์ž
8
8
 
9
9
  - ์—ฐ๊ฒฐ ์งํ›„ AI๊ฐ€ ๋”ฐ๋ผ๊ฐ€๋Š” ์‹œ์ž‘ ๋Ÿฐ๋ถ์€ [์‹œ์ž‘ ๋Ÿฐ๋ถ](./START_WORKFLOW.md)์„ ์ฐธ๊ณ ํ•œ๋‹ค.
10
10
  - ์„ค์น˜ยท์—ฐ๊ฒฐ ์ ˆ์ฐจ๋Š” [์„ค์น˜ ๋Ÿฐ๋ถ](../INSTALL.md)(๋˜๋Š” [์ง€์› ์•ฑยท์„ค์น˜ ๋ ˆํผ๋Ÿฐ์Šค](./SUPPORTED_AI_APPS.md))์„ ์ฐธ๊ณ ํ•œ๋‹ค.
11
- - MCP ๋„๊ตฌ 31์ข…์˜ ์ž…์ถœ๋ ฅ ๋ช…์„ธ๋Š” ์ฝ”๋“œ(`packages/mcp-tools/src/tools.ts`)์— ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉฐ, AI๋Š” ๊ฐ ๋„๊ตฌ์˜ `inputSchema`๋กœ ์ง์ ‘ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
11
+ - MCP ๋„๊ตฌ์˜ ์ž…์ถœ๋ ฅ ๋ช…์„ธ๋Š” ์ฝ”๋“œ(`packages/mcp-tools/src/tools.ts`)์— ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉฐ, AI๋Š” ๊ฐ ๋„๊ตฌ์˜ `inputSchema`๋กœ ์ง์ ‘ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
12
12
 
13
- ## ์›Œํฌํ”Œ๋กœ์šฐ 5์ข… ๊ฐœ์š”
13
+ ## ์›Œํฌํ”Œ๋กœ์šฐ 7์ข… ๊ฐœ์š” (ํ•ต์‹ฌ 6 + build_personal_brand)
14
14
 
15
15
  | id | ์ œ๋ชฉ | ํ•ต์‹ฌ ๋ชฉ์  |
16
16
  | --- | --- | --- |
17
17
  | `onboarding` | ์˜จ๋ณด๋”ฉ (์ฒซ ์…‹์—…) | ํ”„๋กœํ•„ยท์ด๋ ฅ์„œยท์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์—ฐ๋‹ค. |
18
18
  | `analyze_job` | ๊ณต๊ณ  ๋ถ„์„ (์ ํ•ฉ๋„ ๋ถ„์„) | ๊ณต๊ณ ๋ฅผ ์ฝ์–ด ํ”„๋กœํ•„๊ณผ ๋น„๊ตํ•˜๊ณ , ๊ณต๊ณ ยท์ ํ•ฉ๋„ ๋ถ„์„์„ ์ €์žฅํ•œ ๋’ค ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ์„ ์ œ์•ˆํ•œ๋‹ค. |
19
19
  | `write_cover_letter` | ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ | ํŠน์ • ๊ณต๊ณ ์— ๋งž์ถ˜ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์‚ฌ์šฉ์ž ํ™•์ธ์„ ๊ฑฐ์ณ ์ž‘์„ฑยท๋ฒ„์ „ ์ €์žฅํ•œ๋‹ค. |
20
+ | `write_career_description` | ๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ ์ž‘์„ฑ | ํ”„๋กœํ•„ยท์ด๋ ฅ์„œยท๊ฒฝ๋ ฅยทํ”„๋กœ์ ํŠธยท์Šคํ‚ฌ์„ ๊ทผ๊ฑฐ๋กœ ์‹ค์ œ ์ œ์ถœ ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ๋ฅผ ์ž‘์„ฑยท์ €์žฅํ•œ๋‹ค. |
20
21
  | `manage_application_status` | ์ง€์› ์ƒํƒœ ๊ด€๋ฆฌ | ์ง€์› ์ง„ํ–‰ ์ƒํ™ฉ(8๋‹จ๊ณ„)์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋‹ค์Œ ํ–‰๋™์„ ์ œ์•ˆํ•œ๋‹ค. |
21
- | `prepare_interview` | ๋ฉด์ ‘ ์ค€๋น„ | ์„œ๋ฅ˜ ํ•ฉ๊ฒฉ ์ดํ›„ ์˜ˆ์ƒ ์งˆ๋ฌธยทSTAR ๋‹ต๋ณ€ยท1๋ถ„ ์ž๊ธฐ์†Œ๊ฐœ๋ฅผ ์ค€๋น„ยท์ €์žฅํ•œ๋‹ค. |
22
+ | `prepare_interview` | ๋ฉด์ ‘ ์ค€๋น„ | ๊ณต๊ณ  ๊ธฐ์ค€ ์˜ˆ์ƒ ์งˆ๋ฌธยทSTAR ๋‹ต๋ณ€ยท1๋ถ„ ์ž๊ธฐ์†Œ๊ฐœ๋ฅผ ์ค€๋น„ยท์ €์žฅํ•œ๋‹ค. |
23
+ | `build_personal_brand` | ํผ์Šค๋„ ๋ธŒ๋žœ๋“œ (LinkedInยทํฌํŠธํด๋ฆฌ์˜ค) | LinkedIn ํ”„๋กœํ•„ยทํฌํŠธํด๋ฆฌ์˜ค ๊ฐ™์€ ์ž๊ธฐํ‘œํ˜„ ์ž์‚ฐ์„ ์ง๋ฌด์— ๋งž์ถฐ ์ž‘์„ฑยท์ตœ์ ํ™”ํ•œ๋‹ค(์ด๋ ฅ์„œ ์ž„ํฌํŠธ์™€ ๋ถ„๋ฆฌ๋œ ์„ ํƒ ์ž‘์—…). |
22
24
 
23
25
  ## ๊ณตํ†ต ์›์น™
24
26
 
25
27
  - **์ถ”์ธก ๊ธˆ์ง€**: ์ €์žฅ๋œ ์‹ค์ œ ๊ฒฝํ—˜ยท์„ฑ๊ณผ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. ์—†๋Š” ๊ฒฝํ—˜์„ ์ง€์–ด๋‚ด์ง€ ์•Š์œผ๋ฉฐ, ๋นˆ์นธ์ด๋‚˜ ํ™•์ธ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์€ ํ‘œ์‹œํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌป๋Š”๋‹ค.
26
28
  - **์‚ฌ์šฉ์ž ํ™•์ธ ์šฐ์„ **: ํฐ ์ž‘์—…(์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ ๋“ฑ)์„ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ๋Œ€์ƒยท๊ฐ•์กฐ์ ยทํ†คยท๋ถ„๋Ÿ‰์„ ํ™•์ธํ•œ๋‹ค.
27
- - **์‰ฌ์šด ํ•œ๊ตญ์–ด ์ „๋‹ฌ**: ๋ถ„์„ยท๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์„ค๋ช…ํ•  ๋•Œ๋Š” ๊ธฐ์ˆ  ์šฉ์–ด๋ฅผ ๋นผ๊ณ  ์‰ฌ์šด ํ•œ๊ตญ์–ด๋กœ ์ „๋‹ฌํ•œ๋‹ค.
29
+ - **์‰ฌ์šด ์ „๋‹ฌ(์‚ฌ์šฉ์ž ์–ธ์–ด)**: ๋ถ„์„ยท๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์„ค๋ช…ํ•  ๋•Œ๋Š” ๊ธฐ์ˆ  ์šฉ์–ด๋ฅผ ๋นผ๊ณ  ์‚ฌ์šฉ์ž์˜ ์–ธ์–ด๋กœ ์‰ฝ๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.
28
30
  - **๋กœ์ปฌ ์ „์šฉ**: ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ๋กœ์ปฌ์—๋งŒ ์ €์žฅ๋œ๋‹ค.
29
31
 
30
32
  ---
@@ -38,7 +40,7 @@ CareerMate๋Š” ๋‚ด๋ถ€์— LLM์„ ๋‘์ง€ ์•Š๋Š”๋‹ค. ๋ถ„์„๊ณผ ์ž‘์„ฑ์€ ์‚ฌ์šฉ์ž
38
40
  **๋‹จ๊ณ„:**
39
41
 
40
42
  1. `get_onboarding_status`๋ฅผ ํ˜ธ์ถœํ•ด ํ˜„์žฌ ๋“ฑ๋ก ์ƒํƒœ(`has_profile`, `has_resume`, `has_cover_letter`, `has_experience`, `has_skills`, `profile_completeness`, `next_steps`)๋ฅผ ํ™•์ธํ•œ๋‹ค.
41
- 2. ๋น„์–ด ์žˆ๋Š” ํ•ญ๋ชฉ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‰ฌ์šด ํ•œ๊ตญ์–ด๋กœ ์•ˆ๋‚ดํ•˜๊ณ , ์ด๋ ฅ์„œ/์ž๊ธฐ์†Œ๊ฐœ์„œ ํŒŒ์ผ ์—…๋กœ๋“œ ๋˜๋Š” ์ •๋ณด ์ž…๋ ฅ์„ ์š”์ฒญํ•œ๋‹ค.
43
+ 2. ๋น„์–ด ์žˆ๋Š” ํ•ญ๋ชฉ์„ ์‚ฌ์šฉ์ž์˜ ์–ธ์–ด๋กœ ์‰ฝ๊ฒŒ ์•ˆ๋‚ดํ•˜๊ณ , ์ด๋ ฅ์„œ/๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ/ํฌํŠธํด๋ฆฌ์˜ค/์ž๊ธฐ์†Œ๊ฐœ์„œ ํŒŒ์ผ ์—…๋กœ๋“œ ๋˜๋Š” ์ •๋ณด ์ž…๋ ฅ์„ ์š”์ฒญํ•œ๋‹ค.
42
44
  3. ์ˆ˜์ง‘ํ•œ ์ •๋ณด๋ฅผ ๊ตฌ์กฐํ™”ํ•ด `save_profile`๋กœ ์ €์žฅํ•œ๋‹ค(์ด๋ฆ„ยท์—ฐ๋ฝ์ฒ˜ยท`headline`ยท`summary`ยท`desired_roles`ยท`desired_conditions`, ๊ทธ๋ฆฌ๊ณ  ๊ธ€์“ฐ๊ธฐ ์„ ํ˜ธ์ธ `preferred_tone`๊ณผ `emphasis_points` ํฌํ•จ). ํŒŒ์ผ ์ถœ์ฒ˜๋Š” `source=upload`, ์ง์ ‘ ์ž…๋ ฅ์€ `manual`.
43
45
  4. ์—…๋กœ๋“œํ•œ ์ด๋ ฅ์„œ/๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ/ํฌํŠธํด๋ฆฌ์˜ค ๋ณธ๋ฌธ์„ `add_resume`๋กœ ์ €์žฅํ•œ๋‹ค(`kind`ยท`title` ์ง€์ •, ๋Œ€ํ‘œ ๋ฌธ์„œ๋Š” `is_primary=true`).
44
46
  5. ๊ฒฝ๋ ฅยทํ”„๋กœ์ ํŠธยท์Šคํ‚ฌ์ด ํŒŒ์•…๋˜๋ฉด `add_experience`ยท`add_project`ยท`add_skill`๋กœ ์ €์žฅํ•œ๋‹ค โ€” ๊ฐ ๋„๊ตฌ๋Š” ๋ฐฐ์—ด์„ ๋ฐ›์œผ๋ฏ€๋กœ ํŒŒ์•…ํ•œ ํ•ญ๋ชฉ์„ ํ•œ ๋ฒˆ์— ๋ชจ์•„ ๋„˜๊ธด๋‹ค(ํ•ญ๋ชฉ๋งˆ๋‹ค ๋ฐ˜๋ณต ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š”๋‹ค). ๊ฐ™์€ ํ•ญ๋ชฉ์„ ๋‹ค์‹œ ๋„ฃ์–ด๋„ ์ค‘๋ณต ์—†์ด ๊ฐฑ์‹ ๋œ๋‹ค(์™„์„ฑ๋„์˜ `has_experience`/`has_skills`์— ๋ฐ˜์˜).
@@ -73,9 +75,9 @@ get_onboarding_status
73
75
  3. **๋น„๊ต/๋ถ„์„** โ€” ๊ณต๊ณ  ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์‚ฌ์šฉ์ž ๊ฒฝ๋ ฅ/์Šคํ‚ฌ/ํ”„๋กœ์ ํŠธ๋ฅผ ๋น„๊ตํ•œ๋‹ค. ์ผ์น˜ํ•˜๋Š” ๊ฐ•์ (`strengths`)๊ณผ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„(`gaps`), ๋งค์นญ ํ‚ค์›Œ๋“œ(`matched_keywords`)์™€ ๋ˆ„๋ฝ ํ‚ค์›Œ๋“œ(`missing_keywords`)๋ฅผ ๋„์ถœํ•˜๊ณ , ์ข…ํ•ฉ ์ ํ•ฉ๋„ ์ ์ˆ˜(`score` 0~100)์™€ ์š”์•ฝ(`summary`), ์ง€์› ์ „๋žต ์ œ์•ˆ(`recommendations`)์„ ์ •๋ฆฌํ•œ๋‹ค. **์—†๋Š” ๊ฒฝํ—˜์„ ์ง€์–ด๋‚ด์ง€ ์•Š๋Š”๋‹ค.**
74
76
  4. **๊ณต๊ณ  ์ €์žฅ** โ€” ์•„์ง ์ €์žฅ๋˜์ง€ ์•Š์€ ๊ณต๊ณ ๋ผ๋ฉด `save_job_posting`์œผ๋กœ ๊ณต๊ณ ๋ฅผ ์ €์žฅํ•˜๊ณ  `job_id`๋ฅผ ํ™•๋ณดํ•œ๋‹ค.
75
77
  5. **๋ถ„์„ ์ €์žฅ** โ€” ๋„์ถœํ•œ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ `save_fit_analysis`๋กœ ์ €์žฅํ•œ๋‹ค(`job_id`, `score`, `summary`, `strengths`, `gaps`, `matched_keywords`, `missing_keywords`, `recommendations`).
76
- 6. **์‚ฌ์šฉ์ž ์„ค๋ช…** โ€” ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‰ฌ์šด ํ•œ๊ตญ์–ด๋กœ ์„ค๋ช…ํ•œ๋‹ค(์ž˜ ๋งž๋Š” ์ , ๋ณด์™„ํ•  ์ , ์ถ”์ฒœ ์ „๋žต). ๊ธฐ์ˆ  ์šฉ์–ด๋Š” ๋นผ๊ณ  ์ „๋‹ฌํ•œ๋‹ค.
77
- 7. **์ž์†Œ์„œ ์ œ์•ˆ** โ€” "์ด ๊ณต๊ณ ์— ๋งž์ถ˜ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์จ๋“œ๋ฆด๊นŒ์š”?"๋ผ๊ณ  ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ์„ ์ œ์•ˆํ•œ๋‹ค.
78
- 8. **๋™์˜ ์‹œ ์ž์†Œ์„œ ์ €์žฅ** โ€” ์‚ฌ์šฉ์ž๊ฐ€ ๋™์˜ํ•˜๋ฉด ์ ํ•ฉ๋„ ๋ถ„์„๊ณผ ๊ธ€์“ฐ๊ธฐ ์„ ํ˜ธ๋ฅผ ๋ฐ˜์˜ํ•ด ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  `save_cover_letter_version`์œผ๋กœ ์ €์žฅํ•œ๋‹ค(`job_id` ์—ฐ๊ฒฐ, `note`์— ์ž‘์„ฑ ์˜๋„ ์š”์•ฝ).
78
+ 6. **์‚ฌ์šฉ์ž ์„ค๋ช…** โ€” ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์˜ ์–ธ์–ด๋กœ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•œ๋‹ค(์ž˜ ๋งž๋Š” ์ , ๋ณด์™„ํ•  ์ , ์ถ”์ฒœ ์ „๋žต). ๊ธฐ์ˆ  ์šฉ์–ด๋Š” ๋นผ๊ณ  ์ „๋‹ฌํ•œ๋‹ค.
79
+ 7. **์ž์†Œ์„œ ์„ ํƒ ์ œ์•ˆ** โ€” ๋ถ„์„ ๋’ค ๊ณง์žฅ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์“ฐ์ง€ ๋ง๊ณ  "์ด ๊ณต๊ณ ์— ๋งž์ถ˜ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์จ๋“œ๋ฆด๊นŒ์š”?"๋ผ๊ณ  ๋ฌป๊ณ  ์„ ํƒ์ง€๋ฅผ ์ œ์‹œํ•œ๋‹ค: โ‘  "๋„ค, ์ด ๊ณต๊ณ ์— ๋งž์ถ˜ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์จ์ค˜" โ‘ก "์•„๋‹ˆ์š”, ๋ถ„์„๋งŒ ์ €์žฅํ•ด์ค˜".
80
+ 8. **๋™์˜ ์‹œ ์ž์†Œ์„œ ์ €์žฅ** โ€” ์‚ฌ์šฉ์ž๊ฐ€ โ‘ ์„ ์„ ํƒํ•˜๋ฉด ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์ง์ „ `get_writing_style_guide`๋กœ "AI ํ‹ฐ ์•ˆ ๋‚˜๋Š” ๊ธ€์“ฐ๊ธฐ ๊ทœ์น™"์„ ๊ฐ€์ ธ์™€, ์ ํ•ฉ๋„ ๋ถ„์„ยท๊ธ€์“ฐ๊ธฐ ์„ ํ˜ธ์™€ ํ•จ๊ป˜ ๋ฐ˜์˜ํ•ด ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  `save_cover_letter_version`์œผ๋กœ ์ €์žฅํ•œ๋‹ค(`job_id` ์—ฐ๊ฒฐ, `note`์— ์ž‘์„ฑ ์˜๋„ ์š”์•ฝ). โ‘ก๋ฅผ ์„ ํƒํ•˜๋ฉด ์ž์†Œ์„œ ์ž‘์„ฑ ์—†์ด ๋ฉˆ์ถ”๊ณ  ์ €์žฅ ๊ฒฐ๊ณผ์™€ ๋Œ€์‹œ๋ณด๋“œ ํ™•์ธ๋งŒ ์•ˆ๋‚ดํ•œ๋‹ค.
79
81
  9. **์ง€์› ๊ฑด ์—ด๊ธฐ** โ€” `open_application`์œผ๋กœ ํ•ด๋‹น ์ง€์› ๊ฑด์„ ์—ด์–ด ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๊ฒŒ ํ•˜๊ณ , ์ง€์› ์ƒํƒœ ๋ณ€๊ฒฝ(์˜ˆ: ์ง€์› ์˜ˆ์ •/์ง€์› ์™„๋ฃŒ)์„ ์ œ์•ˆํ•œ๋‹ค.
80
82
 
81
83
  **๋„๊ตฌ ํ˜ธ์ถœ ์ˆœ์„œ ์š”์•ฝ(์ •์‹ ํ๋ฆ„):**
@@ -86,9 +88,9 @@ get_onboarding_status
86
88
  โ†’ (๋น„๊ต/๋ถ„์„: strengthsยทgapsยทํ‚ค์›Œ๋“œยทscoreยทsummaryยทrecommendations)
87
89
  โ†’ save_job_posting # ๋ฏธ์ €์žฅ ๊ณต๊ณ ์ผ ๋•Œ๋งŒ, job_id ํ™•๋ณด
88
90
  โ†’ save_fit_analysis # job_id ์—ฐ๊ฒฐ
89
- โ†’ (์‚ฌ์šฉ์ž์—๊ฒŒ ์‰ฌ์šด ํ•œ๊ตญ์–ด๋กœ ์„ค๋ช…)
90
- โ†’ (์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ ์ œ์•ˆ)
91
- โ†’ save_cover_letter_version # ์‚ฌ์šฉ์ž ๋™์˜ ์‹œ์—๋งŒ, job_idยทnote
91
+ โ†’ (์‚ฌ์šฉ์ž์˜ ์–ธ์–ด๋กœ ์‰ฝ๊ฒŒ ์„ค๋ช…)
92
+ โ†’ (์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ ์—ฌ๋ถ€ ์„ ํƒ์ง€ ์ œ์•ˆ)
93
+ โ†’ save_cover_letter_version # ์‚ฌ์šฉ์ž๊ฐ€ "๋„ค"๋ฅผ ์„ ํƒํ•œ ๊ฒฝ์šฐ์—๋งŒ, job_idยทnote
92
94
  โ†’ open_application # ๊ฒฐ๊ณผ ํ™•์ธ + ์ƒํƒœ ๋ณ€๊ฒฝ ์ œ์•ˆ
93
95
  ```
94
96
 
@@ -106,16 +108,18 @@ get_onboarding_status
106
108
 
107
109
  1. `get_application_context`(๊ฐ€๋Šฅํ•˜๋ฉด `job_id` ํฌํ•จ)๋ฅผ ํ˜ธ์ถœํ•ด ํ”„๋กœํ•„ยท๊ฒฝ๋ ฅยทํ”„๋กœ์ ํŠธยท์Šคํ‚ฌยท๊ธฐ์กด ์ž๊ธฐ์†Œ๊ฐœ์„œยท์ด์ „ ์ ํ•ฉ๋„ ๋ถ„์„ยท๊ธ€์“ฐ๊ธฐ ์„ ํ˜ธ(`preferred_tone`, `emphasis_points`)๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
108
110
  2. ์ž‘์„ฑ ์ „์— ๋Œ€์ƒ ๊ณต๊ณ , ๊ฐ•์กฐํ•  ํฌ์ธํŠธ, ํ†ค, ๋ถ„๋Ÿ‰์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ™•์ธํ•œ๋‹ค(ํ™•์ธ ์—†์ด ํฐ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค).
109
- 3. ์ €์žฅ๋œ ์‹ค์ œ ๊ฒฝํ—˜ยท์„ฑ๊ณผ๋งŒ์œผ๋กœ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ๋นˆ์นธ์ด๋‚˜ ํ™•์ธ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์€ ์ถ”์ธกํ•˜์ง€ ๋ง๊ณ  ํ‘œ์‹œํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌป๋Š”๋‹ค.
110
- 4. ์™„์„ฑ๋ณธ์„ `save_cover_letter_version`์œผ๋กœ ์ €์žฅํ•œ๋‹ค(๊ธฐ์กด ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฉด `cover_letter_id`, ์ƒˆ๋กœ ๋งŒ๋“ค๋ฉด `title`, ๊ณต๊ณ ์šฉ์ด๋ฉด `job_id`, ๋ณ€๊ฒฝ ์š”์•ฝ์€ `note`, `source=ai`).
111
- 5. ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋ฉด `export_cover_letter`๋กœ ํŒŒ์ผ๋กœ ๋‚ด๋ณด๋‚ด๊ณ , ์ถ”๊ฐ€ ์ˆ˜์ • ์š”์ฒญ์ด ์žˆ์œผ๋ฉด ์ƒˆ ๋ฒ„์ „์œผ๋กœ ๋‹ค์‹œ ์ €์žฅํ•œ๋‹ค.
112
- 6. ์ €์žฅ ๊ฒฐ๊ณผ๋ฅผ ์‰ฌ์šด ํ•œ๊ตญ์–ด๋กœ ์•Œ๋ฆฌ๊ณ , ์ง€์› ์ƒํƒœ ์—…๋ฐ์ดํŠธ(`update_application_status`)๋‚˜ ๋ฉด์ ‘ ์ค€๋น„ ๋“ฑ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ œ์•ˆํ•œ๋‹ค.
111
+ 3. `get_writing_style_guide`๋ฅผ ํ˜ธ์ถœํ•ด "AI ํ‹ฐ ์•ˆ ๋‚˜๋Š” ๊ธ€์“ฐ๊ธฐ ๊ทœ์น™"(๋ฒˆ์—ญํˆฌยทํด๋ฆฌ์…ฐยท๊ธฐ๊ณ„์  ๋ณ‘๋ ฌยท์ƒํˆฌ์  ์—ฐ๊ฒฐ์–ดยท๊ท ์ผํ•œ ๋ฌธ์žฅ ๋ฆฌ๋“ฌ ์ œ๊ฑฐ)์„ ๊ฐ€์ ธ์˜จ๋‹ค.
112
+ 4. ์ €์žฅ๋œ ์‹ค์ œ ๊ฒฝํ—˜ยท์„ฑ๊ณผ๋งŒ์œผ๋กœ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋˜, ์œ„ ๊ธ€์“ฐ๊ธฐ ๊ทœ์น™์„ ์ ์šฉํ•ด ์‚ฌ๋žŒ์ด ์“ด ๋“ฏ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์“ด๋‹ค(์‚ฌ์‹คยท์ˆ˜์น˜ยท๊ณ ์œ ๋ช…์‚ฌ๋Š” ๊ทธ๋Œ€๋กœ). ๋นˆ์นธ์ด๋‚˜ ํ™•์ธ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์€ ์ถ”์ธกํ•˜์ง€ ๋ง๊ณ  ํ‘œ์‹œํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌป๋Š”๋‹ค.
113
+ 5. ์™„์„ฑ๋ณธ์„ `save_cover_letter_version`์œผ๋กœ ์ €์žฅํ•œ๋‹ค(๊ธฐ์กด ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฉด `cover_letter_id`, ์ƒˆ๋กœ ๋งŒ๋“ค๋ฉด `title`, ๊ณต๊ณ ์šฉ์ด๋ฉด `job_id`, ๋ณ€๊ฒฝ ์š”์•ฝ์€ `note`, `source=ai`).
114
+ 6. ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋ฉด `export_cover_letter`๋กœ ํŒŒ์ผ๋กœ ๋‚ด๋ณด๋‚ด๊ณ , ์ถ”๊ฐ€ ์ˆ˜์ • ์š”์ฒญ์ด ์žˆ์œผ๋ฉด ์ƒˆ ๋ฒ„์ „์œผ๋กœ ๋‹ค์‹œ ์ €์žฅํ•œ๋‹ค.
115
+ 7. ์ €์žฅ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์˜ ์–ธ์–ด๋กœ ์•Œ๋ฆฌ๊ณ , ์ง€์› ์ƒํƒœ ์—…๋ฐ์ดํŠธ(`update_application_status`)๋‚˜ ๋ฉด์ ‘ ์ค€๋น„ ๋“ฑ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ œ์•ˆํ•œ๋‹ค.
113
116
 
114
117
  **๋„๊ตฌ ํ˜ธ์ถœ ์ˆœ์„œ ์š”์•ฝ:**
115
118
 
116
119
  ```
117
120
  get_application_context # job_id ์žˆ์œผ๋ฉด ํ•จ๊ป˜ ์ „๋‹ฌ
118
121
  โ†’ (๋Œ€์ƒยท๊ฐ•์กฐ์ ยทํ†คยท๋ถ„๋Ÿ‰ ํ™•์ธ)
122
+ โ†’ get_writing_style_guide # ์ž‘์„ฑ ์ง์ „, AI ํ‹ฐ ์•ˆ ๋‚˜๋Š” ๊ธ€์“ฐ๊ธฐ ๊ทœ์น™
119
123
  โ†’ save_cover_letter_version # cover_letter_id ๋˜๋Š” title, job_id, note, source=ai
120
124
  โ†’ export_cover_letter (์„ ํƒ)
121
125
  โ†’ (๋‹ค์Œ ๋‹จ๊ณ„ ์ œ์•ˆ: update_application_status ๋“ฑ)
@@ -123,7 +127,41 @@ get_application_context # job_id ์žˆ์œผ๋ฉด ํ•จ๊ป˜ ์ „๋‹ฌ
123
127
 
124
128
  ---
125
129
 
126
- ## 4. manage_application_status โ€” ์ง€์› ์ƒํƒœ ๊ด€๋ฆฌ
130
+ ## 4. write_career_description โ€” ๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ ์ž‘์„ฑ
131
+
132
+ ํ”„๋กœํ•„ยท์ด๋ ฅ์„œยท๊ฒฝ๋ ฅยทํ”„๋กœ์ ํŠธยท์Šคํ‚ฌ์„ ๊ทผ๊ฑฐ๋กœ ์‹ค์ œ ์ œ์ถœ ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋ฌธ์„œํ•จ์— ์ €์žฅํ•˜๋Š” ํ๋ฆ„.
133
+
134
+ **ํŠธ๋ฆฌ๊ฑฐ:** ์‚ฌ์šฉ์ž๊ฐ€ "๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ ์จ์ค˜ / ๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ ๋งŒ๋“ค์–ด์ค˜ / ๋‚ด ๊ฒฝ๋ ฅ ์ •๋ฆฌํ•ด์ค˜"๋ผ๊ณ  ์š”์ฒญํ•  ๋•Œ.
135
+
136
+ **๋‹จ๊ณ„:**
137
+
138
+ 1. `get_onboarding_status`๋กœ ์ค€๋น„ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ณ , `get_profile`ยท`get_resumes`ยท`get_experiences`ยท`get_projects`ยท`get_skills`๋ฅผ ํ˜ธ์ถœํ•ด ๊ธฐ์กด ํ”„๋กœํ•„, ์ด๋ ฅ์„œ, ๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ(`kind=career_description`), ๊ฒฝ๋ ฅ, ํ”„๋กœ์ ํŠธ, ๊ธฐ์ˆ ์Šคํƒ์„ ๋ชจ๋‘ ํ™•์ธํ•œ๋‹ค.
139
+ 2. ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ฃผ๋ฉด `read_document`๋กœ ์ฝ๊ณ , ์ธ์ž… ํด๋”๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด `read_inbox`๋กœ ๋ณธ๋ฌธ์„ ์ฝ๋Š”๋‹ค. ์ด๋ฏธ ์ €์žฅ๋œ ์ž๋ฃŒ์™€ ์ƒˆ ํŒŒ์ผ์„ ๋น„๊ตํ•ด ์ค‘๋ณตยท์ƒ์ถฉ๋˜๋Š” ์‚ฌ์‹ค์€ ํ‘œ์‹œํ•˜๊ณ  ์ถ”์ธกํ•˜์ง€ ์•Š๋Š”๋‹ค.
140
+ 3. `get_workflow_guide({ workflow_id: "write_career_description" })`๊ฐ€ ์•ˆ๋‚ดํ•˜๋Š” ์ „๋ฌธ๊ฐ€ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฅธ๋‹ค. ์ž‘์„ฑ ์ง์ „ `get_playbook({ domain: "resume" })`์™€ `get_playbook({ domain: "ats" })`๋ฅผ ๋ฐ›์•„ ์‹ค์ œ ๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ ํ˜•์‹๊ณผ ATS ์นœํ™”์„ฑ์„ ์ ์šฉํ•œ๋‹ค.
141
+ 4. ์ž‘์„ฑ ์ „์— ๋ชฉ์ ์„ ํ™•์ธํ•œ๋‹ค: ๋ฒ”์šฉ ๋งˆ์Šคํ„ฐ๋ณธ์ธ์ง€, ํŠน์ • ์ง๋ฌด/๊ณต๊ณ ์šฉ์ธ์ง€, ์‹ ์ž…/๋ฌด๊ฒฝ๋ ฅ์ด๋ผ ํ”„๋กœ์ ํŠธยท๊ต์œกยทํ™œ๋™ ์ค‘์‹ฌ ์—ญ๋Ÿ‰๊ธฐ์ˆ ์„œ๋กœ ์“ธ์ง€, ๋ถ„๋Ÿ‰๊ณผ ํ†ค์€ ์–ด๋–ป๊ฒŒ ํ• ์ง€ ๋ฌป๋Š”๋‹ค.
142
+ 5. ๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ๋Š” ์ž๊ธฐ์†Œ๊ฐœ์„œ์ฒ˜๋Ÿผ ์„œ์‚ฌ๋กœ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ์ œ๋ชฉ, ํ•ต์‹ฌ ์š”์•ฝ, ํ•ต์‹ฌ ์—ญ๋Ÿ‰, ๊ฒฝ๋ ฅ/ํ”„๋กœ์ ํŠธ๋ณ„ ์—ญํ• ยท๊ธฐ๊ฐ„ยท๋„๊ตฌยท๋ฌธ์ œยทํ–‰๋™ยท์„ฑ๊ณผ๋ฅผ ํ‘œ๋‚˜ ๋ถˆ๋ฆฟ ์ค‘์‹ฌ์œผ๋กœ ์ •๋ฆฌํ•œ๋‹ค. ์ˆ˜์น˜ยทํšŒ์‚ฌ๋ช…ยท๊ธฐ๊ฐ„ยท์ง์ฑ…์€ ์ €์žฅ๋œ ์‚ฌ์‹ค๋งŒ ์“ฐ๊ณ , ์—†๋Š” ์„ฑ๊ณผ ์ˆ˜์น˜๋Š” ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค.
143
+ 6. ๋ฌด๊ฒฝ๋ ฅ/๋น„๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๊ฒฝ๋ ฅ์„ ๋‚ ์กฐํ•˜์ง€ ๋ง๊ณ  ๊ต์œกยทํ”„๋กœ์ ํŠธยท์šด์˜ ๊ฒฝํ—˜ยท์—…๋ฌด ๋„๊ตฌยทํ˜‘์—… ๊ฒฝํ—˜ยท์„ฑ๊ณผ ์ฆ๊ฑฐ ์ค‘์‹ฌ์˜ "์—ญ๋Ÿ‰๊ธฐ์ˆ ์„œ"๋กœ ๊ตฌ์„ฑํ•œ๋‹ค.
144
+ 7. ์ €์žฅ ์ง์ „ `get_verifier({ id: "truthfulness" })`, `get_verifier({ id: "consistency" })`, `get_verifier({ id: "ats-compat" })`๋ฅผ ๋ฐ›์•„ AI๊ฐ€ ์ง์ ‘ ์ ๊ฒ€ํ•˜๊ณ , ํ—ˆ์œ„ยท์ƒ์ถฉยทํ‚ค์›Œ๋“œ ๋ˆ„๋ฝ์„ ๊ณ ์นœ๋‹ค.
145
+ 8. ์™„์„ฑ๋ณธ์„ `add_resume`์œผ๋กœ ์ €์žฅํ•œ๋‹ค(`kind=career_description`, `source=ai`, title์€ ์‚ฌ์šฉ ๋ชฉ์ ์ด ๋“œ๋Ÿฌ๋‚˜๊ฒŒ ์ž‘์„ฑ, tags์— ์ง๋ฌด/์šฉ๋„ ํ‚ค์›Œ๋“œ ํฌํ•จ). ๋Œ€ํ‘œ ๋ฌธ์„œ๋กœ ์‚ผ์•„๋„ ๋˜๋Š”์ง€ ํ™•์ธ๋œ ๊ฒฝ์šฐ์—๋งŒ `is_primary=true`๋ฅผ ์“ด๋‹ค.
146
+ 9. ์ €์žฅ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์˜ ์–ธ์–ด๋กœ ์•Œ๋ฆฌ๊ณ , ๋ฌธ์„œ ํƒญ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ์„ ์•ˆ๋‚ดํ•œ๋‹ค. ํŠน์ • ๊ณต๊ณ ์šฉ์œผ๋กœ ์ž‘์„ฑํ–ˆ๋‹ค๋ฉด ์ด์–ด์„œ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋‚˜ ๋ฉด์ ‘ ์ค€๋น„๋ฅผ ์ œ์•ˆํ•œ๋‹ค.
147
+
148
+ **๋„๊ตฌ ํ˜ธ์ถœ ์ˆœ์„œ ์š”์•ฝ:**
149
+
150
+ ```
151
+ get_onboarding_status
152
+ โ†’ get_profile / get_resumes / get_experiences / get_projects / get_skills
153
+ โ†’ read_document | read_inbox (์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ์„ ์ค€ ๊ฒฝ์šฐ)
154
+ โ†’ get_workflow_guide({ workflow_id: "write_career_description" })
155
+ โ†’ get_playbook({ domain: "resume" }) / get_playbook({ domain: "ats" })
156
+ โ†’ (๋ชฉ์ ยท๋Œ€์ƒ ์ง๋ฌดยท๋ถ„๋Ÿ‰ ํ™•์ธ)
157
+ โ†’ (๊ฒฝ๋ ฅ๊ธฐ์ˆ ์„œ ์ž‘์„ฑ: ์š”์•ฝยท์—ญ๋Ÿ‰ยท๊ฒฝ๋ ฅ/ํ”„๋กœ์ ํŠธยท์„ฑ๊ณผ)
158
+ โ†’ get_verifier({ id: "truthfulness" }) / get_verifier({ id: "consistency" }) / get_verifier({ id: "ats-compat" })
159
+ โ†’ add_resume(kind=career_description, source=ai)
160
+ ```
161
+
162
+ ---
163
+
164
+ ## 5. manage_application_status โ€” ์ง€์› ์ƒํƒœ ๊ด€๋ฆฌ
127
165
 
128
166
  ์ง€์› ์ง„ํ–‰ ์ƒํ™ฉ(8๋‹จ๊ณ„)์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์ƒํƒœ์— ๋งž๋Š” ๋‹ค์Œ ํ–‰๋™์„ ์ œ์•ˆํ•˜๋Š” ํ๋ฆ„.
129
167
 
@@ -133,7 +171,7 @@ get_application_context # job_id ์žˆ์œผ๋ฉด ํ•จ๊ป˜ ์ „๋‹ฌ
133
171
 
134
172
  1. ํ•„์š”ํ•˜๋ฉด `get_application_context` ๋˜๋Š” `get_job_posting`์œผ๋กœ ๋Œ€์ƒ ์ง€์› ๊ฑด๊ณผ ๊ณต๊ณ ๋ฅผ ํ™•์ธํ•œ๋‹ค.
135
173
  2. ์ ์ ˆํ•œ ์ƒํƒœ๋กœ `update_application_status`๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. 8๋‹จ๊ณ„: `draft`(์ž‘์„ฑ ์ค‘), `planned`(์ง€์› ์˜ˆ์ •), `applied`(์ง€์› ์™„๋ฃŒ), `document_passed`(์„œ๋ฅ˜ ํ•ฉ๊ฒฉ), `interview`(๋ฉด์ ‘ ์ง„ํ–‰), `final_passed`(์ตœ์ข… ํ•ฉ๊ฒฉ), `rejected`(๋ถˆํ•ฉ๊ฒฉ), `on_hold`(๋ณด๋ฅ˜). ๋ณ€๊ฒฝ ์‚ฌ์œ ๋Š” `note`์— ๋‚จ๊ธด๋‹ค.
136
- 3. ๋ณ€๊ฒฝ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‰ฌ์šด ํ•œ๊ตญ์–ด๋กœ ์•Œ๋ฆฐ๋‹ค.
174
+ 3. ๋ณ€๊ฒฝ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์˜ ์–ธ์–ด๋กœ ์‰ฝ๊ฒŒ ์•Œ๋ฆฐ๋‹ค.
137
175
  4. ์ƒํƒœ์— ๋งž๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ œ์•ˆํ•œ๋‹ค:
138
176
  - `applied` โ†’ ๊ฒฐ๊ณผ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ ์•ˆ๋‚ด
139
177
  - `document_passed` / `interview` โ†’ ๋ฉด์ ‘ ์ค€๋น„(`prepare_interview`) ์ œ์•ˆ
@@ -141,7 +179,7 @@ get_application_context # job_id ์žˆ์œผ๋ฉด ํ•จ๊ป˜ ์ „๋‹ฌ
141
179
  - `rejected` / `on_hold` โ†’ ํšŒ๊ณ  ๋˜๋Š” ๋‹ค๋ฅธ ๊ณต๊ณ  ํƒ์ƒ‰ ์ œ์•ˆ
142
180
  5. ํ•„์š”ํ•˜๋ฉด `open_application`์œผ๋กœ ํ•ด๋‹น ์ง€์› ๊ฑด์„ ์—ด์–ด ๋ณด์—ฌ์ค€๋‹ค.
143
181
 
144
- **์ƒํƒœ ์ „์ด ์ฐธ๊ณ :** `document_passed` ์ด์ƒ์—์„œ ๋ฉด์ ‘ ์ค€๋น„๊ฐ€ ํ•ด๊ธˆ๋œ๋‹ค. 8๋‹จ๊ณ„ ์ƒํƒœ๊ฐ’์€ ์ฝ”๋“œ(`update_application_status`์˜ `inputSchema`)์— ์ •์˜๋˜์–ด ์žˆ๋‹ค.
182
+ **์ƒํƒœ ์ „์ด ์ฐธ๊ณ :** `document_passed` ์ด์ƒ์—์„œ๋Š” ๋ฉด์ ‘ ์ค€๋น„๋ฅผ ๋‹ค์Œ ํ–‰๋™์œผ๋กœ ์šฐ์„  ์ œ์•ˆํ•œ๋‹ค. 8๋‹จ๊ณ„ ์ƒํƒœ๊ฐ’์€ ์ฝ”๋“œ(`update_application_status`์˜ `inputSchema`)์— ์ •์˜๋˜์–ด ์žˆ๋‹ค.
145
183
 
146
184
  **๋„๊ตฌ ํ˜ธ์ถœ ์ˆœ์„œ ์š”์•ฝ:**
147
185
 
@@ -154,11 +192,11 @@ get_application_context | get_job_posting (ํ•„์š” ์‹œ)
154
192
 
155
193
  ---
156
194
 
157
- ## 5. prepare_interview โ€” ๋ฉด์ ‘ ์ค€๋น„
195
+ ## 6. prepare_interview โ€” ๋ฉด์ ‘ ์ค€๋น„
158
196
 
159
- ์„œ๋ฅ˜ ํ•ฉ๊ฒฉ ์ดํ›„ ์˜ˆ์ƒ ์งˆ๋ฌธยทSTAR ๋‹ต๋ณ€ยท1๋ถ„ ์ž๊ธฐ์†Œ๊ฐœ๋ฅผ ์ค€๋น„ํ•ด ์ €์žฅํ•˜๋Š” ํ๋ฆ„.
197
+ ๊ณต๊ณ  ๊ธฐ์ค€ ์˜ˆ์ƒ ์งˆ๋ฌธยทSTAR ๋‹ต๋ณ€ยท1๋ถ„ ์ž๊ธฐ์†Œ๊ฐœ๋ฅผ ์ค€๋น„ํ•ด ์ €์žฅํ•˜๋Š” ํ๋ฆ„.
160
198
 
161
- **ํŠธ๋ฆฌ๊ฑฐ:** ์ง€์› ์ƒํƒœ๊ฐ€ ์„œ๋ฅ˜ ํ•ฉ๊ฒฉ(`document_passed`) ๋˜๋Š” ๋ฉด์ ‘ ์ง„ํ–‰(`interview`)์œผ๋กœ ๋ฐ”๋€Œ์—ˆ์„ ๋•Œ, ๋˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ "๋ฉด์ ‘ ์ค€๋น„ ๋„์™€์ค˜"๋ผ๊ณ  ์š”์ฒญํ•  ๋•Œ.
199
+ **ํŠธ๋ฆฌ๊ฑฐ:** ์‚ฌ์šฉ์ž๊ฐ€ "๋ฉด์ ‘ ์ค€๋น„ ๋„์™€์ค˜"๋ผ๊ณ  ์š”์ฒญํ•˜๊ฑฐ๋‚˜, ์ง€์› ์ƒํƒœ๊ฐ€ ์„œ๋ฅ˜ ํ•ฉ๊ฒฉ(`document_passed`) ๋˜๋Š” ๋ฉด์ ‘ ์ง„ํ–‰(`interview`)์œผ๋กœ ๋ฐ”๋€Œ์—ˆ์„ ๋•Œ.
162
200
 
163
201
  **๋‹จ๊ณ„:**
164
202
 
@@ -166,7 +204,7 @@ get_application_context | get_job_posting (ํ•„์š” ์‹œ)
166
204
  2. ๊ณต๊ณ ์™€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ์˜ˆ์ƒ ๋ฉด์ ‘ ์งˆ๋ฌธ(`question`, `intent`, `followups`, `answer_outline`)์„ ๋„์ถœํ•œ๋‹ค.
167
205
  3. ํ•ต์‹ฌ ๊ฒฝํ—˜์— ๋Œ€ํ•œ STAR ๊ฐ€์ด๋“œ(`question`, `situation`, `task`, `action`, `result`)์™€ 1๋ถ„ ์ž๊ธฐ์†Œ๊ฐœ(`self_introduction`) ์ดˆ์•ˆ์„ ์ž‘์„ฑํ•œ๋‹ค. **์‹ค์ œ ๊ฒฝํ—˜๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.**
168
206
  4. ์ค€๋น„ ๋‚ด์šฉ์„ `save_interview_prep`๋กœ ์ €์žฅํ•œ๋‹ค(`job_id`, `questions`, `star_guides`, `self_introduction`, `notes`).
169
- 5. ์ค€๋น„ ๋‚ด์šฉ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‰ฌ์šด ํ•œ๊ตญ์–ด๋กœ ์š”์•ฝํ•ด ์ „๋‹ฌํ•˜๊ณ , ๋ชจ์˜ ๋ฉด์ ‘/์ถ”๊ฐ€ ์งˆ๋ฌธ ์—ฐ์Šต์ด๋‚˜ ์ƒํƒœ ์—…๋ฐ์ดํŠธ(`update_application_status`๋กœ `interview`/`final_passed`)๋ฅผ ์ œ์•ˆํ•œ๋‹ค.
207
+ 5. ์ค€๋น„ ๋‚ด์šฉ์„ ์‚ฌ์šฉ์ž์˜ ์–ธ์–ด๋กœ ์‰ฝ๊ฒŒ ์š”์•ฝํ•ด ์ „๋‹ฌํ•˜๊ณ , ๋ชจ์˜ ๋ฉด์ ‘/์ถ”๊ฐ€ ์งˆ๋ฌธ ์—ฐ์Šต์ด๋‚˜ ์ƒํƒœ ์—…๋ฐ์ดํŠธ(`update_application_status`๋กœ `interview`/`final_passed`)๋ฅผ ์ œ์•ˆํ•œ๋‹ค.
170
208
 
171
209
  **๋„๊ตฌ ํ˜ธ์ถœ ์ˆœ์„œ ์š”์•ฝ:**
172
210
 
@@ -180,20 +218,39 @@ get_application_context # job_id ํฌํ•จ
180
218
 
181
219
  ---
182
220
 
221
+ ## 7. build_personal_brand โ€” ํผ์Šค๋„ ๋ธŒ๋žœ๋“œ (LinkedInยทํฌํŠธํด๋ฆฌ์˜ค)
222
+
223
+ LinkedIn ํ”„๋กœํ•„๊ณผ ํฌํŠธํด๋ฆฌ์˜ค ๊ฐ™์€ ์ž๊ธฐํ‘œํ˜„ ์ž์‚ฐ์„ ์ง๋ฌด์— ๋งž์ถฐ ์ž‘์„ฑยท์ตœ์ ํ™”ํ•˜๋Š” ํ๋ฆ„. ์ด๋ ฅ์„œ ์ž„ํฌํŠธ(`onboarding`)์™€ ๋‹จ๊ณ„ ์˜๋ฏธ๊ฐ€ ๋‹ฌ๋ผ(๊ฐœ์ธ ๋ธŒ๋žœ๋“œ ์ž์‚ฐ *์ƒ์„ฑ*) ๋ณ„๋„ ์›Œํฌํ”Œ๋กœ์šฐ๋กœ ๋‘”๋‹ค.
224
+
225
+ **ํŠธ๋ฆฌ๊ฑฐ:** ์‚ฌ์šฉ์ž๊ฐ€ "๋งํฌ๋“œ์ธ ํ”„๋กœํ•„ ๋ด์ค˜ / ํฌํŠธํด๋ฆฌ์˜ค ์ •๋ฆฌํ•ด์ค˜ / ํผ์Šค๋„ ๋ธŒ๋žœ๋”ฉ ๋„์™€์ค˜"๋ผ๊ณ  ์š”์ฒญํ•  ๋•Œ.
226
+
227
+ **๋‹จ๊ณ„:**
228
+
229
+ 1. `get_application_context`(๊ฐ€๋Šฅํ•˜๋ฉด ๋Œ€์ƒ `job_id` ํฌํ•จ)๋กœ ํ”„๋กœํ•„ยท๊ฒฝ๋ ฅยทํ”„๋กœ์ ํŠธยท์Šคํ‚ฌยท๋Œ€ํ‘œ ์ด๋ ฅ์„œยท๊ธ€์“ฐ๊ธฐ ์„ ํ˜ธ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ํƒ€๊นƒ ๊ณต๊ณ ๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์ „ ์ž…๋ ฅ์œผ๋กœ ์“ด๋‹ค.
230
+ 2. `get_workflow_guide({ workflow_id: "build_personal_brand" })`๋กœ ์ „๋ฌธ๊ฐ€ ์ ˆ์ฐจ๋ฅผ ๋ฐ›๊ณ , ์ž‘์„ฑ ์ง์ „ `get_playbook({ domain: "linkedin-profile" })`ยท`get_playbook({ domain: "portfolio" })`๋กœ ํ—ค๋“œ๋ผ์ธยทAboutยท3๋ง‰(problemโ†’approachโ†’impact) ๊ทœ๋ฒ”์„ ์ ์šฉํ•œ๋‹ค.
231
+ 3. ๋ฌด์—‡์„ ๋งŒ๋“ค์ง€ ํ™•์ธํ•œ๋‹ค(LinkedIn/ํฌํŠธํด๋ฆฌ์˜ค/๋‘˜ ๋‹ค, ํƒ€๊นƒ ์ง๋ฌด, ๊ฐ•์กฐ ํฌ์ธํŠธ). ์ €์žฅ๋œ ์‹ค์ œ ๊ฒฝํ—˜ยท์„ฑ๊ณผ๋งŒ ์“ฐ๊ณ  ์—†๋Š” ์ˆ˜์น˜ยท๊ณ ์œ ๋ช…์‚ฌ๋Š” `[ํ™•์ธ ํ•„์š”]`๋กœ ํ‘œ์‹œํ•ด ๋ฌป๋Š”๋‹ค.
232
+ 4. ์ €์žฅ ์ง์ „ `get_verifier({ id: "human-voice" })`ยท`truthfulness`ยท`consistency`๋กœ ์ง์ ‘ ์ ๊ฒ€ํ•œ๋‹ค(AI ํ‹ฐยทํ™˜๊ฐยท์‚ฌ์‹ค ๋ณด์กด).
233
+ 5. ํฌํŠธํด๋ฆฌ์˜ค ๋ณธ๋ฌธ์€ `add_resume`(`kind=portfolio`)๋กœ ์ €์žฅํ•œ๋‹ค. LinkedIn ์ดˆ์•ˆ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณต์‚ฌํ•ด ์“ฐ๋„๋ก ์ œ์‹œํ•œ๋‹ค(์ „์šฉ ์ €์žฅยท๊ฒ€์ฆ ๋„๊ตฌ๋Š” Phase B).
234
+
235
+ ---
236
+
183
237
  ## ์›Œํฌํ”Œ๋กœ์šฐ ๊ฐ„ ์—ฐ๊ฒฐ
184
238
 
185
239
  ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ๋…๋ฆฝ์ ์ด์ง€ ์•Š๊ณ  ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ด์–ด์ง„๋‹ค.
186
240
 
187
241
  ```
188
242
  onboarding
243
+ โ†’ write_career_description
189
244
  โ†’ analyze_job โ”€โ”€(์ž์†Œ์„œ ์ œ์•ˆ ๋™์˜)โ”€โ”€โ†’ write_cover_letter
190
245
  โ”‚
191
- โ””โ”€โ†’ manage_application_status โ”€โ”€(document_passed ์ด์ƒ)โ”€โ”€โ†’ prepare_interview
246
+ โ””โ”€โ†’ manage_application_status โ”€โ”€(document_passed ์ด์ƒ์ด๋ฉด ์šฐ์„  ์ œ์•ˆ)โ”€โ”€โ†’ prepare_interview
192
247
  ```
193
248
 
249
+ - `write_career_description`์€ ๊ณต๊ณ ์™€ ๋ฌด๊ด€ํ•œ ๋งˆ์Šคํ„ฐ๋ณธ์œผ๋กœ๋„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ณ , ํŠน์ • ๊ณต๊ณ ์šฉ์œผ๋กœ ์ž‘์„ฑํ•œ ๋’ค `write_cover_letter`๋กœ ์ด์–ด์งˆ ์ˆ˜๋„ ์žˆ๋‹ค.
194
250
  - `analyze_job`์˜ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„๋Š” ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ ์ œ์•ˆ์œผ๋กœ ์ด์–ด์ง€๋ฉฐ, ๋™์˜ ์‹œ `write_cover_letter`์˜ ์ž‘์—…(=`save_cover_letter_version`)์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
195
251
  - `manage_application_status`์—์„œ ์ƒํƒœ๊ฐ€ `document_passed`/`interview`๊ฐ€ ๋˜๋ฉด `prepare_interview`๋ฅผ ์ œ์•ˆํ•œ๋‹ค.
196
252
  - ๋ชจ๋“  ํ๋ฆ„์—์„œ ๋ฐ์ดํ„ฐ ์กฐํšŒ์˜ ์ค‘์‹ฌ์€ `get_application_context`์ด๋ฉฐ, ์ž‘์„ฑ/๋ถ„์„์— ํ•„์š”ํ•œ ์ปจํ…์ŠคํŠธ๋ฅผ ํ•œ ๋ฒˆ์— ์ œ๊ณตํ•œ๋‹ค.
253
+ - `build_personal_brand`(LinkedInยทํฌํŠธํด๋ฆฌ์˜ค)๋Š” ํ•ต์‹ฌ 6 ํ๋ฆ„๊ณผ ๋…๋ฆฝ์ ์ธ ์„ ํƒ ์ž‘์—…์œผ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ์ž๊ธฐํ‘œํ˜„ ์ž์‚ฐ์„ ์š”์ฒญํ•  ๋•Œ ์ง„์ž…ํ•œ๋‹ค.
197
254
 
198
255
  ## ์ฝ”๋“œ์™€์˜ ๋Œ€์‘
199
256
 
@@ -46,9 +46,14 @@ EOPยท์ด ๋ฌธ์„œ๋ฅผ ๋งน์‹ ํ•˜์ง€ ๋ง ๊ฒƒ. **์ €์žฅ๋œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋‚˜ ๊ณต
46
46
  โ†’ EOP ์ž๊ฐ€๊ฒ€์ฆ ๋ฃจ๋ธŒ๋ฆญ ์ ์šฉ โ†’ ์ˆ˜์ • โ†’ ์ถœ๋ ฅ ๊ณ„์•ฝ๋Œ€๋กœ ์ตœ์ข… ์ œ๊ณต
47
47
  ```
48
48
  ์ปจํ…์ŠคํŠธ๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ๋‹ค์‹œ ๋ฌป์ง€ ์•Š๋Š”๋‹ค(AGENTS.md "๊ธฐ์กด ๋ฐ์ดํ„ฐ ๋จผ์ €"). ๊ฒฐ๊ณผ๋Š” ๋‹ค์‹œ CareerMate์— ์ €์žฅ(`save_*`).
49
- **๋ฃจํ”„ ์ข…๋ฃŒ ๊ทœ์œจ:** ์ž๊ฐ€๊ฒ€์ฆโ†’์ˆ˜์ •์„ ๋ฐ˜๋ณตํ•˜๋˜, ๊ฐ™์€ ํ•ต์‹ฌ ๊ฒฐํ•จ(ํ—ˆ์œ„ ์ˆ˜์น˜ยท๋ฏธ์•ต์ปค ์‚ฌ์‹ค ๋“ฑ)์ด 2๋ฒˆ ๊ณ ์ณ๋„ ๋‚จ์œผ๋ฉด ๋” ์ƒ์„ฑํ•˜์ง€ ๋ง๊ณ  ๊ทธ ๋ถ€๋ถ„์„ ๋ณด๋ฅ˜ํ•œ ์ฑ„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‰ฌ์šด ํ•œ๊ตญ์–ด๋กœ ์ถœ์ฒ˜/์‚ฌ์‹ค์„ ํ™•์ธ ์š”์ฒญํ•œ๋‹ค. ์ €์žฅ ๋ฐ์ดํ„ฐ์— ์—†์–ด ํ•ด๊ฒฐ ๋ถˆ๊ฐ€ํ•œ ๊ฐญ์€ ์ฆ‰์‹œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌป๋Š”๋‹ค โ€” **๋ฌดํ•œ์ • ๊ณ ์ณ์“ฐ์ง€ ์•Š๋Š”๋‹ค.**
49
+ **๋ฃจํ”„ ์ข…๋ฃŒ ๊ทœ์œจ:** ์ž๊ฐ€๊ฒ€์ฆโ†’์ˆ˜์ •์„ ๋ฐ˜๋ณตํ•˜๋˜, ๊ฐ™์€ ํ•ต์‹ฌ ๊ฒฐํ•จ(ํ—ˆ์œ„ ์ˆ˜์น˜ยท๋ฏธ์•ต์ปค ์‚ฌ์‹ค ๋“ฑ)์ด 2๋ฒˆ ๊ณ ์ณ๋„ ๋‚จ์œผ๋ฉด ๋” ์ƒ์„ฑํ•˜์ง€ ๋ง๊ณ  ๊ทธ ๋ถ€๋ถ„์„ ๋ณด๋ฅ˜ํ•œ ์ฑ„ ์‚ฌ์šฉ์ž์˜ ์–ธ์–ด๋กœ ์ถœ์ฒ˜/์‚ฌ์‹ค์„ ํ™•์ธ ์š”์ฒญํ•œ๋‹ค. ์ €์žฅ ๋ฐ์ดํ„ฐ์— ์—†์–ด ํ•ด๊ฒฐ ๋ถˆ๊ฐ€ํ•œ ๊ฐญ์€ ์ฆ‰์‹œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌป๋Š”๋‹ค โ€” **๋ฌดํ•œ์ • ๊ณ ์ณ์“ฐ์ง€ ์•Š๋Š”๋‹ค.**
50
50
 
51
51
  ## 3. ๋ณดํŽธ ์ถœ๋ ฅ ๊ณ„์•ฝ (์‚ฌ์šฉ์ž ๋Œ€๋ฉด)
52
+
53
+ **์ถœ๋ ฅ ์–ธ์–ด = ์‚ฌ์šฉ์ž์˜ ๋Œ€ํ™” ์–ธ์–ด.** ์‚ฌ์šฉ์ž๊ฐ€ ํ•œ๊ตญ์–ด๋ฉด ํ•œ๊ตญ์–ด๋กœ, ๋‹ค๋ฅธ ์–ธ์–ด๋ฉด ๊ทธ ์–ธ์–ด๋กœ ๋‹ตํ•œ๋‹ค. ์ด ๋ฌธ์„œยทEOPยทํ”Œ๋ ˆ์ด๋ถยท๋„๊ตฌ ์‘๋‹ต์ด ํ•œ๊ตญ์–ด๋กœ ์“ฐ์—ฌ ์žˆ์–ด๋„ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•˜์ง€ ๋ง๊ณ  ์‚ฌ์šฉ์ž ์–ธ์–ด๋กœ ์˜ฎ๊ธด๋‹ค(์‚ฌ์‹คยท์ˆ˜์น˜ยท๊ณ ์œ ๋ช…์‚ฌยท์ธ์šฉ ์›๋ฌธ์€ ๋ณด์กด).
54
+
55
+ **๋กœ์ผ€์ผ(์‹œ์žฅ) ํŒ์ • โ€” ๋Œ€ํ™” ์–ธ์–ด์™€ ๋ถ„๋ฆฌํ•œ๋‹ค.** ์ œ์ถœ์šฉ ์‚ฐ์ถœ๋ฌผ(์ž์†Œ์„œยท์ด๋ ฅ์„œ ๋ณธ๋ฌธ ๋“ฑ)์˜ *์–ธ์–ด์™€ ์‹œ์žฅ ๊ด€ํ–‰*์€ **๋Œ€์ƒ ๊ณต๊ณ ยท์‹œ์žฅ**์„ ๋”ฐ๋ฅธ๋‹ค(๋Œ€ํ™” ์–ธ์–ด์™€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค โ€” ์˜ˆ: ํ•œ๊ตญ์ธ์ด ์˜๋ฌธ ๊ณต๊ณ ์— ์˜๋ฌธ ๋ ˆํ„ฐ). ๋กœ์ผ€์ผ์€ ์ €์žฅ ๊ฐ’์ด ์•„๋‹ˆ๋ผ ๋‹น์‹ ์ด ์ถ”๋ก ํ•œ๋‹ค: โ‘  ๋Œ€์ƒ ๊ณต๊ณ (job)์˜ ์–ธ์–ดยท์†Œ์žฌ์ง€, โ‘ก ์‚ฌ์šฉ์ž์˜ ๋ช…์‹œ ์š”์ฒญ, โ‘ข ๋ถˆ๋ช…ํ™•ํ•˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•œ ๋ฒˆ๋งŒ ํ™•์ธ(์ถ”์ธก ๊ธˆ์ง€). `ko`(ํ•œ๊ตญ ๊ณต๊ณ /์ง€์›) โ†’ ํ•œ๊ตญ ์ฑ„์šฉ ๊ด€ํ–‰(๋ฌธํ•ญํ˜• ์ž์†Œ์„œยทNCSยท๋ธ”๋ผ์ธ๋“œยท์ฑ„์šฉ์ ˆ์ฐจ๋ฒ•ยท๊ตญ๋‚ด AI ํ…์ŠคํŠธ ํƒ์ง€ ๋“ฑ), ๋น„ํ•œ๊ตญ ๋กœ์ผ€์ผ โ†’ ๊ทธ ์‹œ์žฅ ๊ด€ํ–‰(ATSยท๋‹จ์ผ ์ปค๋ฒ„๋ ˆํ„ฐ ๋“ฑ). **๊ฐ EOP์˜ 'ํ•œ๊ตญ ํŠน์ˆ˜/ํ•œ๊ตญ ์‹œ์žฅ' ์ ˆ์€ ๋กœ์ผ€์ผ์ด ํ•œ๊ตญ์ผ ๋•Œ๋งŒ ์ ์šฉ**ํ•˜๊ณ , ๋น„ํ•œ๊ตญ ๊ณต๊ณ ์—๋Š” ๊ทธ ์‹œ์žฅ ๊ธฐ์ค€์„ ์“ด๋‹ค.
56
+
52
57
  ๋ชจ๋“  ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•œ๋‹ค(๊ธฐ๋Šฅ๋ณ„ EOP๊ฐ€ ์ƒ์„ธํ™”):
53
58
  - **๊ฒฐ๋ก ** โ€” ํ•œ๋ˆˆ์— ๋‹ต
54
59
  - **๊ทผ๊ฑฐ** โ€” ์ €์žฅ ๋ฐ์ดํ„ฐยท๊ณต๊ณ  ์ธ์šฉ(์ˆ˜์น˜๋Š” ์ถœ์ฒ˜์™€ ํ•จ๊ป˜)
@@ -59,10 +64,10 @@ EOPยท์ด ๋ฌธ์„œ๋ฅผ ๋งน์‹ ํ•˜์ง€ ๋ง ๊ฒƒ. **์ €์žฅ๋œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋‚˜ ๊ณต
59
64
  - **์ตœ์ข… ์‚ฐ์ถœ๋ฌผ**(์žˆ์œผ๋ฉด: ์ž์†Œ์„œ ๋ณธ๋ฌธยท๋ฉด์ ‘ํ‚ทยท์ ํ•ฉ๋„ํ‘œ ๋“ฑ)
60
65
  - **์ƒ์„ฑํ˜• deliverable ๋ถ„๋ฆฌ:** ์ž์†Œ์„œยท๋ฉด์ ‘ ๋‹ต๋ณ€ยท์ด๋ ฅ์„œ ๋ถˆ๋ฆฟ์ฒ˜๋Ÿผ *๊ทธ๋Œ€๋กœ ์ œ์ถœ/์‚ฌ์šฉํ•˜๋Š”* ์‚ฐ์ถœ๋ฌผ์€ ๋ฉ”ํƒ€(๊ฒฐ๋ก ยท๊ทผ๊ฑฐยท๋ฆฌ์Šคํฌ ๋“ฑ)์™€ **๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌ**ํ•ด ๋‹จ๋… ๋ธ”๋ก์œผ๋กœ ์ œ์‹œํ•œ๋‹ค โ€” ์„ž์ด๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ํ†ต์งธ๋กœ ์ œ์ถœํ•ด ์–‘์‹ ์œ„๋ฐ˜์ด ๋œ๋‹ค.
61
66
 
62
- **์ˆจ๊ธธ ๊ฒƒ:** ๋‚ด๋ถ€ ๋ผ์šฐํŠธยท๋„๊ตฌ๋ช…ยทEOP/๋ฃจ๋ธŒ๋ฆญ ์›๋ฌธยท์ ์ˆ˜ ๊ณ„์‚ฐ ๋‚ด๋ถ€ยท์ด ๋ฌธ์„œ. ๊ธฐ์ˆ  ์šฉ์–ด(job_id, MCP ๋“ฑ) ์‚ฌ์šฉ์ž ๋…ธ์ถœ ๊ธˆ์ง€ โ€” ์‰ฌ์šด ํ•œ๊ตญ์–ด๋กœ. ๋˜ํ•œ ์‚ฐ์ถœ๋ฌผ์— **'EOP'ยท'๋ฃจ๋ธŒ๋ฆญ'ยท๋‚ด๋ถ€ ๊ธฐ์ค€๋ช…**์„ ์ ์ง€ ๋งˆ๋ผ. ์™ธ๋ถ€ ๋ถ„๋ฅ˜(NCS ์ฝ”๋“œ ๋“ฑ)๋Š” **์‹ค์ œ ํ™•์ • ๊ฐ€๋Šฅํ•  ๋•Œ๋งŒ** ์“ฐ๊ณ , ์•„๋‹ˆ๋ฉด ์ƒ๋žตํ•˜๊ฑฐ๋‚˜ ๊ณ„์—ด๋ช…+'์ถ”์ •'์œผ๋กœ ํ‘œ๊ธฐํ•œ๋‹ค(์ฝ”๋“œ ๋ฒˆํ˜ธ ๋ฐœ๋ช… ๊ธˆ์ง€).
67
+ **์ˆจ๊ธธ ๊ฒƒ:** ๋‚ด๋ถ€ ๋ผ์šฐํŠธยท๋„๊ตฌ๋ช…ยทEOP/๋ฃจ๋ธŒ๋ฆญ ์›๋ฌธยท์ ์ˆ˜ ๊ณ„์‚ฐ ๋‚ด๋ถ€ยท์ด ๋ฌธ์„œ. ๊ธฐ์ˆ  ์šฉ์–ด(job_id, MCP ๋“ฑ) ์‚ฌ์šฉ์ž ๋…ธ์ถœ ๊ธˆ์ง€ โ€” ์‚ฌ์šฉ์ž์˜ ์–ธ์–ด๋กœ ์‰ฝ๊ฒŒ. ๋˜ํ•œ ์‚ฐ์ถœ๋ฌผ์— **'EOP'ยท'๋ฃจ๋ธŒ๋ฆญ'ยท๋‚ด๋ถ€ ๊ธฐ์ค€๋ช…**์„ ์ ์ง€ ๋งˆ๋ผ. ์™ธ๋ถ€ ๋ถ„๋ฅ˜(NCS ์ฝ”๋“œ ๋“ฑ)๋Š” **์‹ค์ œ ํ™•์ • ๊ฐ€๋Šฅํ•  ๋•Œ๋งŒ** ์“ฐ๊ณ , ์•„๋‹ˆ๋ฉด ์ƒ๋žตํ•˜๊ฑฐ๋‚˜ ๊ณ„์—ด๋ช…+'์ถ”์ •'์œผ๋กœ ํ‘œ๊ธฐํ•œ๋‹ค(์ฝ”๋“œ ๋ฒˆํ˜ธ ๋ฐœ๋ช… ๊ธˆ์ง€).
63
68
 
64
69
  ## 4. ์ •๋ณด ๋ถ€์กฑยท๋ถˆํ™•์‹คยท์ถฉ๋Œ ์ฒ˜๋ฆฌ
65
- - **๋ถ€์กฑ:** ์ง€์–ด๋‚ด์ง€ ๋ง๊ณ  "ํ™•์ธ ํ•„์š”"๋กœ ํ‘œ์‹œ + ์‚ฌ์šฉ์ž์—๊ฒŒ ์‰ฌ์šด ํ•œ๊ตญ์–ด๋กœ ์งˆ๋ฌธ.
70
+ - **๋ถ€์กฑ:** ์ง€์–ด๋‚ด์ง€ ๋ง๊ณ  "ํ™•์ธ ํ•„์š”"๋กœ ํ‘œ์‹œ + ์‚ฌ์šฉ์ž์˜ ์–ธ์–ด๋กœ ์‰ฝ๊ฒŒ ์งˆ๋ฌธ.
66
71
  - **๋ถˆํ™•์‹ค:** ์‹ ๋ขฐ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ  ๊ฐ€์ •์„ ๋ช…์‹œ.
67
72
  - **์ถฉ๋Œ(๋ฐ์ดํ„ฐ vs ๋ฐ์ดํ„ฐ, ๊ณต์‹์ž๋ฃŒ vs EOP):** ยง0 ๊ทผ๊ฑฐ ์šฐ์„ ์ˆœ์œ„ ์ ์šฉ, ์‚ฌ์‹ค ๋ณด์กด, ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆผ.
68
73
  - **์ถฉ๋Œ(๋„๋ฉ”์ธ vs ๋„๋ฉ”์ธ):** ์—ฌ๋Ÿฌ `knowledge/` ๋„๋ฉ”์ธ์ด ๊ฐ™์€ ์ฃผ์ œ๋ฅผ ๊ฑด๋“œ๋ฆฌ๋ฉด ์ •๋ณธ(์†Œ์œ ) ๋„๋ฉ”์ธ์„ ๋”ฐ๋ฅธ๋‹ค โ€” ์—ฐ๋ด‰ ์ˆซ์ž ์ „์ˆ =salary-negotiation(recruiter-screen์€ ๊ฒŒ์ดํŠธ ๋งฅ๋ฝ์˜ ์กฐ๊ฑด๋ถ€ ๊ทœ์น™๋งŒ ์ƒ์†), ์˜คํผ ๋น„๊ตยท๊ฐ€์ค‘์น˜=offer-evaluation-decision, 30-60-90=onboarding-first-90-days, ํƒˆ๋ฝ ์ง„๋‹จ=rejection-triage-iteration, ์Šฌ๋กญ/ํ‚ค์›Œ๋“œ/์ •๋Ÿ‰ ์‚ฌ์ „=๊ณต์œ  ๋ชจ๋“ˆ. ๊ฒ€์ฆ๊ธฐ ๊ฐ„ ์ถฉ๋Œ์€ **์‚ฌ์‹ค(truthfulness)์„ ์ตœ์ƒ์œ„ ํƒ€์ด๋ธŒ๋ ˆ์ดํฌ**๋กœ ๋‘๊ณ , ATS ํ‚ค์›Œ๋“œ์™€ human-voice๋Š” ๋‘˜ ๋‹ค ๋งŒ์กฑํ•˜๋Š” ๋Œ€์—ญ(์ง„์งœ ๊ฒฝํ—˜ ๋ฌธ์žฅ์— JD ์šฉ์–ด๋ฅผ ์ง„์‹คํ•˜๊ฒŒ ์‚ฝ์ž…)์„ ๋จผ์ € ์ฐพ๋Š”๋‹ค.