Personal project · Active
Private repositoryCareer Intelligence
A durable system for understanding my career—and acting on what it knows.
Career Intelligence is my attempt to give my professional life a memory that does not disappear between documents, tools, and conversations. It holds what I know about my work as structured, connected knowledge, then exposes useful ways to work with it: answering questions, finding relevant evidence, and producing career material that can be traced back to its source.
The first complete capability is resume generation. I can give the system a job description and receive a tailored resume whose claims are selected from approved career knowledge, checked, rendered, and archived. But the resume is an output, not the system’s identity.
Models are temporary. Evidence is immutable. Knowledge is durable. Compilers are replaceable. Capabilities are the product.
Why I built it
The immediate problem appeared during a job search. After years focused on delivery, I had to reconstruct what I had done, decide which parts mattered for a role, and explain the same career context to different AI tools one conversation at a time. Tailoring a resume was slow; trusting a model to fill the gaps was worse.
I also did not have clean raw evidence for much of my earlier career. I began by rebuilding that history as a hand-curated knowledge base: projects, skills, technologies, situations, achievements, organisations, education, and credentials, connected through stable identities and explicit relationships.
That solved the historic problem, but it suggested a better model for the future. New work should begin with immutable evidence. Replaceable compiler agents can interpret that evidence and turn it into durable knowledge. If the models improve, I should be able to replace the compiler and rebuild the knowledge—not rewrite the original record or trust whichever model happened to see it first.
The system idea
Rendering diagram…
What exists today
Career Intelligence currently has a working career domain, not the full personal system around it.
- A connected career record
- More than 130 typed Markdown entities describe projects, skills, technologies, situations, achievements, organisations, education, credentials, and stories. Stable IDs and validation rules keep the relationships inspectable by people and tools.
- A grounded resume capability
- A job description becomes structured requirements. The system retrieves relevant career knowledge, chooses an evidence set, locks it into a content plan, lets a model phrase that plan, then checks the result before rendering HTML and PDF.
- Read interfaces for other tools
- A command-line interface operates the system locally. Read-only Model Context Protocol servers expose evidence search, entity reads, graph relationships, and session provenance without giving callers access to the repository itself. A machine-readable manifest describes that public contract.
- A privacy-filtered public view
- The website’s Ask AI about my work assistant uses a deliberately public subset of the same career knowledge. Its answers cite the entities that support them; personal and confidential material stays outside that view.
- Immutable capability history
- Resume runs are stored as content-hashed sessions with their inputs, selected evidence, model activity, validation, and rendered artefacts. A session records what the system did; it does not become evidence about my career.
One capability, end to end
From a job description to a supported resume
The workflow gives the model narrow, useful jobs while code owns the boundaries around them.
Rendering diagram…
- 01
Understand the role
The job description becomes structured requirements, with schema checks around model extraction.
- 02
Find relevant evidence
Hybrid retrieval searches the career knowledge; a model evaluates relevance inside explicit eligibility and diversity limits.
- 03
Approve the content plan
Code fixes the positioning, experience depth, and evidence each section may use.
- 04
Draft within the plan
The model turns the approved plan into prose. It cannot add a new metric, role, project, or claim.
- 05
Check every claim
Generated claims are traced to approved evidence. Unsupported material fails rather than being softened or hidden.
- 06
Render and archive
Structured content becomes HTML and PDF, and the run is stored as an immutable session.
The interesting part is not that a model can write a resume. It is that the system can show what the model was allowed to say, why that evidence was selected, and where the final claims came from.
The boundaries are the design
Career Intelligence treats AI output as proposed material, not truth. Models can extract, rank, evaluate, and phrase. Deterministic code owns schemas, eligibility, selection, privacy, validation, and failure behaviour.
That separation also keeps the system replaceable. The knowledge does not depend on one model provider, retrieval engine, or user interface. The command-line interface, MCP servers, and website assistant call the same application services; none of them becomes a second source of career truth.
Retrieval is built on tobi/qmd, a local search engine that combines lexical search, vector search, and reranking. I adopted it after comparing it with the previous retrieval engine against the same frozen career-specific benchmark, rather than choosing it by impression.
- A human-readable Markdown knowledge graph with typed frontmatter and validated links
- Hybrid retrieval through QMD, selected through a frozen comparison rather than preference
- Provider boundaries around model calls, with structured outputs treated as untrusted
- Public, personal, and confidential visibility with default-private behaviour
- Deterministic HTML and PDF rendering through React and Playwright
- Tests, retrieval benchmarks, graph checks, and immutable session verification
One domain in a larger personal system
Career Intelligence started the broader idea that became AlanOS. That idea now has its own repository and a clearer responsibility: it defines the contract, visibility rules, and manifest that independent personal domains can share. Career is the reference implementation of that pattern, not the centre of the system.
Health Intelligence is already a separate working domain. It turns externally collected health evidence into deterministic features, personal baselines, weekly briefings, and reproducible sessions under stricter privacy boundaries. It shares the AlanOS principles, but it does not share Career’s storage or career knowledge.
Rendering diagram…
- Career Intelligence · Current
- Owns professional knowledge, career capabilities, and the artefacts produced from them.
- AlanOS · Current foundation
- Owns the federation model, domain contract, visibility standard, and machine-readable manifest format.
- Health Intelligence · Partial
- Owns longitudinal health knowledge and bounded, citable health capabilities. Its assistant interface remains planned.
Where it goes next
The next architectural step is to turn the current owner-local raw-evidence staging area into a content-addressed store, then introduce replaceable compiler agents that can rebuild structured knowledge from those originals. Provenance and visibility must remain explicit throughout that path.
More capabilities can then use the same foundation—interview preparation, suitability statements, career comparisons, and decision support—without asking a model to reconstruct my professional history each time.
Career Intelligence is becoming a record I do not need to keep rebuilding from memory. The tools will change. The evidence should not, and the knowledge should become more useful as it grows.