Also available in 中文 English

LuJie CareerKit is an open-source AI resume builder that also works as a job-search workspace. It can tailor a resume to a job description, keep track of applications, prepare interview material, run mock interviews, and keep all of that attached to the same role.

The project is released under the Apache License 2.0. You can try the web version, self-host it with Docker, and connect your own OpenAI-compatible model service.

If you already use ChatGPT while job hunting, you probably know how quickly things get scattered.

Your base resume sits in Word. You paste a new job description into an AI chat and save another version. Applications go into a spreadsheet or Notion. When an interview comes up two weeks later, you end up digging through old chats to remember what you changed for that company.

That works for two or three applications. It gets messy when you are managing ten or twenty.

LuJie CareerKit is built around that problem.


LuJie CareerKit AI resume builder and job search workspace with resume tailoring, application tracking, and interview tools

An AI resume builder that keeps the rest of the job search attached

Most resume builders treat the resume as the end product.

Pick a template, edit the content, export a PDF, and you are done.

LuJie takes a different approach. The resume is only one part of the application.

You can keep a base resume, add a specific job description, create a tailored version for that role, and continue using the same record after you apply.

That record can hold the company, role, application stage, deadlines, follow-up dates, the resume version you actually submitted, and the interview material that comes later.

In practice, it works as both an AI resume builder and a job application tracker.

The useful part is not another AI writing button. It is being able to come back weeks later and still know which resume belonged to which job.

LuJie CareerKit job search dashboard showing workflow statistics, application links, and quick actions
LuJie CareerKit dashboard with job-search workflow stats, application links, and quick actions.

Tailor a resume to a job description without overwriting the original

LuJie can start with a new resume or an imported one.

Instead of asking the model to rewrite everything at once, it can review the resume and suggest changes around areas such as experience descriptions, actions and results, supporting evidence, and structure.

You decide which issues are actually worth changing.

A revised copy can then be created as a separate version, so the base resume stays intact.

For a specific application, you add the full job description — or JD, as the project calls it — and use it as context for the next version.

LuJie CareerKit AI resume builder tailoring a resume to a job description
LuJie CareerKit matches a resume against a job description and creates a role-specific version.

The AI can look at the responsibilities and requirements in the posting, compare them with your actual experience, and suggest where the emphasis or wording should change.

The same job context can also be used for application material such as cover letters and recruiter messages.

You still need to verify the output. LuJie includes instructions telling the model not to invent experience, skills, metrics, or results, but that does not make hallucinations impossible. Dates, numbers, technologies, responsibilities, and claimed outcomes should all be checked before you send a resume.

If your original experience only says that you “contributed to an internal admin system,” an AI model should not turn that into “led the core architecture and improved performance by 40%” unless those claims are actually true.

The safer workflow is simple:

AI suggests → you review → you approve → the change is saved.

That is a better fit for resume work than blindly replacing the original document with whatever a model generates.

Interview prep and AI mock interviews use the same job context

Once a resume has been tailored to a role, the same material can carry over into interview preparation.

Say you are applying for a Java backend position.

LuJie can use the job description together with the resume you actually submitted to identify areas the role is likely to care about, experience that may invite follow-up questions, and topics you may want to prepare more carefully.

LuJie CareerKit AI interview assistant showing interview preparation, mock interview practice, and review
LuJie CareerKit interview assistant uses the target role and submitted resume for preparation, practice, and review.

The mock interview can continue with the same context.

That is different from opening ChatGPT and typing, “Give me a mock Java interview.”

LuJie already has the role, the job description, and the resume version tied to that application. Questions can stay grounded in those materials instead of starting from a blank conversation every time.

Individual answers can also be saved and reviewed afterward.

For someone working through several active applications, this makes AI interview prep much easier to keep organized.

The in-app Agent still asks before it writes

LuJie also includes an in-app Agent.

After a model is configured, you can use natural language to find existing application data, create a resume from real experience, generate a role-specific version from a job description, prepare for an interview, or start a mock interview.

It is not designed as an autonomous bot that can freely rewrite everything in the workspace.

Actions that write business data require user confirmation before they are carried out.

It also does not sign in to job boards and mass-apply to jobs for you.

That limitation makes sense here. Resumes and application records contain facts you may need to defend in an interview. Letting an Agent silently change them would create a different problem.

LuJie CareerKit Agent interview preparation workflow with search, parameter selection, user approval, and saving
The LuJie Agent workflow uses interview preparation to show search, parameter selection, approval, and saving.

Four Agent Skills for Codex, Claude Code, and other agents

The web app is only one part of the project.

The repository also packages several job-search workflows as Agent Skills:

  • resume-improvement — reviews and improves a resume, including role-specific tailoring from a job description.
  • prepare-job-interview — builds interview preparation material around a company and role.
  • mock-interview-coach — runs a question-by-question mock interview and produces a review afterward.
  • job-application-writer — drafts cover letters, recruiter messages, referral requests, and follow-ups.

If you already use Codex, Claude Code, or another agent environment, you do not necessarily have to move every task into the LuJie web interface.

The Skills let you reuse those workflows elsewhere.

That is one of the more unusual parts of the project. Most AI resume tools stop at their own website; LuJie exposes some of its job-search workflow in a form that other agents can reuse.

Where your data lives: browser, SQLite, Docker, and model APIs

Because resumes contain personal information, it is worth separating two questions:

Where does the LuJie application store its data?

and:

Where does the AI model process that data?

They are not always the same place.

LuJie currently uses different storage depending on how you run it:

  • Online preview: personal data is mainly stored in the current browser.
  • Local source deployment: the application uses a local SQLite database.
  • Docker deployment: data is stored in the mounted data volume.

These environments do not automatically sync with each other.

If you self-host the application, you are also responsible for backing up the database, Docker volume, and related secrets.

LuJie CareerKit resume editor showing resume version selection, editing, and template preview
LuJie CareerKit resume editor with version selection, editing, and template preview.

There is one important privacy detail here:

Self-hosting LuJie does not automatically mean that every AI request stays on your machine.

If you connect DeepSeek or another cloud-based OpenAI-compatible service, the resume, job description, or interview content needed for that request may still be sent to the model provider.

If you run a compatible local model service such as Ollama, the model layer can also stay on hardware you control.

LuJie uses an OpenAI-compatible API format, so model setup generally involves an endpoint, model name, and API key.

You do not need a model just to use every part of the app.

Basic resume management, job records, and application tracking can still be useful without one. AI resume optimization, job-description matching, the Agent, interview preparation, and mock interviews require a working model service.

The project itself being open source also does not mean every AI request is free. If your model provider charges by token or request, those costs still apply.

Docker self-hosting and backups

If you plan to use LuJie for more than a quick test, Docker is the simplest way to keep it running on your own computer, NAS, or server.

Replace LUJIE_SETTINGS_SECRET with your own long random string before running the container:

docker run -d --name lujie-careerkit \
-p 3000:3000 \
-v lujie-data:/data \
-e LUJIE_SETTINGS_SECRET="replace-with-a-long-random-string" \
ghcr.io/chozzc/lujie-careerkit:latest

Once the container is running, open:

http://localhost:3000

If you want the AI features, add your model endpoint, model name, and API key from the settings page.

For long-term use, keep backups of both the lujie-data volume and your LUJIE_SETTINGS_SECRET.

Do not rely on the database alone.

Using latest is convenient while testing. For a setup you depend on, pinning a version you have already checked is usually safer than automatically following every new image.

ChatGPT vs. Reactive Resume vs. JadeAI vs. LuJie CareerKit

If you only need to rewrite a few bullet points or compare a resume with one job posting, ChatGPT is usually the fastest option.

You do not need a dedicated platform for every small edit.

LuJie starts to make more sense when the work continues after that first rewrite.

