careermate 0.0.4 → 0.0.5

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 CHANGED
@@ -14,9 +14,12 @@ CareerMate는 사용자 PC에만 데이터를 두는 **로컬 커리어 작업
14
14
  - **사용자가 파일을 주면 `read_document`로 읽어라.** 이력서·경력기술서·자소서·채용공고가 PDF·Word(`.docx`)·한컴(`.hwp`/`.hwpx`)·텍스트(`.txt`/`.md`) 파일로 컴퓨터에 있고 사용자가 경로로 가리키면, `read_document({ path })`로 본문 텍스트를 추출한 뒤 그 내용으로 작업하고 결과는 아래 저장 도구로 보관한다(파일 내용을 새 파일로 다시 쓰지 마라). 경로는 가능하면 절대 경로로 준다. 이미지·스캔 PDF는 텍스트 레이어가 없어 추출되지 않을 수 있는데, 그때는 이미지를 직접 볼 수 있는 클라이언트로 읽거나 사용자에게 내용을 텍스트로 붙여넣어 달라고 안내한다.
15
15
  - **공고 분석·자소서 작성 전에는 반드시 `get_application_context`를 먼저 호출하라.** 한 번의 호출로 프로필·대표 이력서·경력·스킬·기존 자소서·대상 공고·선호 문체·강조 포인트를 모두 돌려준다. 맥락 없이 작성하지 마라.
16
16
  - **결과는 다시 CareerMate에 저장하라.** 분석 → `save_fit_analysis`, 자소서 → `save_cover_letter_version`, 공고 → `save_job_posting`, 면접 자료 → `save_interview_prep`. 커리어 데이터는 흩어진 파일이 아니라 CareerMate 안에 둔다. 임의의 로컬 파일 생성은 최소화하라(사용자가 파일을 원하면 `export_cover_letter`로 `~/.careermate/exports`에 내보낸다).
17
+ - **도구 응답은 사람 말로 바꿔라.** 응답에 `user_message`가 있으면 그 문장을 우선 활용하고, `suggested_next_action`은 선택지로 제안한다. `id`, `job_id`, `cover_letter_id`, `workflow_id`, JSON 원문, 도구 이름은 내부 작업용으로만 쓰고 사용자에게 그대로 복사하지 않는다.
18
+ - **공고 분석 뒤에는 자기소개서를 곧장 쓰지 말고 선택지를 보여줘라.** 적합도 분석을 저장하고 쉬운 말로 설명한 뒤 "이 공고에 맞춘 자기소개서를 써드릴까요?"라고 묻고, `1. 네, 이 공고에 맞춘 자기소개서를 써줘` / `2. 아니요, 분석만 저장해줘`처럼 고르게 한다. 사용자가 1번을 고른 경우에만 자소서 작성·저장 흐름으로 이어간다.
17
19
  - **5개 표준 워크플로우를 따르라**: onboarding, analyze_job, write_cover_letter, manage_application_status, prepare_interview. 순서가 헷갈리면 `get_workflow_guide`를 호출한다.
18
20
  - **사용자 대면 결과는 전문가 절차로 만들고, 저장 전 자가검증하라.** 공고 분석·자소서·면접 자료 등을 만들기 전에는 `get_workflow_guide`로 그 작업의 실행 절차(EOP)와 적용할 전문가 플레이북·검증기 순서를 먼저 받고, `get_playbook`(도메인 깊은 지식)으로 작성한 뒤 저장 직전 `get_verifier`(검증 루브릭)로 **당신이** 자가검증한다(사람이 쓴 듯한 글은 작성 직전 `get_writing_style_guide`도 함께 적용). CareerMate는 셀 수 있는 항목만 돕고 의미 판단은 당신 몫이다. 사실·수치·고유명사는 그대로 보존한다.
19
21
  - **8단계 지원 상태 게이팅을 존중하라**: `draft`(작성 중) → `planned`(지원 예정) → `applied`(지원 완료) → `document_passed`(서류 합격) → `interview`(면접 진행) → `final_passed`(최종 합격) / `rejected`(불합격) / `on_hold`(보류). 면접 준비는 **`document_passed` 이상**에서만 해금된다. 상태 변경은 `update_application_status`.
