Self-hosted service
Chozzc/Lujie-Careerkit avatar
Chozzc/Lujie-Careerkit

LuJie CareerKit: a local-first, agent-driven workspace for the whole job search

An AI-powered career workspace from resume editing to offer acceptance, covering resume editing, JD matching, application tracking, mock interviews, and interview review.

335 stars21 forksTypeScriptApache-2.0

At a glance

What is it?
LuJie CareerKit is an Apache-2.0 career workspace that brings resume editing, JD matching, application tracking, interview prep and mock practice into one agent-driven app. It is built on Next.js and Prisma with local SQLite data, aimed at internships and campus recruiting through to offer acceptance.
Who is it for?
Use LuJie CareerKit if you want one integrated, agent-driven workspace for the whole job search, JD-tailored resumes, multiple resume versions, interview prep, mock practice and application tracking, with your data kept local in SQLite and self-hosted so it stays on your machine.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 9 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The whole job search in one workspace

LuJie CareerKit is a career workspace that spans the job search from resume editing to offer acceptance. The README lists what it brings together: resume editing, JD matching, career-material organization, interview preparation, mock practice, and application tracking, all in an Agent-driven workspace. You can maintain multiple resume versions for different roles, generate more relevant resumes and interview materials from a job description, and continuously organize every analysis, practice session and application update.

The user is a job seeker, the README names internships, campus recruiting and career searches, who wants these normally-scattered tasks in one place rather than juggling a resume editor, a spreadsheet tracker and separate interview prep. The agent-driven framing means the workspace does not just store your materials, it helps generate and improve them.

What distinguishes it technically is that it is local-first: built on Next.js and Prisma with SQLite for local data, so your career materials live on your machine rather than a SaaS account. It is Apache-2.0, bilingual English and Chinese, and offers a live preview site to try before self-hosting. For anyone uneasy about putting their resume and application history into a third-party service, the local-data design is the key property.

Multiple resume versions, JD-driven generation, and tracking

The features are organized around how a real search actually works. Maintaining multiple resume versions for different roles matches the reality that one resume does not fit every application, and generating more relevant resumes and interview materials from a JD is the agent-driven part: you feed a job description and it tailors your materials to it, which is the tedious work most job seekers do by hand.

Application tracking and continuous organization address the other half of a search, the logistics. The README describes continuously organizing every analysis, practice session and application update, so the workspace becomes a running record of your search rather than a set of one-off documents. Mock practice and interview preparation round it out, turning the same materials into interview readiness.

Because it is one workspace over local SQLite data through Prisma, these pieces share state: a resume version, the JD it was tailored to, the practice sessions and the application status are connected rather than living in separate tools. That integration is the argument for CareerKit over assembling your own stack, since the JD analysis, the resume it produced and the interview prep for that role stay linked, which is exactly the continuity a multi-application search needs and a pile of separate documents loses.

Running it locally

LuJie CareerKit is a Next.js 16 and React 19 application with Prisma 6 over SQLite, and the README offers both a hosted live preview to try it and a Docker image for self-hosting, indicated by its Docker image build badge. Because data is local SQLite, self-hosting keeps your career materials on your own machine.

The practical path is to try the live preview first to see whether the workspace fits how you search, then self-host with the provided Docker image to keep your data local. The local-first, SQLite-backed design means there is no external database to provision and no account system to depend on; the app and its data run together.

That architecture, Next.js front end, Prisma and SQLite for local persistence, is a conventional, well-understood stack, which is reassuring for something holding sensitive personal data: it is a standard web app you run yourself, not a bespoke system. The bilingual UI means the same workspace serves English and Chinese job searches, which fits its stated audience of campus recruiting and internships where both languages are common.

The limitations: agent quality, self-hosting, and personal data

The honest limitations start with the agent-driven core. The quality of the tailored resumes, JD matching and interview materials depends on the model behind the agent and the inputs you give it. A generated resume is a draft to refine, not a finished document, and the workspace can organize and accelerate your search but cannot judge for you which project belongs on a resume or whether a tailored claim is accurate. The human judgment remains yours.

