Clone the repo, drop in your LinkedIn résumé PDF and run one Claude Code command. A pipeline of specialist subagents extracts your profile, picks a theme and generates a complete, SEO-ready Next.js portfolio site.
Building a portfolio usually means copying the same experience, skills and projects from your résumé into yet another set of templates. PortfoPilot removes that step. Clone the repo, drop your LinkedIn résumé into the project root as resume.pdf, run one command in Claude Code and get a complete, SEO-ready Next.js portfolio site — no manual content entry.
The repository ships no application code at all. It's a Claude Code configuration: a slash command, five specialist subagents, four skills, a validation hook and a CLAUDE.md spec that every agent reads. The website is generated from your data on your machine.
/build-portfolio pipelineEach stage runs in a dedicated subagent, so failures stay isolated and debuggable.
resume.pdf exists, installs dependencies and scaffolds the Next.js app if needed.resume-parser reads the PDF and writes a structured, validated data/resume.json. Nothing is fabricated; missing data is simply left out.content-mapper decides which content goes on which page, picks the theme and writes data/site-plan.json.ui-generator writes every route, component, theme token, metadata entry, sitemap and robots file.npm run build, and fixes what fails.After stage 5 you already have a working site.
/, /works, /works/[slug], /about and /contact.sitemap.xml and a robots.txt that allows all crawlers.data/resume.json as an editable source of truth — fix a typo or add a project there and the UI picks it up, no need to touch the PDF again.Technical profiles — engineers, developers, architects, or anyone whose skills list languages and frameworks — get a VS Code-inspired theme: dark Dark+ palette, monospace headings, editor-tab and terminal motifs, plus a light-mode toggle. Non-technical profiles get a clean, modern theme suited to the profession. Theming is token-based (CSS variables plus Tailwind), so switching later is a token change, not a rewrite.
Two audits are kept out of the fast path so the one-command build stays quick, and you run them when you want them:
/review-design — the design-reviewer subagent audits visuals, responsiveness and accessibility against the design system./review-seo — the seo-auditor subagent validates JSON-LD, metadata, sitemap and robots in depth./build-portfolio asks whether to run them at the end. Run both before deploying for the cleanest result.
resume.pdf, public/resume.pdf and every .env* file except .env.example are gitignored, so personal data never gets committed..gitignore is missing the entries.Prerequisites: Node.js 18.18+ (20+ recommended), Claude Code, your LinkedIn résumé PDF and, optionally, jq for the hook's sensitive-file check.
git clone https://github.com/pravinharchandani/portfopilot.git my-portfolio
cd my-portfolio
# Put your LinkedIn résumé in the project root as resume.pdf, then:
claude
> /build-portfolio
# Preview
npm run dev
To export the PDF, open your LinkedIn profile, choose More → Save to PDF, rename the file to resume.pdf and move it next to CLAUDE.md.
Push to GitHub (your résumé stays local), import the repo in Vercel and set NEXT_PUBLIC_SITE_URL to your final domain before the first production deploy — the sitemap, robots file and canonical URLs depend on it.
To change how generated sites look or behave, edit CLAUDE.md and the relevant skill under .claude/skills/ — pdf-resume-extraction, portfolio-component-patterns, design-token-system or seo-structured-data — rather than individual generated components.