Open source (Apache-2.0) · v2.0.0 · 100% local

ResumeForge

Covers the main steps of a job search: find jobs, tailor a resume, apply and follow up, prepare for interviews

Supports Windows 10 / 11 · macOS 13+

ResumeForge home workspace: job metrics, upcoming reminders and what to do next
Home workspace: quick entries grouped by workflow, reminders color-coded by urgency, recent jobs and resumes on one screen

The problem

Most job-search tools never touch the part you are actually stuck on.

These six things are where a job search usually gets stuck. ResumeForge builds something specific for each one — not just another “let AI write it” button.

One resume, sent to every job

A hundred applications, three replies. Usually the resume is not badly written — it just does not answer any particular job.

ResumeForge: generates against the JD line by line; match analysis gives five verdict types and an apply / needs confirmation / do not apply recommendation — before you send it.

The AI embellishes a little

Calling participation “leading”, or a team result your own. Two follow-up questions and the sentence collapses.

ResumeForge: every claim carries a level of ownership and a personal boundary; unconfirmed statements are explicitly avoided, and a resume still holding [TODO] markers is blocked at export.

One interview question and it falls apart

You memorized answers, but the interviewer asks how the number was measured. If the definition is unclear, the polished wording does not help.

ResumeForge: interview deep dive stress-tests each confirmed claim — the rubric is locked before the question, evidence status replaces a score, and the session ends with a “what to fix” list.

Applying by hand, status scattered across email

Which companies, which stage, what to do next — all held in your head and a spreadsheet that keeps getting messier.

ResumeForge: the apply desk queues jobs and applies for you, with per-job progress, pause and a circuit breaker; successful applications flow into the tracker, and pasting an email screenshot updates the stage.

Materials, interview notes and links everywhere

Certificates in one folder, interview notes in a notes app, links in bookmarks. When you need one, none of them can be found.

ResumeForge: the material library holds loose material, the knowledge base holds written notes, and the trash handles deletion and restore for all 22 kinds of content.

Afraid to hand your resume to a cloud tool

Your phone number, full history, a referrer's contact — put those on a website and you start worrying about how they will be used.

ResumeForge: data stays local by default (SQLite), job-site credentials are never stored, and exports can be redacted in one click or packed for offline sharing.

What makes it different

These six things are the main difference between ResumeForge and comparable tools.

These are not here to make the feature list longer. They exist so the tool's conclusions can be checked by you — and survive an interviewer's follow-up. Each one comes from a real failure mode.

01 · Fact ledger

Facts first.
Wording second.

Every sentence that might go into a resume is first broken into raw fact, resume wording, level of ownership and personal boundary. Only confirmed entries may enter a formal resume — the assistant can read the ledger and add entries, but cannot confirm them for you.

See how the fact ledger works
Fact ledger: every claim carries verification status, ownership level and last verified date
Fact ledger: verification status shown by icon and color, with ownership level and last verified date

02 · Match analysis

Deliberately no
percentage score.

It returns five verdict types and an apply recommendation, each backed by the JD quote and your evidence. There is also a 0–100 reference score, with hard boundaries: computed locally, never used for the apply decision, and always shown with a disclaimer.

See what a match verdict looks like
Job match analysis: matched / wording gap / insufficient evidence, each with the JD quote and evidence, plus an apply recommendation
Match analysis: every verdict carries a category, the JD quote and evidence; where evidence is missing it says “not provided”; the apply recommendation sits at the bottom

03 · Interview deep dive

The standard is fixed
before you see the question.

Each question locks its rubric at generation time — what to verify, which evidence to listen for, when to follow up — and never loosens it because an answer sounded fluent. Evidence status replaces a score; afterwards you get action items and a re-practice queue.

See how interview deep dives are scored
Interview deep-dive review: evidence status per claim and a “what to fix” action list
Deep-dive review: what holds up and what does not, with actions under fix the fact / learn the topic / soften the wording

04 · Apply desk

It really applies —
and says so when it fails.

It drives your own browser through “greet → attach resume → submit → verify”. A gate rejects jobs whose source cannot be verified, failure categories state the real reason, and a circuit breaker stops after repeated failures — it never quietly runs in the background without you.

See how the apply desk works
Apply desk: four-step flow at the top, queue, eligibility verdict per job and the start button
Apply desk: the four-step flow is always visible (where jobs come from, what to check, what to edit, when it actually applies)

