Active product · Local application

Resume Assistant

A macOS application that prepares a resume for a vacancy while keeping contacts, originals and secrets on the user’s device.

Status
Core application implemented; evolving
Role
Product, architecture, backend and frontend
Stack
Go, React, TypeScript, SQLite
Model access
Console LLM provider or test provider
Vacancy and protected profile pass through analysis and review to document export

Problem

Useful adaptation without inventing experience or exposing contacts

A good application requires comparing the vacancy with the candidate’s real experience, editing several sections and checking the final wording. At the same time, phone numbers, email addresses and private source documents should not become part of a model request.

Local first

The server listens only on the local computer and ships with the web interface in one executable file.

Data separation

Originals and contacts are stored separately from the material prepared for analysis.

Fact checking

Risky claims are highlighted for review instead of silently entering the final document.

Export boundary

Contacts are inserted only when DOCX or PDF is produced.

Process

From source resume to a reviewed application

Architecture

One local program with a replaceable LLM provider

The Go application owns the data, background operations, import, export and security rules. React provides the working interface. SQLite stores the index and state, while private files remain in the application data directory. Model calls use a prepared temporary area that contains only permitted inputs.

The application can use a console LLM provider or a deterministic test implementation without changing the application process.

Operation

The product includes its own maintenance tools

Long actions run as background jobs. The command line can check the installation, show process status and stop the service correctly. Encrypted backups, index repair and an explicit data deletion command cover common recovery and maintenance cases.

The separate freelance-order section is still under development and is not presented here as a released feature.

Publication boundary

Only synthetic material belongs in this case study

Real resumes, vacancies, contacts, model inputs and generated documents are not published. The source repository is private.

Next project

AsyncTaskManager

A production C++ subsystem for long-running operations and worker threads.

Read case study →