LATEST
AI Tools

Dossier 1.11.0: Self-Hosted AI Job Search, Zero Invented Experience

Updated November 2, 2026
13 min read
Editor's Note: This article was human-reviewed for accuracy
Clipboard with a resume beside a pen and laptop on a marble desk

Quick Answer & Key Takeaways

  • • Dossier 1.11.0 is a free, self-hosted job-search app that stores one career profile in your own PostgreSQL database and writes a tailored resume and cover letter for every posting.
  • • Drafts use only facts from your profile: anything a posting asks for that you lack appears as a gap, never as invented experience.
  • • There is no subscription; the bill is your server plus the AI model you choose, including a fully local Ollama or LM Studio option that keeps everything on your hardware.

The most dangerous AI resume tool is the confident one. You ask a general-purpose chatbot to tailor your resume, and somewhere between "results-driven" and "synergies" it quietly invents a year of experience you never had, a skill you mentioned once, a metric that sounds right. That is not a stylistic problem. In some fields it is a firing offense. Dossier, a self-hosted job-search app that crossed 3,800 GitHub stars this weekend, is built around the opposite rule: your profile is the only source of truth, and anything a job posting asks for that you lack shows up as a gap, never as experience.

Version 1.11.0 landed on November 1 with skill groups for long resumes, a second scoring engine for job postings, and a connector that lets apps beyond Claude use your data. The software is free under the AGPL-3.0, the data lives in your own PostgreSQL database, and the bill is whatever server and AI model you bring. Here is what it does, what 1.11.0 adds, and what it actually costs to run.

One profile, every application

Dossier starts from a simple observation: job hunting produces duplicate work. The same experience gets rewritten for every employer, the same cover letter gets adjusted by hand, and the record of what went where lives in a spreadsheet that is out of date the moment it is saved. Dossier's answer is to make the profile the single source and treat each resume as a rendering of it.

You enter your basics, skills, languages, experience, projects, education, publications and references once, in the order you choose, with a strength meter that counts only what a profile needs. If you have one already, you can start from an existing resume in PDF, Word or Markdown. From that profile the app produces the base resume in one of twelve themes (there is also a theme builder), previewed live and printed to PDF on your own server by Chromium.

For each job, you paste the posting. Dossier pulls out the details and requirements, matches them against your profile, and writes a tailored resume and cover letter in the tone you pick. The match view is the part worth looking at before a word is generated: each requirement is ticked off with where it came from, and what you lack is flagged as a gap. Then you refine the documents in a chat, undo any AI change, or roll back to any earlier version, and the finished PDFs are ready to attach.

Beyond the documents there is a pipeline. Postings can be searched near your city through JSearch (which covers LinkedIn, Indeed and more), Adzuna, or FreeHire (company career pages), then saved, dismissed, scored against your profile, and turned into an application with one click. A startup section pulls hiring posts from YC startups and Hacker News's monthly "Who is hiring?" thread, filters by location or remote eligibility, and ranks them against your profile. Every application lands on a board that runs from draft to offer, with a funnel chart, a week-by-week chart, and a calendar of upcoming interviews.

What's new in 1.11.0

The release notes read like a maintainer listening to users, and the changelog names the people who asked for things. Four changes matter:

Skill groups

With 30 or 50 skills, the resume's Skills section was one long paragraph. You can now create labeled groups in Profile → Skills, move skills between them, and print one labeled line per group ("Technical SEO: Crawl budget · Log analysis") in every theme. Tailoring keeps the groups.

A second scoring engine

Settings → Scoring now lets you choose what powers the Score in Find jobs and the job agent: your AI model as before, or Jev by TypeSafe, a model built for typed judgments, with a TypeSafe key of your own. Jev reads each line of the posting and its reasons quote them: "Covers:" for what your profile shows, "Missing:" for what it doesn't. One honest caveat from the notes: Jev reads English best and judges postings in other languages less well. The project's PRIVACY.md lists exactly what Jev receives: the posting and your profile, without your name, contact details or references.

The MCP connector, for more than Claude

The old Claude connector is now Settings → MCP connector. Under "Other apps" you add the callback address an MCP app shows you, such as n8n's OAuth Redirect URL, and that app can sign in the way Claude does. Claude itself keeps working: it can search jobs, score them, read your profile and applications, and save drafts checked like Dossier's own. Nothing is sent or deleted by either path.

More model servers

OpenRouter and OpenCode now work as OpenAI-compatible servers, so you can point Dossier at https://openrouter.ai or OpenCode Go and Zen endpoints alongside the existing Ollama, LM Studio, OpenAI-compatible, Anthropic and Mistral options. The fixes round it out: Ollama's cloud model answers, paragraph breaks in profile summaries, over-scored junior postings for senior profiles, and a header-injection bug in sent mail.

The honesty rule: zero invented experience

The project's strongest claim is also the easiest to test. The README states it plainly: drafts only use facts from your profile. The official site puts it blunter: "It never invents experience."

