TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A personal job-search dashboard: pulls new listings from several sources
daily, scores each one against your CV with Claude, flags whether the
location/remote terms actually work for you, and lets you track status
(new → interested → applied → interviewing → rejected/offer) as you work
through them. Single-owner, real Supabase auth, deployed on Vercel.
For the full picture of how this app is built — architecture, data model,
every feature, known gaps, deployment gotchas — see
HANDOFF.md. This file is just setup/day-to-day usage.檢視完整 README ↗A personal job-search dashboard: pulls new listings from several sources daily, scores each one against your CV with Claude, flags whether the location/remote terms actually work for you, and lets you track status (new → interested → applied → interviewing → rejected/offer) as you work through them. Single-owner, real Supabase auth, deployed on Vercel.
For the full picture of how this app is built — architecture, data model,
every feature, known gaps, deployment gotchas — see
HANDOFF.md. This file is just setup/day-to-day usage.
Create a Supabase project at supabase.com (free tier).
supabase/schema.sql, then every file in
supabase/migrations/ in order (each is a one-time alter table/
insert — see HANDOFF.md §5 for what each one did).OWNER_EMAIL below, which is
a second, code-level check so a session for any other email is
rejected too, even if signups ever end up re-enabled by mistake.Install dependencies
npm install
Configure environment variables
cp .env.local.example .env.local
Fill in SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY,
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, and
OWNER_EMAIL (the email of the user you created above).
Then sign up for whichever job sources you want (all free, no approval
wait): ADZUNA_APP_ID/ADZUNA_APP_KEY at
https://developer.adzuna.com/, JOOBLE_API_KEY at
https://jooble.org/api/about. Arbeitnow, Remotive, and the company-board
sources (Greenhouse/Ashby/SmartRecruiters/Personio) need no key.
ANTHROPIC_API_KEY powers CV extraction and the two AI analyses
(compatibility, location fit) — get one at console.anthropic.com.
Run locally
npm run dev
Open http://localhost:3000 — you'll be redirected to /login. Sign in
with the account you created above.
/demo is a public route with no login required — a frozen sample
dataset with edits kept in localStorage only, no Supabase or
Anthropic calls. Useful for showing the app off without exposing your
real data.
.env.local — for each one, enable both Production
and Preview (unless you specifically want it scoped narrower), and
leave "Git Branch" empty (never commit .env.local itself, it's
gitignored)./login will gate the live URL the same way it does locally;
/demo stays public. vercel.json wires up the daily Cron schedule
for each ingestion source automatically.Upload your CV at /cv (PDF only) — this powers the compatibility
scoring. Re-upload any time; every upload is kept, the most recent one is
what's used.
Ingestion runs automatically once a day per source (see vercel.json
for the schedule). To trigger one manually, sign in in the browser first,
then run the fetch from the browser console (it'll carry your session
cookie — plain curl can't, since ingestion routes are gated by
middleware like everything else):
fetch("/api/ingest/adzuna", { method: "POST" }).then((r) => r.json()).then(console.log)
Response looks like {"jobsFound": 34, "jobsNew": 12}. Vercel Cron itself
uses a separate Bearer token (CRON_SECRET), unaffected by any of
this — see middleware.ts.
Analyzing a job: new jobs are auto-analyzed at ingestion time if a CV is on file. Use the "Analyze fit" / "Check location" buttons (or "↻ Re-analyze" / "↻ Re-check" once a result exists) to run either one for an individual job on demand — e.g. after uploading a new CV.