AI NewsDev toolsAnnouncement

Dossier is a self-hosted job search app with local-model support, 402 stars

Dossier is an AGPL-licensed, self-hosted job search app that keeps a profile on your own PostgreSQL and writes tailored resumes and cover letters through a model of your choice, including local ones.

AI News

Editorial3 min read

LinkedInX

Why it mattersA single-user app where the data stays on your own server and the AI provider is pluggable is the shape worth copying when the subject matter is sensitive and a hosted multi-tenant tool is a bad fit.

A resume written by a shared cloud AI tool is one that leaves your work history on somebody else's servers. AienTech's Dossier, now at 402 stars after nineteen days on GitHub, is a self-hosted alternative: one profile stored in your own PostgreSQL database, drafts written by an AI provider you pick, and all of it reachable only from your own machine or server.

Dossier is a Next.js 16 and PostgreSQL 18 app under the AGPL-3.0 licence. It is designed for one person, one password and one profile. The README notes four limits in that shape up front: desktop-only (not built for phones), single user with no accounts, English interface (though documents can be written in 21 built-in languages or any added one), and one instance per database because the nightly backups, AI job queue and PDF browser live inside the app process.

What the app actually does

The core loop, from the README: paste a job posting, Dossier reads it, shows how your profile matches, and drafts a tailored resume and cover letter using only facts from your profile. "Never invents experience" is listed as a design rule. A gap between the posting's requirements and your profile is shown as a gap, so the draft never fills it with a fabricated bullet. You then refine the draft in a chat, edit or regenerate any section, and roll back to earlier versions.

The job-finding side pulls postings from JSearch (covering LinkedIn, Indeed and others), Adzuna or Germany's Bundesagentur für Arbeit. An optional daily job agent runs one search, skips what you have seen, scores new postings against your profile and keeps the best on an Agent screen with its reasons. The agent prepares drafts but never sends an application on its own.

An optional Gmail and Google Calendar connection lets you send applications from your own address with PDF attachments, read employer replies, draft responses from your profile, and keep interviews in step with your calendar in both directions. The README says nothing is sent without the user's confirmation.

The AI provider is your choice

The one piece most worth noticing is the provider configuration. Dossier runs with any OpenAI-compatible API, Anthropic or Mistral for a hosted model, or Ollama and LM Studio for a local one. A local provider keeps the profile and documents on the user's own hardware; a hosted one receives whatever the AI writes from, and the project publishes a Privacy page that says which bytes go where.

AienTech also published performance measurements, dated 28 September 2026, in a container limited to 2 vCPUs and 1 GB of memory. The base resume renders to PDF in about 0.25 seconds (or 1 second when Chromium has to start first), the dashboard and application list answer in 20 to 90 milliseconds with ten times the demo data, and the app plus Chromium used at most 520 MB. The recommended minimum is 768 MB.

For a team building a similar workflow

For anyone shipping a vertical AI app with sensitive data (hiring, finance, legal, health), the pattern inside Dossier is the one to copy rather than the app itself. The subject matter stays in a database the user owns, the model provider is a pluggable interface rather than a hard-coded vendor, and the agent is scoped to a single reviewed step (draft a document, score a posting) rather than an open-ended assistant. The licence is AGPL-3.0, so a competing product can read the source but cannot ship a closed fork of it.

Source

AienTech/dossier on GitHub.

This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.

Share
LinkedInX
Start a project