TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Create your professional profile once, then tailor your resume and cover letter to every job.
Built on the ApplyAiJobBoard design system (tokens in src/styles/tokens.css).
The app follows the product flow end to end:
Landing page → Sign up / sign in → Create professional profile → AI creates Master Resume + Master Cover Letter → Dashboard → Tailor resume to a job (upload or paste) → Analyze Job → Job Match Score → Create Application → Review & edit → Download PDF / Word / both → user applies manually.
With no configuration it runs on an in-memory store, so no database or API keys are needed to try it. Set MONGODB_URI and it stores everything in MongoDB instead (see Deploy).
npm install
npm run dev # http://localhost:3000
npm test # ~100 tests: credits, fabrication guard, full flow, accounts, profile, uploads, both data stores
Create an account on the sign-up page. The in-memory store is empty after every restart, so you set up your profile again each time.
Email + password works out of the box (scrypt-hashed). Google and LinkedIn buttons appear automatically when
AUTH_GOOGLE_ID/SECRET and AUTH_LINKEDIN_ID/SECRET are set. Set AUTH_SECRET in production.
Add ANTHROPIC_API_KEY (and/or OPENAI_API_KEY) to .env.local. Each workflow's model is set in
src/server/ai/routing.ts. With no key, every workflow falls back to a deterministic mock provider.
| Setting | Store | Data |
|---|---|---|
| nothing set | in-memory store | resets when the server restarts |
MONGODB_URI | MongoDB (Atlas) | persists |
Both implement the same AppStore interface (src/server/store/types.ts), and one shared test suite
(tests/store-contract.ts) runs against both. prisma/schema.prisma is a PostgreSQL model for a possible later
phase and is not used today.
The MongoDB tests start a throwaway local MongoDB with mongodb-memory-server. The first run downloads an official
MongoDB server binary (a few hundred MB, cached afterwards); without network they are skipped with a warning
(MONGODB_TEST_REQUIRED=1 makes that an error). To test against your own server instead, set MONGODB_TEST_URI;
each test uses a throwaway database named resumeai_test_<random> and drops it.
The in-memory store cannot work on Vercel (every serverless instance would have its own empty memory), so a deployment needs MongoDB.
0.0.0.0/0. Vercel has no fixed IP addresses. (Or install the MongoDB Atlas integration from the Vercel Marketplace, which manages this and sets the connection variable for you.)?:
mongodb+srv://USER:[email protected]/resumeai?retryWrites=true&w=majority
(URL-encode special characters in the password.)You do not create collections or indexes by hand: on the first request the app creates its indexes and seeds the
credit prices (existing prices are never overwritten). Collections: users, profiles, cv_imports, jobs,
analyses, matches, ats_reports, resumes, cover_letters, ai_runs, credit_ledger, credit_balances, credit_actions.
Atlas is always a replica set, which the credit ledger needs (it writes balance and entry in one transaction).
| Variable | Required | Notes |
|---|---|---|
MONGODB_URI | yes | the connection string from step 1 |
AUTH_SECRET | yes | production refuses to start without it: openssl rand -base64 32 |
MONGODB_DB | no | overrides the database name in the URI |
ANTHROPIC_API_KEY | yes, in production | the AI that reads CVs and writes resumes and letters (each workflow's model is in src/server/ai/routing.ts). Locally, without a key the built-in sample writer is used. In production a missing key switches AI actions off (people see "AI writing isn't switched on for this site yet" and nothing is charged); /api/health says so |
ANTHROPIC_WORKSPACE_ID | no | only if Anthropic answers "This API key is not scoped to a workspace": the workspace ID (starts with wrkspc_), sent with every request. Not needed for a key created inside a workspace |
AI_ALLOW_MOCK | no | true lets a production preview use the sample writer. Never set it on the real site |
AI_FORCE_MOCK | no | true forces the sample writer even when keys are set (tests) |
CONTACT_EMAIL | recommended | the address shown on the Privacy policy and Terms pages |
ALLOW_MEMORY_STORE | no | true lets a Vercel preview run on the temporary in-memory store (data is lost). Leave unset |
AUTH_GOOGLE_ID/SECRET, AUTH_LINKEDIN_ID/SECRET | no | enable social sign-in |
RESEND_API_KEY, EMAIL_FROM | for "Forgot password?" | send reset emails through Resend. EMAIL_FROM must be on a domain you verified there (e.g. KRZResumeBuilder <[email protected]>); Resend's test sender only reaches your own address. Without a key people cannot reset a forgotten password; /api/health shows |
main redeploys.Never commit credentials: .env*.local, *.env and *credentials* are git-ignored; put secrets in Vercel's settings.
/api/health on the deployed site: it says (yes or no, never the values) whether AUTH_SECRET and MONGODB_URI are set and whether the database answers, and explains each problem in a sentence. Sign-up and sign-in show the same message instead of a raw "server configuration" error.maxDuration in src/app/(app)/layout.tsx), downloads to 30 seconds. Raise it there if a real model needs longer (your Vercel plan sets the ceiling).MONGODB_URI? On Vercel the app refuses to start without it (instead of silently using temporary memory) and shows the reason in the function logs. ALLOW_MEMORY_STORE=true overrides this for throwaway previews.src/app/ routes only (pages compose components, actions stay thin)
src/components/ ui/ (design-system kit) · layout/ · features/
src/server/
ai/ Career AI Agent: providers/, workflows/, guard/, runner, scoring, routing, pricing
credits/ ledger service + memory, MongoDB and (unused) Prisma stores
documents/ ResumeDocument model, templates/classic (PDF + DOCX), export
services/ job-pipeline — the business logic for each step
store/ AppStore interface + in-memory and MongoDB implementations; db/ holds the MongoDB connection
queries/ page read-models
auth/ billing/
prisma/ schema + seed
tests/
assembleResume).server/ai/guard): rejects unknown evidence ids,
numbers not in the cited evidence, skills not in the profile, achievements borrowed across roles,
headlines never held, and unknown organizations. One retry with the violations, then refund.CreditAction, so changing a price is not a deploy. Every model call is an AIRun with tokens and USD cost.AIProvider interface; Anthropic, OpenAI and Mock adapters.CreditAction)Analyze Job 10 (analysis 5 + match 5) · Create Application 25 (resume 15 + cover letter 10) · ATS check 3 · cover-letter rewrite 3 · Master documents free. New accounts get 60 credits.
"email": falseAUTH_URL | no | public address of the site (https://…), used for the link in reset emails. Leave unset to use the address of the request |