careermate 0.0.1 → 0.0.2

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 (33) hide show
  1. package/INSTALL.md +12 -8
  2. package/README.md +14 -8
  3. package/dist/career-os/knowledge/interview-behavioral.md +9 -1
  4. package/dist/career-os/knowledge/offer-evaluation-decision.md +2 -2
  5. package/dist/career-os/knowledge/onboarding-first-90-days.md +1 -1
  6. package/dist/career-os/knowledge/verifiers/human-voice.md +20 -0
  7. package/dist/doctor.mjs +421 -11
  8. package/dist/mcp.mjs +421 -11
  9. package/dist/migrate.mjs +3 -1
  10. package/dist/public/index.html +1 -0
  11. package/dist/public/pages/settings.js +45 -0
  12. package/dist/public/styles.css +2 -0
  13. package/dist/site/index.html +19 -12
  14. package/dist/site/llms-install.txt +11 -8
  15. package/dist/site/start.html +16 -9
  16. package/dist/site/style.css +9 -0
  17. package/dist/web.mjs +351 -6
  18. package/docs/SUPPORTED_AI_APPS.md +6 -6
  19. package/docs/career-os/knowledge/interview-behavioral.md +9 -1
  20. package/docs/career-os/knowledge/offer-evaluation-decision.md +2 -2
  21. package/docs/career-os/knowledge/onboarding-first-90-days.md +1 -1
  22. package/docs/career-os/knowledge/verifiers/human-voice.md +20 -0
  23. package/package.json +1 -1
  24. package/packages/core/src/index.ts +1 -0
  25. package/packages/core/src/services.ts +61 -2
  26. package/packages/core/src/verify/index.ts +11 -0
  27. package/packages/core/src/verify/lexicons.ts +149 -0
  28. package/packages/core/src/verify/lint.ts +248 -0
  29. package/packages/core/src/verify/normalize.ts +112 -0
  30. package/packages/db/src/index.ts +1 -0
  31. package/packages/db/src/settings.ts +41 -0
  32. package/packages/mcp-tools/src/tools.ts +80 -6
  33. package/packages/shared/src/schemas.ts +8 -0
@@ -63,6 +63,7 @@
63
63
  <a href="#privacy">개인정보</a>
64
64
  </div>
65
65
  <div class="nav__actions">
66
+ <a class="nav__icon" href="https://github.com/osntak/careermate" target="_blank" rel="noopener" aria-label="GitHub 저장소" title="GitHub에서 소스 보기"><svg viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg></a>
66
67
  <button class="theme-toggle" id="theme-toggle" type="button" aria-label="다크 모드 전환" title="다크 모드 전환">
67
68
  <svg class="i-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/></svg>
68
69
  <svg class="i-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg>
@@ -85,13 +86,14 @@
85
86
  나만의 커리어 비서로
86
87
  </h1>
87
88
  <p class="hero__lede">
88
- <strong>공고 분석 · 맞춤 자기소개서 · 지원 현황 추적</strong>을 평소 쓰던 AI에게 말로 시키면, 결과가 이 컴퓨터 안에 쌓입니다. 한 번 정리한 경력은 대화마다 다시 붙여넣지 않아도 돼요.
89
+ <strong>공고 분석 · 맞춤 자기소개서 · 지원 현황 추적</strong>을 평소 쓰던 AI에게 말로 시키면, 결과가 내 컴퓨터 안에 쌓입니다. 한 번 정리한 경력은 대화마다 다시 붙여넣지 않아도 돼요.
89
90
  </p>
90
91
 
91
92
  <ul class="trust-strip" aria-label="안심 포인트">
92
93
  <li>내 컴퓨터에만 저장</li>
93
94
  <li>외부 업로드 없음</li>
94
- <li>계정·API 키 불필요</li>
95
+ <li>별도 가입 없음</li>
96
+ <li>API 키 불필요</li>
95
97
  <li>언제든 삭제</li>
96
98
  </ul>
97
99
 
@@ -138,7 +140,7 @@
138
140
  <section id="how" class="section">
139
141
  <div class="section__head">
140
142
  <h2>당신의 AI가 두뇌, CareerMate는 커리어 서랍장</h2>
141
- <p>CareerMate 안에는 AI가 들어 있지 않습니다. 생각하는 일은 당신의 AI가, 데이터 보관은 CareerMate가 맡습니다.</p>
143
+ <p>CareerMate 안에는 AI가 들어 있지 않습니다.<br />생각하는 일은 당신의 AI가, 데이터 보관은 CareerMate가 맡습니다.</p>
142
144
  </div>
143
145
  <div class="cards-3">
144
146
  <article class="feature">
@@ -299,7 +301,7 @@
299
301
 
300
302
  <div class="note">
301
303
  <strong>어떤 AI에서 되나요?</strong> 내 컴퓨터에서 프로그램을 띄울 수 있는 AI에서만 됩니다.<br />
302
- <strong style="color:var(--accent)">✓</strong> Claude Desktop · Claude Code · Codex · Cursor 등 &nbsp;/&nbsp; <strong style="color:var(--warn-text)">✗</strong> ChatGPT·Gemini·Claude의 <strong>웹·모바일</strong>(클라우드라 내 컴퓨터 서버에 못 닿음).
304
+ <strong style="color:var(--accent)">✓</strong> Claude Desktop · Claude Code · Codex · Cursor 등<br /><strong style="color:var(--warn-text)">✗</strong> ChatGPT·Gemini·Claude의 <strong>웹·모바일</strong>(클라우드라 내 컴퓨터 서버에 못 닿음).
303
305
  </div>
304
306
 
305
307
  <!-- track 1 · 앱에서 직접 설치 (비개발자 메인) -->
@@ -353,7 +355,7 @@
353
355
  <button class="copy-btn" type="button" data-copy-target="code-npx">복사</button>
354
356
  <pre id="code-npx">npx -y careermate init</pre>
355
357
  </div>
356
- <p class="step__tip">특정 클라이언트만 등록하려면 <code>npx -y careermate init --client cursor</code>, 설정 JSON·명령만 보고 직접 붙여넣으려면 <code>npx -y careermate init --print</code>. (클라이언트: <code>claude</code> · <code>claude-code</code> · <code>codex</code> · <code>cursor</code>)</p>
358
+ <p class="step__tip">특정 클라이언트만 등록하려면 <code>npx -y careermate init --client cursor</code>, 설정 JSON·명령만 보고 직접 붙여넣으려면 <code>npx -y careermate init --print</code>. (클라이언트: <code>claude</code> · <code>claude-code</code> · <code>codex</code> · <code>cursor</code>) <strong>참고:</strong> Cursor는 MCP가 <strong>Pro 기능</strong>으로 표기돼 무료(Hobby)에선 제한될 수 있어요.</p>
357
359
  </div>
358
360
  </li>
359
361
  <li class="step">
@@ -374,20 +376,24 @@
374
376
  </div>
375
377
  </details>
376
378
 
377
- <!-- track 3 · .mcpb (데모트) -->
379
+ <!-- track 3 · Claude Desktop zip (demoted) -->
378
380
  <details class="acc">
379
- <summary><span class="track__tag">Claude Desktop · <code>.mcpb</code></span> 설치 파일로 추가 (터미널 없이)</summary>
381
+ <summary><span class="track__tag">Claude Desktop · <code>.zip</code></span> 설치 파일로 추가 (터미널 없이)</summary>
380
382
  <div class="acc__body">
381
- <p class="track-desc">터미널·Node 없이 파일 하나로 끝나지만, <strong>Claude Desktop 내장 Node 버전에 따라 불안정할 수 있습니다.</strong> 잘 안 되면 위 <strong>에이전트가 직접 설치</strong> 또는 <strong>터미널 한 줄</strong>을 쓰세요.</p>
383
+ <p class="track-desc">터미널·Node 없이 붙일 수 있지만, <strong>Claude Desktop 내장 Node 버전에 따라 불안정할 수 있습니다.</strong> 잘 안 되면 위 <strong>에이전트가 직접 설치</strong> 또는 <strong>터미널 한 줄</strong>을 쓰세요.</p>
382
384
  <ol class="steps">
