Skip to content

Dossier 1.11.0

Latest

Choose a tag to compare

@github-actions github-actions released this 31 Oct 18:22
· 5 commits to main since this release
Immutable release. Only release title and notes can be modified.

Dossier 1.11.0

Skill groups on resumes, Jev by TypeSafe as a second way to score postings, the MCP connector for apps besides Claude, such as n8n, and OpenRouter and OpenCode through OpenAI-compatible. Fixes for Ollama's cloud, for summaries losing their paragraphs, for scores that liked postings far below your level, and for mail and pages that took a long time to read.

What's new

  • Skill groups (#38): with 30 or 50 skills, the resume's Skills section was one long paragraph. In Profile → Skills, New group adds a group with its own field, a skill's menu moves it to another, and Rename renames a group along with its skills. Resumes print one labelled line per group ("Technical SEO: Crawl budget · Log analysis"), in every theme. Skills without a group stay on a line of their own, so nothing changes if you don't use groups. Tailoring keeps the groups. Thanks to @ratnakar-seo for asking for it.

  • Jev by TypeSafe for scoring: the new Settings → Scoring section chooses what Score in Find jobs and the job agent use: your AI model, as before, or Jev, TypeSafe's model for typed judgements, with a TypeSafe key of your own. Jev reads each line of the posting, and the reasons quote them: "Covers: …" for what your profile shows and "Missing: …" for what it doesn't. The job agent still writes its drafts with your AI model. Jev reads English best, so it judges postings in other languages less well. Jev gets the posting and your profile without your name, contact details or references; PRIVACY.md lists exactly what's sent. DOSSIER_SCORER and DOSSIER_TYPESAFE_KEY set the defaults.

  • The MCP connector, for other apps too (#41): Settings → Claude connector is now Settings → MCP connector. Under Other apps, 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. Addresses must be https, or http on your own computer or a private network. Disconnect all apps (formerly Disconnect Claude) signs every app out. Nothing changes for Claude: it stays connected, and its steps are the same. Thanks to @divyeaah for asking for it.

  • OpenRouter and OpenCode (#36): both now work as the OpenAI-compatible server. Enter https://openrouter.ai, and Dossier uses OpenRouter's API at /api/v1. For OpenCode Go or Zen, the …/openai/v1 address works too. Changes for every OpenAI-compatible server:

    • Without a key, Dossier no longer sends a made-up one, which some servers refused even for their public model list.
    • A server that refuses Dossier's answer format as too complex gets the format in the instructions instead, as Anthropic's API already does.
    • A gateway that can't do one way of asking for JSON gets the next one, instead of failing.
    • When a thinking model leaves no room for its answer, it's asked once more with 12,000 tokens more, and from then on gets that room.

    Thanks to @akrista, who sent it.

Fixes

  • "The model's answer didn't come back in the expected shape" with Ollama's cloud (#40): with https://ollama.com as the OpenAI-compatible server, or a …-cloud model through your own Ollama, creating an application failed at matching your profile. Ollama's cloud accepts a JSON schema but doesn't hold its answers to it, and the model never saw the schema. Dossier now puts the schema in the instructions for Ollama's cloud, and when an answer misses, the second try shows the schema too. An answer that misses twice is logged with the model and the fields that didn't fit, never the answer itself. Thanks to @trailblazergt for reporting it.
  • The summary's paragraphs (#37): the resume's Profile section printed the summary as one block, on screen and in the PDF. It now keeps the paragraph breaks you typed in Profile → Basics, in every theme. Thanks to @ratnakar-seo for reporting it.
  • Postings far below your level scored as a fit (#39): with 10+ years and a "Head of" role, a "3+ years" posting scored 80, and the reasons counted the extra years as a plus. A large seniority gap in either direction now scores below 70, as a possible fit at best, with a red flag. The AI model also gets your years of experience, worked out from your roles' dates. Thanks to @ratnakar-seo for reporting it.
  • Slow mail and pages: some text took far too long to read. A specially written email could hold up the inbox check for tens of seconds per message, a broken startup page took over a minute, and a model answer ending in thousands of blank lines took 40 seconds to check. All of these now take milliseconds.
  • Addresses in sent mail: an address with a line break inside its <…> could add a header, such as Bcc, to mail Dossier sent. Line breaks in an address are now spaces. A sender name with quotes inside (Anna "AK" Keller) now keeps its name instead of being read as the address.

Upgrading

Take a backup, then deploy ghcr.io/aientech/dossier:v1.11.0 (see Upgrading in the wiki). If you want to set the scoring defaults in .env, take the new compose.production.yml, which passes on DOSSIER_SCORER and DOSSIER_TYPESAFE_KEY; otherwise choose in Settings → Scoring. On its first start, Dossier gives every skill an empty group. Nothing else changes in your data or configuration, and scoring stays with your AI model until you choose Jev.

Exports now include skill groups, so a 1.11.0 export can't be imported into an older version. Exports from older versions import as before, without groups. The TypeSafe key is never exported, not even with Include my API keys, and an import keeps this server's. The same goes for the MCP connector's other apps.