05 · Job analytics

No data,
no zero-filled chart.

Four themes summarize the search. Records without a date are named separately instead of counted as zero; a chart with no input renders an explicit empty state; metrics that cannot be computed are not shown — no row of zeros.

See the four analytics themes
Job analytics dashboard: metric cards, five-stage funnel, monthly trend and conversion rates
Job analytics: metric cards, five-stage funnel, monthly trend and conversion rates, with missing-data caveats stated separately

06 · From resume to review

After the writing,
a full round of checks and notes.

The editor includes STAR quantification, a phrasing generator, multi-style polishing, Chinese–English translation and version comparison, plus six quality and compliance checks. Export supports PDF / Word / HTML / Markdown / plain text / JSON / PNG with watermarking, one-click redaction or an offline share package; the page limit applies to the six paginated formats other than JSON, and “unlimited” really means no truncation.

See export & sharing
Resume preview: A4 layout, layout report, approximate pagination when content overflows, and the export entry
Preview & export: live A4 layout; overflow is split at A4 height and labeled “approximate pagination” — browser printing is authoritative

Workflow

Six steps from a blank page to something you can send.

You do not need to learn a methodology first. Follow the order once and you end up with a resume you can explain — and defend.

  1. Organize your profile and the fact ledger

    Fill in education and experience once (paste a resume, or upload a PDF/DOCX for extraction); then record the claims you want to use, with ownership level and personal boundary.

  2. Bring jobs in

    Auto-collect, paste text, drop screenshots or upload documents. Collected jobs land in a staging area first; you choose what enters the job board.

  3. Decide whether it is worth applying

    Run match analysis: five verdict types against the JD text, with a recommendation. Jobs that fail a hard requirement are dropped early.

  4. Generate or write the resume

    Pick an enhancement level and a page budget, then let the AI stream a resume (the fact baseline is the confirmed ledger entries), or write it yourself; writing enhancers, quality checks and version comparison all live on the editor page.

  5. Preview, fine-tune, export

    Confirm the layout in the A4 preview; the layout report tells you whether the page is sparse or tight. Set the limit to 1 / 2 / 3 pages or unlimited; when content overflows, “fit to one page” tightens it step by step. A resume with [TODO] markers is blocked.

  6. Apply, follow up, prepare for interviews

    The apply desk queues and applies; the tracker owns every step after sending; reminders keep the next action visible; mock interviews and deep-dive sessions expose what you cannot yet explain.

Feature list

One local app for the whole job search.

From reading a job screenshot to applying, following up and reviewing the interview. Each step is documented in the user guide.

Fact ledger

Record each sentence as a claim: raw fact, wording, ownership level and boundary; only confirmed claims feed generation.

AI-tailored resumes

Stream a draft against the JD, choosing enhancement level, template and page limit (1 / 2 / 3 or unlimited); it runs as a background task you can inspect or cancel.

Write it yourself, with writing tools

Prefill from your profile, then edit freely with the job requirements pinned on the right; STAR rewriting, polishing, version comparison, and one-sentence edits to just the selected field.

Quality and compliance checks

Duplicates, sensitive words, exaggeration risk, interview follow-up risk, compliance and local ATS checks — six categories; risk points link to the fact ledger. ATS scores are now tied to keyword coverage, so the same resume scores lower than before: that is a correction, not a regression.

Job management and JD analysis

Automatic skill tags, status changes and bulk actions; JD analysis returns a structured summary with evidence.

Job match analysis

Five verdict types plus an apply recommendation, each with the JD quote and your evidence; the reference score never affects eligibility.

Apply desk and auto-apply

Queue and auto-apply, per-job progress, a circuit breaker after repeated failures; only jobs whose source is on a supported job site are accepted.

Web forms (fill only, never submit)

A dedicated browser reads the whole form, lets you verify each row, then fills it; it never submits and reports the real success rate.

Mock interviews and question bank

Eight interview types, three difficulty levels and four interviewer styles; the question bank is generated from the job and your profile.

Interview deep dive

Confirmed claims are stress-tested one by one with the rubric locked up front, ending with action items and a re-practice queue.

Multi-format export and sharing

PDF / Word / HTML / Markdown / plain text / PNG share one page limit (JSON is complete data and is never truncated); watermarking, one-click redaction and offline share packages are supported.