383
385
  <li class="step">
384
386
  <div class="step__no">1</div>
385
387
  <div class="step__body">
386
388
  <h3>설치 파일 받기</h3>
387
- <p>아래 버튼으로 <code>careermate.mcpb</code>를 내려받으세요. (약 2&nbsp;MB)</p>
389
+ <p><code>careermate.zip</code>을 압축 해제해 폴더로 추가하세요. <code>.mcpb</code> 직접 추가는 일부 Claude Desktop 버전에서 실패할 수 있습니다.</p>
390
+ <a class="btn btn--ghost" href="https://github.com/osntak/careermate/releases/latest/download/careermate.zip">
391
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><path d="M7 10l5 5 5-5"/><path d="M12 15V3"/></svg>
392
+ .zip
393
+ </a>
388
394
  <a class="btn btn--ghost" href="https://github.com/osntak/careermate/releases/latest/download/careermate.mcpb">
389
395
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><path d="M7 10l5 5 5-5"/><path d="M12 15V3"/></svg>
390
- careermate.mcpb 다운로드
396
+ .mcpb
391
397
  </a>
392
398
  </div>
393
399
  </li>
@@ -395,8 +401,8 @@
395
401
  <div class="step__no">2</div>
396
402
  <div class="step__body">
397
403
  <h3>Claude Desktop 설정에서 추가</h3>
398
- <p>Claude Desktop → <strong>Settings(설정) → Extensions(확장)</strong>에서 <strong>Advanced settings(고급 설정)</strong>를 누르면 나오는 <strong>Install extension…</strong>으로 내려받은 <code>careermate.mcpb</code>를 선택하세요.</p>
399
- <p class="step__tip">더블클릭·드래그는 Windows에서 파일 연결이 안 잡혀 <strong>반응이 없을 수 있으니</strong>, 위 설정 메뉴 경로를 쓰세요. (확장을 처음 설치하면 <strong>Advanced settings</strong>를 먼저 눌러야 버튼이 보입니다.)</p>
404
+ <p>Claude Desktop → <strong>Settings(설정) → Extensions(확장)</strong>에서 <strong>Advanced settings(고급 설정)</strong>를 누르면 나오는 <strong>Install extension…</strong>으로 압축을 푼 폴더를 추가하세요.</p>
405
+ <p class="step__tip">더블클릭·드래그는 Windows에서 파일 연결이 안 잡혀 <strong>반응이 없을 수 있으니</strong>, 위 설정 메뉴 경로를 쓰세요.</p>
400
406
  </div>
401
407
  </li>
402
408
  <li class="step">
@@ -489,6 +495,7 @@
489
495
  <a href="#top">맨 위로</a>
490
496
  <a href="#features">기능</a>
491
497
  <a href="#install">설치</a>
498
+ <a href="https://github.com/osntak/careermate" target="_blank" rel="noopener">GitHub</a>
492
499
  </div>
493
500
  </footer>
494
501
 
@@ -34,12 +34,14 @@ CareerMate MCP 서버는 Node 프로그램입니다. 먼저 확인하세요:
34
34
  · macOS: brew install node (LTS 라인 고정을 원하면 brew install node@22)
35
35
  · 그 외 / 위가 안 되면: https://nodejs.org 에서 LTS 설치
36
36
  설치 후 **터미널을 새로 열어** `node --version`을 다시 확인합니다.
