TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A habit-driven job application tracker with a native AI-agent interface.
Momentum treats a job search as a daily practice rather than a spreadsheet. It tracks every
application through a real hiring funnel, turns consistency into a visible streak, and exposes the
whole tracker to AI agents over the Model Context Protocol so the busywork of logging and updating
applications can be automated away.README 전문 보기 ↗A habit-driven job application tracker with a native AI-agent interface.
Momentum treats a job search as a daily practice rather than a spreadsheet. It tracks every application through a real hiring funnel, turns consistency into a visible streak, and exposes the whole tracker to AI agents over the Model Context Protocol so the busywork of logging and updating applications can be automated away.
Most job-search tracking dies in a spreadsheet. Two reasons: the manual data entry is tedious enough that people stop doing it, and a flat sheet of rows cannot answer the questions that actually matter ("is my resume converting?", "which companies respond?", "am I applying consistently?").
Momentum addresses both. Every status change is persisted as a discrete event, so the funnel and
response rates are derived from real history rather than a single mutable status column. And because
the tracker is exposed as an MCP server, an AI agent can do the data entry: an agent with inbox
access can log a new application when a confirmation email arrives and move one to REJECTED when a
rejection lands, with no human typing involved.
Application tracking. A filterable, sortable table over nine funnel stages (applied, OA, recruiter screen, interview, final round, offer, rejected, ghosted, withdrawn), with a rich create/edit sheet, per-application status timeline, and optimistic updates.
Habit engine. Timezone-aware streak tracking computed from the user's own local day boundaries, a daily-goal ring, a week sparkline, and milestone celebrations at 3, 7, 14, 30, and 100 days.
Analytics. Applications over time across selectable ranges, a custom SVG conversion funnel, top companies by volume and positive-response rate, and productivity stats including response rate, interview rate, best day, and average per week.
Smart job-link parsing. Paste a posting URL and Momentum extracts company, role, location, and salary. Rather than trusting a single source, it runs layered extractors (JSON-LD, microdata, Open Graph, meta tags, DOM, URL heuristics, text patterns) and merges the results by confidence score, with dedicated adapters for eight ATS platforms including Greenhouse, Lever, Ashby, Workday, SmartRecruiters, and BambooHR.
Bulk import. Drag-and-drop Excel and CSV import with column mapping, per-row schema validation, and a transactional insert so a partial failure cannot leave half a file committed.
Calendar heatmap. A 53x7 GitHub-style contribution grid with click-through detail.
Design system. A "liquid glass" component layer built on layered translucency and backdrop blur,
an ambient mesh background, and a floating adaptive nav. Motion respects prefers-reduced-motion
throughout.
Momentum ships a remote Model Context Protocol server, so any MCP-capable agent (Claude, Cursor, Codex) can operate the tracker on a user's behalf. It speaks the current 2026-07-28 revision of the protocol natively and still serves clients on the 2025 revisions from the same endpoint.
The intended workflow is a three-way pipeline: email tool → agent → Momentum. The agent polls the inbox on whatever cadence its user chooses, and calls Momentum's tools to create applications, transition statuses, or answer natural-language questions about the search. Momentum itself never touches anyone's email; it is a stateless request/response API, and scheduling stays the agent's responsibility.
Nine tools are exposed: create_application, find_applications, list_applications,
get_application, update_application, update_application_status, delete_application,
get_search_summary, and parse_job_link.
Authorization is OAuth 2.1, per user, following the MCP authorization spec. Momentum acts purely
as an OAuth resource server; Supabase's OAuth 2.1 server is the authorization server, providing
Dynamic Client Registration and PKCE. Clients discover it through RFC 9728 protected-resource
metadata at /.well-known/oauth-protected-resource, users approve each agent on a consent screen
before it receives any access, and presented tokens are validated for both issuer and audience
(RFC 8707) so a token minted for another service cannot be replayed against Momentum. Every query is
scoped to the authenticated user id.
Connection instructions with copy-paste client config live in the app under Settings → Connections.
Server-first data flow. Built on the Next.js App Router with React Server Components by default. Mutations are Server Actions, validated with Zod on both the client and again inside the action. There is no client-side data cache: server state flows through Server Actions plus explicit revalidation.
A shared service core. Application read and write logic lives in one userId-parameterized
service module that both entry points call: the web Server Actions (thin requireUser() wrappers)
and the MCP tool handlers. The two surfaces cannot drift, and a change to business rules applies to
both at once.
Event-sourced status history. Each status transition appends a StatusEvent row. The funnel,
timeline, and response metrics are computed from that event stream, so the analytics reflect what
actually happened rather than a current-state snapshot.
Deliberate caching. Expensive dashboard, streak, and calendar reads are wrapped in cached readers keyed by a per-user tag; every mutation invalidates the affected routes and that tag together. Two prefetch routes warm those caches during browser idle time to keep navigation instant.
Defense in depth on data access. Postgres runs with row-level security denied by default, and authorization is enforced in application code on every query. Job-link fetching sits behind an SSRF guard that rejects private and link-local addresses before any outbound request.
| Layer | Choice |
|---|---|
| Framework | Next.js 15 (App Router, React Server Components, Server Actions) |
| Language | TypeScript |
| Database | Supabase Postgres with Prisma |
| Auth | Supabase Auth (Google OAuth), Supabase OAuth 2.1 server for agents |
| Agent protocol | Model Context Protocol over Streamable HTTP |
| Styling | Tailwind CSS, shadcn/ui on Radix primitives |
| Animation | Framer Motion |
| Charts | Recharts, plus custom SVG funnel and heatmap |
| Forms | React Hook Form with Zod |
| Client state | Zustand |
| Import | SheetJS and PapaParse |
| Hosting | Vercel, with a scheduled cron keeping the database warm |
Some things were cut on purpose, and the information architecture leaves room for them:
MIT.