How to turn your CV into a portfolio website with AI
A PDF gets skimmed. A link gets opened. This is the whole path from the CV you already have to a portfolio someone can click — the free version you can finish tonight, and the permanent one you set up straight after.
To turn a CV into a portfolio website, give the CV PDF to an AI coding agent and tell it to use only the facts already in the document. Review the generated site on localhost. If you need feedback the same evening, share that local site through a temporary link. For a job application, deploy the finished site to a free static host and use that permanent URL.
Shiproom, used in step 3, makes the website already running on your computer reachable through a temporary private link. It does not host, deploy or store the site: the link works only while your app, the Shiproom session, your computer and your internet connection are all running.
Every guide in this space stops halfway. The deployment tutorials assume you already have a website and only need a host. The “resume to portfolio” tools give you a templated page on someone else’s subdomain that you cannot edit properly and do not own. Neither one tells you what to do at nine in the evening when the application closes at midnight and you have a CV, a laptop, and no site.
This is that path, end to end, with the trade-offs said out loud — including the one that matters most: which of the two links you should actually put on an application.
What you need to turn a CV into a portfolio website
Four things, three of which you already have. Nothing here requires a credit card, a domain, or a deployment pipeline to get started.
- PDFYour CVSupplies every fact on the page
- AGENTAn agent IDEWrites the site and runs it
- LOCALYour laptopWhere the site actually runs
- LINKShiproomA link others can open today
- HOSTA static hostThe URL that outlives tonight
The agent IDE is the only piece you may not have. Google Antigravity is a reasonable default because it is free while in preview, runs on your own desktop, and takes a PDF as an attachment, so the CV goes straight into the conversation. If you already use Claude Code, Codex, Cursor or anything else that can read a file and start a local server, use that instead — nothing below depends on which agent you pick.
These are independent products. Shiproom has no partnership with, or endorsement from, Google, Anthropic or OpenAI, and their free tiers are theirs to change. Antigravity’s free preview was checked on 30 August 2026; confirm the current terms of whichever agent you use before you rely on it.
The five things this guide keeps separate
Most of the confusion in this workflow comes from treating these as one thing. They are five, and the difference between the last three is what decides which link you send.
- CV, or resume
- The source document. Every factual claim on the site should be traceable back to it.
- AI coding agent
- Software that reads your instructions and files, then writes and runs the website’s code. Not the same as a hosted site builder, which fills in a template it owns.
- localhost
- The site served by your own computer, at an address only your computer can resolve.
- Temporary review link
- An address other people can open that still points at your machine. It works only while that machine, and the session on it, are running.
- Static host
- Infrastructure that serves a copy of the finished site independently of your computer. This is what gives you a permanent portfolio URL.
How to build a portfolio website with AI from your CV
Attach the CV PDF in an agent IDE such as Google Antigravity, Claude Code or Codex, paste the build prompt below, and let the agent write a one-page portfolio and run it on your machine.
The default failure of this whole idea is that you get your CV back as a web page: the same reverse-chronological list, the same duty statements, now in a sans-serif font with a bit of padding. That is worse than the PDF, because it is longer and no more interesting.
A portfolio is a different document. It leads with what you do, shows three to five pieces of work with an outcome attached to each, and gives one obvious way to contact you. The prompt below asks for exactly that, and — importantly — forbids the agent from inventing the numbers it does not find.
Build a personal portfolio website from the CV I have attached.
Do not reproduce the CV as a web page. Turn it into a portfolio:
1. A hero with my name, the role I am targeting, and one
sentence saying what I actually do.
2. Selected work: three to five pieces. For each, state the
problem, what I did, and the measurable outcome.
3. Skills, grouped by kind. No percentage bars, no star ratings.
4. A short "about" written in the first person.
5. Contact: my email and my professional links.
Treat the CV as the only source of facts:
- Do not invent an employer, a date, a job title, a client, a
qualification, a metric or a testimonial.
- If a project has no number attached in the CV, describe the
outcome in words rather than making a figure up.
- If a section needs something the CV does not contain, leave
that claim out and list what is missing at the end of your
reply. Do not fill the gap yourself.
Rules about the build:
- One page. Plain HTML and CSS. No framework, no build step,
no database, no tracking scripts.
- Readable from 360px wide upwards; nothing that needs hover.
- Semantic headings in order, alt text on every image, visible
keyboard focus, and text contrast of at least 4.5:1.
- Fast: system fonts or one web font, and no icon libraries.
- Set a <title> and a meta description containing my name and
my role.
Then run it locally and tell me the URL and the port it is on.Stop the agent inventing experience, projects or results
An agent asked to write a portfolio from a thin CV will fill the gaps, and it fills them plausibly: a percentage that was never measured, a client that was never yours, a testimonial that nobody said. You will not notice, because it reads exactly like the rest. An interviewer who asks how you got to 18% and watches you improvise will notice, and that is the single worst outcome this whole exercise can produce.
Telling the agent to list the gaps instead of filling them turns that risk into a to-do list. The gaps are usually the real work: find the number, or write the sentence without one.
Review your portfolio website on localhost
Open the local address the agent gives you and check every claim against your CV, the layout at 360px wide, the contact links, and the page title, because a generated page is wrong in ways that read as confident.
The address is usually http://localhost:3000. This is the step people skip, and it is the step that decides whether the link helps you or hurts you.
- Every claim traces to your CVGenerated pages round numbers up and invent job titles. This is the one check nobody else can do for you.
- Name and role are visible without scrollingThe first seconds are spent answering “who is this and what do they do”. Make that free.
- It reads at 360px wideLinks sent over LinkedIn and WhatsApp mostly open on a phone, in an in-app browser.
- Contact links actually workA broken mailto: or a LinkedIn URL missing the https:// quietly ends the conversation.
- The browser tab says your nameThe title tag is what a bookmark, a shared link and a search result all show.
- Nothing important is behind hoverThere is no hover on a touchscreen, so hover-only content is content nobody reads.
Fix things by telling the agent what is wrong, in the same conversation — it still has the project open. Be specific about the page and the width: “on the work section at 390px, the three cards overlap the heading” gets a fix; “the layout looks broken” gets a guess.
How to share your portfolio website from localhost
Run npx shiproom@latest live in the project folder to get a private link to the site running on your own machine, which anyone can open in an ordinary browser with no account and no install.
localhost:3000 is not an address anyone else can open — on their computer it resolves to their own machine, where nothing is running. Run this in the project folder while the app is up:
npx shiproom@latest liveIt finds the app already running, signs you in through the browser once, and prints a private URL that points at the copy on your machine. Whoever you send it to opens it in an ordinary browser — no account, no extension, no install. Shiproom is currently free to use, with early-access limits of 3 projects, 100 stored feedback items and 30 days of feedback history.
If you would rather not touch a terminal at all, paste the prompt from the Shiproom homepage into the same agent that built the site and let it do this step too.
This is not hosting, and it matters that you know the difference. Shiproom does not deploy or store your site. The link serves only while your app, the Shiproom session, your computer and your internet connection are all up. Close the laptop and the link stops working.
That makes it the right thing to send during a conversation, and the wrong thing to write on a document somebody opens in three weeks. Step 4 is how you get one of those.
What a review link gives you that a plain tunnel does not
A tunnel makes the page reachable and stops there. Because Shiproom is a review surface, the person you sent it to can also mark the page — point at the hero, draw a box around the work section, type what they mean — and each comment arrives with the screenshot, the route, the element and the viewport attached. For the one job where you want a mentor’s opinion on your own portfolio, that is the difference between “the spacing felt off somewhere” and a pin on the exact element, which you can hand straight back to the agent.
Deploy your portfolio website to a permanent static host
Upload the finished folder to a free static host such as Netlify, Cloudflare Pages, GitHub Pages or Vercel, so the address keeps working after you close your laptop.
A one-page portfolio of HTML and CSS is a static site, which is the easiest thing on the internet to host. Every option below publishes a free tier that covers a personal site comfortably, and none of them needs a server.
Ask the agent for the folder to upload — for plain HTML it is the project folder itself; for a framework project it is the build output, usually dist or build.
| Host | Best when | What it needs | Address |
|---|---|---|---|
| Netlify | You have never used Git and want the shortest path | Drag the built folder onto the dashboard, or connect a repository | Free subdomain, or your own domain |
| Cloudflare Pages | You want a static site on a large network with direct upload | Upload the folder, or connect a repository | Free subdomain, or your own domain |
| GitHub Pages | You are happy for the code to be public and want it beside your other repos | A repository — public, unless you pay for Pages on a private one | Free github.io subdomain, or your own |
| Vercel | The agent built a framework project rather than plain HTML | A connected repository; the framework is detected for you | Free subdomain, or your own domain |
If you have never deployed anything, take the drag-and-drop route: it is a folder, a browser window, and a URL about ninety seconds later. Connecting a repository is worth doing later, when you want the site to update itself every time you change it.
A custom domain is the only part of this that costs money, and it is optional. A free subdomain is a perfectly good address to put on an application. Buy yourname.com when the portfolio has settled and you expect to keep the address for years — its real value is that it survives you changing hosts.
Which portfolio link should you use on a job application?
You now have two, and they fail in opposite ways. The deployed URL always works but only contains what you last uploaded. The temporary link is whatever is on your machine right now, and it dies when the machine sleeps.
| Link | Where the site runs | Works with your laptop off? | Use on a job application? |
|---|---|---|---|
| Temporary Shiproom link | Your own computer | No — it stops serving | No. Use it for live review and feedback |
| Permanently deployed URL | A static host | Yes — it does not depend on your machine | Yes. This is the one to send |
Then match the link to how the person receiving it will actually use it.
| Situation | Send | Because |
|---|---|---|
| A form that wants a file, or an applicant tracking system | The deployed URL, plus the PDF | It will be opened days later, by someone who has never spoken to you. |
| A live call, an interview, a screen share | The Shiproom link | Your machine is on and in front of you. Nothing needs to be deployed first. |
| A recruiter messaging you right now | The deployed URL if it exists; otherwise the Shiproom link, described as a live demo | Say which it is. A link that stops working without warning costs more than a day's delay. |
| Asking a mentor or friend to critique the page | The Shiproom link | They can mark the page itself, and the comment arrives with the screenshot and the element attached. |
| Your LinkedIn profile, email signature, CV footer | The deployed URL only | These are read for years, at times you cannot predict. |
The rule underneath the table is simple: a link that is read live can be live; a link that is read later must be deployed. When you send a temporary one, say so in the message. “Here’s a live demo running on my machine — happy to send a permanent link too” costs a sentence and prevents the failure where someone opens it on Monday and finds nothing.
Portfolio website vs PDF resume: should you send both?
Yes, and the question is where each one goes rather than which one wins. A portfolio website supplements the PDF; it does not replace it.
Applicant tracking systems and application forms are built around a file. Many will not accept a URL in place of one, and some parse the document to populate their own fields, so a missing attachment can cost you the application before a person ever reads it. Submit the PDF wherever the form asks for a CV or resume.
The website earns its place everywhere a human rather than a parser is reading: the portfolio or website field on the form, the body of the email, your signature, your professional profiles, and the header of the PDF itself. That last one matters more than it sounds — it is how the link survives being forwarded to a hiring manager who never saw your message.
Use the permanent URL in all of those places. The temporary link belongs in a conversation that is happening now, not in a document that will be read later.
What to put on a portfolio website
Reports from hiring managers and portfolio reviewers converge on roughly a minute of attention before a decision to read on or move on, and a first few seconds spent on one question: who is this and what do they do. Everything about the page follows from that.
- Answer the question above the fold. Name, the role you want, and one sentence that a stranger could repeat to a colleague.
- Lead with outcomes, not responsibilities. “Cut activation drop-off by 18%” is a claim; “responsible for the activation funnel” is a job description.
- Three to five pieces, not everything. A portfolio is an argument, and every weak item weakens it.
- Make the work skimmable. Problem, what you did, result — in that order, in a few lines each. The detail belongs in the conversation you are trying to get.
- One obvious way to reach you. An email address in text, not an image, and not only a contact form.
Portfolio website mistakes to avoid
- An unverified number. If you cannot explain how it was measured, take it off the page.
- A generated “About” paragraph you did not rewrite. Passionate, results-driven and detail-oriented are what the page says when it has nothing to say.
- Sending a laptop link and going to bed. Deploy it, or tell them it is temporary.
- Confidential work described in detail. Keep to what you are free to publish; a paragraph on approach beats a screenshot you should not have.
- A hero animation before any content. On a phone in a lift, motion before meaning is just a delay.
- No PDF. The form still wants a file. Send both.
CV to portfolio website FAQ
How do I turn my resume into a website?
Give the CV or resume to an AI coding agent and tell it to use only the facts already in that document. The agent writes a one-page portfolio and runs it on your computer. Review it there against the original, then deploy the finished folder to a free static host to get a permanent address you can put on an application.
Can I use AI to build a portfolio website from my CV?
Yes, and the CV is the useful part: it supplies the career facts, so the agent is editing rather than inventing. The risk is that an agent asked to fill a thin section will invent an employer, a date or a metric, which is why the prompt in this guide tells it to list what is missing instead of filling the gap. Every claim still needs a human to check it against the original document.
Do I need coding experience to create a portfolio website?
No, but you do need to read. The agent writes and runs the code; your job is to check that every claim on the page is true, that it loads on a phone, and that the contact link works. Nothing in this guide asks you to write HTML, and the one command it shows can be run by the agent on your behalf.
Can I share a portfolio website before I deploy it?
Yes. A tool such as Shiproom exposes the site already running on your computer through a private link that anyone can open in an ordinary browser, with no account and no install at their end. That is useful for getting feedback the same evening, but it is not hosting, and it is not the link to put on an application.
Does a localhost sharing link work when my laptop is off?
No. It stops serving, and anyone who opens it afterwards sees an error rather than your portfolio. The link depends on your app, the Shiproom session, your computer and your internet connection all being up. That is why the guide treats it as the link you send during a conversation and the deployed URL as the link you write on a document.
Which portfolio link should I put on a job application?
The permanently deployed URL. An application is read days or weeks after you send it, often by someone you have never spoken to, and a link that depends on your laptop being awake will be dead by then. Keep the temporary link for live review, feedback and calls, where you already know the machine is running.
Should I send a portfolio website or a PDF resume?
Both, in different places. Applicant tracking systems and application forms expect a file, and many will not accept a link instead of one. Attach the PDF where the form asks for it, and put the portfolio URL in the body of the message, in your signature and on your professional profiles, where a human rather than a parser will see it.
Where should I host a portfolio website permanently?
Any static host will do for a one-page portfolio. Netlify and Cloudflare Pages both accept a folder dragged into the browser, which is the shortest path if you have never used Git. GitHub Pages suits you if you are happy for the code to be public. Vercel is the easier fit when the agent built a framework project rather than plain HTML. All four publish a free tier that covers a personal site.
Do I need a custom domain?
Not to apply for a job. A free subdomain from a static host is a working, sendable address. A custom domain is worth buying once the portfolio has settled and you expect to keep the address for years, because it survives you changing hosts.
Is this actually free?
The parts described here are currently free at the time of writing: Google Antigravity is offered free while in preview, Shiproom is currently free to use with early-access limits of 3 projects, 100 stored feedback items and 30 days of feedback history, and GitHub Pages, Netlify, Vercel and Cloudflare Pages all publish free tiers for a static personal site. A custom domain is the one thing that reliably costs money, and you do not need one to apply for a job. Check each vendor's current terms before you rely on any of it.
Can I use Claude Code or Codex instead of Google Antigravity?
Yes. Nothing in this workflow depends on a particular agent. Antigravity is convenient because it is free during preview, runs on your desktop, and accepts a PDF attachment directly, but Claude Code, Codex or any agent that can read a file and run a local server will follow the same prompt.
How long does it really take?
Budget an evening rather than five minutes. The agent's first draft usually arrives in a few minutes; the time goes into reading the page against your CV, cutting the sections that say nothing, and fixing whatever it got wrong about your work. That editing pass is the part that decides whether the link is worth sending.
Will a recruiter trust a site an AI wrote?
They are judging the work the site describes, not the tooling that produced the markup. What loses trust is a page that reads like generated filler, invents metrics, or breaks on a phone. The prompt in this guide forbids invented facts for that reason, and the review step exists so a person signs off on every claim before the link goes out.
Related resources
- Share localhost for private review without deploying first
- Give a coding agent visual feedback it can act on
- A reusable UI review prompt for the fixes that come back
- Shiproom CLI documentation, including ports and invites
- What Shiproom currently costs, and the early-access limits
Written from a workflow the author runs himself. Product behaviour described here is checked against the published shiproom release and the Shiproom documentation on this site; the hosting options are described from each vendor’s published free tier at the time of writing. Free tiers and preview offerings change — verify current terms before relying on them. Last reviewed .