채용공고 링크 하나로
공고 분석부터 자소서 초안까지
jobfit은 공고를 받아 정리하고, AI가 공고를 분석해 내 경험 카드와 맞춘 뒤, 원안으로 고른 잘 쓴 자소서의 문체 · 흐름에 내 경험을 맞춰 초안을 씁니다. 그다음 스크립트가 글자수 · 지어낸 숫자 · 연락처를 검사해 한 장으로 정리합니다. 경험 카드도 이력서 · 포트폴리오를 넣으면 AI가 만들어 줍니다. 스크립트가 보장하고, AI는 판단만 합니다.
내 정보는 어디까지 갑니까
낯선 도구에 이력서와 자소서를 넣는 일입니다. 그래서 무엇이 내 컴퓨터에만 남고 무엇이 AI에게 넘어가는지를 먼저 적습니다.
내 컴퓨터에만 있는 것
me/와sources/는 내 개인 폴더경험 카드 · 이력서 항목 · 지원서 정보 · 문체 규칙은me/에, 카드를 뽑을 이력서 · 포트폴리오와 원안 자소서는sources/에 있습니다. 배포 · 공유 대상이 아니고 저장소에도 들어가지 않습니다.- API 키가 필요 없습니다붙여넣기 모드는 무료 웹 채팅에 프롬프트를 직접 붙여 넣습니다. 결과인
report.md·dashboard.xlsx도 내 폴더에 그대로 남습니다. - 에이전트도 내 자료를 읽지 않습니다에이전트 모드에서도
AGENTS.md대로uv run jobfit명령만 쓰고, 프롬프트 파일만 읽고 답 파일만 씁니다.me/·jobs.xlsx· 공고 원문은 읽지 않습니다.
가려지는 것 · 넣지 않는 것
- 공고 속 담당자 연락처가려서 넘깁니다.
- 내 자료 속 전화번호 · 이메일자료에서 글자를 꺼낼 때 스크립트가 가립니다.
- 신원 정보는 아예 넣지 않습니다이름 · 연락처 · 주소 · 생년월일은 지원서 정보(
me/profile.yaml)에도 지원서 입력표에도 넣지 않습니다. 지원서에 직접 입력하고 제출도 직접 합니다. - 지원서 입력표입력표 자체는 AI에게 넘기지 않습니다.
AI에게 넘어가는 것 — 단계마다 그때 필요한 조각만
| 단계 | 넘어가는 것 |
|---|---|
| 공고 분석 | 공고 본문 — 담당자 연락처는 가립니다 |
| 자소서 초안 | 경험 카드 태그 목록, 문항마다 배정된 카드의 상황 · 과제 · 행동 · 결과와 facts, 문체 규칙 |
| 문체 분석 | 원안 자소서 발췌 — 합쳐서 3,500자까지 |
| 경험 카드 뽑기 | sources/ 자료의 글자(그림 · 스캔 PDF는 그 파일 자체), 이미 있는 카드의 id · 제목 |
| 지원서 정보 뽑기 | sources/ 자료 중 학력 · 자격증 같은 낱말이 있는 조각, 이미 있는 항목의 이름 |
무엇을 해 주나요
공고 한 건을 넣으면 지원 준비에 필요한 것을 한 장으로 돌려줍니다. 개발 공고처럼 자소서 문항이 없는 공고도 매칭과 이력서 강조 포인트까지는 나옵니다.
경험 카드 만들기v0.2 새 기능
이력서 · 포트폴리오 · 프로젝트 문서를 sources/ 폴더에 넣으면 AI가 경험 카드를 뽑습니다. docx · hwpx · pptx · xlsx · PDF는 스크립트가 글자를 꺼내고, 그림이나 스캔한 PDF는 AI가 원본을 직접 읽습니다. 받기 전에 스크립트가 카드의 숫자를 자료 원문과 대조해 없는 숫자는 뺍니다. 새 카드는 모두 "확인 전"으로 붙으니, 사실을 확인하고 표시만 바꾸면 됩니다.
공고 받기 · 정리
링크만 적으면 사람인 · 잡코리아 상세요강까지 받아 메뉴와 광고를 걷어내고 자격 요건 · 업무 · 우대 사항 순으로 정리합니다. 회사명 · 직무 · 마감일도 페이지에서 읽어 옵니다.
AI 공고 분석
필수 · 우대 역량, 주요 업무, 키워드를 뽑습니다. 자소서 문항은 공고에 원문 그대로 있는 것만 받아들이고, AI가 지어낸 문항은 버립니다.
경험 카드 매칭
내 경험 카드의 태그와 공고 낱말을 맞춰 점수를 매기고, 문항마다 쓸 경험을 고릅니다. 이력서에서 위로 올릴 항목과 공고 표기로 맞출 단어(스프링부트 → Spring Boot)도 알려 줍니다.
AI 자소서 초안
원안 자소서에서 정리한 문체 · 흐름에, 문항별로 배정된 경험의 상황 · 과제 · 행동 · 결과와 확정한 사실만 넘겨 초안을 받습니다. 모르는 부분은 지어내지 않고 [확인 필요: …]로 비워 둡니다. 원안이 없으면 초안을 쓰지 않습니다.
스크립트 검사
글자수, 경험 카드에 없는 숫자(계산해서 만든 "78% 개선"도), 연락처, 피하고 싶은 표현을 잡습니다. 걸린 문항만 AI에게 한 번 고치게 하고, 그래도 남으면 표시해 둡니다.
한눈에 정리
공고마다 report.md 한 장, 전체 현황은 dashboard.xlsx(D-day · 지원방법 · 매칭 점수 · 초안 상태 · 다음 할 일). Notion으로 가져갈 CSV도 만듭니다.
작동 방식
AI가 하는 일은 보라색 두세 칸뿐입니다. 나머지는 전부 스크립트가 하고, AI의 답도 스크립트가 검사한 뒤에만 받아들입니다.
처음 한 번 — 경험 카드 만들기
공고마다
지켜지는 것
- 경험 카드 facts 밖의 숫자 금지3천만 = 30,000,000 = 3,000만처럼 표기가 달라도 같은 값으로 비교하고, Java 17 · S3 같은 이름 속 숫자는 숫자로 보지 않습니다.
- 문항을 추측하지 않음공고에 문항이 없으면 만들지 않습니다. 필요하면 내가 직접 입력합니다.
- 공고는 자료, 지시가 아님공고 본문 속 문장이 AI에게 무엇을 시켜도 따르지 않도록 모든 프롬프트에 적혀 있습니다.
공고를 받을 때
- 크롤러 없음내가 적은 링크 한 건씩만 받고 robots.txt를 따릅니다. 사이트를 돌며 긁어 오지 않습니다 — 사이트 이용약관을 확인하고 개인 용도로만 쓰세요.
jobs.xlsx는 공고를 추가할 때만그때 스크립트가 한 줄을 더하고, 쓰기 전에.jobfit/backups/에 백업합니다. 엑셀이 열려 있으면 쓰지 않습니다.- 내 정보는 어디까지 가나무엇이 내 컴퓨터에만 남고 무엇이 AI에게 넘어가는지는 맨 위 '내 정보는 어디까지 갑니까'에 적어 두었습니다.
두 가지 쓰는 방식
같은 스크립트 · 같은 프롬프트 · 같은 결과 파일입니다. 차이는 AI 단계를 누가 실행하느냐뿐입니다.
| 붙여넣기 모드 | 에이전트 모드 | |
|---|---|---|
| AI | 아무 무료 웹 채팅 — ChatGPT · Claude · Gemini | 폴더에서 명령을 실행하는 AI — Claude Code · Codex (CLI · 데스크톱 앱 · IDE) |
| 요금 | 무료 | 각 서비스 유료 플랜 |
| 하는 일 | start.bat 메뉴. AI 단계마다 프롬프트 복사 → 웹 채팅에 붙여넣기 → 답 복사 | "이 링크 공고 처리해줘" 한 마디 |
| 공고 1건 | 복사 · 붙여넣기 2~3번 | 기다리기만 |
시작하기
설치는 두 단계입니다. Python은 따로 깔지 않아도 됩니다.
준비물
- Windows 또는 macOS
- uvPython과 필요한 패키지를 알아서 받습니다. 없으면
start.bat이 설치 명령을 알려 줍니다. - 엑셀은 없어도 됩니다공고와 자소서 문항은 메뉴에서 넣습니다. Excel이 있으면
jobs.xlsx를 직접 고쳐도 됩니다.
설치
- zip 받아서 풀기
jobfit.zip을 원하는 폴더에 풉니다. 늘 최신 버전이 받아집니다.
start.bat실행 → EntermacOS는
./start.sh. 처음 설정을 묻고jobs.xlsx,me/,sources/,output/을 만듭니다.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"curl -LsSf https://astral.sh/uv/install.sh | sh사용법
처음 한 번 내 자료로 경험 카드를 만들고, 그다음부터는 공고마다 링크만 적으면 됩니다.
경험 카드는 me/experiences.yaml에 경험 하나당 하나씩 들어갑니다. 가장 중요한 건 facts — 확정한 수치와 사실만. 초안에 나오는 숫자는 전부 여기 있어야 합니다. 처음 들어 있는 예시 카드 두 개는 지웁니다.
- 자료 넣기
이력서 · 포트폴리오 · 프로젝트 문서를
sources/에. 메뉴 8 → 1로 폴더가 열립니다. - 메뉴 8 → 2 → 메뉴 10 → 웹 채팅에 붙여넣기
답 전체를 복사해 메뉴 11. 자료가 길면 조각으로 나뉘니 끝날 때까지 반복합니다.
- 확인하기 — 쓰일 때만, Enter로
지금 다 확인하지 않아도 됩니다. 공고에 쓰일 카드가 생기면 제목으로 알려 드립니다. 그때 8 → 3을 누르면 카드를 하나씩 보여 주고, 맞으면 Enter. 파일을 고칠 일은 틀린 곳이 있을 때뿐입니다. 직접 쓰려면 8 → 4로 빈 카드를 추가합니다.
- 원안 자소서 (초안을 쓰려면 필수)
잘 쓴 자소서를
sources/자소서/에 넣습니다(남의 합격 자소서도 됩니다 — 경험 카드로는 뽑지 않습니다). 공고 처리 때 AI가 문체 · 흐름을 정리하고, 초안은 그 흐름에 내 경험을 맞춰 씁니다. - (선택) 지원서 정보 · 이력서
메뉴 8 → 5로 이력서에서 학력 · 자격증 · 어학을 뽑아 두면 메뉴 7 지원서 입력표에 들어갑니다(신원 정보는 넣지 않음).
me/resume.yaml에 이력서 항목을 넣으면 이력서 강조 포인트가 더해집니다.
- id: exp-order-api
title: 주문 조회 API 응답 시간 개선
period: 2025-03 ~ 2025-05
tags: [Java, Spring Boot, JPA, Redis, 성능 최적화]
summary: "N+1을 없애고 캐시를 붙여 응답 시간을 줄인 경험"
star:
situation: 주문 목록 화면이 느리다는 문의가 반복됐다.
task: API 계약을 바꾸지 않고 응답 시간을 줄인다.
action: 쿼리 로그로 N+1을 찾아 묶고 캐시를 붙였다.
result: 응답 시간이 줄고 쿼리 수가 고정됐다.
facts: # 확정한 수치 · 사실만
- "p95 응답 시간 1.8초 → 0.4초"
- "주문 1건당 DB 쿼리 21회 → 1회"
usable_for: [직무역량, 문제해결]
verified: true # 확인 전이면 false- 메뉴 1 공고 추가
링크를 넣으면 회사명 · 직무 · 마감일을 페이지에서 읽어
jobs.xlsx에 넣습니다. 엑셀로 공고 시트에 직접 적어도 됩니다. - 메뉴 3 공고 처리 진행
공고를 받아 정리하고 AI 단계 앞에서 멈춥니다. 자소서 문항은 메뉴 2로 넣습니다.
- 메뉴 10 프롬프트 복사 → 웹 채팅에 붙여넣기
ChatGPT · Claude · Gemini 아무 곳이나.
- 답 전체 복사 → 메뉴 11
검사해서 받아들이고 다음 AI 단계 앞까지 진행합니다. 답 앞뒤의 설명이나 코드블록 표시는 알아서 뗍니다. 형식이 틀리면 재요청 프롬프트를 만들어 주니 다시 10번부터.
- 10 · 11을 한두 번 더
공고 분석 → 자소서 초안 → (검사에 걸리면) 수정. 공고 하나에 2~3번입니다.
- 결과 보기
output/<공고>/report.md와dashboard.xlsx. 다음 할 일은 메뉴 5.
Claude Code
- 폴더 열기 → 신뢰
처음 열 때 나오는 폴더 신뢰 창에서 신뢰를 골라야
uv run jobfit실행과 답 파일 쓰기가 허락 없이 됩니다. - 말하기
"sources에 넣은 내 자료로 경험 카드 만들어줘", "이 링크 공고 처리해줘: https://…"
Codex
- 폴더에서 열기
Codex는
AGENTS.md를 바로 읽습니다. - 말하기
같은 말로 요청합니다. 샌드박스에서 uv 캐시 오류가 나면 에이전트가 작업 폴더 안 캐시로 돌려 실행합니다.
에이전트는 AGENTS.md대로 uv run jobfit 명령만 쓰고, 프롬프트 파일만 읽고, 답 파일만 씁니다. me/와 공고 원문은 읽지 않고, Notion에는 요청할 때만 올립니다.
start.bat 메뉴에서 공고를 넣거나 문항을 넣거나 공고를 받으면, 결과 끝에 에이전트에게 보낼 말이 나오고 클립보드에 복사됩니다. 에이전트 창에 붙여 넣으면 이어서 진행합니다. 이 말에는 "이전 대화에서 본 상태는 믿지 말고 jobfit next부터 다시"가 들어 있어, 에이전트가 앞선 대화의 기억으로 답하지 않습니다.결과는 이렇게 나옵니다
report.md의 모양을 보여 주려고 가상의 공고로 줄여 만든 예시입니다. 점수와 문장은 실제 실행 결과가 아닙니다.
# 예시컴퍼니 — Node.js개발자(신입)
공고키 jobkorea:10000002 · 마감 2026-11-15 (D-17)
## 매칭
점수 64/100 · 필수 3/4 · 우대 2/5 · 키워드 6/15
- 문항별 사용 경험 — q2 목표와 실행 · 문제해결 · 주력: 주문 조회 API 응답 시간 개선
## 이력서 강조 포인트
- 위로 올릴 항목 — [프로젝트] 주문 조회 API 응답 시간 개선: 필수 "서버 API와 데이터베이스", 키워드 Redis
- 공고 표기로 맞출 것 — '스프링부트' → 'Spring Boot'
## 자기소개서 문항 · ### 2. 목표와 실행
글자수 686자 (공백 포함) · 공고추출 · 확인 필요 1
… 주문 1건당 21회였던 DB 쿼리를 1회로 줄였고, p95 응답 시간은 1.8초에서 0.4초가 됐습니다. 같은 방식을 [확인 필요: 적용한 다른 API 수]곳에 더 적용했습니다 …
## 확인 필요
- 초안의 [확인 필요] 1곳 — 사실을 채우거나 문장을 빼세요
- 초안은 그대로 내지 말고 내 말투로 다시 다듬으세요
검사에서 걸린 곳은 문항 아래에 ⛔ 오류 · ⚠ 경고로 붙습니다. 예: '78%'는 경험 카드 facts에 없는 숫자입니다. 오류는 AI에게 한 번 고치게 하고, 그래도 남으면 ⛔로 남겨 직접 고치게 합니다.
자주 묻는 질문
더 자세한 설계와 결정 이유는 docs/SPEC.md에 있습니다.
초안을 그대로 내도 되나요?
아니요. 초안은 출발점입니다. [확인 필요] 자리를 채우거나 문장을 빼고, 내 말투로 다시 다듬어서 내세요. report에도 그렇게 적혀 나옵니다.
어떤 채용 사이트를 지원하나요?
사람인과 잡코리아는 상세요강까지 자동으로 받습니다. 원티드처럼 화면을 스크립트로 그리는 사이트, 그림 · PDF 공고, 회사 자체 채용 페이지 일부는 본문을 복사해 붙여 넣으면 됩니다. 사이트 이용약관을 확인하고 개인 용도로만 쓰세요.
경험 카드를 꼭 직접 써야 하나요?
아니요. 이력서 · 포트폴리오 · 프로젝트 문서 · 예전 자소서를 sources/에 넣으면 AI가 뽑아 줍니다. txt · md · csv · docx · hwpx · pptx · xlsx · html · PDF는 스크립트가 읽고, 그림 · 스캔 PDF는 AI가 원본을 봅니다(웹 채팅은 파일 첨부). .hwp 같은 옛 형식은 hwpx나 PDF로 저장해 넣으세요. AI가 자료에 없는 숫자를 facts에 넣으면 스크립트가 빼고, 카드는 모두 확인 전으로 붙습니다.
매칭 점수는 얼마나 믿을 만한가요?
경험 카드 태그와 공고 낱말을 맞춘 참고치입니다. 태그를 공고에 나오는 표기(예: Spring Boot, PostgreSQL)로 적을수록 의미가 커집니다. 기술 낱말이 없는 항목("피드백을 받아들이는 태도")은 점수에서 빼고 몇 개인지만 알려 줍니다.
원안 자소서가 없으면 초안을 안 써 주나요?
네. jobfit의 초안은 잘 쓴 자소서의 문체와 글의 흐름에 내 경험 카드를 맞추는 것이라, 원안 없이 처음부터 지어 쓰지 않습니다. 공고 분석 · 매칭 · 이력서 강조 포인트까지가 결과이고, sources/자소서/에 원안을 넣으면 초안 단계로 이어집니다.
공고에 자소서 문항이 없으면요?
지어내지 않습니다. 공고 분석 · 매칭 · 이력서 강조 포인트까지가 결과이고, 문항이 있으면 jobs.xlsx 문항 시트에 직접 입력하면 초안 단계로 이어집니다.
AI 사용량은 얼마나 드나요?
공고 1건에 AI 왕복 2~3번입니다. 프롬프트는 공고 분석이 4천 자 안팎, 초안이 3천~8천 자입니다. 같은 공고 · 같은 경험 카드로 다시 돌리면 AI 단계를 건너뜁니다.
Notion에서 보고 싶어요.
uv run jobfit export notion이 공고 목록 CSV를 만들고, 공고별 report.md는 Notion '가져오기'에서 마크다운으로 가져오면 됩니다. 에이전트 모드라면 Notion 커넥터로 올려 달라고 요청할 수도 있습니다.