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.
- package/AGENTS.md +11 -7
- package/INSTALL.md +18 -16
- package/README.md +28 -26
- package/THIRD_PARTY_NOTICES.md +2 -3
- package/bin/careermate.mjs +8 -1
- package/dist/career-os/README.md +8 -3
- package/dist/career-os/eop/career-description.md +136 -0
- package/dist/career-os/eop/cover-letter.md +7 -5
- package/dist/career-os/eop/fit-analysis.md +15 -5
- package/dist/career-os/eop/interview-prep.md +209 -21
- package/dist/career-os/eop/job-analysis.md +5 -3
- package/dist/career-os/eop/profile-extraction.md +5 -4
- package/dist/career-os/knowledge/cover-letter.md +4 -4
- package/dist/career-os/knowledge/fit-matching.md +8 -8
- package/dist/career-os/knowledge/interview-behavioral.md +76 -8
- package/dist/career-os/knowledge/interview-technical.md +106 -4
- package/dist/career-os/knowledge/linkedin-profile.md +1 -1
- package/dist/career-os/knowledge/networking-referrals.md +1 -1
- package/dist/career-os/knowledge/offer-evaluation-decision.md +10 -10
- package/dist/career-os/knowledge/portfolio.md +3 -3
- package/dist/career-os/knowledge/verifiers/ats-compat.md +8 -4
- package/dist/career-os/knowledge/verifiers/human-voice.md +2 -2
- package/dist/career-os/knowledge/verifiers/recency-staleness.md +1 -1
- package/dist/career-os/knowledge/verifiers/responsiveness-on-target.md +2 -2
- package/dist/career-os/knowledge/verifiers/truthfulness.md +1 -1
- package/dist/doctor.mjs +1019 -127
- package/dist/mcp.mjs +1036 -126
- package/dist/migrate.mjs +52 -1
- package/dist/public/app.js +42 -16
- package/dist/public/i18n/en/applications.js +23 -0
- package/dist/public/i18n/en/common.js +22 -0
- package/dist/public/i18n/en/documents.js +133 -0
- package/dist/public/i18n/en/home.js +75 -0
- package/dist/public/i18n/en/interview.js +69 -0
- package/dist/public/i18n/en/jobs.js +152 -0
- package/dist/public/i18n/en/nav.js +18 -0
- package/dist/public/i18n/en/profile.js +201 -0
- package/dist/public/i18n/en/settings.js +127 -0
- package/dist/public/i18n/en/status.js +22 -0
- package/dist/public/i18n/en.js +17 -0
- package/dist/public/i18n/ko/applications.js +23 -0
- package/dist/public/i18n/ko/common.js +22 -0
- package/dist/public/i18n/ko/documents.js +133 -0
- package/dist/public/i18n/ko/home.js +63 -0
- package/dist/public/i18n/ko/interview.js +69 -0
- package/dist/public/i18n/ko/jobs.js +152 -0
- package/dist/public/i18n/ko/nav.js +18 -0
- package/dist/public/i18n/ko/profile.js +201 -0
- package/dist/public/i18n/ko/settings.js +127 -0
- package/dist/public/i18n/ko/status.js +23 -0
- package/dist/public/i18n/ko.js +18 -0
- package/dist/public/i18n.js +55 -0
- package/dist/public/index.html +1 -0
- package/dist/public/lib.js +25 -17
- package/dist/public/pages/applications.js +17 -21
- package/dist/public/pages/documents.js +153 -107
- package/dist/public/pages/home.js +88 -53
- package/dist/public/pages/interview.js +105 -51
- package/dist/public/pages/jobs.js +330 -106
- package/dist/public/pages/profile.js +157 -152
- package/dist/public/pages/settings.js +270 -72
- package/dist/public/styles.css +38 -3
- package/dist/web.mjs +859 -103
- package/docs/FAQ.md +26 -5
- package/docs/MCP_TOOLS.md +26 -12
- package/docs/START_WORKFLOW.md +2 -2
- package/docs/SUPPORTED_AI_APPS.md +13 -0
- package/docs/WORKFLOWS.md +80 -23
- package/docs/career-os/README.md +8 -3
- package/docs/career-os/eop/career-description.md +136 -0
- package/docs/career-os/eop/cover-letter.md +7 -5
- package/docs/career-os/eop/fit-analysis.md +15 -5
- package/docs/career-os/eop/interview-prep.md +209 -21
- package/docs/career-os/eop/job-analysis.md +5 -3
- package/docs/career-os/eop/profile-extraction.md +5 -4
- package/docs/career-os/knowledge/cover-letter.md +4 -4
- package/docs/career-os/knowledge/fit-matching.md +8 -8
- package/docs/career-os/knowledge/interview-behavioral.md +76 -8
- package/docs/career-os/knowledge/interview-technical.md +106 -4
- package/docs/career-os/knowledge/linkedin-profile.md +1 -1
- package/docs/career-os/knowledge/networking-referrals.md +1 -1
- package/docs/career-os/knowledge/offer-evaluation-decision.md +10 -10
- package/docs/career-os/knowledge/portfolio.md +3 -3
- package/docs/career-os/knowledge/verifiers/ats-compat.md +8 -4
- package/docs/career-os/knowledge/verifiers/human-voice.md +2 -2
- package/docs/career-os/knowledge/verifiers/recency-staleness.md +1 -1
- package/docs/career-os/knowledge/verifiers/responsiveness-on-target.md +2 -2
- package/docs/career-os/knowledge/verifiers/truthfulness.md +1 -1
- package/package.json +2 -2
- package/packages/core/src/onboarding.ts +2 -1
- package/packages/core/src/services.ts +138 -21
- package/packages/core/src/summary.ts +59 -1
- package/packages/core/src/verify/lint.ts +4 -0
- package/packages/db/src/index.ts +1 -0
- package/packages/db/src/repositories.ts +0 -0
- package/packages/db/src/schema.ts +17 -0
- package/packages/exporters/src/index.ts +28 -17
- package/packages/knowledge/src/index.ts +46 -7
- package/packages/mcp-tools/src/bridge.ts +194 -13
- package/packages/mcp-tools/src/tools.ts +390 -38
- package/packages/mcp-tools/src/update.ts +31 -16
- package/packages/parsers/src/documents.ts +12 -1
- package/packages/prompts/src/humanize.ts +46 -0
- package/packages/prompts/src/index.ts +5 -1
- package/packages/prompts/src/install.ts +4 -4
- package/packages/prompts/src/onboarding.ts +4 -4
- package/packages/prompts/src/system.ts +17 -8
- package/packages/shared/src/enums.ts +14 -4
- package/packages/shared/src/schemas.ts +41 -0
- package/packages/workflows/src/definitions.ts +47 -10
- package/scripts/init.ts +284 -13
- package/dist/site/analytics.js +0 -97
- package/dist/site/favicon.svg +0 -1
- package/dist/site/fonts/PretendardVariable.woff2 +0 -0
- package/dist/site/icon-180.png +0 -0
- package/dist/site/icon-512.png +0 -0
- package/dist/site/index.html +0 -565
- package/dist/site/landing.js +0 -54
- package/dist/site/llms-install.txt +0 -218
- package/dist/site/robots.txt +0 -4
- package/dist/site/sitemap.xml +0 -21
- package/dist/site/start.html +0 -353
- package/dist/site/style.css +0 -559
- package/dist/site/vercel.json +0 -20
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
# CareerMate 설치 지시문 (AI 에이전트용) · 공개본
|
|
2
|
-
|
|
3
|
-
이 파일은 https://careermate.life/llms-install.txt 에서 AI 에이전트가 직접 읽도록 호스팅된
|
|
4
|
-
설치 런북입니다. 사용자가 "이 URL을 읽고 CareerMate를 설치해줘"라고 하면, 당신(AI)이 아래
|
|
5
|
-
순서를 그대로 따르세요. **빈 폴더에서 시작해도 됩니다 — 소스를 미리 받아둘 필요가 없습니다.**
|
|
6
|
-
(이 문서는 npm 패키지 `careermate`를 가리키므로 항상 최신입니다.)
|
|
7
|
-
|
|
8
|
-
CareerMate란: **MCP 우선 로컬 커리어 워크스페이스**입니다. 내부에 LLM이 없습니다 — 분석·글쓰기
|
|
9
|
-
같은 "생각"은 당신(사용자의 AI)이 하고, CareerMate는 커리어 데이터를 이 컴퓨터에만 구조화해
|
|
10
|
-
저장·조회합니다. "당신의 AI가 두뇌, CareerMate는 커리어 서랍장."
|
|
11
|
-
|
|
12
|
-
────────────────────────────────────────────────────────
|
|
13
|
-
0. 대원칙 (반드시 지킬 것)
|
|
14
|
-
────────────────────────────────────────────────────────
|
|
15
|
-
- 동의 먼저: 파일을 만들거나 서버를 켜거나 **시스템에 무언가 설치(예: Node)하기 전에**, 무엇을
|
|
16
|
-
왜 하는지 한국어로 설명하고 사용자 동의를 받습니다.
|
|
17
|
-
- 설명 먼저, 실행 나중: 각 명령 전에 한 줄로 알립니다.
|
|
18
|
-
- 로컬 전용: 모든 데이터는 `~/.careermate`에만 저장됩니다. 어떤 단계에서도 외부로 업로드하지
|
|
19
|
-
않습니다.
|
|
20
|
-
- 개인 파일(이력서·자소서 등)은 설치 단계에서 읽지 않습니다. 사용자가 그 단계를 요청할 때만.
|
|
21
|
-
- 실패하면 멈추지 말고 7번 "문제 해결"을 안내합니다.
|
|
22
|
-
|
|
23
|
-
────────────────────────────────────────────────────────
|
|
24
|
-
1. 사전 점검 — Node.js (런타임, 유일한 전제)
|
|
25
|
-
────────────────────────────────────────────────────────
|
|
26
|
-
CareerMate MCP 서버는 Node 프로그램입니다. 먼저 확인하세요:
|
|
27
|
-
|
|
28
|
-
node --version
|
|
29
|
-
|
|
30
|
-
- **v22.5.0 이상**이면 통과 (CareerMate는 Node 내장 `node:sqlite`를 써서 컴파일·네이티브
|
|
31
|
-
빌드가 필요 없습니다).
|
|
32
|
-
- 명령이 없거나 버전이 낮으면 → **사용자 동의를 받은 뒤** 설치:
|
|
33
|
-
· Windows(PowerShell): winget install OpenJS.NodeJS.LTS
|
|
34
|
-
· macOS: brew install node (LTS 라인 고정을 원하면 brew install node@22)
|
|
35
|
-
· 그 외 / 위가 안 되면: https://nodejs.org 에서 LTS 설치
|
|
36
|
-
설치 후 **터미널을 새로 열어** `node --version`을 다시 확인합니다.
|
|
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
|
-
알려진 이슈입니다.
|
|
43
|
-
Claude Desktop은 Node를 내장하므로 터미널이 필요 없지만, **내장 Node 버전에 따라 설치가 막히거나
|
|
44
|
-
불안정할 수 있고, 이 번들은 릴리스마다 다시 빌드되는 스냅샷이라 npm 최신본보다 버전이 뒤처질 수
|
|
45
|
-
있습니다** — 항상 최신을 원하거나 잘 안 되면 아래 3·4번(npm 설치)로 안내하세요.
|
|
46
|
-
|
|
47
|
-
────────────────────────────────────────────────────────
|
|
48
|
-
2. 동의 받기 (여기서 멈추고 확인)
|
|
49
|
-
────────────────────────────────────────────────────────
|
|
50
|
-
아래를 그대로 보여주고 동의를 받은 뒤에만 진행합니다.
|
|
51
|
-
"설치하면 CareerMate는 다음을 합니다. 진행할까요?"
|
|
52
|
-
[ ] 데이터 폴더 `~/.careermate` 생성
|
|
53
|
-
[ ] 로컬 SQLite DB `careermate.sqlite` 생성
|
|
54
|
-
[ ] 로컬 대시보드 `http://127.0.0.1:4319` 실행(요청 시) — 외부 접근 불가(127.0.0.1 전용)
|
|
55
|
-
[ ] 모든 데이터를 이 컴퓨터에만 저장 (외부 업로드 없음)
|
|
56
|
-
|
|
57
|
-
────────────────────────────────────────────────────────
|
|
58
|
-
3. 설치 — npm으로 `~/.careermate/app`에 (clone·zip 불필요)
|
|
59
|
-
────────────────────────────────────────────────────────
|
|
60
|
-
글로벌 설치(`-g`)나 npx 즉석 실행 대신, **한곳에 설치하고 절대경로로 참조**합니다. 가장
|
|
61
|
-
안정적입니다(글로벌 PATH 문제 없음, 매 실행 재해석 없음, 데이터와 같은 곳에 보관).
|
|
62
|
-
|
|
63
|
-
# macOS / Linux / Git Bash:
|
|
64
|
-
npm install --prefix "$HOME/.careermate/app" careermate
|
|
65
|
-
|
|
66
|
-
# Windows PowerShell:
|
|
67
|
-
npm install --prefix "$env:USERPROFILE\.careermate\app" careermate
|
|
68
|
-
|
|
69
|
-
설치 후 실행 진입점(이하 <BIN>)은 **이 절대경로**입니다:
|
|
70
|
-
· macOS/Linux: $HOME/.careermate/app/node_modules/careermate/bin/careermate.mjs
|
|
71
|
-
· Windows: %USERPROFILE%\.careermate\app\node_modules\careermate\bin\careermate.mjs
|
|
72
|
-
|
|
73
|
-
<BIN>은 항상 **그 사용자의 실제 절대경로로 치환**해 사용하세요. `~`나 `$HOME`은 설정 파일
|
|
74
|
-
안에서 확장되지 않습니다. 홈 경로가 필요하면 `node -p "require('os').homedir()"`로 구해 <BIN>에
|
|
75
|
-
그대로 박아 넣으세요(`~`/`$HOME`/`%USERPROFILE%`를 .mcp.json·config.toml에 직접 쓰지 마세요).
|
|
76
|
-
(`node <BIN> mcp`가 MCP 서버를 띄우는 명령이며, `--experimental-sqlite` 플래그는 <BIN>이 알아서 붙입니다.)
|
|
77
|
-
|
|
78
|
-
▸ 대안 — GUI 앱·샌드박스라면 이쪽 권장: **작업 폴더 안에 전부 설치.** (기본 방식과 둘 중 하나만 고르고 섞지 마세요.)
|
|
79
|
-
사용자가 Claude "Code" 탭이나 Codex 앱처럼 **작업 폴더(cwd)를 잡고** 쓰는 경우, 설치물과 데이터를
|
|
80
|
-
그 폴더 안에 두면 (1) 폴더만 백업·이동하면 데이터가 따라오고 (2) Codex의 workspace-write 샌드박스가
|
|
81
|
-
cwd 하위 쓰기를 허용해 설치 단계 권한 마찰이 줄어듭니다. <WS>를 그 작업 폴더의 절대경로라 할 때:
|
|
82
|
-
npm install --prefix "<WS>/.cm/app" careermate
|
|
83
|
-
그러면 <BIN> = <WS>/.cm/app/node_modules/careermate/bin/careermate.mjs 이고, 데이터는 아래처럼
|
|
84
|
-
MCP 등록의 env로 작업 폴더 안에 고정합니다(기본값 ~/.careermate 대신):
|
|
85
|
-
CAREERMATE_DATA_DIR = <WS>/.cm/data
|
|
86
|
-
주의: 데이터 폴더 이름을 `.git`/`.codex`/`.agents` 등으로 두지 마세요(VCS 메타데이터·AI 도구
|
|
87
|
-
설정 폴더와 이름이 충돌합니다 — 앱이 따로 막아 주는 건 아니니 이름을 직접 피하세요).
|
|
88
|
-
|
|
89
|
-
────────────────────────────────────────────────────────
|
|
90
|
-
4. 연결 — 사용 중인 AI 앱의 MCP 설정에 등록
|
|
91
|
-
────────────────────────────────────────────────────────
|
|
92
|
-
사용자가 쓰는 앱에 맞춰, 서버 명령을 `node <BIN> mcp`로 등록합니다.
|
|
93
|
-
|
|
94
|
-
▸ Claude Code (또는 Claude Desktop의 "Code" 탭):
|
|
95
|
-
지금 작업 중인(또는 열) **그 폴더에** `.mcp.json` 파일을 만들고 아래 내용을 넣으세요.
|
|
96
|
-
(이 폴더가 곧 Claude Code 프로젝트입니다. 빈 폴더여도 됩니다.)
|
|
97
|
-
|
|
98
|
-
{
|
|
99
|
-
"mcpServers": {
|
|
100
|
-
"careermate": {
|
|
101
|
-
"type": "stdio",
|
|
102
|
-
"command": "node",
|
|
103
|
-
"args": ["<BIN>", "mcp"]
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
· Windows 경로는 JSON에서 백슬래시를 `\\`로 이스케이프하거나 `/`로 쓰세요.
|
|
109
|
-
· 작업 폴더 안에 데이터를 두려면(위 3번 대안) `args` 옆에 env를 추가:
|
|
110
|
-
"env": { "CAREERMATE_DATA_DIR": "<WS>/.cm/data" }
|
|
111
|
-
· 또는 명령으로: claude mcp add --scope project --transport stdio careermate -- node <BIN> mcp
|
|
112
|
-
|
|
113
|
-
▸ Codex: `~/.codex/config.toml`에 아래 테이블을 추가(있으면 교체):
|
|
114
|
-
|
|
115
|
-
[mcp_servers.careermate]
|
|
116
|
-
command = "node"
|
|
117
|
-
args = ["<BIN>", "mcp"]
|
|
118
|
-
# 작업 폴더 안에 데이터를 두려면(위 3번 대안):
|
|
119
|
-
# env = { CAREERMATE_DATA_DIR = "<WS>/.cm/data" }
|
|
120
|
-
|
|
121
|
-
· 또는 명령으로: codex mcp add careermate -- node <BIN> mcp
|
|
122
|
-
· Windows 경로: 위 `"<BIN>"`처럼 큰따옴표 TOML 문자열 안에선 역슬래시를 `\\`로 쓰거나 `/`로 쓰세요
|
|
123
|
-
(작은따옴표 리터럴 `'C:\...\careermate.mjs'`을 쓰면 이스케이프 없이 한 번만 써도 됩니다).
|
|
124
|
-
· ⚠️ Codex 주의(2026-06): 데스크톱 앱은 시작 시 `~/.codex/config.toml`을 재작성해 등록이 사라질 수
|
|
125
|
-
있고(openai/codex#24718), 프로젝트 `.codex/config.toml`은 무시합니다(#13025). 이 재작성은 '승인'으로
|
|
126
|
-
못 풀립니다 → **전역 config + 가능하면 Codex CLI**를 쓰세요(데스크톱보다 안정적). 또한 기본
|
|
127
|
-
workspace-write 샌드박스는 네트워크가 꺼져 있어 설치 단계 `npm install`에 네트워크 1회 허용(또는
|
|
128
|
-
`[sandbox_workspace_write] network_access = true`)이 필요합니다 — 이건 사용자가 승인하면 풀립니다.
|
|
129
|
-
(MCP 서버 자체는 샌드박스 밖에서 돌아, 일단 연결되면 데이터 읽기/쓰기는 막히지 않습니다. 대시보드
|
|
130
|
-
127.0.0.1는 선택 기능이며 샌드박스에서 셸로 띄울 땐 로컬 포트 허용이 필요할 수 있습니다.)
|
|
131
|
-
|
|
132
|
-
▸ Cursor: `~/.cursor/mcp.json`에 위 Claude Code와 같은 `mcpServers` 블록을 추가.
|
|
133
|
-
|
|
134
|
-
▸ Gemini CLI / Antigravity: Gemini CLI는 `~/.gemini/settings.json`의 `mcpServers`에 같은 블록을 추가
|
|
135
|
-
(`type` 키는 없어도 됨). 단 **2026-06-18부터 소비자용 Gemini CLI는 Antigravity로 전환**됩니다 —
|
|
136
|
-
Antigravity는 `~/.gemini/(config|antigravity|antigravity-cli)/mcp_config.json` 중 **이미 있는 파일**의
|
|
137
|
-
`mcpServers`에 추가하세요(스키마 동일). `node <BIN> init`은 Gemini를 자동 등록하고 Antigravity는
|
|
138
|
-
후보 파일이 있을 때만 등록합니다.
|
|
139
|
-
|
|
140
|
-
▸ Claude Desktop(앱 본체, "Code" 탭이 아닌 채팅): `careermate.zip` 압축 해제 후 폴더 추가가
|
|
141
|
-
터미널 없는 경로입니다(1번 끝의 안내). 굳이 수동이면 `claude_desktop_config.json`의
|
|
142
|
-
`mcpServers`에 같은 블록을 추가.
|
|
143
|
-
|
|
144
|
-
단축: 사용자의 **실제 작업 폴더에서** `node <BIN> init`을 실행하면 감지된 Codex·Cursor·Claude
|
|
145
|
-
Desktop·Gemini 전역 설정을 올바른 절대경로로 자동 등록하고, Claude Code용 `.mcp.json`도 **그 작업
|
|
146
|
-
폴더에** 만듭니다(Antigravity는 후보 설정 파일이 이미 있을 때만). `init`과 수동 등록 중 하나만
|
|
147
|
-
쓰세요 — 둘 다 하면 같은 서버 등록이 중복될 수 있습니다.
|
|
148
|
-
|
|
149
|
-
────────────────────────────────────────────────────────
|
|
150
|
-
5. 마무리 — 재시작 · 승인 · 검증
|
|
151
|
-
────────────────────────────────────────────────────────
|
|
152
|
-
1) 연결한 AI 앱을 **완전히 종료했다 다시** 켭니다.
|
|
153
|
-
2) Claude Code/Code 탭이면 프로젝트 `.mcp.json`에 대해 **1회 승인**을 물을 때 허용합니다.
|
|
154
|
-
3) 사용자가 AI에게: "**get_onboarding_status 호출해서 연결됐는지 확인해줘**". 응답이 오면 성공.
|
|
155
|
-
(Codex는 `/mcp`로 careermate 등록 여부도 확인 가능.)
|
|
156
|
-
4) 대시보드(선택): node <BIN> start → http://127.0.0.1:4319 (종료: Ctrl+C)
|
|
157
|
-
⚠️ 이 명령은 종료되지 않는 장기 실행 서버입니다 — 설치·검증 중엔 실행하지 마세요(포그라운드로
|
|
158
|
-
띄우면 에이전트 턴이 멈춥니다). 연결 검증(위 3번)에는 대시보드가 필요 없습니다. 사용자가 원할 때만,
|
|
159
|
-
가능하면 백그라운드로 띄우고 `CAREERMATE_NO_OPEN=1`로 브라우저 자동 열기를 끄세요.
|
|
160
|
-
|
|
161
|
-
────────────────────────────────────────────────────────
|
|
162
|
-
6. 데이터 위치 / 환경변수
|
|
163
|
-
────────────────────────────────────────────────────────
|
|
164
|
-
- 데이터: `~/.careermate` (Windows: `%USERPROFILE%\.careermate`). 안에 careermate.sqlite,
|
|
165
|
-
exports/, backups/, uploads/, inbox/, server.json. (하위 폴더·server.json은 설치 시점이 아니라
|
|
166
|
-
최초 사용·대시보드 실행 시 자동 생성됩니다.)
|
|
167
|
-
- `CAREERMATE_DATA_DIR` — 데이터 폴더 위치 변경.
|
|
168
|
-
- `CAREERMATE_PORT` — 대시보드 포트 고정(기본 4319, 사용 중이면 +1씩 다음 빈 포트를 최대 15개까지 탐색).
|
|
169
|
-
- `CAREERMATE_NO_OPEN=1` — 대시보드 시작 시 브라우저 자동 열기 비활성화(값이 정확히 `1`일 때만).
|
|
170
|
-
|
|
171
|
-
────────────────────────────────────────────────────────
|
|
172
|
-
7. 문제 해결
|
|
173
|
-
────────────────────────────────────────────────────────
|
|
174
|
-
- 연결이 안 보이면: ① <BIN> 절대경로가 맞는지 ② `node --version`이 22.5+인지 ③ 설치(npm install)가
|
|
175
|
-
끝났는지 ④ 설정 파일 경로·이름이 맞는지 확인한 뒤 **AI 앱을 완전히 재시작**.
|
|
176
|
-
- 한 번에 점검: `node <BIN> doctor` — Node 버전·데이터 폴더 쓰기 권한·DB·도구 등록을 모아서
|
|
177
|
-
확인합니다(AI 앱을 켜기 전에도 설치 자체를 검증할 수 있어요).
|
|
178
|
-
- 다시 설치(업데이트): npm install --prefix "<설치 prefix>" careermate@latest 후 AI 앱 재시작.
|
|
179
|
-
- DB는 MCP 서버가 켜질 때 자동으로 생성·마이그레이트하므로 보통 따로 손댈 일이 없습니다.
|
|
180
|
-
- 데이터를 완전히 비우려면 `~/.careermate/backups/`로 먼저 백업한 뒤
|
|
181
|
-
`~/.careermate/careermate.sqlite`를 지우고 AI 앱을 재시작하면 새로 만들어집니다(되돌릴 수 없으니 백업 먼저).
|
|
182
|
-
|
|
183
|
-
────────────────────────────────────────────────────────
|
|
184
|
-
8. 설치 완료 카드 — 사용자에게 보여주고 마무리
|
|
185
|
-
────────────────────────────────────────────────────────
|
|
186
|
-
연결 검증(5번)까지 끝났으면, 사용자에게 아래 "완료 카드"를 쉬운 한국어로 보여주세요(도구
|
|
187
|
-
이름은 노출하지 말 것). 다음에 뭘 하면 되는지 한눈에 알게 하는 게 목적입니다. **지금 네가
|
|
188
|
-
돌고 있는 앱에 맞는 항목만 골라** 안내하세요(공통 '붙여넣기'는 항상 포함).
|
|
189
|
-
|
|
190
|
-
✅ 설치 끝! 이제 이렇게 시작하세요
|
|
191
|
-
|
|
192
|
-
1) (아직이면) 이 앱을 완전히 껐다 다시 켜세요. 처음 한 번 뜨는 승인 창은 '허용'을 누르세요.
|
|
193
|
-
|
|
194
|
-
2) 이력서를 저에게 주세요 — 편한 방법 아무거나:
|
|
195
|
-
· [공통·제일 쉬움] 이력서 '내용'을 복사해서 대화창에 그대로 붙여넣기. 파일이 어디 있든 상관없어요.
|
|
196
|
-
· [Claude 채팅] 채팅창에 이력서 파일을 직접 첨부.
|
|
197
|
-
· [폴더 기반 — Claude Code 탭 / Codex / Antigravity 등] 작업 폴더에 파일을 두고
|
|
198
|
-
"이력서.pdf 읽어서 등록해줘"처럼 파일명·경로로 알려주기.
|
|
199
|
-
· [인박스 폴더 — 파일 첨부가 안 되는 CLI에 특히 편함] 파일을 `~/.careermate/inbox`
|
|
200
|
-
(Windows: `%USERPROFILE%\.careermate\inbox`)에 넣고 "인박스에 넣은 이력서 읽어줘"라고 하기.
|
|
201
|
-
· ⚠️ 스캔본(이미지) PDF나 보안 걸린 파일은 못 읽을 수 있어요 → 그때는 내용을 텍스트로 붙여넣어 주세요.
|
|
202
|
-
그리고 "내 이력서로 처음 세팅 해줘" 한마디면 제가 프로필·이력서로 정리해 저장합니다.
|
|
203
|
-
|
|
204
|
-
3) 대시보드에서 눈으로 확인: http://127.0.0.1:4319
|
|
205
|
-
(안 열려 있으면 "대시보드 열어줘"라고 하세요. 포트가 바뀌면 실제 주소를 알려드릴게요.)
|
|
206
|
-
|
|
207
|
-
* 데이터는 전부 이 컴퓨터(~/.careermate)에만 저장돼요. 어디로도 올라가지 않습니다.
|
|
208
|
-
|
|
209
|
-
헷갈려 할 때 한 줄 안내:
|
|
210
|
-
- "이력서 주기·세팅해줘" 같은 말은 전부 '저와의 대화창'에 자연어로 하면 됩니다(명령어가 아니에요).
|
|
211
|
-
- 설치 때 친 명령어(npm·node…)는 '터미널'에서 돈 것이고, 보통 제가 대신 실행했습니다.
|
|
212
|
-
· Claude Code 탭 / Codex = 터미널 안에서 저와 대화(한 창). · Claude 채팅 앱 = 터미널 없이 채팅창만.
|
|
213
|
-
|
|
214
|
-
그 다음부터는 평소 흐름입니다(공고 저장 → 적합도 분석 → 자소서 작성 → 지원 상태 관리 → 면접 준비).
|
|
215
|
-
**무언가를 저장·완료할 때마다 대시보드 주소(위)를 알려주세요.** 단 브라우저를 자동으로 새로 여는 건
|
|
216
|
-
**첫 온보딩 때 한 번만** — 이후엔 링크만 보여주고, 사용자가 "열어줘"라고 하면 그때 엽니다. 자소서 등
|
|
217
|
-
"사람이 쓴 듯한 글"을 쓰기 직전에는 `get_writing_style_guide`를, 분석·작성 직전에는
|
|
218
|
-
`get_application_context`를 먼저 호출하세요.
|
package/dist/site/robots.txt
DELETED
package/dist/site/sitemap.xml
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
3
|
-
<url>
|
|
4
|
-
<loc>https://careermate.life/</loc>
|
|
5
|
-
<lastmod>2026-06-17</lastmod>
|
|
6
|
-
<changefreq>weekly</changefreq>
|
|
7
|
-
<priority>1.0</priority>
|
|
8
|
-
</url>
|
|
9
|
-
<url>
|
|
10
|
-
<loc>https://careermate.life/start</loc>
|
|
11
|
-
<lastmod>2026-06-17</lastmod>
|
|
12
|
-
<changefreq>monthly</changefreq>
|
|
13
|
-
<priority>0.8</priority>
|
|
14
|
-
</url>
|
|
15
|
-
<url>
|
|
16
|
-
<loc>https://careermate.life/demo</loc>
|
|
17
|
-
<lastmod>2026-06-17</lastmod>
|
|
18
|
-
<changefreq>monthly</changefreq>
|
|
19
|
-
<priority>0.6</priority>
|
|
20
|
-
</url>
|
|
21
|
-
</urlset>
|
package/dist/site/start.html
DELETED
|
@@ -1,353 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="ko" data-theme="dark">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
-
<script>
|
|
7
|
-
(function () {
|
|
8
|
-
try {
|
|
9
|
-
var t = window.localStorage.getItem('careermate-theme') || window.localStorage.getItem('cf-theme');
|
|
10
|
-
document.documentElement.setAttribute('data-theme', t === 'light' || t === 'dark' ? t : 'dark');
|
|
11
|
-
} catch (e) { document.documentElement.setAttribute('data-theme', 'dark'); }
|
|
12
|
-
})();
|
|
13
|
-
</script>
|
|
14
|
-
<title>처음이세요? — CareerMate 시작하기</title>
|
|
15
|
-
<meta name="description" content="터미널이 뭔지 몰라도 괜찮아요. 쓰는 AI와 컴퓨터만 고르면, 당신에게 맞는 설치 길 하나를 처음부터 알려드립니다." />
|
|
16
|
-
<meta name="robots" content="index,follow" />
|
|
17
|
-
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
|
|
18
|
-
<meta name="theme-color" content="#faf8f4" media="(prefers-color-scheme: light)" />
|
|
19
|
-
<meta name="theme-color" content="#14130f" media="(prefers-color-scheme: dark)" />
|
|
20
|
-
<link rel="preload" href="fonts/PretendardVariable.woff2" as="font" type="font/woff2" crossorigin />
|
|
21
|
-
<link rel="stylesheet" href="style.css" />
|
|
22
|
-
<!-- Privacy-friendly analytics for the marketing site only (never the local 127.0.0.1 app). -->
|
|
23
|
-
<script src="/analytics.js" defer></script>
|
|
24
|
-
<style>
|
|
25
|
-
/* 선택형 위저드 — start.html 전용. style.css 토큰 재사용. */
|
|
26
|
-
.wizard { max-width: 760px; margin: 0 auto; }
|
|
27
|
-
.q { margin: 0 0 1.6rem; }
|
|
28
|
-
.q__label { font-weight: 650; margin: 0 0 .7rem; font-size: 1.02rem; }
|
|
29
|
-
.q__label .num { color: var(--accent); margin-right: .4rem; }
|
|
30
|
-
.choices { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
|
|
31
|
-
.choice { position: relative; display: block; cursor: pointer; border: 1.5px solid var(--border-strong);
|
|
32
|
-
border-radius: var(--radius); background: var(--surface); padding: .85rem 1rem; transition: border-color .12s, background .12s; }
|
|
33
|
-
.choice:hover { background: var(--surface-hover); }
|
|
34
|
-
.choice input { position: absolute; opacity: 0; pointer-events: none; }
|
|
35
|
-
.choice.is-sel { border-color: var(--accent); background: var(--accent-soft); }
|
|
36
|
-
.choice__t { font-weight: 600; display: block; }
|
|
37
|
-
.choice__s { color: var(--text-tertiary); font-size: .85rem; display: block; margin-top: .15rem; }
|
|
38
|
-
.result { display: none; margin-top: 2rem; padding-top: 1.6rem; border-top: 1px solid var(--border); }
|
|
39
|
-
.result.show { display: block; }
|
|
40
|
-
.path { display: none; }
|
|
41
|
-
.path.show { display: block; }
|
|
42
|
-
.os-win, .os-mac { display: none; }
|
|
43
|
-
.result[data-os="win"] .os-win { display: revert; }
|
|
44
|
-
.result[data-os="mac"] .os-mac { display: revert; }
|
|
45
|
-
li.step.os-win, li.step.os-mac { display: none; }
|
|
46
|
-
.result[data-os="win"] li.step.os-win { display: flex; }
|
|
47
|
-
.result[data-os="mac"] li.step.os-mac { display: flex; }
|
|
48
|
-
.path__tag { display: inline-block; font-size: .78rem; font-weight: 650; color: var(--accent);
|
|
49
|
-
background: var(--accent-soft); border: 1px solid var(--accent-border); border-radius: 999px; padding: .15rem .6rem; margin-bottom: .5rem; }
|
|
50
|
-
.filenote { margin-top: .9rem; font-size: .9rem; color: var(--text-secondary);
|
|
51
|
-
background: var(--bg-subtle); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: .7rem .9rem; }
|
|
52
|
-
.subcard { border: 1px solid var(--border); border-radius: var(--radius); padding: 1.1rem 1.2rem; margin: 1rem 0; background: var(--bg-elev); }
|
|
53
|
-
.hint { color: var(--text-tertiary); font-size: .9rem; }
|
|
54
|
-
</style>
|
|
55
|
-
</head>
|
|
56
|
-
<body>
|
|
57
|
-
<nav class="nav">
|
|
58
|
-
<a class="nav__brand" href="index.html#top">
|
|
59
|
-
<span class="nav__logo" aria-hidden="true">C</span>
|
|
60
|
-
<span class="nav__name">CareerMate</span>
|
|
61
|
-
</a>
|
|
62
|
-
<div class="nav__links">
|
|
63
|
-
<a href="index.html#how">동작 방식</a>
|
|
64
|
-
<a href="index.html#install">설치 전체</a>
|
|
65
|
-
</div>
|
|
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>
|
|
68
|
-
<button class="theme-toggle" id="theme-toggle" type="button" aria-label="다크 모드 전환" title="다크 모드 전환">
|
|
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>
|
|
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>
|
|
71
|
-
</button>
|
|
72
|
-
</div>
|
|
73
|
-
</nav>
|
|
74
|
-
|
|
75
|
-
<main id="top">
|
|
76
|
-
<header class="hero hero--solo">
|
|
77
|
-
<div class="hero__main">
|
|
78
|
-
<span class="pill-badge"><span class="pill-badge__dot" aria-hidden="true"></span> 처음이세요?</span>
|
|
79
|
-
<h1 class="hero__title">터미널이 뭔지 몰라도 괜찮아요</h1>
|
|
80
|
-
<p class="hero__lede">
|
|
81
|
-
<strong>쓰는 AI</strong>와 <strong>컴퓨터</strong>만 고르면, 당신에게 맞는 설치 길 <strong>하나</strong>를 처음부터 알려드립니다.
|
|
82
|
-
</p>
|
|
83
|
-
</div>
|
|
84
|
-
</header>
|
|
85
|
-
|
|
86
|
-
<section class="section" style="padding-top:0">
|
|
87
|
-
<div class="wizard">
|
|
88
|
-
<!-- Q1 -->
|
|
89
|
-
<div class="q">
|
|
90
|
-
<p class="q__label"><span class="num">1</span>어떤 AI를 쓰고 있나요?</p>
|
|
91
|
-
<div class="choices" id="q-sub" role="radiogroup" aria-label="쓰는 AI">
|
|
92
|
-
<label class="choice"><input type="radio" name="sub" value="claude" />
|
|
93
|
-
<span class="choice__t">Claude 유료</span><span class="choice__s">Pro·Max 구독</span></label>
|
|
94
|
-
<label class="choice"><input type="radio" name="sub" value="chatgpt" />
|
|
95
|
-
<span class="choice__t">ChatGPT 유료</span><span class="choice__s">Plus 이상 구독</span></label>
|
|
96
|
-
<label class="choice"><input type="radio" name="sub" value="free" />
|
|
97
|
-
<span class="choice__t">기타 (그 외 AI)</span><span class="choice__s">Claude·ChatGPT 외 / 잘 모름</span></label>
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
<!-- Q2 -->
|
|
101
|
-
<div class="q">
|
|
102
|
-
<p class="q__label"><span class="num">2</span>컴퓨터는요?</p>
|
|
103
|
-
<div class="choices" id="q-os" role="radiogroup" aria-label="운영체제" style="grid-template-columns:repeat(auto-fit,minmax(140px,1fr))">
|
|
104
|
-
<label class="choice"><input type="radio" name="os" value="win" />
|
|
105
|
-
<span class="choice__t">Windows</span></label>
|
|
106
|
-
<label class="choice"><input type="radio" name="os" value="mac" />
|
|
107
|
-
<span class="choice__t">Mac</span></label>
|
|
108
|
-
</div>
|
|
109
|
-
</div>
|
|
110
|
-
|
|
111
|
-
<p class="hint" id="prompt-pick">위 두 가지를 고르면 아래에 당신에게 맞는 길이 나타납니다.</p>
|
|
112
|
-
|
|
113
|
-
<!-- ============ 결과 ============ -->
|
|
114
|
-
<div class="result" id="result" aria-live="polite">
|
|
115
|
-
|
|
116
|
-
<!-- ===== Claude → 방법1 Code 탭 / 방법2 파일설치 ===== -->
|
|
117
|
-
<div class="path" data-sub="claude">
|
|
118
|
-
<span class="path__tag">당신에겐 — Claude 데스크톱</span>
|
|
119
|
-
<h2>Claude 데스크톱으로</h2>
|
|
120
|
-
<p>세 가지 길이 있어요 — <strong>Code 탭</strong>(앱 안에서 한 문장·추천), <strong>파일 설치</strong>(터미널·Node 없이), <strong>터미널(CLI)</strong>(터미널에 익숙하다면). 셋 다 같은 CareerMate에 연결됩니다. 잘 모르겠으면 <strong>방법 1</strong>만 따라 하세요.</p>
|
|
121
|
-
|
|
122
|
-
<div class="subcard">
|
|
123
|
-
<strong>방법 1 — Code 탭 (추천)</strong>
|
|
124
|
-
<p class="hint" style="margin:.3rem 0 .8rem">앱 안에서 끝나 별도 터미널이 필요 없습니다. <strong>Pro 이상</strong> 구독이 필요해요.</p>
|
|
125
|
-
<ol class="steps">
|
|
126
|
-
<li class="step"><div class="step__no">1</div><div class="step__body">
|
|
127
|
-
<h3>Claude 데스크톱 설치 → 로그인</h3>
|
|
128
|
-
<p><a href="https://claude.ai/download" rel="noopener" target="_blank">claude.ai/download</a>에서 받아 설치하고 본인 계정으로 로그인하세요.</p>
|
|
129
|
-
</div></li>
|
|
130
|
-
<li class="step os-win"><div class="step__no">2</div><div class="step__body">
|
|
131
|
-
<h3>(Windows) Git 설치</h3>
|
|
132
|
-
<p>Code 탭을 처음 열면 앱이 <strong>"Git is required"</strong>라고 안내합니다.<br /><a href="https://git-scm.com/download/win" rel="noopener" target="_blank">git-scm.com/download/win</a>에서 설치하고 앱을 다시 켜면 됩니다. (Mac은 필요 없습니다.)</p>
|
|
133
|
-
</div></li>
|
|
134
|
-
<li class="step"><div class="step__no">3</div><div class="step__body">
|
|
135
|
-
<h3>Code 탭에서 빈 폴더 선택</h3>
|
|
136
|
-
<p>상단의 <strong>Code</strong> 탭을 누르고, 새 폴더 하나(예: 문서/CareerMate)를 작업 폴더로 고르세요.<br />이 폴더가 CareerMate 작업실이 됩니다.</p>
|
|
137
|
-
</div></li>
|
|
138
|
-
<li class="step"><div class="step__no">4</div><div class="step__body">
|
|
139
|
-
<h3>이 문장 한 번 붙여넣기</h3>
|
|
140
|
-
<p class="paste-note">💬 Code 탭의 <strong>대화창에</strong> 붙여넣으세요 — 터미널 명령이 아니에요. 이 문장은 공개 안내 페이지만 읽어 설치하며, <strong>당신의 이력서·개인정보는 외부로 올라가지 않아요.</strong></p>
|
|
141
|
-
<div class="code"><button class="copy-btn" type="button" data-copy-target="p-claude">복사</button>
|
|
142
|
-
<pre id="p-claude">https://careermate.life/llms-install.txt 를 읽고, 그 안내대로 CareerMate를 이 폴더에 설치하고 연결해줘. 데이터도 이 폴더의 .cm/data 안에 저장하고, Node 설치처럼 시스템에 바꿀 게 있으면 실행 전에 먼저 알려줘. 설치가 끝나면 앱 재시작 방법과 이력서를 주는 법, 대시보드 주소(http://127.0.0.1:4319)도 알려줘.</pre></div>
|
|
143
|
-
<p class="step__tip"><strong>Node가 없어도 됩니다.</strong> 필요하면 Claude가 먼저 확인하고 설치까지 도와줍니다.<br />직접 받으려면 아래 <strong>'필요한 프로그램 받기'</strong>의 Node.js를 보세요. 설치 중 뜨는 허용 창은 눌러 주세요.</p>
|
|
144
|
-
</div></li>
|
|
145
|
-
<li class="step"><div class="step__no">5</div><div class="step__body">
|
|
146
|
-
<h3>앱 재시작 → 확인</h3>
|
|
147
|
-
<p>Claude 앱을 완전히 껐다 켜고(처음 한 번 MCP 승인 허용), <strong>"커리어메이트 연결됐는지 확인해줘"</strong>라고 말하면 끝.</p>
|
|
148
|
-
<p class="recover"><strong>도구가 안 보이면?</strong> 앱을 트레이까지 <strong>완전히 종료</strong>했다 다시 켜고, 처음 뜬 승인 창을 허용했는지 확인하세요. 그래도 안 되면 아래 <strong>방법 2</strong>(파일 설치)를 써 보세요.</p>
|
|
149
|
-
</div></li>
|
|
150
|
-
</ol>
|
|
151
|
-
<div class="filenote">📎 <strong>이력서 넣는 법:</strong> 가장 쉬운 방법은 <strong>이력서 내용을 대화창에 붙여넣기</strong>입니다. 또는 작업 폴더에 파일을 넣고 <em>"이력서.pdf 읽어서 등록해줘"</em>라고 하거나 채팅에 직접 첨부하세요. (스캔본·보안 PDF는 안 읽힐 수 있습니다 → 그땐 텍스트로 붙여넣으세요.)</div>
|
|
152
|
-
</div>
|
|
153
|
-
|
|
154
|
-
<details class="acc" style="margin-top:1rem">
|
|
155
|
-
<summary>방법 2 — 파일로 설치 (터미널·Node 없이) <span class="acc__hint">무료 플랜도 가능</span></summary>
|
|
156
|
-
<div class="acc__body">
|
|
157
|
-
<p class="hint" style="margin:.3rem 0 .8rem">Claude 데스크톱 <strong>채팅</strong>에 확장으로 붙이는 방식. 터미널·Node 없이 되고 <strong>무료·유료 어느 플랜이든</strong> 됩니다. 단 Claude 내장 Node 버전에 따라 불안정할 수 있어요 — 안 되면 방법 1을 쓰세요.</p>
|
|
158
|
-
<ol class="steps">
|
|
159
|
-
<li class="step"><div class="step__no">1</div><div class="step__body">
|
|
160
|
-
<h3>설치 파일 받기</h3>
|
|
161
|
-
<p>
|
|
162
|
-
<a class="btn btn--ghost" href="https://github.com/osntak/careermate/releases/latest/download/careermate.zip">.zip</a>
|
|
163
|
-
<a class="btn btn--ghost" href="https://github.com/osntak/careermate/releases/latest/download/careermate.mcpb">.mcpb</a>
|
|
164
|
-
</p>
|
|
165
|
-
<p class="hint"><code>.zip</code> 압축을 풀어 폴더로 추가하세요. <code>.mcpb</code> 직접 추가는 일부 Claude Desktop 버전에서 실패할 수 있습니다.</p>
|
|
166
|
-
</div></li>
|
|
167
|
-
<li class="step"><div class="step__no">2</div><div class="step__body">
|
|
168
|
-
<h3>설정에서 추가</h3>
|
|
169
|
-
<p>Claude 데스크톱 → <strong>Settings → Extensions → Advanced settings → Install extension…</strong> 에서 압축을 푼 폴더를 추가하세요. <span class="hint">(Windows에서 더블클릭·드래그는 반응이 없을 수 있으니 이 메뉴를 쓰세요.)</span></p>
|
|
170
|
-
</div></li>
|
|
171
|
-
<li class="step"><div class="step__no">3</div><div class="step__body">
|
|
172
|
-
<h3>재시작 → 확인</h3>
|
|
173
|
-
<p>앱을 껐다 켜고 <strong>"커리어메이트 연결됐는지 확인해줘"</strong>. 도구가 보이면 끝.</p>
|
|
174
|
-
</div></li>
|
|
175
|
-
</ol>
|
|
176
|
-
<div class="filenote">📎 <strong>이력서 넣는 법:</strong> Claude 채팅창에 파일을 <strong>직접 첨부</strong>하면 됩니다(가장 쉬움).</div>
|
|
177
|
-
</div>
|
|
178
|
-
</details>
|
|
179
|
-
|
|
180
|
-
<details class="acc">
|
|
181
|
-
<summary>방법 3 — 터미널(CLI)로 (Claude Code) <span class="acc__hint">터미널에 익숙하다면</span></summary>
|
|
182
|
-
<div class="acc__body">
|
|
183
|
-
<p class="hint" style="margin:.3rem 0 .8rem">Code 탭과 <strong>같은 엔진</strong>을 터미널에서 씁니다. <strong>Pro 이상</strong> 구독과 <strong>Node</strong>가 필요해요. 터미널이 처음이면 방법 1을 쓰세요.</p>
|
|
184
|
-
<ol class="steps">
|
|
185
|
-
<li class="step"><div class="step__no">1</div><div class="step__body">
|
|
186
|
-
<h3>Node.js 설치</h3>
|
|
187
|
-
<p class="os-win">Windows: PowerShell에 붙여넣기 →</p>
|
|
188
|
-
<div class="code os-win"><button class="copy-btn" type="button" data-copy-target="p-node-win-cl">복사</button><pre id="p-node-win-cl">winget install OpenJS.NodeJS.LTS</pre></div>
|
|
189
|
-
<p class="os-mac">Mac: 터미널에 붙여넣기(Homebrew 없으면 nodejs.org에서 LTS 설치) →</p>
|
|
190
|
-
<div class="code os-mac"><button class="copy-btn" type="button" data-copy-target="p-node-mac-cl">복사</button><pre id="p-node-mac-cl">brew install node</pre></div>
|
|
191
|
-
<p class="step__tip">명령이 어려우면 <a href="https://nodejs.org/" rel="noopener" target="_blank">nodejs.org</a>에서 <strong>설치 파일을 받아 더블클릭</strong>(계속 '다음')해도 됩니다. <strong>터미널 여는 법은 아래 도움말</strong>을 참고하세요.</p>
|
|
192
|
-
</div></li>
|
|
193
|
-
<li class="step"><div class="step__no">2</div><div class="step__body">
|
|
194
|
-
<h3>Claude Code 설치 → 로그인</h3>
|
|
195
|
-
<div class="code"><button class="copy-btn" type="button" data-copy-target="p-cc-install">복사</button><pre id="p-cc-install">npm install -g @anthropic-ai/claude-code</pre></div>
|
|
196
|
-
<p class="step__tip">설치 후 <code>claude</code>를 실행하면 로그인 창이 열립니다(본인 Pro·Max 계정).</p>
|
|
197
|
-
</div></li>
|
|
198
|
-
<li class="step"><div class="step__no">3</div><div class="step__body">
|
|
199
|
-
<h3>빈 폴더에서 claude 실행 → 이 문장</h3>
|
|
200
|
-
<p class="paste-note">💬 실행한 <strong>claude 안에</strong> 붙여넣으세요 — AI에게 보내는 메시지예요(쉘 명령이 아님). 공개 안내만 읽어 설치하며, <strong>당신의 데이터는 외부로 올라가지 않아요.</strong></p>
|
|
201
|
-
<div class="code"><button class="copy-btn" type="button" data-copy-target="p-claude-cli">복사</button>
|
|
202
|
-
<pre id="p-claude-cli">https://careermate.life/llms-install.txt 를 읽고, 그 안내대로 CareerMate를 이 폴더에 설치하고 연결해줘. 데이터도 이 폴더의 .cm/data 안에 저장하고, Node 설치처럼 시스템에 바꿀 게 있으면 실행 전에 먼저 알려줘. 설치가 끝나면 앱 재시작 방법과 이력서를 주는 법, 대시보드 주소(http://127.0.0.1:4319)도 알려줘.</pre></div>
|
|
203
|
-
<p class="step__tip">설치 중 <strong>네트워크·허용</strong>을 물으면 한 번 허용하세요(npm 다운로드 때문).</p>
|
|
204
|
-
</div></li>
|
|
205
|
-
<li class="step"><div class="step__no">4</div><div class="step__body">
|
|
206
|
-
<h3>확인</h3>
|
|
207
|
-
<p>claude 안에서 <code>/mcp</code>를 입력해 <code>careermate</code>가 보이면 연결 성공.</p>
|
|
208
|
-
<p class="recover"><strong>안 보이면?</strong> <code>node --version</code>이 v22.5 이상인지, claude를 껐다 켰는지 확인하세요. 그래도 안 되면 설치 전체의 <a href="index.html#install">문제가 생겼을 때</a>를 참고하세요.</p>
|
|
209
|
-
</div></li>
|
|
210
|
-
</ol>
|
|
211
|
-
<div class="filenote">📎 <strong>이력서 넣는 법:</strong> 작업 폴더에 파일을 넣고 <em>"이력서.pdf 읽어서 등록해줘"</em>라고 하거나, 채팅에 직접 첨부하세요.</div>
|
|
212
|
-
</div>
|
|
213
|
-
</details>
|
|
214
|
-
</div>
|
|
215
|
-
|
|
216
|
-
<!-- ===== ChatGPT 유료 → Codex CLI ===== -->
|
|
217
|
-
<div class="path" data-sub="chatgpt">
|
|
218
|
-
<span class="path__tag">당신에겐 — Codex CLI</span>
|
|
219
|
-
<h2>ChatGPT 구독으로 Codex에서</h2>
|
|
220
|
-
<p>ChatGPT는 <strong>Codex를 터미널(CLI)에서</strong> 씁니다 — 명령을 몇 줄 입력합니다.<br />Codex <strong>데스크톱 앱은 등록이 사라질 수 있어</strong> 권장하지 않습니다.</p>
|
|
221
|
-
<ol class="steps">
|
|
222
|
-
<li class="step"><div class="step__no">1</div><div class="step__body">
|
|
223
|
-
<h3>Node.js 설치</h3>
|
|
224
|
-
<p class="os-win">Windows: PowerShell에 붙여넣기 →</p>
|
|
225
|
-
<div class="code os-win"><button class="copy-btn" type="button" data-copy-target="p-node-win">복사</button><pre id="p-node-win">winget install OpenJS.NodeJS.LTS</pre></div>
|
|
226
|
-
<p class="os-mac">Mac: 터미널에 붙여넣기(Homebrew 없으면 nodejs.org에서 LTS 설치) →</p>
|
|
227
|
-
<div class="code os-mac"><button class="copy-btn" type="button" data-copy-target="p-node-mac">복사</button><pre id="p-node-mac">brew install node</pre></div>
|
|
228
|
-
<p class="step__tip">명령이 어려우면 <a href="https://nodejs.org/" rel="noopener" target="_blank">nodejs.org</a>에서 <strong>설치 파일을 받아 더블클릭</strong>(계속 '다음')해도 됩니다.<br />설치 후 터미널을 새로 열고 <code>node --version</code>이 v22.5 이상인지 확인하세요. <strong>터미널 여는 법은 아래 도움말</strong>을 참고하세요.</p>
|
|
229
|
-
</div></li>
|
|
230
|
-
<li class="step"><div class="step__no">2</div><div class="step__body">
|
|
231
|
-
<h3>Codex CLI 설치 → ChatGPT 로그인</h3>
|
|
232
|
-
<div class="code"><button class="copy-btn" type="button" data-copy-target="p-codex-install">복사</button><pre id="p-codex-install">npm install -g @openai/codex</pre></div>
|
|
233
|
-
<p class="step__tip">설치 후 <code>codex</code>를 실행하면 ChatGPT 로그인 창이 열립니다(본인 구독 계정).</p>
|
|
234
|
-
</div></li>
|
|
235
|
-
<li class="step"><div class="step__no">3</div><div class="step__body">
|
|
236
|
-
<h3>빈 폴더에서 codex 실행 → 이 문장</h3>
|
|
237
|
-
<p class="paste-note">💬 실행한 <strong>codex 안에</strong> 붙여넣으세요 — AI에게 보내는 메시지예요(쉘 명령이 아님). 공개 안내만 읽어 설치하며, <strong>당신의 데이터는 외부로 올라가지 않아요.</strong></p>
|
|
238
|
-
<div class="code"><button class="copy-btn" type="button" data-copy-target="p-codex">복사</button>
|
|
239
|
-
<pre id="p-codex">https://careermate.life/llms-install.txt 를 읽고, 그 안내대로 CareerMate를 이 폴더에 설치하고 연결해줘. 데이터도 이 폴더의 .cm/data 안에 저장하고, Node 설치처럼 시스템에 바꿀 게 있으면 실행 전에 먼저 알려줘. 설치가 끝나면 앱 재시작 방법과 이력서를 주는 법, 대시보드 주소(http://127.0.0.1:4319)도 알려줘.</pre></div>
|
|
240
|
-
<p class="step__tip">설치 중 <strong>네트워크 허용</strong>을 물으면 한 번 허용하세요(npm 다운로드 때문).</p>
|
|
241
|
-
</div></li>
|
|
242
|
-
<li class="step"><div class="step__no">4</div><div class="step__body">
|
|
243
|
-
<h3>확인</h3>
|
|
244
|
-
<p>Codex 안에서 <code>/mcp</code>를 입력해 <code>careermate</code>가 보이면 연결 성공.</p>
|
|
245
|
-
<p class="recover"><strong>안 보이면?</strong> <code>node --version</code>이 v22.5 이상인지, Codex를 껐다 켰는지 확인하세요. 그래도 안 되면 설치 전체의 <a href="index.html#install">문제가 생겼을 때</a>를 참고하세요.</p>
|
|
246
|
-
</div></li>
|
|
247
|
-
</ol>
|
|
248
|
-
<div class="filenote">📎 <strong>이력서 넣는 법:</strong> 첨부 기능이 없으니, 작업 폴더에 파일을 넣고 <em>"./이력서.pdf 읽어서 등록해줘"</em>라고 하세요. PDF가 안 읽히면 내용을 <strong>텍스트로 붙여넣으세요.</strong></div>
|
|
249
|
-
</div>
|
|
250
|
-
|
|
251
|
-
<!-- ===== 기타(Agent) → 로컬 접근 가능한 AI 채팅에 붙여넣기 ===== -->
|
|
252
|
-
<div class="path" data-sub="free">
|
|
253
|
-
<span class="path__tag">당신에겐 — 기타 (Agent)</span>
|
|
254
|
-
<h2>로컬 접근 가능한 AI 채팅에서</h2>
|
|
255
|
-
<p>Claude·ChatGPT가 아니어도, <strong>내 컴퓨터에서 명령을 실행할 수 있는 AI 에이전트</strong>면 됩니다. 빈 폴더를 잡고 아래 한 문장을 그 AI의 대화창에 붙여넣으세요.</p>
|
|
256
|
-
<p class="hint" style="margin:.2rem 0 0">⚠️ <strong>무료·약한 모델은 한글 품질·사용량 한계</strong>가 있을 수 있어요(글자가 깨지거나 한도에 빨리 걸림). 제대로 쓰려면 <strong>Claude Pro·ChatGPT Plus</strong>를 권장합니다. <strong>CareerMate 자체는 계속 무료</strong> — 한계는 고른 AI 쪽 이야기예요.<br />Claude 데스크톱을 쓴다면 <strong>맨 위 Q1에서 ‘Claude’</strong>를 고르면 나오는 ‘방법 2(파일 설치)’가 더 쉬울 수 있어요.</p>
|
|
257
|
-
|
|
258
|
-
<ol class="steps">
|
|
259
|
-
<li class="step"><div class="step__no">1</div><div class="step__body">
|
|
260
|
-
<h3>명령 실행 가능한 AI를 빈 폴더에서 열기</h3>
|
|
261
|
-
<p>내 컴퓨터에서 파일·명령을 다룰 수 있는 AI 에이전트(데스크톱 앱이든 CLI든)를 준비하고, 새 폴더 하나를 작업 폴더로 잡으세요.</p>
|
|
262
|
-
</div></li>
|
|
263
|
-
<li class="step"><div class="step__no">2</div><div class="step__body">
|
|
264
|
-
<h3>이 문장 붙여넣기</h3>
|
|
265
|
-
<p class="paste-note">💬 그 AI의 <strong>대화창에</strong> 붙여넣으세요 — 터미널 명령이 아니에요. 공개 안내만 읽어 설치하며, <strong>당신의 데이터는 외부로 올라가지 않아요.</strong></p>
|
|
266
|
-
<div class="code"><button class="copy-btn" type="button" data-copy-target="p-other">복사</button>
|
|
267
|
-
<pre id="p-other">https://careermate.life/llms-install.txt 를 읽고, 그 안내대로 CareerMate를 이 폴더에 설치하고 연결해줘. 데이터도 이 폴더의 .cm/data 안에 저장하고, Node 설치처럼 시스템에 바꿀 게 있으면 실행 전에 먼저 알려줘. 설치가 끝나면 앱 재시작 방법과 이력서를 주는 법, 대시보드 주소(http://127.0.0.1:4319)도 알려줘.</pre></div>
|
|
268
|
-
</div></li>
|
|
269
|
-
<li class="step"><div class="step__no">3</div><div class="step__body">
|
|
270
|
-
<h3>확인</h3>
|
|
271
|
-
<p>그 AI를 완전히 껐다 켜고(처음 한 번 승인을 물으면 허용), <strong>"커리어메이트 연결됐는지 확인해줘"</strong> 또는 <code>/mcp</code>로 확인하세요.</p>
|
|
272
|
-
<p class="recover"><strong>안 보이면?</strong> <code>node --version</code>이 v22.5 이상인지, 앱을 완전히 껐다 켰는지 확인하세요. 막히면 설치 전체의 <a href="index.html#install">문제가 생겼을 때</a>를 보세요.</p>
|
|
273
|
-
</div></li>
|
|
274
|
-
</ol>
|
|
275
|
-
<div class="filenote">📎 <strong>이력서 넣는 법:</strong> 작업 폴더에 파일을 넣고 파일명·경로로 지시. 안 읽히면 텍스트로 붙여넣기.</div>
|
|
276
|
-
</div>
|
|
277
|
-
|
|
278
|
-
</div><!-- /result -->
|
|
279
|
-
|
|
280
|
-
<!-- ===== 초보자 도움말 (항상 펼쳐볼 수 있음) ===== -->
|
|
281
|
-
<div class="help" style="margin-top:2.4rem">
|
|
282
|
-
<p class="q__label" style="margin-bottom:.6rem">도움이 더 필요하면</p>
|
|
283
|
-
|
|
284
|
-
<details class="acc">
|
|
285
|
-
<summary>터미널(명령창)이 처음이세요? — 여는 법 <span class="acc__hint">Codex 등 CLI를 쓸 때</span></summary>
|
|
286
|
-
<div class="acc__body">
|
|
287
|
-
<p><strong>터미널</strong>은 명령을 한 줄씩 입력해 실행하는 창입니다. 이렇게 엽니다:</p>
|
|
288
|
-
<ul>
|
|
289
|
-
<li><strong>Windows</strong> — 시작 버튼 → <code>PowerShell</code> 검색 → <strong>Windows PowerShell</strong> 실행. 붙여넣기는 <strong>마우스 우클릭</strong> 또는 <kbd>Ctrl</kbd>+<kbd>V</kbd>, 실행은 <kbd>Enter</kbd>.</li>
|
|
290
|
-
<li><strong>Mac</strong> — <kbd>⌘</kbd>+<kbd>Space</kbd>(스포트라이트) → <code>Terminal</code> 입력 → 실행. 붙여넣기는 <kbd>⌘</kbd>+<kbd>V</kbd>, 실행은 <kbd>Return</kbd>.</li>
|
|
291
|
-
</ul>
|
|
292
|
-
<p class="hint">순서는 항상 같아요: 명령의 <strong>[복사]</strong> 버튼 → 터미널에 <strong>붙여넣기</strong> → <strong>Enter</strong>.</p>
|
|
293
|
-
</div>
|
|
294
|
-
</details>
|
|
295
|
-
|
|
296
|
-
<details class="acc">
|
|
297
|
-
<summary>필요한 프로그램 받기 (링크 모음) <span class="acc__hint">Node · 앱 · 설치 파일</span></summary>
|
|
298
|
-
<div class="acc__body">
|
|
299
|
-
<ul>
|
|
300
|
-
<li><strong>Node.js (LTS)</strong> — <a href="https://nodejs.org/" rel="noopener" target="_blank">nodejs.org</a> · 설치 파일을 받아 더블클릭(계속 '다음'). 터미널·CLI 경로에 필요.</li>
|
|
301
|
-
<li><strong>Claude 데스크톱</strong> — <a href="https://claude.ai/download" rel="noopener" target="_blank">claude.ai/download</a> · Code 탭 / zip 폴더 설치에 사용.</li>
|
|
302
|
-
<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>
|
|
303
|
-
<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>
|
|
304
|
-
</ul>
|
|
305
|
-
<p class="hint">받은 뒤 무엇을 하는지는 위에서 고른 "내게 맞는 길"의 단계를 따르면 됩니다.</p>
|
|
306
|
-
</div>
|
|
307
|
-
</details>
|
|
308
|
-
</div>
|
|
309
|
-
|
|
310
|
-
<p class="hint" style="margin-top:2rem">막히거나 다른 방법이 궁금하면 → <a href="index.html#install">설치 방법 전체 보기</a></p>
|
|
311
|
-
</div>
|
|
312
|
-
</section>
|
|
313
|
-
</main>
|
|
314
|
-
|
|
315
|
-
<footer class="foot">
|
|
316
|
-
<div class="foot__brand"><span class="nav__logo" aria-hidden="true">C</span> CareerMate</div>
|
|
317
|
-
<p>로컬에서 동작하는 MCP 기반 커리어 관리 도구. 모든 데이터는 이 컴퓨터에만 저장됩니다.</p>
|
|
318
|
-
<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>
|
|
319
|
-
</footer>
|
|
320
|
-
|
|
321
|
-
<div class="sr-only" role="status" aria-live="polite" id="copy-status"></div>
|
|
322
|
-
|
|
323
|
-
<script src="landing.js"></script>
|
|
324
|
-
<script>
|
|
325
|
-
(function () {
|
|
326
|
-
'use strict';
|
|
327
|
-
|
|
328
|
-
// --- wizard ---
|
|
329
|
-
var result = document.getElementById('result');
|
|
330
|
-
var pickHint = document.getElementById('prompt-pick');
|
|
331
|
-
var sub = null, os = null;
|
|
332
|
-
function markSel(groupId) {
|
|
333
|
-
document.querySelectorAll('#' + groupId + ' .choice').forEach(function (c) {
|
|
334
|
-
c.classList.toggle('is-sel', !!c.querySelector('input').checked);
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
function render() {
|
|
338
|
-
if (!sub || !os) return;
|
|
339
|
-
if (pickHint) pickHint.style.display = 'none';
|
|
340
|
-
result.setAttribute('data-os', os);
|
|
341
|
-
result.querySelectorAll('.path').forEach(function (p) { p.classList.toggle('show', p.getAttribute('data-sub') === sub); });
|
|
342
|
-
result.classList.add('show');
|
|
343
|
-
}
|
|
344
|
-
document.querySelectorAll('input[name="sub"]').forEach(function (r) {
|
|
345
|
-
r.addEventListener('change', function () { sub = r.value; markSel('q-sub'); render(); });
|
|
346
|
-
});
|
|
347
|
-
document.querySelectorAll('input[name="os"]').forEach(function (r) {
|
|
348
|
-
r.addEventListener('change', function () { os = r.value; markSel('q-os'); render(); });
|
|
349
|
-
});
|
|
350
|
-
})();
|
|
351
|
-
</script>
|
|
352
|
-
</body>
|
|
353
|
-
</html>
|