37
- - 사용자가 **Claude Desktop만** 쓰고 터미널을 원치 않으면 → 여기서 멈추고 `.mcpb` 설치로
38
- 안내하세요: https://careermate.life 에서 `careermate.mcpb`를 받아, Claude Desktop의
39
- **Settings → Extensions → Advanced settings → Install extension…** 에서 그 파일을 선택해 추가
40
- (Windows에서 더블클릭·드래그는 파일 연결이 안 잡혀 무반응일 수 있으니 반드시 이 메뉴 경로를 쓰세요).
37
+ - 사용자가 **Claude Desktop만** 쓰고 터미널을 원치 않으면 → 여기서 멈추고 `careermate.zip` 폴더
38
+ 설치로 안내하세요: https://careermate.life 에서 `careermate.zip`을 받아 압축을 풀고,
39
+ Claude Desktop의 **Settings → Extensions → Advanced settings → Install extension…** 에서
40
+ 압축을 푼 폴더를 추가합니다. (Windows에서 더블클릭·드래그는 파일 연결이 안 잡혀 무반응일 수
41
+ 있으니 반드시 이 메뉴 경로를 쓰세요.) `.mcpb` 직접 추가는 일부 Claude Desktop 버전에서 실패하는
42
+ 알려진 이슈입니다.
41
43
  Claude Desktop은 Node를 내장하므로 터미널이 필요 없지만, **내장 Node 버전에 따라 설치가 막히거나
42
- 불안정할 수 있고, 이 `.mcpb`는 릴리스마다 다시 빌드되는 스냅샷이라 npm 최신본보다 버전이 뒤처질 수
44
+ 불안정할 수 있고, 이 번들은 릴리스마다 다시 빌드되는 스냅샷이라 npm 최신본보다 버전이 뒤처질 수
43
45
  있습니다** — 항상 최신을 원하거나 잘 안 되면 아래 3·4번(npm 설치)로 안내하세요.
44
46
 
45
47
  ────────────────────────────────────────────────────────
@@ -135,8 +137,9 @@ CareerMate MCP 서버는 Node 프로그램입니다. 먼저 확인하세요:
135
137
  `mcpServers`에 추가하세요(스키마 동일). `node <BIN> init`은 Gemini를 자동 등록하고 Antigravity는
136
138
  후보 파일이 있을 때만 등록합니다.
137
139
 
138
- ▸ Claude Desktop(앱 본체, "Code" 탭이 아닌 채팅): `.mcpb` 원클릭이 가장 쉽습니다(1번 끝의
139
- 안내). 굳이 수동이면 `claude_desktop_config.json`의 `mcpServers`에 같은 블록을 추가.
140
+ ▸ Claude Desktop(앱 본체, "Code" 탭이 아닌 채팅): `careermate.zip` 압축 해제 후 폴더 추가가
141
+ 터미널 없는 경로입니다(1번 끝의 안내). 굳이 수동이면 `claude_desktop_config.json`의
142
+ `mcpServers`에 같은 블록을 추가.
140
143
 
141
144
  단축: `node <BIN> init`을 실행하면 **감지된 Codex·Cursor·Claude Desktop·Gemini 전역 설정**을 올바른
142
145
  절대경로로 자동 등록하고 `~/.careermate`도 만듭니다(Antigravity는 후보 설정 파일이 이미 있을 때만).
@@ -192,7 +195,7 @@ CareerMate MCP 서버는 Node 프로그램입니다. 먼저 확인하세요:
192
195
 
193
196
  2) 이력서를 저에게 주세요 — 편한 방법 아무거나:
194
197
  · [공통·제일 쉬움] 이력서 '내용'을 복사해서 대화창에 그대로 붙여넣기. 파일이 어디 있든 상관없어요.
195
- · [Claude 채팅(.mcpb)] 채팅창에 이력서 파일을 직접 첨부.
198
+ · [Claude 채팅] 채팅창에 이력서 파일을 직접 첨부.
196
199
  · [폴더 기반 — Claude Code 탭 / Codex / Antigravity 등] 작업 폴더에 파일을 두고
197
200
  "이력서.pdf 읽어서 등록해줘"처럼 파일명·경로로 알려주기.
198
201
  · [인박스 폴더 — 파일 첨부가 안 되는 CLI에 특히 편함] 파일을 `~/.careermate/inbox`
