App

Product surfaces

Cloud sync stores one resume per user plus chat/AI logs. Signed-in workspace rows (jobs, evidence, packets, answers, variants) sync to user_workspace when that table exists.

Pages

RouteWhat it is
/Marketing landing — pitch, honest scope, sign-up.
/appDashboard — pipeline snapshot and next actions.
/authSign in and create account (Google, GitHub, email). /login and /signup redirect here.
/pricingPrivate-beta pricing and paid-plan waitlist. Stripe checkout is not live.
/onboardingGuided first packet: resume → job paste → readiness → export.
/discoveryPrototype: sample listings and outbound search links. Not live 11-board aggregation or ATS submit.
/jobsManual jobs pipeline (status, notes, readiness).
/profileMaster knowledge base — projects, experience, education, skills, certs, LinkedIn import.
/applicationsApplication tracker and recurring answers.
/resumesMulti-resume library (named variants).
/resumeStructured resume editor, live preview, THEA, PDF/DOCX/JSON export.
/settingsPDF conversion status, local backup/restore, disclosures.
/connectorsHow to add Career OS as a remote MCP server (Claude, ChatGPT, Cursor, VS Code, Copilot).
/docsThis documentation.

Resume editor

  • Header fields: name, location, email, phone, LinkedIn slug, GitHub username, portfolio.
  • Sections are a top-level array. Types: education, skills, experience, projects, certifications, custom.
  • visible: false hides a section from PDF/DOCX/LaTeX. Hidden text does not leak into the rendered PDF.
  • Signed-in saves go to the resumes table (one row per user). Later saves overwrite that row.

What is not the product

  • resume_pipeline/ holds agent prompt specs and a local dashboard. It is not the Vercel app.
  • The root Playwright server.js is a local browser control API. Bind it to loopback only.