Your PDF resume, as a living site — cv.ha7ch.com
Claim a handle at cv.ha7ch.com, get a token, then paste one prompt into Claude Code. It installs the CLI, reads your PDF, and publishes your resume to cv.ha7ch.com/{handle}.
- Create your online CV — claim a handle at cv.ha7ch.com
- Save your token — copy the
cv_pat_...token shown after claiming - Update your resume — paste the generated prompt into Claude Code (CLI tab) or configure MCP directly; drop a PDF, paste text, or describe changes
- View your dashboard (optional) — see your targeted variants at
cv.ha7ch.com/{handle}/dashboard
npx @ha7ch/cv-pro@latest --help
CV_TOKEN=cv_pat_... npx @ha7ch/cv-pro@latest get
CV_TOKEN=cv_pat_... npx @ha7ch/cv-pro@latest get --variant=openai
CV_TOKEN=cv_pat_... npx @ha7ch/cv-pro@latest update resume.json
CV_TOKEN=cv_pat_... npx @ha7ch/cv-pro@latest update-section experience data.json
CV_TOKEN=cv_pat_... npx @ha7ch/cv-pro@latest opennpm: @ha7ch/cv-pro
claude mcp add cv --transport http https://cv.ha7ch.com/api/mcp \
--header "Authorization: Bearer cv_pat_..."Tools: get_schema · get_resume · update_resume · update_section · list_variants · get_variant · set_variant · delete_variant
cv/
├── cli/ npm package cv-pro
├── src/
│ ├── app/
│ │ ├── api/mcp/ MCP HTTP server
│ │ ├── api/v1/ REST API (used by CLI)
│ │ ├── api/register/ handle registration
│ │ └── [username]/ public resume page
│ └── components/resume/ resume template
└── supabase/migrations/ DB schema
pnpm install
cp .env.example .env.local # fill NEXT_PUBLIC_SUPABASE_URL/ANON_KEY, SUPABASE_SERVICE_ROLE_KEY (server-side writes), PAT_HASH_SECRET
pnpm devThe root .mcp.json connects Claude Code to the Supabase official MCP — useful for running migrations directly.
Next.js 16 · Tailwind 4 · shadcn/ui · Supabase · Vercel