@@ -64,6 +64,7 @@
64
64
  <a href="index.html#install">설치 전체</a>
65
65
  </div>
66
66
  <div class="nav__actions">
67
+ <a class="nav__icon" href="https://github.com/osntak/careermate" target="_blank" rel="noopener" aria-label="GitHub 저장소" title="GitHub에서 소스 보기"><svg viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg></a>
67
68
  <button class="theme-toggle" id="theme-toggle" type="button" aria-label="다크 모드 전환" title="다크 모드 전환">
68
69
  <svg class="i-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/></svg>
69
70
  <svg class="i-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg>
@@ -140,11 +141,11 @@
140
141
  <li class="step"><div class="step__no">5</div><div class="step__body">
141
142
  <h3>앱 재시작 → 확인</h3>
142
143
  <p>Claude 앱을 완전히 껐다 켜고(처음 한 번 MCP 승인 허용), <strong>"커리어메이트 연결됐는지 확인해줘"</strong>라고 말하면 끝.</p>
143
- <p class="recover"><strong>도구가 안 보이면?</strong> 앱을 트레이까지 <strong>완전히 종료</strong>했다 다시 켜고, 처음 뜬 승인 창을 허용했는지 확인하세요. 그래도 안 되면 <a href="index.html#install">파일로 설치(.mcpb)</a>나 설치 전체의 <a href="index.html#install">문제가 생겼을 때</a>를 보세요.</p>
144
+ <p class="recover"><strong>도구가 안 보이면?</strong> 앱을 트레이까지 <strong>완전히 종료</strong>했다 다시 켜고, 처음 뜬 승인 창을 허용했는지 확인하세요. 그래도 안 되면 <a href="index.html#install">파일로 설치(zip)</a>나 설치 전체의 <a href="index.html#install">문제가 생겼을 때</a>를 보세요.</p>
144
145
  </div></li>
145
146
  </ol>
146
147
  <div class="filenote">📎 <strong>이력서 넣는 법:</strong> 가장 쉬운 방법은 <strong>이력서 내용을 대화창에 붙여넣기</strong>입니다. 또는 작업 폴더에 파일을 넣고 <em>"이력서.pdf 읽어서 등록해줘"</em>라고 하거나 채팅에 직접 첨부하세요. (스캔본·보안 PDF는 안 읽힐 수 있습니다 → 그땐 텍스트로 붙여넣으세요.)</div>
147
- <p class="hint" style="margin-top:.8rem">터미널이 부담되면 → <a href="index.html#install">파일 하나로 설치(.mcpb)</a>하는 방법도 있습니다(Claude 무료 기능).</p>
148
+ <p class="hint" style="margin-top:.8rem">터미널이 부담되면 → <a href="index.html#install">파일로 설치(zip)</a>하는 방법도 있습니다(Claude 무료 기능).</p>
148
149
  </div>
149
150
 
150
151
  <!-- ===== ChatGPT 유료 → Codex CLI ===== -->
@@ -152,6 +153,7 @@
152
153
  <span class="path__tag">당신에겐 — Codex CLI</span>
153
154
  <h2>ChatGPT 구독으로 Codex에서</h2>
154
155
  <p>ChatGPT는 <strong>Codex를 터미널(CLI)에서</strong> 씁니다 — 명령을 몇 줄 입력합니다.<br />Codex <strong>데스크톱 앱은 등록이 사라질 수 있어</strong> 권장하지 않습니다. 터미널이 부담되면 <a href="#" data-goto-free>터미널 없이 가능한 무료 길</a>도 있습니다.</p>
156
+ <p class="hint" style="margin:.2rem 0 0">💡 <strong>무료 ChatGPT 계정도 지금은 Codex를 쓸 수 있어요</strong>(한시적 제공). 단 무료·저가 플랜은 사용량 한도가 더 빡빡합니다.</p>
155
157
  <ol class="steps">
156
158
  <li class="step"><div class="step__no">1</div><div class="step__body">
157
159
  <h3>Node.js 설치</h3>