This is a design decision, not a model capability. Constraining a model to a profile is a retrieval and prompting problem, and the interface shows the work: the match view makes the gap explicit before generation, the refine chat operates on a document with tracked versions, and the cover letter lets you edit every part, including sender, date, recipient, greeting and sign-off, in the letter's language. When a posting asks for Kubernetes and your profile has none, the honest output is a visible gap plus an address-it-in-the-cover-letter suggestion, not a fabricated bullet point.

A fair caveat: "never invents" is the project's stated rule, and the system is built to be audited: every AI change undoable, every document versioned. But it is still a model writing your documents, and models can misread. The README is the authority on intent; your eyes are the authority on output. Read before you send.

What it really costs

Dossier's pricing is simple enough to state in one table, because most rows are zero:

WhatCostFine print
The software$0AGPL-3.0. No tiers, no paid plan, no feature gates.
Your serverYours to pay2 vCPUs and 2 GB of memory recommended; ~2 GB free memory to run locally.
Local AI model$0Ollama or LM Studio on your hardware. Your profile and documents never leave the machine.
Hosted AI modelProvider ratesOpenAI-compatible, Anthropic or Mistral. The text it writes leaves your machine; the provider's terms apply.
Job sourcesTheir termsJSearch, Adzuna and FreeHire carry their own API terms. The app doesn't resell them.
TypeSafe Jev scoringYour keyOptional, new in 1.11.0. Requires your own TypeSafe key; read the project's privacy page first.
Gmail / Calendar$0 software-sideUses your own Google OAuth client; your own Gmail plan applies.

Two fine-print items deserve emphasis. First, the license: Dossier is free software you may use, change and share, but the AGPL-3.0 is server-side copyleft: if you run a modified version for others over a network, you must offer them its source code. For personal use this changes nothing; for anyone eyeing a hosted-resume SaaS clone, it is the whole ballgame.

Second, the privacy trade is explicit rather than buried. The official site states it in one line: with Ollama or LM Studio, your profile, postings and documents never leave your hardware; a hosted model receives what it writes from. The app asks once whether it may send a daily usage ping — a random ID and the version number — and sends nothing until you agree. For documents containing your employment history, salary context and contact details, that distinction is the whole point of self-hosting. We recently covered OpenClaw, another tool that keeps your data on your own hardware instead of a vendor's cloud. Same instinct, different job.

Getting it running

The install path assumes Docker and follows the official README. These steps are condensed from the project's own docs, not tested hands-on:

  1. Get Docker Desktop (macOS or Windows) or Docker Engine with the Compose plugin (Linux), with about 2 GB of free memory.
  2. Fetch the production Compose file, then create the secrets Dossier needs: mkdir ~/dossier && cd ~/dossier, curl -fsSL -o compose.yml https://raw.githubusercontent.com/AienTech/dossier/main/compose.production.yml, and set POSTGRES_PASSWORD and DOSSIER_SECRET in a .env file.
  3. On Apple Silicon, add a compose override for linux/amd64: the image is built for Intel and AMD processors, and Docker Desktop runs it under emulation.
  4. Choose a password by hashing it with the included command (docker run --rm -it --platform linux/amd64 ghcr.io/aientech/dossier hash-password) and adding the resulting argon2id: line to .env as DOSSIER_PASSWORD.
  5. Start it with docker compose up -d. The first start downloads the image (about 1.7 GB) and sets up the database. Open http://localhost:3000, sign in, and pick an AI model in Settings → AI provider.
  6. To put it on a server with your own domain and HTTPS, the wiki covers a plain Ubuntu server with Docker Compose and Caddy, or Node.js without Docker, CapRover, Coolify and Dokploy. Give it at least 2 vCPUs and 2 GB of memory.

Local runs are reachable only from your own computer until you put the stack behind a proxy. Data handling is old-fashioned in a good way: export and import everything as one file, nightly backups on your server, and a Delete-everything button.

Dossier vs the usual options

This is an architecture comparison, not a product shootout. The three ways people currently write tailored applications differ mostly in where the data lives and who is allowed to act:

DossierTypical hosted AI resume buildersGeneral-purpose chatbots
HostingYour server or laptopVendor cloudVendor cloud
Price modelFree software; you pay for server + modelSubscription tiersSubscription or free tier
Model choiceOllama, LM Studio, OpenAI-compatible, Anthropic, MistralFixed vendor modelFixed vendor model
Data locationYour PostgreSQL databaseVendor serversChat history on vendor servers
Fabrication guardrailsProject states facts-only-from-profile, gaps shownVaries by productNone by default: grounding is your prompt's job
Applies to jobs for youNever: drafts wait for reviewVariesNot applicable
External accessMCP connector (Claude, n8n and others)VariesNot applicable

The row that decides the purchase, if you can call it that, is the last-but-one. An agent that applies on your behalf is a liability; an agent that queues work for your approval is a convenience. Dossier's job agent is deliberately weak on purpose: once a day it runs one search, skips what you have seen, scores the new postings with its reasons, and prepares drafts that wait for review. It never sends or applies. If you like that approval-first posture, our roundup of AI agents you can text covers the same design instinct across seven other tools.

The catches to know before you install

