Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
지원자 이력서 PDF를 업로드하면 구조화된 후보 프로필과 적합도 점수를 몇 초 안에 제공, Prolanz BOS 플랫폼용
Upload an applicant resume PDF and get a structured candidate profile with a fit score in seconds. Built for the Prolanz BOS platform.
비즈니스TypeScript · CSSGitHub @saintdoresh온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Resume parser micro-agent: PDF in, scored candidate profile out (Next.js, Groq).
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A single-page Next.js app for the Prolanz BOS platform. A recruiter drops in an applicant's resume PDF and gets a structured candidate profile: contact details, core skills, work history, education, a 0–100 fit score and a short recruiter verdict.
pdfjs-dist (loaded on first use).
Ligatures and run spacing are rebuilt from glyph positions, so "fi ve" reads "five".app/api/parse) via groq-sdk, in JSON mode.
The key never reaches the browser.normalizeProfile (lib/schema.ts): missing fields become empty values, numbers
are clamped, names the model reworded are snapped back to the resume's own words,
and roles are ordered most recent first. The UI cannot receive a malformed profile.npm install
cp .env.example .env.local # then paste a free key from https://console.groq.com/keys
npm run dev # http://localhost:3000
| Variable | Required | |
|---|---|---|
GROQ_API_KEY | yes | Server-side only. |
GROQ_MODEL | no | The model to try first. |
The PRD names llama-3.3-70b-versatile. Groq has retired it for some keys, so the
route tries it first and falls back to openai/gpt-oss-120b, with low reasoning effort.
In testing, that model parsed a real two-page resume in about 1.8 s. It remembers which
model answered, so a retired one costs a single extra round trip.
Import the repo in Vercel, add GROQ_API_KEY under Project → Settings →
Environment Variables, and deploy. Nothing else is needed. Groq's free tier means
no API charges, though it is rate-limited. When the limit is hit, the app says so
and asks the user to wait a few seconds.
app/
page.tsx the single page
api/parse/route.ts Groq call, model fallback, error mapping
components/
Workspace.tsx state: upload → read → parse → profile; the candidate list
UploadZone.tsx drag-and-drop, file picker, sample button
CandidateProfile.tsx the dashboard
Shell.tsx sidebar / phone drawer
ui.tsx panels, stat cards, pills, buttons, score ring
lib/
pdf.ts PDF → text in the browser
prompt.ts system prompt and models
schema.ts CandidateProfile type and normalizer
sample.ts the sample resume
The interface follows a vendor-portal style: roomy white panels on a soft page,
hairlines instead of shadows, and pill actions in one red accent. Colours are CSS
variables in app/globals.css; change --accent-hue to re-hue everything.