careermate 0.1.1 → 0.1.3
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/LICENSE +21 -0
- package/README.md +14 -10
- package/THIRD_PARTY_NOTICES.md +15 -0
- package/apps/mcp/src/index.ts +4 -5
- package/apps/web/demo/demo-shim.js +536 -0
- package/apps/web/demo/demo.css +75 -0
- package/apps/web/demo/seed.js +269 -0
- package/apps/web/public/app.js +34 -2
- package/apps/web/public/index.html +10 -2
- package/apps/web/public/lib.js +134 -22
- package/apps/web/public/pages/applications.js +2 -9
- package/apps/web/public/pages/documents.js +73 -52
- package/apps/web/public/pages/home.js +16 -18
- package/apps/web/public/pages/interview.js +9 -12
- package/apps/web/public/pages/jobs.js +40 -41
- package/apps/web/public/pages/profile.js +69 -89
- package/apps/web/public/pages/settings.js +15 -10
- package/apps/web/public/styles.css +63 -4
- package/apps/web/src/http.ts +31 -4
- package/apps/web/src/info.ts +3 -3
- package/apps/web/src/routes.ts +2 -1
- package/apps/web/src/server.ts +1 -4
- package/dist/doctor.mjs +72715 -697
- package/dist/install-page/analytics.js +97 -0
- package/dist/install-page/index.html +94 -112
- package/dist/install-page/landing.js +54 -0
- package/dist/install-page/og.png +0 -0
- package/dist/install-page/robots.txt +4 -0
- package/dist/install-page/sitemap.xml +21 -0
- package/dist/install-page/start.html +26 -46
- package/dist/install-page/style.css +105 -37
- package/dist/mcp.mjs +74044 -2062
- package/dist/migrate.mjs +110 -90
- package/dist/pdf.worker.min.mjs +28 -0
- package/dist/public/app.js +34 -2
- package/dist/public/index.html +10 -2
- package/dist/public/lib.js +134 -22
- package/dist/public/pages/applications.js +2 -9
- package/dist/public/pages/documents.js +73 -52
- package/dist/public/pages/home.js +16 -18
- package/dist/public/pages/interview.js +9 -12
- package/dist/public/pages/jobs.js +40 -41
- package/dist/public/pages/profile.js +69 -89
- package/dist/public/pages/settings.js +15 -10
- package/dist/public/styles.css +63 -4
- package/dist/web.mjs +39740 -326
- package/package.json +6 -3
- package/packages/db/src/paths.ts +11 -0
- package/packages/db/src/repositories.ts +18 -1
- package/packages/mcp-tools/src/bridge.ts +55 -32
- package/packages/mcp-tools/src/index.ts +9 -0
- package/packages/mcp-tools/src/tools.ts +198 -75
- package/packages/mcp-tools/src/update.ts +330 -0
- package/packages/parsers/src/documents.ts +533 -0
- package/packages/parsers/src/index.ts +8 -5
- package/packages/prompts/src/onboarding.ts +2 -2
- package/packages/shared/src/build-info.ts +22 -0
- package/packages/shared/src/index.ts +1 -0
- package/packages/shared/src/schemas.ts +138 -83
- package/packages/workflows/src/definitions.ts +4 -2
- package/scripts/build-demo.mjs +130 -0
- package/scripts/build-dist.mjs +26 -1
- package/scripts/doctor.ts +16 -3
- package/scripts/gen-og.mjs +1 -1
- package/scripts/test.ts +25 -0
- package/scripts/ui-smoke.ts +32 -4
- package/docs/ARCHITECTURE.md +0 -208
- package/docs/CHANGES_V1.md +0 -103
- package/docs/DATA_MODEL.md +0 -460
- package/docs/DECISIONS.md +0 -277
- package/docs/DEMO.md +0 -242
- package/docs/MCP_TOOLS.md +0 -252
- package/docs/ROADMAP.md +0 -134
- package/docs/RUNTIME_DISTRIBUTION_RESEARCH.md +0 -135
- package/docs/START_WORKFLOW.md +0 -131
- package/docs/SUPPORTED_AI_APPS.md +0 -112
- package/docs/TODO.md +0 -57
- package/docs/UX_NOTES.md +0 -247
- package/docs/WORKFLOWS.md +0 -200
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 CareerMate
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
## 주요 기능
|
|
28
28
|
|
|
29
|
-
- **AI와 대화로 모든 작업** — MCP 도구
|
|
29
|
+
- **AI와 대화로 모든 작업** — MCP 도구 31개로 온보딩·프로필·이력서·자소서·공고·핏 분석·지원 상태·면접 준비·AI 티 안 나는 글쓰기까지 처리.
|
|
30
30
|
- **지원 상태 8단계 관리** — `draft`(작성 중) · `planned`(지원 예정) · `applied`(지원 완료) · `document_passed`(서류 합격) · `interview`(면접 진행) · `final_passed`(최종 합격) · `rejected`(불합격) · `on_hold`(보류). `document_passed` 이상에서 면접 준비가 해금됩니다.
|
|
31
31
|
- **자기소개서 버전 관리** — 공고별로 자소서 버전을 쌓고 타임라인으로 비교, 파일로 내보내기.
|
|
32
32
|
- **채용공고 파싱** — 붙여넣은 공고 텍스트를 구조화해 저장.
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
| 프로세스 | 실행 | 역할 |
|
|
43
43
|
| --- | --- | --- |
|
|
44
44
|
| **대시보드 웹 서버** | `npm start` | `http://127.0.0.1:4319` — 내 데이터를 눈으로 확인·관리. `127.0.0.1`에만 바인딩. |
|
|
45
|
-
| **MCP 서버** | `npm run mcp` | stdio 기반. 보통 AI 클라이언트가 자동 실행. 도구
|
|
45
|
+
| **MCP 서버** | `npm run mcp` | stdio 기반. 보통 AI 클라이언트가 자동 실행. 도구 31개 제공. |
|
|
46
46
|
|
|
47
47
|
---
|
|
48
48
|
|
|
@@ -139,21 +139,23 @@ Codex가 `~/.codex/config.toml`에 MCP 서버를 등록합니다. 연결은 Code
|
|
|
139
139
|
|
|
140
140
|
---
|
|
141
141
|
|
|
142
|
-
## MCP 도구 한눈에 (
|
|
142
|
+
## MCP 도구 한눈에 (31개)
|
|
143
143
|
|
|
144
144
|
| 분류 | 도구 |
|
|
145
145
|
| --- | --- |
|
|
146
|
-
| 온보딩 | `get_onboarding_status`
|
|
147
|
-
| 프로필 | `save_profile` · `get_profile`
|
|
148
|
-
| 이력서 | `add_resume` · `get_resumes` |
|
|
149
|
-
|
|
|
150
|
-
|
|
|
146
|
+
| 온보딩 | `get_onboarding_status` |
|
|
147
|
+
| 프로필 | `save_profile` · `get_profile` |
|
|
148
|
+
| 이력서 | `read_document` · `add_resume` · `get_resumes` · `open_inbox` · `read_inbox` |
|
|
149
|
+
| 경력·프로젝트·스킬 | `add_experience` · `get_experiences` · `add_project` · `get_projects` · `add_skill` · `get_skills` |
|
|
150
|
+
| 자기소개서 | `get_cover_letters` · `save_cover_letter_version` · `export_cover_letter` |
|
|
151
|
+
| 채용공고 | `save_job_posting` · `get_job_posting` · `list_jobs` |
|
|
151
152
|
| 핵심 컨텍스트 | **`get_application_context`** (지원에 필요한 맥락을 한 번에 모아줌) |
|
|
152
153
|
| 핏 분석 | `save_fit_analysis` |
|
|
153
154
|
| 지원 상태 | `update_application_status` |
|
|
154
155
|
| 면접 준비 | `save_interview_prep` |
|
|
155
156
|
| 글쓰기 | `get_writing_style_guide` (AI 티 안 나는 한국어 글쓰기 규칙) |
|
|
156
157
|
| 대시보드/활동 | `open_dashboard` · `open_application` · `list_recent_activity` · `get_workflow_guide` |
|
|
158
|
+
| 업데이트 | `check_for_update` · `update_careermate` |
|
|
157
159
|
|
|
158
160
|
이 도구들 위에 5종의 워크플로우(`onboarding`, `analyze_job`, `write_cover_letter`, `manage_application_status`, `prepare_interview`)가 정의되어 있어, AI가 단계별로 자연스럽게 안내합니다.
|
|
159
161
|
|
|
@@ -170,7 +172,7 @@ CareerMate/
|
|
|
170
172
|
│ ├─ shared/ # 공용 타입·zod 스키마·유틸
|
|
171
173
|
│ ├─ db/ # node:sqlite DB 접근·스키마·마이그레이션
|
|
172
174
|
│ ├─ core/ # 도메인 유스케이스
|
|
173
|
-
│ ├─ mcp-tools/ # MCP 도구
|
|
175
|
+
│ ├─ mcp-tools/ # MCP 도구 31개 정의
|
|
174
176
|
│ ├─ exporters/ # 내보내기(자소서 등)
|
|
175
177
|
│ ├─ parsers/ # 채용공고 파싱
|
|
176
178
|
│ ├─ prompts/ # 프롬프트·안내 문구
|
|
@@ -238,7 +240,9 @@ CareerMate/
|
|
|
238
240
|
- [`AGENTS.md`](AGENTS.md) — Codex용 영속 지침. / [`CLAUDE.md`](CLAUDE.md) — Claude Code용 영속 지침.
|
|
239
241
|
- [`docs/SUPPORTED_AI_APPS.md`](docs/SUPPORTED_AI_APPS.md) — **설치 레퍼런스 허브**: 지원 앱 매트릭스 + 설치 3방식(에이전트/npx/.mcpb) + 클라이언트별 수동 MCP 설정 + 알려진 제약. (사람용 안내는 https://careermate.life)
|
|
240
242
|
- [`docs/START_WORKFLOW.md`](docs/START_WORKFLOW.md) — 등록부터 면접 준비까지 단계별 작업 런북.
|
|
243
|
+
- [`docs/FAQ.md`](docs/FAQ.md) — **자주 묻는 질문 / 문제 해결**: "PDF가 안 읽혀요", "분석이 안 돼요", "공고 URL은 어떻게 넣어요" 등.
|
|
241
244
|
- [`docs/TODO.md`](docs/TODO.md) — 남은 작업과 v1 범위 밖 항목.
|
|
245
|
+
- [`CHANGELOG.md`](CHANGELOG.md) — 버전별 변경 이력. / [`CONTRIBUTING.md`](CONTRIBUTING.md) · [`SECURITY.md`](SECURITY.md) · [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) — 기여·보안·행동 강령.
|
|
242
246
|
|
|
243
247
|
---
|
|
244
248
|
|
|
@@ -256,4 +260,4 @@ npm run typecheck
|
|
|
256
260
|
|
|
257
261
|
## 라이선스
|
|
258
262
|
|
|
259
|
-
MIT
|
|
263
|
+
MIT 라이선스 — 전문은 [`LICENSE`](LICENSE) 파일을 참고하세요. (개발용 GitHub 저장소는 현재 비공개입니다.)
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -38,3 +38,18 @@ SOFTWARE.
|
|
|
38
38
|
|
|
39
39
|
> 참고: 원 저장소의 정확한 저작권자 표기(`Copyright (c) <year> <holder>`)를 확인해
|
|
40
40
|
> 위 전문 상단에 그대로 채워 넣는 것을 권장합니다.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 번들에 포함되는 npm 의존성 (문서 텍스트 추출)
|
|
45
|
+
|
|
46
|
+
`read_document` 도구가 PDF·Word·한컴 문서에서 텍스트를 추출하는 데 사용하는 순수 JS 라이브러리들입니다. 배포 시 `dist/` 번들(esbuild)에 코드가 인라인되므로 각 라이선스 고지를 보존합니다. 각 라이선스 전문은 설치된 `node_modules/<패키지>/LICENSE` 에 포함됩니다.
|
|
47
|
+
|
|
48
|
+
| 패키지 | 용도 | 라이선스 | 저작권 |
|
|
49
|
+
| --- | --- | --- | --- |
|
|
50
|
+
| [`mammoth`](https://github.com/mwilliamson/mammoth.js) | `.docx` → 텍스트 | BSD-2-Clause | Copyright (c) Michael Williamson |
|
|
51
|
+
| [`hwp.js`](https://github.com/hahnlee/hwp.js) | `.hwp`(HWP 5.x) → 텍스트 | Apache-2.0 | Copyright Han Lee and other contributors |
|
|
52
|
+
| [`fflate`](https://github.com/101arrowz/fflate) | `.hwpx` 압축 해제 | MIT | Copyright (c) 2023 Arjun Barrett |
|
|
53
|
+
| [`pdfjs-dist`](https://github.com/mozilla/pdf.js) | `.pdf` → 텍스트 | Apache-2.0 | Copyright Mozilla Foundation and contributors |
|
|
54
|
+
|
|
55
|
+
> Apache-2.0(`hwp.js`, `pdfjs-dist`)은 라이선스 사본과 NOTICE 고지 보존을 요구합니다. 위 표와 `node_modules`의 동봉 라이선스로 이를 충족합니다.
|
package/apps/mcp/src/index.ts
CHANGED
|
@@ -6,16 +6,15 @@
|
|
|
6
6
|
* dashboard uses, so anything the AI writes appears in the dashboard instantly,
|
|
7
7
|
* and anything the user edits in the dashboard is visible to the AI.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* All reasoning stays in the user's AI. The only outbound network call is an
|
|
10
|
+
* optional version check (check_for_update / update_careermate) against the
|
|
11
|
+
* public npm registry — no user data is sent; disable with CAREERMATE_NO_UPDATE_CHECK.
|
|
10
12
|
*/
|
|
11
13
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
12
14
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
13
15
|
import { getDb, getDataDir } from '@careermate/db';
|
|
14
16
|
import { TOOLS, toCallToolResult } from '@careermate/mcp-tools';
|
|
15
|
-
|
|
16
|
-
// 번들 빌드(esbuild)에서 package.json 버전으로 치환된다. tsx 개발 실행에서는 정의되지 않아 typeof로 안전 분기.
|
|
17
|
-
declare const __APP_VERSION__: string | undefined;
|
|
18
|
-
const APP_VERSION = typeof __APP_VERSION__ !== 'undefined' ? __APP_VERSION__ : '0.0.0-dev';
|
|
17
|
+
import { APP_VERSION } from '@careermate/shared';
|
|
19
18
|
|
|
20
19
|
async function main(): Promise<void> {
|
|
21
20
|
// Ensure the DB is created/migrated before serving any tool call.
|