Skip to main content
Glama

JobniacFast

JobniacFast is a local-first desktop app and MCP server for managing candidate profiles and job postings, matching them deterministically, and generating tailored resume and cover-letter PDFs (generic, Canadian English and French, and German). It is built from a Rust core and a React and TypeScript user interface on Tauri 2, and stores its data in an embedded SQLite file. Your data stays on your machine.

Status

No release has been published yet. The release is being prepared: the first release will be a draft on GitHub Releases that the owner publishes by hand.

Related MCP server: CoverAI MCP Server

Requirements

  • Windows 11 (x64) or Linux (x64, AppImage or .deb).

  • WebView2 on Windows. Windows 11 includes it; the installer installs it if it is missing.

Install

Releases are published on the GitHub Releases page.

Windows:

  1. Download JobniacFast_<version>_x64-setup.exe and SHA256SUMS.

  2. Check the installer before you run it:

    Get-FileHash -Algorithm SHA256 .\JobniacFast_<version>_x64-setup.exe
    Select-String -Path .\SHA256SUMS -Pattern 'x64-setup'

    The two hashes must be the same. If they differ, do not run the installer.

  3. Run the installer. It installs for your user only and does not ask for administrator rights. It installs to %LOCALAPPDATA%\JobniacFast.

Expect a SmartScreen warning. Until the Windows build is signed, Windows shows "Windows protected your PC". Click More info, then Run anyway, after you have checked the hash. The warning is expected for unsigned downloads.

Linux: download the AppImage or the .deb, and check it against SHA256SUMS in the same way (sha256sum -c SHA256SUMS --ignore-missing).

Uninstall: use Settings, Apps, JobniacFast, Uninstall, or the uninstall.exe in the install folder.

Data storage

Your data is one SQLite file. The app and jobniac-cli create it, and bring it up to date, the first time they start; there is nothing to install or configure. The default location is per user and outside the install folder, so an update or a reinstall never touches it:

  • Windows: %LOCALAPPDATA%\Jobniac\data\jobniac.sqlite3

  • Linux: $XDG_DATA_HOME/jobniac/data/jobniac.sqlite3, or ~/.local/share/jobniac/data/jobniac.sqlite3 when XDG_DATA_HOME is not set

Set JOBNIAC_DB_PATH to an absolute file path to use another file. A value that is not a clean absolute path stops the database from opening; it is never replaced by the default.

The desktop app and jobniac-cli can use the same file at the same time. To back up, close the app and any running jobniac-cli, then copy jobniac.sqlite3 (and a jobniac.sqlite3-wal or jobniac.sqlite3-shm file next to it, if one is left). To restore, copy the file back while the app is closed.

jobniac-cli migrate applies the schema to the file explicitly:

& "$env:LOCALAPPDATA\JobniacFast\jobniac-cli.exe" migrate

A new file prints Applied migrations: ...; a file that is already current prints Schema is current (...); nothing to apply. A file written by a newer version of the app is refused.

Configuration

All configuration comes from environment variables. There is no .env file, and secrets are never read from command-line arguments. An option marked exact 1 is on only when its value is exactly 1; true, yes and 01 are off.

Variable

Default

Effect

JOBNIAC_DB_PATH

per-user default (see Data storage)

Absolute path of the SQLite database file. If the file cannot be opened, database features report DOWN.

JOBNIAC_DOCUMENT_IMPORT_ROOT

none

Absolute folder that PDFs can be imported from.

JOBNIAC_GENERATED_ROOT

%LOCALAPPDATA%\Jobniac\generated

Folder for generated PDFs. Set it only to choose another folder.

JOBNIAC_GENERATED_ENABLED

off (exact 1)

Allows PDF generation and cleanup. Run jobniac-cli setup-generated-root once first.

JOBNIAC_LINK_FETCH_ENABLED

off (exact 1)

Allows adding a job from a web link (fetches the page).

JOBNIAC_ARBEITNOW_ENABLED

off (exact 1)

Allows scanning and importing Arbeitnow jobs. Also needs JOBNIAC_ARBEITNOW_CANDIDATE_KEY and a cursor secret.

JOBNIAC_ARBEITNOW_CANDIDATE_KEY

none

Signing key for Arbeitnow candidate tokens (required when the flag is 1).