Tool Main focus Better fit for
ChatGPT General AI writing and analysis One-off resume edits or job-description analysis
Reactive Resume Resume creation, layout, and self-hosting People mainly looking to build and manage resumes
JadeAI AI resume building, templates, job-description matching, and cover letters People focused on AI-assisted resume creation
LuJie CareerKit Resume versions, job tracking, interview prep, and Agent workflows People managing several active applications at once

If your main goal is to make one polished resume as quickly as possible, LuJie may be more system than you need.

If the harder part is keeping several job descriptions, resume versions, application stages, and interview notes straight, its workspace model is a better fit.

Who LuJie CareerKit is actually useful for

LuJie makes the most sense when you are applying to several roles at the same time.

That is common with internships, new-grad recruiting, and concentrated job searches.

The same experience may need a different emphasis for a product role, a backend engineering role, or a data position. Keeping a separate resume version for each application becomes much easier when the job description and application status stay attached to it.

The project also includes a campus recruiting database with keyword search, graduation-cohort filters, and job details.

LuJie CareerKit campus recruiting database with keyword search, graduation cohort filters, and job details
LuJie CareerKit campus recruiting database with keyword search, cohort filters, and job details.

It is also a better fit for users who are already comfortable with API keys, Docker, self-hosting, or local models.

If you already work with Codex or Claude Code, the Agent Skills add another reason to look at it.

On the other hand, if you only want to choose a template and export a good-looking resume in five minutes, a conventional online resume builder is simpler.

It is also not the right tool if what you actually want is an automatic mass-application bot.

And if your resume data must never be sent to a third-party model provider, plan the model side of the setup carefully rather than assuming self-hosting the web app alone solves that requirement.

LuJie is useful as an assistant, not something to trust blindly

LuJie CareerKit is still an open-source project maintained by an individual developer, and it is changing relatively quickly.

That is a different level of maturity from a commercial career platform that has been operating for years.

If you plan to keep important application data in it, make your own backups. Important resume versions should also be exported to formats such as PDF or DOCX.

AI output will vary too.

Model quality, the amount of real information in your resume, and the quality of the job description all affect the result.

A stronger model cannot create experience you do not have.

The analysis or score from a mock interview is also not a prediction of how a real employer will evaluate you.

LuJie makes more sense as a tool for organizing, analyzing, preparing, and managing a job search than as something that should make career decisions for you.

FAQ

Is LuJie CareerKit free and open source?

LuJie CareerKit is released under the Apache License 2.0 and can be viewed and self-hosted. The application being open source does not make third-party AI model usage free. A paid API can still generate token or request charges.

Can I use LuJie without an API key?

Yes, for features that do not require a model, such as basic resume management, job records, and application tracking. AI resume optimization, job-description matching, the Agent, interview preparation, and mock interviews require access to a compatible model service.

Where does LuJie CareerKit store my data?

The online preview mainly keeps personal data in the current browser. A local source deployment uses SQLite, while Docker stores application data in the mounted volume. These environments do not automatically synchronize with one another.

Does self-hosting keep my resume data completely offline?

Not necessarily. Self-hosting controls where the LuJie application and its local data run. If you connect a cloud model such as DeepSeek or another OpenAI-compatible provider, content required for AI processing may still be sent to that provider. Using a compatible local model service such as Ollama changes that data path.

LuJie CareerKit links

GitHub: https://github.com/Chozzc/Lujie-Careerkit

Online preview:  https://lujie.chozzc.dev/

If you only need AI to rewrite a few lines or help with one resume, ChatGPT and a conventional resume builder are probably enough.

LuJie becomes more useful when the number of applications starts growing. Different jobs end up with different resume versions, different job descriptions, different follow-ups, and different interview notes.

Its main advantage is keeping those pieces attached to the job they belong to instead of turning them into another pile of disconnected files and chats.

This article was compiled by ahhhhfs.com based on the project's official website, documentation, and publicly available sources. Features, pricing, licensing, and terms of service may change; please refer to the latest official information. When quoting this article, please credit the source and retain a link to the original page. For full republication requests, content corrections, copyright or licensing concerns, contact us at feedback#abskoop.com (replace # with @).