A posting, recruiter message, interview invite, rejection, or follow-up enters the system.
Private operating system · live search · durable memory
A job search is
a stateful system.
A private, continuously operated system for turning job posts, applications, recruiter conversations, interviews, résumés, and outcomes into durable career memory and explicit next actions.
// operating posture
- ACCESS
- Private + allowlisted
- STATE
- Supabase / Postgres
- AI
- Grounded + tool-driven
- STATUS
- Live + in daily use
16
active records
8
migrations
23
tests passing
Live
daily system
01 — The actual problem
The spreadsheet remembered rows. It forgot the search.
A serious job search produces more state than a spreadsheet can hold: role versions, recruiter context, tailored documents, interview logistics, outcomes, follow-ups, and lessons that should change the next application. The real problem was not tracking rows. It was preserving context and turning it into better decisions.
02 — The operating loop
Every signal should leave the system smarter than it found it.
The signal is connected to the company, role, people, documents, and application history it belongs to.
An explicit lifecycle transition updates the pipeline, calendar, next action, and durable event record.
Outcomes and documents become retrievable context for the next conversation, draft, and decision.
03 — Domain boundaries
Connected records, not another pile of notes.
A self-hosted Next.js and Supabase application organized around companies, roles, applications, contacts, documents, interviews, and append-only activity. RSS and Atom ingestion discovers opportunities; structured lifecycle state drives the pipeline and calendar; private document storage and profile data ground retrieval; and an approval-aware assistant operates through typed tools instead of editing data invisibly.
Companies
The organizational memory: roles, contacts, applications, notes, and history.
Applications
Lifecycle state, next action, deadline, referral, and the documents actually submitted.
Interviews
Schedule, format, people, preparation, logistics, and outcomes captured together.
Documents
Private files, working drafts, extracted text, secure downloads, and role-specific versions.
Discovery
Enabled RSS / Atom sources flow through parsing, normalization, deduplication, and review.
Assistant
Typed tools retrieve and propose changes; consequential writes remain visible and approval-aware.
04 — What shipped
The site is the evidence because the search runs through it.
- ▹Application pipeline with explicit lifecycle states, next actions, deadlines, and outcome history
- ▹Structured interview scheduling and outcome capture linked to each application
- ▹Private résumé and cover-letter storage with extraction, secure downloads, drafts, and application-level version linking
- ▹Company, recruiter, contact, job, and referral records connected instead of duplicated across notes
- ▹Server-side RSS / Atom ingestion with deduplication, source controls, and a discovered-jobs inbox
- ▹RAG ingestion across profile, documents, roles, companies, events, and messages
- ▹Approval-aware AI tools for recall, drafting, updates, archival, and deletion
- ▹A live, authenticated deployment used as the operating record for an active search
Constraints / Evidence
The conditions shaped the system.
- ◆Career history, documents, contacts, and interview links are private by default
- ◆Imports must preserve messy source evidence without multiplying companies, jobs, or applications
- ◆AI assistance must be grounded in durable records and require approval for consequential changes
- ◆The system has to remain useful during an active search while its own schema and workflows evolve
16
active records
Real applications and outcomes—not seeded demo rows.
8
migrations
The domain model evolved from profile and core entities through ingestion and referrals.
23
tests passing
Parsing, lifecycle, retrieval, UI, and security behavior are executable.
Live
daily system
Authenticated, self-hosted, and used as the source of truth for the search.
The through-line
A career is not a sequence of applications. It is a learning system with memory, state, feedback, and compounding context.