Careerbot
A career assistant designed around what agents and interfaces each do best.

Overview.
Job hunting mixes two very different kinds of work. Researching companies, reading career pages, evaluating fit, and tailoring a resume are open-ended tasks. Reviewing a shortlist, comparing roles, and recording a decision are structured tasks. Careerbot gives each kind of work the right surface.
I designed and built the product end to end. Agent skills handle the research-heavy work. A Next.js dashboard handles the moments where scanning and clicking are faster. Both read and write the same local Markdown files, so there is one source of truth and no sync problem between the two experiences.
The product decision.
Let the agent handle intent-driven work. Add structured UI only where structure genuinely helps.
The easy pattern would have been to put a chatbox in a dashboard and make every task conversational. That would slow down routine decisions and hide the product's strongest capability behind prompting. I designed Careerbot from the interaction boundary outward instead.
Agent skills
Research companies, scan job sources, evaluate fit, add a single role, and prepare a source-grounded tailored resume.
Focused dashboard
Scan new roles, inspect the evidence, edit the search profile, download resumes, and record Applied or Skipped.
Product tour.
A decision workspace, not another job board
The main view keeps the application pipeline and the evidence for one role in the same frame. People can move from scanning to judgment without losing their place or opening a stack of tabs.



The workflow stays useful on a phone
Mobile keeps the same decision flow in a tighter frame. The role detail rises over the list, while the search profile and skill library remain available when the work moves away from a desk.


Animated mobile tour
Four core screens move through one continuous workflow.
The animation mirrors the sideways browsing pattern below. Reduced-motion settings automatically replace it with a still frame.
Swipe through the mobile screens
Drag sideways
Search rules stay explicit
The Search Profile turns job-search preferences into inspectable product rules. Titles, compensation, location, company, work style, culture, and voice each have their own surface, while the connection state makes it clear which personal context the agent can use.

The agent interface is visible too
AI Skills documents the open-ended capabilities that sit beside the dashboard. Each skill explains its job and writes to the same Markdown records the interface renders, making the split between agent work and structured review concrete.

One source of truth.
The agent and dashboard are two interfaces over the same local data model. Status lives in the folder structure. Decisions keep their dates. Search preferences have a typed document. The product stays inspectable and portable because the source of truth is readable without the app.
Agent
Reads context and writes researched results
Local Markdown
Applications, companies, preferences, and status
Dashboard
Reads the same files and writes decisions back
Memory that compounds
Careerbot reads durable personal context from Icca, my implementation of Andrej Karpathy's LLM Wiki pattern. Instead of asking the model to rediscover me from a pile of documents for every role, I compile evidence into a maintained memory layer that becomes more useful as new sources arrive.
Raw evidence
Resumes, project notes, and explicit corrections are captured as immutable sources. The model can cite them, but never rewrite them.
Compiled wiki
The LLM updates interlinked Markdown pages, reconciles new evidence with existing claims, and keeps an index and append-only history.
Governed access
A schema decides which facts can update automatically and which interpretations or preferences require my review. Careerbot reads live pages but cannot write back.
At this scale, index-first reading, cross-links, and linting are enough. There is no RAG pipeline or embedding database. Read Karpathy's original LLM Wiki idea.
What the system optimizes for.
Breadth before repetition
Search spans employer pages and public sources, then filters early so deeper judgment is spent on plausible roles.
Private by default
The resume, preferences, identity details, and application history stay local and are excluded from the public repository.
Diagnosable automation
The pipeline records where results came from and why candidates were filtered, so a small result set can be explained and improved.
What I learned
Agent-first design is mostly boundary design. The important question was never how to make every task feel intelligent. It was where ambiguity helps, where structure helps, and how both surfaces can share state without making the system harder to understand.
Careerbot turned that principle into a working product: the agent gets freedom where judgment is needed, the interface gets structure where repetition is costly, and the user keeps control at the moment a real-world commitment is made.




Let's make something users will love!
If you're looking for a product designer who can bridge the gap between design and code, I'm here to help!








