Help us improve
Share bugs, ideas, or general feedback.
From lockedin
Personal experience knowledge graph for Claude Code. Build and grow a markdown ontology from Q&A interviews and document ingestion (PDF, DOCX, MD, TXT), then render English resumes, Korean cover letters, and meeting notes from the same vault. Runs entirely on the user's Claude Code subscription — never calls the Anthropic API directly. Activate when the user mentions lockedin by name, asks to set up or update a personal career / experience graph, asks to render a resume / cover letter / meeting note from their own experience, drops a resume PDF or DOCX with a request to absorb it, or queries their own experience ("what projects used Rust?", "which roles taught me X"). Do NOT activate for unrelated coding, code review, or general questions.
npx claudepluginhub daypunk/lockedin --plugin lockedinHow this skill is triggered — by the user, by Claude, or both
Slash command
/lockedin:lockedinThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Build and grow a personal markdown ontology in `~/Documents/LockedIn/`, then
Performs one-time onboarding: upload resume, set job preferences via natural input, conduct work history interview, optionally import LinkedIn contacts as CSV.
Builds ATS-optimized resumes for developers and product managers from PDFs/DOCX, LinkedIn PDFs, GitHub profiles, or guided interview.
Generates tailored resumes for job applications: researches company/role, surfaces undocumented experiences via discovery, matches from resume library, outputs MD/DOCX/PDF while preserving facts.
Share bugs, ideas, or general feedback.
Build and grow a personal markdown ontology in ~/Documents/LockedIn/, then
render artifacts from it. Single-purpose: one namespace, one demo.
.pdf / .docx or career notes and asks to
absorb them into a structured graph.Reasoning runs inside Claude Code on the user's subscription; the
lockedin Python CLI is a deterministic helper for non-LLM work.
| Surface | Runs there | When |
|---|---|---|
| Skill (host AI) | Q&A interview, ingest ambiguity resolution, render writer + reviewer turns, NL query interpretation | Every user-in-the-loop flow |
| CLI utility | install, doctor, validate, migrate, template, init --fixture, ingest --dry-run, experience, PDF/DOCX text extraction, hud | Deterministic; called by skill via Bash, or by user directly |
If a skill-only command (render jaso/resume, interactive init,
smart ingest, query) is typed in a plain terminal, the CLI prints
a redirect message — that's expected.
Recommended onboarding is the explicit /lockedin:setup wizard. This
section is the safety net for users who skipped it and started using
the skill directly.
${CLAUDE_CONFIG_DIR:-$HOME/.claude}/lockedin/config.json. If
the file exists and has a setup_completed timestamp, do nothing —
the user already ran the wizard.setup_completed, offer the
wizard ONCE per session: "Looks like setup hasn't run. Want me to
walk through it now? Wires the bottom HUD and a couple of defaults.
/lockedin:setup runs the full wizard; I can also do just the HUD
step inline."/lockedin:setup (Step 1) only. Otherwise, run the full wizard, or
continue with the user's original request and remember not to ask
again this session.The skill is fully functional without setup — only the bottom HUD line will not appear until the user wires it.
/lockedin init (or natural language) runs a Q&A
interview that seeds the vault with the user's first ontology nodes
(experience template by default)./lockedin ingest <path> reads .pdf / .docx /
.md / .txt, emits a typed diff, asks the user about ambiguities
one at a time, then merges./lockedin render <kind> produces the artifact. Writer
turn drafts; reviewer turn re-loads RUBRIC.md fresh and scores. If
any rubric dimension < 4, revise once with the notes.See AGENTS.md for the four sub-roles (Interviewer / Ingester /
Renderer / GraphCurator). See TOOLS.md for the canonical CLI calls
each role issues, with skill-only-path fallbacks.
This skill assumes the user runs Claude Code on a subscription. If the
shell environment has ANTHROPIC_API_KEY set, run lockedin doctor —
it will warn unless the user explicitly opts in via
LOCKEDIN_ALLOW_API_KEY=1.
render-jaso/, whose domain is
Korean output).<!-- ko-example -->...<!-- /ko-example --> blocks.render-jaso
emits Korean, render-resume-en emits English.lockedin/ontology/schema.py (15 entity types, 15 edge predicates, schema v3)docs/architecture.mddocs/ontology-spec.mdEvery vault write also regenerates <vault>/EXPERIENCE.md, a
single human-readable markdown file that lists all entities grouped
by type. The user can open this file in any markdown viewer to see
their whole vault at a glance without navigating per-type folders.
This is automatic and does not require an explicit step from the
skill — lockedin/storage/notes.py::write_entity invokes
lockedin/render/master_view.py::refresh_master_view after every
successful write. If the user manually edits a frontmatter file in
their editor, point them at lockedin refresh to regenerate the
master view.
render-jaso: banned-phrase regex check ran before rubric scoring.lockedin/render/resolve_slugs.py::resolve_file.<vault>/outputs/ with timestamp slug.<vault>/EXPERIENCE.md is current (auto-refreshed by
write_entity, but check it once at the end of multi-step flows).