Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/sputhenofficial/claimjumper/llms.txt

Use this file to discover all available pages before exploring further.

ClaimJumper has a minimal configuration surface. The only runtime configuration required is your OpenAI API key — everything else, including model identifiers and pipeline arithmetic constants, is defined directly in source code and is not overridable at runtime.

Environment variables

ClaimJumper reads one environment variable. It must be present at server startup; missing it will cause all three pipeline stages (ingest, triage, and draft) to fail.
OPENAI_API_KEY
string
required
Your OpenAI API key. Set this in .env.local at the project root. It is read by all three model call sites in the pipeline: ingest, triage, and draft. Never commit this file or expose the key in client-side code.
Copy .env.example to .env.local and fill in your key:
.env.example
# Copy to .env.local and fill in. Never commit .env.local.
OPENAI_API_KEY=sk-your-key-here
Never commit .env.local or any file containing your API key. The project’s .gitignore excludes .env.local by name, but it does not exclude files with custom names like .env.prod or .env.staging. If you use a differently named file, ensure it is explicitly listed in .gitignore before committing.

Model IDs

Model identifiers are centralized in lib/models.ts as a single exported constant. No model string is inlined anywhere else in the codebase — all call sites import from this module.
lib/models.ts
export const MODELS = {
  ingest: "gpt-5.6-sol",
  triage: "gpt-5.6-sol",
  draft: "gpt-5.6-terra",
} as const;
KeyModelPipeline stage
MODELS.ingestgpt-5.6-solImage-to-structured-remittance extraction
MODELS.triagegpt-5.6-solPer-line lane decision and rationale
MODELS.draftgpt-5.6-terraCited appeal and corrected-claim drafts
To swap a model, update the value in lib/models.ts. Because all model references flow from this single object, the change propagates automatically to every call site.

Ingest cache

When the ingest stage successfully processes an image, it writes the parsed result to samples/parsed/ as a JSON file. On subsequent runs with the same image, the file is read from disk instead of making a new API call. Cache filenames follow the pattern v2-{sha256}.json, where:
  • v2 is the hard-coded schema version (CACHE_SCHEMA_VERSION = "v2" in lib/pipeline/ingest.ts).
  • {sha256} is the SHA-256 hash of the raw image bytes, computed with Node’s built-in node:crypto module.
The samples/parsed/ directory is writable at runtime and is safe to delete. You should clear it in two situations:
  • Schema version bump — if the ingest output schema changes and a new CACHE_SCHEMA_VERSION is set in source, old cache files will have mismatched keys and will not be read, but they will accumulate on disk. Delete the directory to remove stale files.
  • Fresh API call needed — if you want to force a new model call for an image that has already been cached (for example, after updating the ingest prompt), delete the corresponding file in samples/parsed/ or clear the entire directory.

Next.js

The next.config.ts file is intentionally empty. No custom webpack configuration, environment variable rewrites, or server settings are required for local development.
next.config.ts
import type { NextConfig } from "next";

const nextConfig: NextConfig = {};

export default nextConfig;
ClaimJumper uses the Next.js App Router. All pipeline model calls are server-side only — they run in route handlers under app/api/ and never reach the client bundle. No special server configuration is needed to run the application locally beyond installing dependencies and setting OPENAI_API_KEY.

Build docs developers (and LLMs) love