22
+ - **업데이트 요청은 구분해서 처리하라.** 사용자가 "최신이야?", "업데이트 있어?"처럼 확인만 요청하면 `check_for_update`로 확인한다. "업데이트해줘", "CareerMate 업데이트해줘", "최신으로 올려줘"처럼 적용을 명시하면 `update_careermate`를 바로 호출한다(이 도구가 최신 버전 확인도 함께 한다). 성공 후에는 AI 앱 또는 MCP 연결 재시작이 필요하다고 안내한다.
20
23
  - **결과를 낼 때마다 대시보드로 안내하라.** 공고 저장·적합도 분석·자소서 버전·상태 변경·면접 준비 등 무언가를 저장·완료할 때마다 대시보드(`http://127.0.0.1:4319`) 주소를 알려준다. 브라우저를 직접 여는 건 **첫 온보딩 때 한 번만**(`open_dashboard`) — 이후에는 자동으로 열지 말고 링크만 보여주고, 사용자가 "열어줘"라고 하면 그때 `open_application`(단건)·`open_dashboard`(전체)로 연다.
21
24
  - **절대 사용자 데이터를 외부로 업로드하지 마라.** 모든 데이터는 `~/.careermate`(Windows: `%USERPROFILE%\.careermate`)에만 있고, 대시보드는 `127.0.0.1`에만 바인딩된다. CareerMate는 (선택적 버전 확인 외) 네트워크로 사용자 데이터를 보내지 않는다.
22
25
  - 기술 용어(MCP, `job_id` 등)는 사용자에게 노출하지 말고, 매 단계 무엇을 하는지 쉬운 한국어로 설명하라. 확실하지 않으면 지어내지 말고 사용자에게 확인하라.
package/INSTALL.md CHANGED
@@ -187,6 +187,7 @@ npm start
187
187
  - 기본 주소: **`http://127.0.0.1:4319`**. 포트가 사용 중이면 자동으로 다음 빈 포트로 폴백하므로, **터미널에 출력된 실제 주소**를 사용자에게 알려주세요.
188
188
  - 항상 `127.0.0.1`에만 바인딩되어 외부 접근이 불가합니다.
189
189
  - 종료: 터미널에서 `Ctrl+C`.
190
+ - AI에게 **"대시보드 열어줘"** 라고 하면 서버가 꺼져 있을 때 백그라운드로 자동 시작한 뒤 브라우저를 엽니다. 이 경우 AI 터미널 세션을 닫아도 대시보드는 계속 실행될 수 있습니다.
190
191
 
191
192
  ---
192
193
 
@@ -219,7 +220,7 @@ npm start
219
220
 
220
221
  | 증상 | 조치 |
221
222
  |---|---|
222
- | **포트 충돌** (4319 사용 중) | 자동 폴백되니 터미널의 실제 주소를 확인. 포트를 고정하려면 `CAREERMATE_PORT` 환경변수를 설정 후 재실행. |
223
+ | **포트 충돌** (4319 사용 중) | 자동 폴백되니 터미널의 실제 주소를 확인. 포트를 고정하려면 `CAREERMATE_PORT` 환경변수를 설정 후 재실행. AI가 백그라운드로 열었을 때의 실행 로그는 `~/.careermate/server.log`에 남습니다. |
223
224
  | **MCP가 연결되지 않음** | ① 등록 경로가 맞는지 ② `node --version`이 22.5.0 이상인지 ③ `npm install`을 마쳤는지 확인 → 그다음 **AI 클라이언트를 완전히 재시작**. 폴더를 옮겼다면 `npm run init`을 다시 실행. |
224
225
  | **Claude `.mcpb` 파일 설치가 무반응/실패** | 알려진 이슈입니다. `careermate.zip`을 내려받아 압축 해제 → Claude Desktop 확장 설정에서 압축을 푼 폴더를 추가. 그래도 안 되면 `npx -y careermate init` 경로로 등록. |
225
226
  | **무엇이 잘못됐는지 모를 때** | `npm run doctor`로 Node·데이터 폴더·DB·도구 개수·대시보드 상태를 한 번에 점검. |
package/README.md CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  ## 주요 기능
32
32
 
33
- - **AI와 대화로 모든 작업** — MCP 도구 35개로 온보딩·프로필·이력서·자소서·공고·핏 분석·지원 상태·면접 준비·전문가 플레이북·AI 티 안 나는 글쓰기까지 처리.
33
+ - **AI와 대화로 모든 작업** — MCP 도구 37개로 온보딩·프로필·이력서·자소서·공고·핏 분석·지원 상태·면접 준비·전문가 플레이북·AI 티 안 나는 글쓰기까지 처리.
34
34
  - **지원 상태 8단계 관리** — `draft`(작성 중) · `planned`(지원 예정) · `applied`(지원 완료) · `document_passed`(서류 합격) · `interview`(면접 진행) · `final_passed`(최종 합격) · `rejected`(불합격) · `on_hold`(보류). `document_passed` 이상에서 면접 준비가 해금됩니다.