@@ -182,15 +184,16 @@
182
184
  <div class="filenote">📎 <strong>이력서 넣는 법:</strong> 첨부 기능이 없으니, 작업 폴더에 파일을 넣고 <em>"./이력서.pdf 읽어서 등록해줘"</em>라고 하세요. PDF가 안 읽히면 내용을 <strong>텍스트로 붙여넣으세요.</strong></div>
183
185
  </div>
184
186
 
185
- <!-- ===== 무료/없음 → .mcpb 1순위, Antigravity 2순위 ===== -->
187
+ <!-- ===== 무료/없음 → zip 1순위, Antigravity 2순위 ===== -->
186
188
  <div class="path" data-sub="free">
187
189
  <span class="path__tag">당신에겐 — 무료로 시작</span>
188
190
  <h2>유료 구독 없이 무료로</h2>
189
191
  <p>유료 구독이 없어도 됩니다. 터미널이 필요 없는, 가장 쉬운 길부터 안내합니다.</p>
192
+ <p class="hint" style="margin:.2rem 0 0">⚠️ <strong>무료는 사용량이 더 빠듯해요.</strong> 무료 플랜은 보낼 수 있는 메시지·요청 수가 유료보다 적어서, 많이 쓰면 한도에 걸려 잠깐 기다리거나 유료로 올려야 할 수 있어요. <strong>CareerMate 자체는 계속 무료</strong> — 한도는 고른 AI 쪽 이야기예요.</p>
190
193
 
191
194
  <div class="subcard">
192
195
  <strong>① 1순위 — Claude 데스크톱 + 파일 설치(터미널 없이)</strong>
193
- <p class="hint" style="margin:.3rem 0 .8rem">Claude 무료 계정이면 됩니다. 터미널·Node 없이 파일 하나로 끝.</p>
196
+ <p class="hint" style="margin:.3rem 0 .8rem">Claude 무료 계정이면 됩니다. 터미널·Node 없이 zip을 풀어 폴더로 추가합니다.</p>
194
197
  <ol class="steps">
195
198
  <li class="step"><div class="step__no">1</div><div class="step__body">
196
199
  <h3>Claude 데스크톱 설치 → 로그인(무료 OK)</h3>
@@ -198,11 +201,15 @@
198
201
  </div></li>
199
202
  <li class="step"><div class="step__no">2</div><div class="step__body">
200
203
  <h3>설치 파일 받기</h3>
201
- <p><a class="btn btn--ghost" href="https://github.com/osntak/careermate/releases/latest/download/careermate.mcpb">careermate.mcpb 다운로드 (약 2&nbsp;MB)</a></p>
204
+ <p>
205
+ <a class="btn btn--ghost" href="https://github.com/osntak/careermate/releases/latest/download/careermate.zip">.zip</a>
206
+ <a class="btn btn--ghost" href="https://github.com/osntak/careermate/releases/latest/download/careermate.mcpb">.mcpb</a>
207
+ </p>
208
+ <p class="hint"><code>.zip</code> 압축을 풀어 폴더로 추가하세요. <code>.mcpb</code> 직접 추가는 일부 Claude Desktop 버전에서 실패할 수 있습니다.</p>
202
209
  </div></li>
203
210
  <li class="step"><div class="step__no">3</div><div class="step__body">
204
211
  <h3>설정에서 추가</h3>
205
- <p>Claude 데스크톱 → <strong>Settings → Extensions → Advanced settings → Install extension…</strong> 에서 받은 파일을 고르세요. <span class="hint">(Windows에서 더블클릭·드래그는 반응이 없을 수 있으니 이 메뉴를 쓰세요.)</span></p>
212
+ <p>Claude 데스크톱 → <strong>Settings → Extensions → Advanced settings → Install extension…</strong> 에서 압축을 푼 폴더를 추가하세요. <span class="hint">(Windows에서 더블클릭·드래그는 반응이 없을 수 있으니 이 메뉴를 쓰세요.)</span></p>
206
213
  </div></li>