JOBNIAC_DELETION_ENABLED

off (exact 1)

Allows deleting profiles and jobs.

JOBNIAC_DOCUMENT_ARTIFACTS_ENABLED

off (exact 1)

Allows document artifacts and export.

JOBNIAC_CURSOR_HMAC_SECRET

random per process

Keeps paging cursors valid across restarts. 32 characters or more.

JOBNIAC_HTTP_PORT

none

Port for the loopback HTTP MCP server (1024 to 65535). Used with jobniac-cli http only.

JOBNIAC_HTTP_BEARER_TOKEN

none

Bearer token for the HTTP server: 43 to 128 characters, A-Z a-z 0-9 - _.

Opt-in features are off by default. Deletion and link fetching change data or reach the network, so turn on only what you use.

MCP client registration

JobniacFast includes an MCP server. The stdio mode is started by the MCP client:

{
  "mcpServers": {
    "jobniac": {
      "command": "C:\\Users\\<you>\\AppData\\Local\\JobniacFast\\jobniac-cli.exe",
      "args": ["mcp"],
      "env": {}
    }
  }
}

The full guide covers Claude Desktop and Claude Code, the loopback HTTP mode with its token, and how to check the registration: docs/ops/mcp-client-registration.md. The default tool list has 34 tools; the opt-in flags add tools (see that guide).

Command-line tool

jobniac-cli has these modes (exit code 0 for success, 1 for a failure with a fixed message, 2 for a usage error):

Command

Purpose

mcp

MCP server over stdio. Writes JSON-RPC only to stdout.

http

Loopback Streamable HTTP MCP server at http://127.0.0.1:<port>/mcp. Needs the port and token variables.

migrate

Applies pending schema migrations. The only command that changes the schema.

cleanup

One bounded pass over generated files. Prints a JSON summary.

setup-generated-root

Creates and registers the generated-files folder. Does not enable generation.

--version, help

Version and usage.

Development

Requirements: Rust (stable, or the version in rust-toolchain.toml), Node.js 22.12 or later, pnpm, and the Tauri prerequisites for your platform.

The PDFium library is not committed. Fetch the pinned, checksum-verified build into vendor/pdfium/ once before the first build (scripts/fetch-pdfium.ps1 -Platform windows-x64 on Windows); without it the desktop build fails with resource path `../vendor/pdfium/...` doesn't exist.

scripts/fetch-pdfium.sh linux-x64   # fetch the pinned PDFium library (Linux)
pnpm install --frozen-lockfile      # install the locked UI dependencies
pnpm tauri dev                      # run the desktop app
pnpm build                          # type-check and build the UI
pnpm tauri build                    # build a release bundle

Rust checks, from the repository root (the Cargo workspace is at the root). The PDF tests load PDFium from JOBNIAC_PDFIUM_DIR, so set it to the absolute path of vendor/pdfium/<platform> first:

cargo fmt --all --check
cargo clippy --workspace --all-targets --locked -- -D warnings
cargo test --workspace --locked

See CONTRIBUTING.md for the workflow and the architecture rules.

Security

Report vulnerabilities privately, as described in SECURITY.md. Do not open a public issue for them.

License

JobniacFast is released under the MIT License. Third-party components keep their own licences. Each release ships the notices and a software bill of materials generated by the release process.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A privacy-first MCP server for locally managing job, fellowship, and graduate-school applications. It offers tools for tracking application status, analyzing role fit, generating LaTeX CV/cover letters, interview prep, and discovering public jobs from ATS APIs.
    8
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Automates cover letter generation and application question answering from job postings via local AI agents. Manages candidate profile and AI humanization rules to produce tailored, humanized application materials.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Exposes the entire job-search workflow as 13 chat-driven tools, letting users refresh a ranked feed of live postings from employers' public hiring APIs, view and score job descriptions, tailor and render truthful one-page LaTeX resumes, review skill gaps and screening answers, and log applications. It keeps a human in the loop, since nothing is ever submitted automatically.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to discover postings from watched company boards ranked by keyword fit, tailor and fact-check resumes against a source-cited profile, render ATS-readable PDFs, submit applications through the user's own browser, and track replies and follow-ups. All ranking, claim checking and email classification run as plain code, so LLM tokens are spent only on writing.
    1
    Apache 2.0