35
35
  - **자기소개서 버전 관리** — 공고별로 자소서 버전을 쌓고 타임라인으로 비교, 파일로 내보내기.
36
36
  - **채용공고 파싱** — 붙여넣은 공고 텍스트를 구조화해 저장.
@@ -46,7 +46,7 @@
46
46
  | 프로세스 | 실행 | 역할 |
47
47
  | --- | --- | --- |
48
48
  | **대시보드 웹 서버** | `npm start` | `http://127.0.0.1:4319` — 내 데이터를 눈으로 확인·관리. `127.0.0.1`에만 바인딩. |
49
- | **MCP 서버** | `npm run mcp` | stdio 기반. 보통 AI 클라이언트가 자동 실행. 도구 35개 제공. |
49
+ | **MCP 서버** | `npm run mcp` | stdio 기반. 보통 AI 클라이언트가 자동 실행. 도구 37개 제공. |
50
50
 
51
51
  ---
52
52
 
@@ -141,7 +141,7 @@ npx -y careermate init
141
141
 
142
142
  ---
143
143
 
144
- ## MCP 도구 한눈에 (35개)
144
+ ## MCP 도구 한눈에 (37개)
145
145
 
146
146
  | 분류 | 도구 |
147
147
  | --- | --- |
@@ -149,8 +149,8 @@ npx -y careermate init
149
149
  | 프로필 | `save_profile` · `get_profile` |
150
150
  | 이력서 | `read_document` · `add_resume` · `get_resumes` · `open_inbox` · `read_inbox` |
151
151
  | 경력·프로젝트·스킬 | `add_experience` · `get_experiences` · `add_project` · `get_projects` · `add_skill` · `get_skills` |
152
- | 자기소개서 | `get_cover_letters` · `save_cover_letter_version` · `export_cover_letter` |
153
- | 채용공고 | `save_job_posting` · `get_job_posting` · `list_jobs` |
152
+ | 자기소개서 | `get_cover_letters` · `save_cover_letter_version` · `delete_cover_letter` · `export_cover_letter` |
153
+ | 채용공고 | `save_job_posting` · `get_job_posting` · `list_jobs` · `delete_job_posting` |
154
154
  | 핵심 컨텍스트 | **`get_application_context`** (지원에 필요한 맥락을 한 번에 모아줌) |
155
155
  | 핏 분석 | `save_fit_analysis` |
156
156
  | 지원 상태 | `update_application_status` |
@@ -176,7 +176,7 @@ CareerMate/
176
176
  │ ├─ shared/ # 공용 타입·zod 스키마·유틸
177
177
  │ ├─ db/ # node:sqlite DB 접근·스키마·마이그레이션
178
178
  │ ├─ core/ # 도메인 유스케이스
179
- │ ├─ mcp-tools/ # MCP 도구 35개 정의
179
+ │ ├─ mcp-tools/ # MCP 도구 37개 정의
180
180
  │ ├─ knowledge/ # Career-OS 전문가 플레이북·검증 루브릭 serve
181
181
  │ ├─ exporters/ # 내보내기(자소서 등)
182
182
  │ ├─ parsers/ # 채용공고 파싱
@@ -350,6 +350,7 @@ npm start
350
350
  - The default address is `http://127.0.0.1:4319` and the browser opens automatically.
351
351
  - If the port is busy, it falls back to the next free port — check the actual address printed in the terminal.
352
352
  - Stop it with `Ctrl+C` in the terminal.
353
+ - When connected to an AI client, saying "open the dashboard" starts the server in the background if needed, so it is not tied to the AI terminal session.
353
354
 
354
355
  ### 3) Explore with demo data (optional)
355
356
 
@@ -492,6 +493,7 @@ CareerMate/
492
493
  - `backups/` — backups
493
494
  - `uploads/` — uploaded files
494
495
  - `server.json` — runtime handshake info
496
+ - `server.log` — background dashboard launch log
495
497
  - You can change behavior with environment variables.
496
498
  - `CAREERMATE_DATA_DIR` — change the data folder location
497
499
  - `CAREERMATE_PORT` — pin the dashboard port