207
214
  <li class="step"><div class="step__no">4</div><div class="step__body">
208
215
  <h3>재시작 → 확인</h3>
@@ -261,10 +268,10 @@
261
268
  <div class="acc__body">
262
269
  <ul>
263
270
  <li><strong>Node.js (LTS)</strong> — <a href="https://nodejs.org/" rel="noopener" target="_blank">nodejs.org</a> · 설치 파일을 받아 더블클릭(계속 '다음'). 터미널·CLI 경로에 필요.</li>
264
- <li><strong>Claude 데스크톱</strong> — <a href="https://claude.ai/download" rel="noopener" target="_blank">claude.ai/download</a> · Code 탭 / .mcpb에 사용.</li>
271
+ <li><strong>Claude 데스크톱</strong> — <a href="https://claude.ai/download" rel="noopener" target="_blank">claude.ai/download</a> · Code 탭 / zip 폴더 설치에 사용.</li>
265
272
  <li><strong>Git for Windows</strong> — <a href="https://git-scm.com/download/win" rel="noopener" target="_blank">git-scm.com/download/win</a> · <em>Windows에서 Claude Code 탭을 쓸 때만</em>(Mac은 불필요).</li>
266
273
  <li><strong>Antigravity</strong>(Google·무료) — <a href="https://antigravity.google/download" rel="noopener" target="_blank">antigravity.google/download</a> · 개인 Gmail 로그인, 카드 불필요.</li>
267
- <li><strong>CareerMate 설치 파일(.mcpb)</strong> — <a href="https://github.com/osntak/careermate/releases/latest/download/careermate.mcpb">careermate.mcpb</a> · Claude 데스크톱 "채팅" 앱용(약 2&nbsp;MB).</li>
274
+ <li><strong>CareerMate 설치 파일</strong> — <a href="https://github.com/osntak/careermate/releases/latest/download/careermate.zip">careermate.zip</a> / <a href="https://github.com/osntak/careermate/releases/latest/download/careermate.mcpb">careermate.mcpb</a> · Claude 데스크톱 "채팅" 앱용.</li>
268
275
  </ul>
269
276
  <p class="hint">받은 뒤 무엇을 하는지는 위에서 고른 "내게 맞는 길"의 단계를 따르면 됩니다.</p>
270
277
  </div>
@@ -279,7 +286,7 @@
279
286
  <footer class="foot">
280
287
  <div class="foot__brand"><span class="nav__logo" aria-hidden="true">C</span> CareerMate</div>
281
288
  <p>로컬에서 동작하는 MCP 기반 커리어 관리 도구. 모든 데이터는 이 컴퓨터에만 저장됩니다.</p>
282
- <div class="foot__links"><a href="index.html#top">홈</a><a href="index.html#install">설치 전체</a></div>
289
+ <div class="foot__links"><a href="index.html#top">홈</a><a href="index.html#install">설치 전체</a><a href="https://github.com/osntak/careermate" target="_blank" rel="noopener">GitHub</a></div>
283
290
  </footer>
284
291
 
285
292
  <div class="sr-only" role="status" aria-live="polite" id="copy-status"></div>
@@ -167,6 +167,15 @@ code { font-family: var(--mono); }
167
167
  :root:not([data-theme='light']) .theme-toggle .i-sun { display: none; }
168
168
  }
169
169
 
170
+ /* github icon link — mirrors .theme-toggle so the two read as siblings */
171
+ .nav__icon {
172
+ width: 34px; height: 34px; display: grid; place-items: center;
173
+ border: 1px solid var(--border-strong); background: var(--surface); border-radius: var(--radius-sm);
174
+ color: var(--text-secondary); transition: background .15s, color .15s;
175
+ }
176
+ .nav__icon:hover { background: var(--surface-hover); color: var(--text); text-decoration: none; }
177
+ .nav__icon svg { width: 17px; height: 17px; }
178
+
170
179
  /* ----------------------------------------------------------------- buttons */
171
180
  .btn {
172
181
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;