Skip to content

barlowmen/prism

Repository files navigation

prism

Local control surface for a job-application workflow built around Claude Code. One source of truth — your profile — refracted into many tailored resumes, one per role you apply to.

You run it on your own machine. All agent work goes through the Claude Code CLI as a subprocess, so it uses your Pro/Max subscription quota rather than the per-token Anthropic API. The web UI is the orchestrator; Claude Code is the engine.


What it does

  1. (Setup, once.) You scaffold archetypes (AI-leaning, cloud-infra-leaning, etc.) from your profile's tailoring playbook, then click Generate all bases — a base-resume agent drafts a long-form resume per archetype, reviewed by a median-HM agent in a loop until it passes the bar.
  2. You paste a job posting URL — or paste a list of 10+ URLs at once in bulk mode — or run discovery against ATS boards.
  3. A dispatcher agent fetches the JD, picks the right archetype for the posting, and decides GO / NEEDS-DISCUSSION / RECOMMEND-SKIP based on your profile's filter rules.
  4. Three research agents run in parallel: JD analysis, company research, archetype-specific tailoring playbook.
  5. A drafting agent writes a tailored Node script (docx library) and runs it to produce a real Word DOCX based on your chosen archetype's base resume.
  6. A hiring-manager review agent roleplays as the actual HM for that posting and iterates the resume until it's ready.
  7. A provenance agent audits every bullet against your profile — no invented numbers, no claims that cross your honesty red lines.
  8. You review the final DOCX in-browser (mammoth render) and submit externally.

The Dashboard organizes jobs by who owns the next move, not by pipeline phase: Blocked on you (agent waiting for an answer), Ready when you are (DOCX done, decision time), Working on it (system in motion, no action needed), Parked (held / triage / queued), Done (applied / skipped / rejected). If Blocked + Ready are empty, prism shows you an "all caught up" panel — that's the goal state.

Throughout: a context-aware assistant (⌘J) sees what you're looking at and can drive the workflow, answer questions, and edit files. An always-visible active agents bar at the top of the page surfaces whatever's running across all surfaces so you never lose track of a spawned agent after navigating away.


Requirements

  • macOS (Linux probably works; not tested).
  • Node 22+ and npm.
  • Claude Code CLI installed and authenticated to your Pro or Max subscription (not an API key). Verify with claude --version. If ANTHROPIC_API_KEY is set in your shell, prism unsets it for every subprocess so subscription auth is forced.

Quick start

# 1. Install
git clone https://github.com/barlowmen/prism
cd prism
npm install

# 2. Point prism at a workspace directory (defaults to ~/prism-workspace)
cp .env.example .env.local
# edit .env.local — PRISM_WORKSPACE=/path/to/your/workspace
mkdir -p $(grep PRISM_WORKSPACE .env.local | cut -d= -f2)

# 3. Start the server (production by default — builds, then runs)
./server.sh start
# open http://127.0.0.1:3737
#
# For active development with HMR + on-demand compile:
#   ./server.sh start --dev   (or: ./server.sh dev)

First visit redirects you to Profile to do the structured intake interview that builds _meta/about_user.md. Once you have a few sections committed, set up at least one Archetype (a base resume DOCX + matching hints) and you're ready to paste your first job.

See SETUP.md for the full first-time setup walkthrough.


How it's organized

prism/                     # this repo — the orchestrator
  app/                     # Next.js routes
  components/              # React components
  lib/                     # server-side libs (launcher, jobs, profile, archetypes, …)
  prompts/                 # Claude Code prompt templates per phase
  defaults/                # shipped defaults seeded into workspace on first run
  server.sh                # start|stop|restart|status|logs

<your workspace>/          # data, configured via PRISM_WORKSPACE
  _meta/
    about_user.md              # your profile — the source of truth (you own)
    archetypes/<key>.json      # one config per base-resume archetype (you own)
    resume_style_guide_2026.md # style/ATS/voice rules (seeded; you can edit)
    workflow.md                # pipeline spec / agent contract (prism-managed)
    build_resume_template.js   # DOCX builder template (prism-managed)
  _resumes/                # base resume DOCXes (one per archetype)
  apps/<Company>/<Role>/   # per-application folder: JD, research, draft, feedback
  postings/                # discovery output (job_postings_YYYY-MM-DD.md)
  .state/                  # prism's structured state (jobs, runs, profile, assistant)

The workspace is intentionally separate from this repo so your resume data, JDs, and notes never sit inside the codebase.


Why subscription, not API

In April 2026 Anthropic cut subscription-quota access for third-party tools and harnesses; the policy was revised in May/June with a split billing model. The current state is that Anthropic's first-party tools — Claude Code CLI, claude.ai, Claude Desktop — still use your full Pro/Max subscription quota, while third-party agents and SDK callers get a separate, much smaller monthly credit pool billed at API rates. Backends that call the Anthropic API directly are billed per-token regardless of subscription. See:

That's why prism's launcher (lib/claude-launcher.ts) is the only place in the codebase that touches Claude. It spawns claude as a subprocess with --print --output-format=stream-json --verbose --permission-mode acceptEdits, deletes ANTHROPIC_API_KEY from the subprocess env, and parses stream-json events into per-event records the UI streams via SSE.

The apiKeySource: "none" value in each run's metadata is the canary — if it ever flips to anything else, the Health page surfaces a yellow banner.


License

MIT. See LICENSE.

About

Local web UI that wraps Claude Code into a job-application workflow. One profile, refracted into many tailored resumes.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors