Skip to content

Repository files navigation

Smart Resume

中文说明

Smart Resume is a private, multi-user resume workspace for creating, improving, sharing, exporting, and rehearsing resumes with AI. It combines a Spring Boot backend with a React + Vite frontend and covers the full resume workflow: account access, structured editing, live preview, templates, scoring, public sharing, PDF export, submissions, and interview practice.

Highlights

  • Multi-user login and registration with admin-controlled registration settings
  • Resume hub for creating, editing, copying, deleting, recovering, versioning, and sharing resumes
  • Structured editor with real-time preview, A4 preview, section settings, and template management
  • AI provider configuration, resume chat, resume scoring, translation, and interview assistance
  • Interview workspace with target company context, AI answer suggestions, chat history, and reports
  • Submission tracking for job applications and resume delivery
  • BOSS Zhipin browser extension for capturing job details, saving applications, and generating AI cover letters
  • Two PDF export paths:
    • Quick export in the browser with html2canvas and jspdf
    • High-quality server-side export with Playwright and Chromium

Product Screenshots

Web Experience

Access and Workspace

Login Resume Homepage
Web login Web resume homepage
AI Configuration Recycle Bin
Web AI configuration Web recycle bin

Resume Editing and Preview

Resume Editor A4 Preview
Web resume editor Web A4 resume preview
Resume Chat Resume Translation
Web resume chat Web resume translation
Score Overview Score Details Score Suggestions
Web resume score overview Web resume score details Web resume score suggestions
Resume Version Resume Share Share Detail
Web resume version Web resume share Web resume share detail

Templates and Submissions

Template Homepage Template Editor Resume Import
Web template homepage Web template editor Web resume import from template
Submission Tracking
Web submission tracking

Interview Practice

Interview Homepage Interview Chat
Web interview homepage Web interview chat
AI Answer Interview Report 1 Interview Report 2
Web interview AI answer Web interview report overview Web interview report details

Mobile Experience

Access and Workspace

Login Resume Homepage AI Configuration
Mobile login Mobile resume homepage Mobile AI configuration
Recycle Bin Submission Tracking Resume Settings
Mobile recycle bin Mobile submission tracking Mobile resume settings

Resume Editing and Sharing

Resume Editor Resume Preview Resume Chat
Mobile resume editor Mobile resume preview Mobile resume chat
Score Overview Score Details Share Detail
Mobile resume score overview Mobile resume score details Mobile resume share detail
Version List Version Detail
Mobile resume version list Mobile resume version detail

Templates and Interviews

Template Homepage Template Editor
Mobile template homepage Mobile template editor
Interview Homepage Target Company Interview Chat
Mobile interview homepage Mobile interview target company Mobile interview chat
AI Answer Interview Report
Mobile interview AI answer Mobile interview report

Browser Extension

Login Service URL
Browser extension login Browser extension service URL configuration
Job Capture AI Cover Letter
Browser extension BOSS job capture Browser extension AI cover letter

Tech Stack

Backend

  • Java 21
  • Spring Boot 3.5.14
  • PostgreSQL
  • Flyway
  • MyBatis-Flex
  • Spring AI
  • Playwright 1.60.0 for high-quality PDF export

Frontend

  • React 19.2
  • TypeScript
  • Vite 8
  • Ant Design 6
  • React Router 7
  • html2canvas and jspdf for quick browser-side PDF export

Browser Extension

  • TypeScript
  • Vite
  • Chrome extension APIs

Repository Layout