The local-first design is a strength for privacy but a cost in effort: to keep data local you self-host the Docker image and run the app yourself, which is more work than signing into a SaaS. Someone who wants zero setup and does not mind cloud storage of their materials will find a hosted career service lighter, but they give up the local-data control that is CareerKit's point.

The data itself is sensitive, resumes, application history, interview notes, so even self-hosted, the model calls the agent makes send your materials to whatever model provider you configure. Local SQLite keeps the storage on your machine, but a user should understand what leaves for inference, since the agent features inherently involve sending content to a model to generate the tailored outputs.

Against a SaaS career tool or a manual stack

The alternatives are a hosted SaaS career or resume tool, and assembling your own stack of a document editor, a spreadsheet tracker and separate interview prep. A SaaS tool is turnkey but stores your career data in its cloud and account, and couples you to its features and pricing. A manual stack is fully under your control but disconnected: your tailored resume, the JD, your application status and your prep live in separate places that do not share state.

CareerKit's difference is an integrated, agent-driven workspace that keeps data local in SQLite and links resumes, JD analysis, tracking and practice together, self-hosted so your materials stay on your machine. The cost is running it yourself and depending on a model for the agent features. Choose a SaaS tool when you want zero setup and accept cloud storage of your materials. Choose a manual stack when you want maximum control and do not need integration. Choose LuJie CareerKit when you want one connected, agent-driven workspace for the whole search, from JD-tailored resumes to application tracking, with your data kept local, and you are willing to self-host.

Apache-2.0, Docker self-hosting, and where to start

LuJie CareerKit is Apache-2.0, which permits commercial use and derivatives with attribution and carries the patent grant, a permissive license for a tool people may want to self-host and adapt to their own search. The local SQLite data means what you build is yours, portable as a database file rather than trapped in a vendor account.

Upgrade cost is the ordinary self-hosted web app one, and the Docker image is the maintained path to running and updating it, with the SQLite database as the state to preserve across upgrades. The live preview means you can evaluate features without committing to hosting.

The concrete first step is to try the live preview with a real job description and one of your resumes to see how the JD matching and tailored generation perform on your actual materials, since that is the core value and it depends on your inputs. If it fits, self-host with the Docker image to keep your data local, and treat the generated resumes and interview materials as drafts to verify, confirming any tailored claim is accurate before you send it, since the agent accelerates the work but the responsibility for what goes on your resume stays yours.

Editorial conclusion

Use LuJie CareerKit if you want one integrated, agent-driven workspace for the whole job search, JD-tailored resumes, multiple resume versions, interview prep, mock practice and application tracking, with your data kept local in SQLite and self-hosted so it stays on your machine. It is the wrong choice if you want zero-setup cloud convenience and do not mind a SaaS holding your materials, and its agent outputs are drafts whose accuracy you must verify, since the tool accelerates but does not replace your judgment. Start with the live preview using a real JD and one of your resumes to judge the tailored generation on your own materials, then self-host with the Docker image to keep data local, treating generated resumes and interview materials as drafts to check before sending.

Frequently asked questions

What is LuJie CareerKit?

The README describes it as an Agent-driven career workspace spanning resume editing, JD matching, career-material organization, interview preparation, mock practice and application tracking, for internships, campus recruiting and career searches. It is Apache-2.0 and built on Next.js and Prisma.

Where does LuJie CareerKit store my data?

Locally. The README says it is built on Prisma with SQLite for local data, so when self-hosted your career materials live on your machine rather than a cloud account. A Docker image is provided for self-hosting, plus a hosted live preview to try it.

Can LuJie CareerKit tailor a resume to a job description?

Yes. The README says you can generate more relevant resumes and interview materials from a JD and maintain multiple resume versions for different roles. The outputs are agent-generated drafts, so you should verify any tailored claim before sending.

Official sources

  1. Chozzc/Lujie-Careerkit on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
Community notes

Community notes