Portfolio SEO Optimizer
Improve your portfolio's visibility to search engines and AI systems.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/vitaecontext-portfolio-vitaecontext/— the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Optimize personal website and web portfolio discoverability, crawlability, metadata, structured data, content usefulness, and AI-readable signals. Use when the user asks about portfolio pages, titles, meta descriptions, canonical tags, snippets, indexability, JavaScript SEO, structured data, performance, llms.txt, or web-based personal branding.
What this skill does
VitaeContext Web Portfolio
Overview
Work through the lens of a technical SEO specialist and a hiring manager skimming the site. Use this skill to improve how a personal site is crawled, rendered, summarized, and trusted by search engines and AI systems.
Reference selection
- Crawlability, sitemaps, robots, launch, URL structure: references/indexing-and-architecture.md
- Titles, canonicals, schema, JavaScript rendering: references/metadata-structured-data-and-js.md
- Homepage, About, project page, metadata,
llms.txtcopy: references/section-recipes.md - Case studies, performance, AI retrieval conventions: references/content-performance-and-aeo.md
- Existing-site audit or maintenance: references/portfolio-audit-and-maintenance.md
- Audit scorecard and prioritized fix-first ranking: references/audit-scoring.md
Wiki context
- Read wiki/index.md when the task asks about
llms.txt, AI retrieval, evidence labels, source confidence, platform constraints, or known agent failure modes. - Read wiki/knowledge.md only after wiki/index.md routes the current task there.
- If a wiki file is unavailable in an older install, continue with the relevant
references/file and mark wiki-specific guidance as unavailable when it affects confidence.
Token discipline
- For a URL audit, inspect homepage, robots, sitemap, and only priority pages first.
- For local source work, search for metadata, routes, layout, and structured data before opening broad files.
- Do not load content-writing references for a technical crawlability fix.
- Prefer rendered/public HTML, route metadata, sitemap, robots, and page templates before reading broad content files.
- Keep source ledgers compact: list input groups, not every asset or route.
- Name next inspection if bounded.
Depth contract
Use the smallest honest audit depth:
Quick scan: homepage, robots, sitemap, title/meta/canonical basics, main navigation, and visible positioning.Default audit: quick scan plus up to 2 user-specified or visibly priority pages, structured data, Open Graph, internal links, and top project pages when available.Deep audit: full route inventory, built HTML/source templates, performance/mobile checks, redirects/status codes, schema validation, broken links, and code edits.
Default to Default audit for broad portfolio audits. Offer Deep audit as an optional next step when the current answer would benefit from more evidence. Do not choose Deep audit silently unless the user asks for a full site audit, exact code changes, launch validation, or every important route checked.
Intake workflow
- If the user provides a public portfolio URL, fetch and inspect the homepage, important pages, metadata, canonicals, sitemap, robots, structured data, and visible copy when tools allow it.
- If the portfolio source is available locally and the user asks for implementation, inspect the source and prefer direct code edits for metadata, structured data, semantic HTML, links, and content. For audit-only requests, return patch-ready recommendations unless the user asks to edit.
- If public crawling is blocked or the site is not deployed, ask for local source paths, built HTML, screenshots, page inventory, or pasted page copy.
- If the site copy depends on biography, project claims, or career facts, recommend using the Career Context file before rewriting.
- Do not invent projects, testimonials, metrics, employers, or credentials to fill portfolio pages.
Rules
-
If the user supplies an explicit VitaeGraph path, read
VITAEGRAPH.md,index.md, and only relevant project, thesis, award, and publication records. Never expose private paths, preserve limitations and open questions, and treatvisibility: publicas eligibility for consideration rather than publication consent. -
Separate documented standards from emerging conventions such as
llms.txt. -
Separate facts verified from public pages or local source, facts supplied by the user's context material, and recommendations inferred from those facts.
-
Prefer changes that improve crawlability, information scent, and snippet quality without adding hype.
-
Do not present unofficial AI or SEO proposals as universal standards.
-
Keep metadata, structured data, and visible copy aligned.
-
Keep title, description, canonical URL, Open Graph, X/Twitter card, JSON-LD URL, JSON-LD name or headline, JSON-LD description, and representative image consistent for the same page.
-
Match structured data to page purpose. Use article-like schema only for visible article-like pages with supported author, date, and body content.
-
Treat rankings, rich results, image thumbnails, snippets, and indexing speed as eligibility outcomes, not guarantees.
-
Keep page purpose, URL structure, internal links, and proof assets aligned so every important claim resolves to a crawlable page.
-
Use career direction to prioritize homepage positioning, About copy, project ordering, and case-study framing, but keep every public claim tied to visible or supplied proof.
-
Honor context-file evidence boundaries, positioning constraints, and claims to avoid when writing metadata, schema, and visible copy.
-
When facts are missing, ask for the canonical URL, page inventory, or source content before inventing portfolio copy or structured data.
-
When editing portfolio code, preserve existing styling and application logic unless the user explicitly asks for a redesign. Prefer metadata, structured data, semantic HTML, crawlability, and content changes before layout changes.
-
For direct code edits, run the available build, lint, test, or preview command when the project provides one, and report any verification that could not run.
Self-review
Before returning, check the draft and fix or flag any failure:
- No invented projects, testimonials, metrics, employers, or credentials; structured data and copy reflect only verified or supplied facts.
- Rankings, rich results, and indexing are framed as eligibility, not guarantees; emerging conventions are not presented as standards.
- Output matches the requested scope and the user's stated goals; metadata, structured data, and visible copy stay consistent for each page.
- Any code edits preserve existing styling and logic, and verification that could not run is reported.
If a check fails and cannot be fixed from available inputs, say so rather than papering over it.
Response shape
Return:
- URLs or local files inspected
- crawlability, metadata, structured-data, and content issues
- direct code edits or page-ready copy
- verification run or checks still needed
- context-file gaps that affect public claims
For audits, use concise labels such as Verified, From source, From context, Inference, and Inaccessible when a claim could otherwise be ambiguous. Mark unsupported responsibilities, metrics, seniority, clients, testimonials, or outcomes as gaps rather than turning them into metadata, schema, or copy. When the audit is intentionally bounded, include a one-line Depth note that says what was not inspected and what deeper inspection would add.
When the user asks for a score, scorecard, or before/after comparison, also apply references/audit-scoring.md: report the overall score, band, per-category breakdown, and a fix-first ranking, labeled as an internal prioritization heuristic rather than a ranking or indexing guarantee.
Human playbook: Web portfolio optimization.
Related skills
AI Search Optimization
coreyhaines31
Optimize your content to be cited and surfaced by AI search engines.
App Store Listing Audit
coreyhaines31
Analyze your app listing against best practices and get a prioritized optimization plan.
Competitor Comparison Pages
coreyhaines31
Create SEO-optimized comparison pages positioning your product against competitors.
Competitor Research Profiler
coreyhaines31
Analyze competitor URLs to generate detailed profiles with market data and insights.