Works without a model

Parsing, match verdicts, layout rendering, export, duplicate checks and ATS checks all run on local rules; no model required.

Open source, transparent, and your data stays on your machine.

Open source under Apache-2.0; the code can be read and changed. All data lives in local SQLite on your machine, never uploaded, and job-site credentials are never stored. Moving to a new computer is one dataset backup.

See the data & privacy boundaries
Frontend
  • React 19
  • TypeScript 6 strict
  • Vite 8
  • Ant Design 6
  • React Router 7
Backend & data
  • Python 3
  • FastAPI
  • SQLAlchemy 2.0
  • Alembic migrations
  • SQLite
Capabilities & license
  • 16 model presets
  • OpenAI compatible
  • Anthropic native
  • Browser automation (CDP)
  • Local PDF export

Download

Start now,
it takes a few minutes.

ResumeForge is fully open source (Apache-2.0) and stores data only on your machine. This page offers the latest stable release; screenshots and docs follow the current code, so details may differ slightly from the release.

Supports Windows 10 / 11 and macOS

Try the demo data first

A fictional dataset: 31 jobs, 15 resumes, 21 claims, 20 tracker entries, 12 interview notes, 13 application records across 6 batches with failure diagnostics, 20 reminders, 6 referrals, 18 material-library items and 17 knowledge notes, plus question-bank and review history, interview deep-dive sessions, 3 model configurations and 3 custom templates, covering every screen in the app. Exported by 2.0.0 and meant for the 2.0.0 download; importing only adds a dataset and leaves your data untouched.

Download demo data
  • No unzip needed: in the app, choose Settings → Data & export → Import backup as a new dataset; the package contains no API key.
  1. Download and unzip

    Click Download the latest version below to get the installer or archive (the Windows / macOS portable builds are about 27–29 MB and include source and docs; installers are exe / dmg), then extract or install it anywhere. If GitHub is reachable, git clone works too.

  2. Double-click the launcher

    On Windows, double-click start.cmd; on macOS, double-click start.command. The launcher prepares the runtime, installs dependencies, starts the services and opens the browser. The first run needs network access and usually takes a few minutes.

  3. Configure a model when needed

    For AI generation, match analysis, the assistant and interviews, open Settings, pick a preset or enter a custom endpoint, test the connection and save. Without a model you can still maintain your profile, manage jobs, write a resume by hand and export.

Verify the download (SHA-256)

Every package ships with a matching .sha256 file; verify the hash after downloading. Reference values for v2.0.0:

Windows installer 25e84f98ad5bd4095a15229930e6c3e43b9ad51ae44e71fd34422ab985fc3f3b
Windows portable 105c3e4ad7391b867854aa0168c2f4170c45de9a30d53ad84a15e3e577ca6531
macOS portable 81b6ebc7296746f061c3ac3c77bae3ebbc199af31a49f6b672352275c0c36204
macOS installer 0b5daedfbceb459823ab8ec12dd48bbd9774716aa7cf8c1dc22097c5b434a8f8
macOS installer (Apple Silicon) 9fc1806ad38f034cec4f01efc78bcc4ab2be7ac2b574c1e9e0c9d6bdca523f58

To verify (three steps): ① download the package and its .sha256 file; ② in that folder run Get-FileHash .\ResumeForge-2.0.0-windows.zip (Windows PowerShell) or shasum -a 256 ResumeForge-2.0.0-macos.zip (macOS / Linux terminal); ③ compare the output character by character with the value above before running it. In-app updates perform the same check before installing.

Need an older version? Pick a download

Windows

  • Want a look before installing? Visit the online demo and walk through the basics with fictional data.
  • Which button? The Windows build contains only the Windows launcher; the macOS build only the macOS launcher. The application itself is identical, so picking the wrong platform just means downloading the other package. A complete package with every launcher is on the GitHub Releases page (“complete installer” above).
  • Download stuck or won't open? Grab the installer from the QQ group 922830167 files.
Read the full install & usage docs

Community

Can't install it, won't start, or want the AI to understand your jobs better? Ask in the group.

This project has no support desk, but the group has people in it. Questions, feature requests and bug reports are welcome, and the next release is discussed there first. The group files also include installers — handy when GitHub is slow.

QQ group 922830167

QR code for the ResumeForge QQ group 922830167
Scan to join · group 922830167