The README states its limitations rather than hiding them, which is worth more than most feature lists:

  • Desktop only: Built for a laptop or desktop browser, not for phones. There is no mobile app.
  • Single user: One password, one profile, no accounts. This is a personal tool, not a recruiting platform.
  • English interface: The app itself is in English; documents can be written in 21 built-in languages, with headings, dates and language levels to match.
  • One instance per database: The nightly backups, the AI job queue and the PDF browser live inside the app's process, so running two copies against one database is unsupported.
  • Apple Silicon friction: The Docker image is built for x86, so Macs need the emulation override, documented, but a step.
  • Open issues: The repo had 10 open issues at last check, and releases land fast: 1.11.0 is the nineteenth, about a month after the project's first commit. Fast cadence is a feature and a warning: back up before upgrading, as the release notes themselves advise.
  • No independent testing: There are no published third-party reviews of document quality yet; the "never invents" rule is a design claim, not a benchmarked one. The Indie Kings write-up from October 29, when the project sat at 2,700 stars, reached the same conclusion: the engineering looks serious, but the verification burden stays with you.

Pro tips and common mistakes

  • Import your existing resume first, then audit what the profile parsed. Every document downstream draws from the profile, so a thin profile writes thin applications.
  • Use the new skill groups if your Skills section is a paragraph of 30+. One labeled line per group ("Cloud: AWS · GCP") reads better and tailoring keeps them.
  • Pick the local model when the document is sensitive, a hosted model when the writing matters more. That is the entire privacy decision, and the app treats it as a first-class setting.
  • Try Jev scoring as a second opinion on a shortlist, but read the project's privacy page before handing it your profile — and note it judges non-English postings less well.
  • Do not run two instances against one database, and do not expect a phone app. Both are stated limits, not bugs.
  • Exports include skill groups now, so a 1.11.0 export cannot be imported into an older version. The TypeSafe key is never exported, not even with "Include my API keys": plan key management accordingly.
  • Watch the upgrade notes each release. Fast-moving projects break config; the 1.11.0 notes explicitly say to take a backup first.

Frequently asked questions

Is Dossier really free?

The software is free under the AGPL-3.0, with no tiers or paid features. You pay for the server it runs on and for any hosted AI model you point it at. A local model through Ollama or LM Studio costs nothing beyond your hardware.

Does Dossier apply to jobs for me?

No. The optional job agent runs one search a day, scores new postings and prepares drafts that wait for your review. Nothing is sent, applied for or deleted without you, as stated in the README, the site, and the release notes.

Can Dossier invent experience I don't have?

The project's rule is that drafts only use facts from your profile, and missing requirements are shown as gaps. That is a design claim from the official README, not an independent benchmark: check every document before sending, as you would with any AI output.

Which AI models work with Dossier?

Local models through Ollama or LM Studio, or hosted ones via any OpenAI-compatible API, Anthropic or Mistral. Version 1.11.0 added OpenRouter and OpenCode as OpenAI-compatible servers. You choose in Settings → AI provider after install.

Is Dossier open source?

Yes. AGPL-3.0, and the official site notes every line is on GitHub. One catch: AGPL is server-side copyleft, so if you run a modified version for others over a network, you must offer them its source code. Personal use is unaffected.

Can I keep everything on my own hardware?

Yes, if you connect a local model through Ollama or LM Studio. The profile, postings and documents then stay on your machine. Hosted providers receive the text they write from, and the project keeps a dedicated privacy page documenting what goes where.

Dossier is not the first AI resume writer, and it will not be the last. What makes it worth a look is the combination of three decisions that are usually sold separately: the documents are grounded in a profile you control, the agent queues instead of acts, and the whole thing runs on hardware you own. If you are applying to many roles and your career history currently lives in a vendor's cloud, that combination is hard to find. Read the README's privacy page before you connect a hosted model, and keep the profile honest, because the tool can only be as truthful as the facts you give it.

Sources

13 min read
4 views
edit_note Written by

Ratul Ahamed

Founder & Editor-in-Chief

Ratul Ahamed is the founder and editor of AI Core Updates, an independent site covering AI tools, models and pricing. He is a web developer based in Bangladesh and also runs All In One Tools, a free collection of browser-based utilities. Contact: [email protected]

Read all stories by Ratul Ahamed arrow_forward
verified_user Human-Reviewed Editorial

forum Comments (0)

Leave a Reply

chat_bubble_outline

No comments yet. Be the first to join the conversation!

Weekly AI Digest

Get our weekly AI tools digest

One email a week analyzing new AI tools, model updates, and practical workflows. Tested and summarized with zero fluff. Unsubscribe any time.

bolt
Hands-on AI Tool Reviews
Pricing math, limits, and alternatives.
verified_user
Strict Anti-Spam Policy
1-click unsubscribe at any time.
mark_email_unread

Subscribe to Digest

Sent weekly • No spam

person_outline
mail_outline

No spam ever. You can unsubscribe with a single click at any time.

cookie

Cookie Settings

We use cookies to enhance your browsing experience, serve personalized content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies. Learn more