Truthful resumes. Clearer opportunities. Resumora is a career-intelligence workspace that turns verified experience into machine-readable resumes, evidence-grounded applications, explainable role readiness, and defensible next steps.
Live product · Visual user handbook · Product proof · Trust model · Architecture · Quick start
Most AI resume tools optimize language first and ask whether the result is true later. Resumora reverses that order: evidence is product data, every suggestion is a proposal, and the original document remains intact until a person accepts a supported change.
- Verified before generated — Career Vault records and source IDs ground suggestions in real experience.
- Proposals, not silent mutations — AI output arrives as a reviewable diff; it cannot directly rewrite the canonical resume.
- Explainable signals — readiness and job-match scores expose their components instead of pretending to be an employer's ATS score.
- Useful before sign-up — local mode keeps the core builder available without provider credentials; authenticated users can sync securely.
The editor keeps content, layout, readiness feedback, and a semantic preview in one workspace. Version snapshots preserve lineage while five machine-readable templates keep presentation separate from the canonical document model.
| Workspace | What it does |
|---|---|
| Resume Studio | Structured editing, live preview, localization, version history, PDF and DOCX export |
| Career Vault + Claim Ledger | Stores verified evidence, tracks source IDs, and blocks unsupported claims |
| Job Workspace | Treats job descriptions as untrusted input, then compares them with evidence-backed history |
| Application Pipeline | Tracks roles, stages, activity, materials, and outcomes in one lifecycle |
| Career Intelligence | Surfaces role readiness, skill states, evidence gaps, and practical next actions |
| Interview Coach | Builds preparation prompts from the target role and evidence the candidate can defend |
| Portfolio Studio | Publishes consent-based snapshots without exposing the private working document |
| Organizations | Adds scoped collaboration and participant-controlled visibility for teams and programs |
Career Intelligence uses a versioned, O*NET-aligned role graph and deterministic signals to turn career history into an auditable plan—without reducing a person to an opaque embedding.
flowchart LR
H["Resume + career history"] --> E["Evidence ledger"]
J["Job description<br/>untrusted input"] --> P["Sanitized parser"]
E --> S["Deterministic scoring"]
P --> S
S --> A["DeepSeek structured proposal"]
A --> V["Schema + source validation"]
V --> C["Claim Ledger"]
C --> R["Human review"]
R --> N["Accepted version snapshot"]
V -->|"unsupported"| B["Blocked"]
The model never writes directly to the canonical document. Server-side prompts receive only the evidence IDs allowed for the task; structured responses are validated before they reach the Claim Ledger, and unsupported claims cannot be accepted.
flowchart TB
U["Browser / local mode"] --> W["Next.js 16 web app"]
X["MV3 job-capture extension"] -->|"client-side fragment handoff"| W
W --> D["Shared @resumora/domain schemas"]
W --> API["Fastify API"]
API --> D
API --> DB["Supabase Auth + Postgres / RLS"]
API --> R2["Cloudflare R2 private documents"]
API --> AI["DeepSeek structured proposals"]
API --> PUB["Immutable public portfolio snapshots"]
| Engineering concern | Implementation |
|---|---|
| Domain integrity | Shared Zod schemas, deterministic scoring, immutable snapshots, and explicit version lineage |
| AI safety | Untrusted job-input boundary, evidence source IDs, structured responses, and unsupported-claim blocking |
| Privacy | Row-level security, hashed review tokens, short-lived R2 URLs, retention controls, and consent scopes |
| Document quality | Semantic screen rendering, selectable-text PDFs, and native DOCX paragraphs |
| Full-stack scope | Resume building, applications, interviews, intelligence, publishing, organizations, and a browser extension |
| Resilience | Local-first guest state plus authenticated synchronization and provider-aware fallbacks |
| Verification | Domain tests, type checks, linting, production builds, and integration-contract checks |
- Job descriptions are data, not instructions. Imported content is sanitized before it can influence an AI request.
- Review links are capability tokens. They are random, stored as hashes, revocable, and can expire.
- Documents remain private by default. Object access uses namespaced keys and short-lived signed URLs.
- Exports stay usable outside Resumora. PDF output retains selectable text; DOCX output uses native paragraphs.
- Publishing is deliberate. Public portfolios use immutable, consent-based snapshots rather than the private working state.
- Multilingual by design. The document model supports six languages, including right-to-left layouts.
ResumoraAI/
├── apps/
│ ├── web/ # Next.js product UI, exports, portfolios, and review views
│ ├── api/ # Fastify API, auth, storage, imports, and AI orchestration
│ └── extension/ # Manifest V3 job-capture extension
├── packages/domain/ # Canonical schemas, scoring logic, and domain tests
├── supabase/ # RLS-aware database migrations
└── docs/ # Architecture, trust boundaries, and implementation notes
apps/web— product interface and document renderingapps/api— server boundary and provider integrationspackages/domain— shared source of truthapps/extension— privacy-conscious job capturesupabase/migrations— database evolution and access policiesdocs/architecture.md— deeper system design and security notes
- Node.js 22+
- npm
git clone https://github.com/captain-jack-sparrow909/ResumoraAI.git
cd ResumoraAI
cp .env.example .env
npm install
npm run devOpen the web app at http://localhost:3000. The API health endpoint is available at http://localhost:4000/health.
The core product works in local mode without Supabase, DeepSeek, or R2 credentials. Add provider values to .env when you want authentication, synchronization, private document storage, and server-side AI proposals.
npm run typecheck
npm run lint
npm test
npm run build
npm run check:integrations- Web:
apps/webon Vercel - API:
apps/apion Render or another Node-compatible service - Data and auth: Supabase Postgres with row-level security
- Private files: Cloudflare R2 through signed URLs
- AI: a configurable DeepSeek model behind the API boundary
See the architecture guide for environment contracts, retention behavior, collaboration rules, scoring semantics, export guarantees, and the current Career Intelligence implementation.
Built by Jabir Khan as an exploration of a harder question than “Can AI improve this sentence?”: Can career software help people communicate their value without inventing it?