smart-resume/
|-- backend/   Spring Boot API, database migrations, domain services, PDF export
|-- browser-extension/  BOSS Zhipin browser extension for job capture and cover letters
|-- docs/      README screenshots and supporting assets
|-- frontend/  React application for workspace, editor, sharing, templates, and interviews
`-- .trellis/  Project workflow, specs, and task records

Getting Started

Prerequisites

  • Java 21
  • Node.js 20.19+ and npm
  • PostgreSQL

Optional for AI features:

  • An OpenAI-compatible API key
  • A DeepSeek API key
  • Or a local Ollama instance

1. Clone the Repository

git clone <your-repo-url>
cd smart-resume

2. Prepare PostgreSQL

Create a database named smart_resume:

CREATE DATABASE smart_resume;

Default backend settings:

  • Database URL: jdbc:postgresql://localhost:5432/smart_resume
  • Username: postgres
  • Password: postgres
  • Backend port: 8080

You can override them with environment variables:

export SMART_RESUME_DB_URL=jdbc:postgresql://localhost:5432/smart_resume
export SMART_RESUME_DB_USERNAME=postgres
export SMART_RESUME_DB_PASSWORD=postgres
export SMART_RESUME_BACKEND_PORT=8080
export SMART_RESUME_TOKEN_SECRET=change-this-secret

In PowerShell, use $env:NAME='value' instead of export.

3. Install Frontend Dependencies

cd frontend
npm install
cd ..

Run the Application

Option A: Docker (Recommended for Production)

Deploy the entire stack (PostgreSQL 17.6, Spring Boot 3, React, Nginx) with one command:

# Copy environment configuration
cp .env.example .env

# Edit configuration (modify passwords and secrets for production)
vim .env

# Deploy with Docker Compose
docker-compose up -d

Or run the deployment helper, which creates .env when needed, checks ports and HTTPS certificates, then starts the stack:

./deploy.sh

Access the application at http://localhost by default, or at the APP_DOMAIN/HTTPS URL configured in .env.

For detailed deployment instructions, see Docker Deployment Guide

Option B: One-command Script

From the project root:

./start.sh

The script checks Node.js and Java versions, installs frontend dependencies, builds the frontend, syncs frontend/dist/ into the backend static resources, installs and builds the browser extension, builds the backend JAR, installs Playwright Chromium when missing, then starts the Vite frontend dev server and the backend server together.

The frontend is available at http://localhost:5173 by default, and the backend is available at http://localhost:8080.

To build without starting the server:

./build.sh

Option C: Development Mode

Start the backend:

cd backend
./mvnw spring-boot:run

Start the frontend in another terminal:

cd frontend
npm run dev

Then open the Vite URL shown in the terminal, usually http://localhost:5173.

The frontend uses http://localhost:8080 by default. To point it to another backend:

cd frontend
echo 'VITE_API_BASE_URL=http://localhost:8080' > .env.local
npm run dev

Browser Extension Usage

The BOSS Zhipin helper is a local Chrome/Edge extension. It reads the active BOSS job page, sends the extracted job details to your Smart Resume service, and can create an application record or AI cover letter from a selected resume.

Build and Install

  1. Start Smart Resume first, either with the one-command script or with the backend running at http://localhost:8080.
  2. If you ran ./start.sh or ./build.sh, the extension has already been built at browser-extension/dist. To build only the extension manually:
cd browser-extension
npm install
npm run build
  1. Open chrome://extensions or edge://extensions.
  2. Enable developer mode.
  3. Choose "Load unpacked" and select browser-extension/dist.

Use on BOSS Zhipin

  1. Open a BOSS Zhipin job page, such as https://www.zhipin.com/web/geek/job* or https://www.zhipin.com/job_detail/*.
  2. Open the Smart Resume BOSS Helper extension.
  3. On first use, enter the Smart Resume service URL, for example http://localhost:8080, and save it.
  4. Sign in with your Smart Resume account.
  5. Select a resume. The extension fills company, position, JD, salary, education, and work-duration notes from the current job page.
  6. When switching between jobs in the same BOSS page, click "Refresh" in the extension before saving or generating.
  7. Click "Save application" to create or reuse a BOSS application record, or click "Generate cover letter" to create an AI cover letter.
  8. After a cover letter is generated, use the Job/Cover letter tabs to switch back and review or copy the generated letter again.

First-time Use

  1. Open the frontend in your browser.
  2. Log in with the default admin account: username admin, password admin123.
  3. Change the default password immediately from system settings.
  4. Other users can register new accounts when public registration is enabled.

AI Providers

AI features are configured from the application UI. The backend supports OpenAI-compatible endpoints, DeepSeek, and Ollama. These providers are used by resume chat, resume scoring, translation, interview generation, AI answer suggestions, and interview reports.

PDF Export Notes

  • Public share pages can be open or password-protected.
  • Quick export runs fully in the browser and produces an image-based PDF.
  • High-quality export runs on the backend with Playwright and Chromium and produces a real-text, ATS-friendly PDF.
  • In development mode, high-quality export may return 503 until frontend/dist/ has been built and copied into backend static resources.
  • The frontend has a package-level guide in frontend/README.md.

Friendly Links

  • linux.do - 上L站,学AI
  • Trellis - 本项目使用的 AI 开发工作流工具

License

Smart Resume is licensed under the Apache License 2.0. See LICENSE for the full text and NOTICE for attribution details.

About

No description, website, or topics provided.

Resources

Stars

118 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages