Source
This app’s code and revision history are public. Download a copy or explore the files below.
Public
The app’s code and revision history are public.
Run it yourself
Take the whole tree and run it on your own machine. The download needs no account. Cloning needs a sign-in.
Download .zip
bounded clone 70bace54357d4b57b674108f
A copy you download is not bounded. The guarantees this app runs under - declared egress, proven invariants, writes that fail closed - live in the runtime serving this page, not in the files. What you get is auditable source you can read and run, with no runtime guarantees attached.
index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Resume: free Zety alternative, resume builder with a free PDF | OpenApps</title>
<meta name="description" content="Resume is a free Zety and Resume.io alternative: write your resume and cover letter, pick a clean template and download the PDF. No paywall at download, no watermark and no sign-up.">
<link rel="canonical" href="https://resume-free.openapps.xyz/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="OpenApps">
<meta property="og:title" content="Resume: a free resume builder. The PDF is free too.">
<meta property="og:description" content="A free Zety alternative. Write your resume and cover letter, pick a clean template and download the PDF. No paywall at download, no watermark, no sign-up.">
<meta property="og:url" content="https://resume-free.openapps.xyz/">
<meta property="og:image" content="https://free-apps.openapps.xyz/og/resume.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="theme-color" content="#fdfdfc">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="alternate" type="text/markdown" href="/index.md">
<link rel="alternate" type="text/plain" title="llms.txt" href="/llms.txt">
<link rel="service-desc" type="application/vnd.oai.openapi+json" href="/openapi.json">
<link rel="preload" href="/fonts/NewsreaderVariable-var.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/fonts/ArchivoVariable-var.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/kit.css">
<script>/^\/r\/[A-Za-z0-9]{8,32}(\/admin)?\/?$/.test(location.pathname) && document.documentElement.classList.add("app-mode")</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"SoftwareApplication","name":"Resume by OpenApps","applicationCategory":"BusinessApplication","operatingSystem":"Web","url":"https://resume-free.openapps.xyz/","description":"Free resume builder and free alternative to Zety and Resume.io: fill in your experience, education, skills and more, write a matching cover letter, pick one of three clean templates and six colors, and download a PDF with real, selectable text. Also downloads as plain text and JSON Resume. Several resumes per device, share by link. No paywall at download, no watermark, no sign-up.","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"isAccessibleForFree":true,"dateModified":"2026-10-19","publisher":{"@type":"Organization","name":"OpenApps","url":"https://openapps.xyz"}}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"Is there a free alternative to Zety?","acceptedAnswer":{"@type":"Answer","text":"Yes. Resume is a free resume builder from OpenApps. You write your resume and cover letter, pick a template and download the PDF for free, with no trial, no subscription and no watermark."}},
{"@type":"Question","name":"Is the PDF download really free?","acceptedAnswer":{"@type":"Answer","text":"Yes. The PDF is made in your browser, so it costs nothing to run. Download it as many times as you like, for as many resumes as you like."}},
{"@type":"Question","name":"Can I write a cover letter too?","acceptedAnswer":{"@type":"Answer","text":"Yes. Each resume has a Cover letter tab. The letter prints under your resume's header, in the same template and color, with today's date, and downloads as a PDF or plain text."}},
{"@type":"Question","name":"Can I keep a different resume for each job?","acceptedAnswer":{"@type":"Answer","text":"Yes. Open the list of your resumes above the editor and choose Make a copy, then tailor the copy and rename it. All your resumes stay on your device."}},
{"@type":"Question","name":"Will it pass applicant tracking systems?","acceptedAnswer":{"@type":"Answer","text":"The templates use real, selectable text in one column, with plain section headings and no images or tables, which is what those systems read best. You can also download plain text to paste into application forms."}},
{"@type":"Question","name":"Do I need an account?","acceptedAnswer":{"@type":"Answer","text":"No. Your resumes are saved on your device as you type. Download the JSON file to keep a copy or move to another device. If you clear your browser data, the saved resumes are gone, so keep a copy."}},
{"@type":"Question","name":"Is my resume uploaded?","acceptedAnswer":{"@type":"Answer","text":"Only if you share it by link. Otherwise it stays on your device, and the PDF is made in your browser. A shared resume can be seen by anyone with its link; links are long and random, so they cannot be guessed. Only someone with the admin link can change it. Cover letters are never uploaded."}},
{"@type":"Question","name":"Can I get a Word file?","acceptedAnswer":{"@type":"Answer","text":"Resume downloads PDF, plain text and JSON Resume. Microsoft Word and Google Docs can both open the PDF and turn it into an editable document."}},
{"@type":"Question","name":"Which languages print correctly?","acceptedAnswer":{"@type":"Answer","text":"Languages written in Latin letters, with their accents: Spanish, French, German, Polish, Czech, Turkish, Vietnamese and more. Cyrillic, Greek, Arabic, Hebrew and Asian scripts are not supported yet. You can rename every heading to match your language."}},
{"@type":"Question","name":"Can I import my resume?","acceptedAnswer":{"@type":"Answer","text":"Yes, from a JSON Resume file (jsonresume.org), including the JSON that Resume downloads: open the list of your resumes and choose Import. To bring in a PDF or Word resume, give its text to your AI assistant: it can create the resume in Resume for you through the API."}},
{"@type":"Question","name":"Can my AI assistant write it?","acceptedAnswer":{"@type":"Answer","text":"Yes. Resume has a public HTTP API with no key. An assistant can turn your career notes into a resume in one call and give you a link where the PDF downloads."}}
]}
</script>
</head>
<body>
<header class="site-head">
<div class="wrap">
<a class="brand" href="https://free-apps.openapps.xyz/" aria-label="OpenApps free apps">
<img src="/logo.svg" alt="" width="26" height="26">
<span>OpenApps</span>
</a>
<span class="brand-sep" aria-hidden="true">/</span>
<a class="brand brand-app" href="/">Resume</a>
<nav class="site-nav" aria-label="Main">
<a class="nav-optional landing-link" href="/#how">How it works</a>
<a class="landing-link" href="/#api">API</a>
<a href="https://free-apps.openapps.xyz/apps">Free apps</a>
</nav>
</div>
</header>
<main>
<div id="app"></div>
<section class="app-hero landing-only">
<div class="wrap">
<div class="hero-copy">
<div>
<p class="eyebrow">Free alternative to Zety</p>
<h1 class="display">A free resume builder. The PDF is free too.</h1>
<p class="lede">Resume is a free Zety alternative. Write your resume and a matching cover letter, pick a clean template and download the PDF, with no paywall, no watermark and no sign-up.</p>
<ul class="hero-points">
<li>Free PDF download</li>
<li>Cover letters included</li>
<li>No watermark</li>
<li>No sign-up</li>
</ul>
</div>
<img class="art hero-art" src="/art/card-resume.webp" alt="" width="220" height="182" decoding="async" loading="lazy">
</div>
<div id="editor"><div class="editor-skeleton" aria-hidden="true"><span class="skeleton"></span><span class="skeleton"></span></div><noscript><p class="notice">Resume needs JavaScript to build a resume.</p></noscript></div>
</div>
</section>
<div id="mine" class="landing-only"></div>
<section class="section landing-only" id="how">
<div class="wrap">
<h2 class="h2">How it works</h2>
<ol class="steps">
<li><h3>Write it</h3><p>Contact, summary, experience, education and skills, plus any section you need. The paper updates as you type, and everything saves on this device.</p></li>
<li><h3>Pick a template</h3><p>Classic, Modern or Compact, in one of six colors, on US Letter or A4. The preview shows exactly where the pages break.</p></li>
<li><h3>Download or share</h3><p>A PDF with real, selectable text, plain text for application forms, or a link where anyone can read your resume and download the PDF.</p></li>
</ol>
</div>
</section>
<section class="section-tight landing-only">
<div class="wrap">
<h2 class="h2">Everything you use Zety for</h2>
<ul class="features">
<li><strong>Free PDF download</strong><span>Real, selectable text and no watermark, as many times as you like. Plain text and JSON Resume download free too.</span></li>
<li><strong>A matching cover letter</strong><span>Each resume has a Cover letter tab. The letter prints under your header, in the same template and color.</span></li>
<li><strong>A resume for each job</strong><span>Make a copy, tailor it for the next application and give it a name. Switch between them from the list above the editor.</span></li>
<li><strong>Templates and colors</strong><span>Three clean templates that applicant tracking systems read well, six colors, and US Letter or A4.</span></li>
<li><strong>Every section you need</strong><span>Projects, volunteering, awards, certifications, publications, languages and interests. Reorder sections and rename any heading.</span></li>
<li><strong>Share by link</strong><span>One link where anyone can read your resume, laid out for phones, and download the PDF. Update it whenever you change the resume.</span></li>
</ul>
</div>
</section>
<section class="section-tight landing-only">
<div class="wrap">
<h2 class="h2">Resume, Zety and Resume.io, side by side</h2>
<p class="lede" style="margin-top:14px">Most resume builders let you write for free, then charge at the download button. Resume makes the PDF in your browser, so it costs nothing to run. A shared link is one small record, and OpenApps pays for it.</p>
<div class="table-wrap" style="margin-top:24px">
<table class="table compare">
<thead><tr><th scope="col"><span class="sr-only">Feature</span></th><th scope="col">Resume</th><th scope="col">Zety free plan</th><th scope="col">Resume.io free plan</th></tr></thead>
<tbody>
<tr><td>PDF download</td><td class="yes">Free, no limit</td><td class="no">Paid: about $1.95 for a 14-day trial, then about $25.95 every 4 weeks</td><td class="no">Paid: $2.95 for a 7-day trial, then $29.95 every 4 weeks</td></tr>
<tr><td>Free download</td><td class="yes">PDF, plain text and JSON</td><td class="no">Plain text only</td><td class="no">Plain text only</td></tr>
<tr><td>Resumes</td><td class="yes">No limit</td><td>No limit</td><td class="no">One, with one cover letter</td></tr>
<tr><td>Account needed</td><td class="yes">No</td><td class="no">Yes</td><td class="no">Yes</td></tr>
<tr><td>Templates</td><td>3 clean templates, 6 colors</td><td class="yes">Many designs</td><td class="yes">Many designs</td></tr>
<tr><td>Writing suggestions</td><td class="no">No. Your AI assistant can write with you</td><td class="yes">Yes</td><td class="yes">Yes</td></tr>
<tr><td>Import and export JSON Resume</td><td class="yes">Yes</td><td class="no">No</td><td class="no">No</td></tr>
<tr><td>API for AI assistants</td><td class="yes">Yes, no key</td><td class="no">No</td><td class="no">No</td></tr>
</tbody>
</table>
</div>
<p class="hint" style="margin-top:12px">Checked October 2026 on <a href="https://zety.com/pricing">Zety's pricing page</a> and <a href="https://resume.io/pricing">Resume.io's pricing page</a>. Prices change, so check their sites.</p>
<h3 class="h3" style="margin-top:36px">What Resume does not do</h3>
<ul class="not-list">
<li>Write for you. There are no ready-made phrases or AI writer in the app; your AI assistant can draft with you and fill Resume through the API.</li>
<li>Photos, graphics or two-column designs. Every template is one column of real text, which applicant tracking systems read best.</li>
<li>Word files. Word and Google Docs both open the PDF and turn it into an editable document.</li>
<li>Read an old PDF or Word resume. Give its text to your AI assistant, or import a JSON Resume file.</li>
<li>Sync between devices by itself. Download the JSON file and import it on the other device, or share the resume and open its admin link there.</li>
</ul>
</div>
</section>
<section class="section landing-only" id="api">
<div class="wrap api-grid">
<div>
<p class="eyebrow">For AI assistants</p>
<h2 class="h2">Your assistant can write the resume.</h2>
<p class="lede" style="margin-top:14px">Resume has a public API with no key and no account. An assistant can turn a person's career notes or old resume into a resume in one call, using the JSON Resume format, and hand back a link where the PDF downloads.</p>
<p style="margin-top:14px">Reference: <a href="/llms.txt">llms.txt</a> and <a href="/openapi.json">openapi.json</a>. The owner key that comes back lets you change the resume, so give it only to the person the resume is for.</p>
</div>
<pre class="code"><span class="c"># Create a resume, get a link with the PDF</span>
curl -X POST https://functions.bounded.sh/apps/70bace54357d4b57b674108f/api/resumes \
-H 'content-type: application/json' \
-d '{"basics": {"name": "Sam Rivera", "label": "Product designer",
"email": "sam@example.com", "location": {"city": "Portland", "region": "OR"},
"summary": "Designer with 8 years in fintech and health."},
"work": [{"name": "Acme Inc.", "position": "Senior product designer",
"startDate": "2021-03", "highlights": ["Led the checkout redesign; conversion up 12%"]}],
"education": [{"institution": "Portland State University",
"studyType": "BA", "area": "Graphic Design", "endDate": "2016"}],
"skills": [{"name": "Design", "keywords": ["Figma", "Prototyping"]}],
"template": "modern", "color": "sage"}'
<span class="c"># Read it back (JSON Resume and plain text)</span>
curl https://functions.bounded.sh/apps/70bace54357d4b57b674108f/api/resumes/RESUME_ID
<span class="c"># Change it</span>
curl -X PATCH https://functions.bounded.sh/apps/70bace54357d4b57b674108f/api/resumes/RESUME_ID \
-H 'x-owner-key: OWNER_KEY' -H 'content-type: application/json' \
-d '{"basics": {"label": "Lead product designer"}}'</pre>
</div>
</section>
<section class="section-tight landing-only">
<div class="wrap">
<h2 class="h2">Questions</h2>
<div class="faq" style="margin-top:22px">
<details><summary>Is there a free alternative to Zety?</summary><div>Yes. Resume is a free resume builder from OpenApps. You write your resume and cover letter, pick a template and download the PDF for free, with no trial, no subscription and no watermark.</div></details>
<details><summary>Is the PDF download really free?</summary><div>Yes. The PDF is made in your browser, so it costs nothing to run. Download it as many times as you like, for as many resumes as you like.</div></details>
<details><summary>Can I write a cover letter too?</summary><div>Yes. Each resume has a Cover letter tab. The letter prints under your resume's header, in the same template and color, with today's date, and downloads as a PDF or plain text.</div></details>
<details><summary>Can I keep a different resume for each job?</summary><div>Yes. Open the list of your resumes above the editor and choose Make a copy, then tailor the copy and rename it. All your resumes stay on your device.</div></details>
<details><summary>Will it pass applicant tracking systems?</summary><div>The templates use real, selectable text in one column, with plain section headings and no images or tables, which is what those systems read best. You can also download plain text to paste into application forms.</div></details>
<details><summary>Do I need an account?</summary><div>No. Your resumes are saved on your device as you type. Download the JSON file to keep a copy or move to another device. If you clear your browser data, the saved resumes are gone, so keep a copy.</div></details>
<details><summary>Is my resume uploaded?</summary><div>Only if you share it by link. Otherwise it stays on your device, and the PDF is made in your browser. A shared resume can be seen by anyone with its link; links are long and random, so they cannot be guessed. Only someone with the admin link can change it. Cover letters are never uploaded.</div></details>
<details><summary>Can I get a Word file?</summary><div>Resume downloads PDF, plain text and JSON Resume. Microsoft Word and Google Docs can both open the PDF and turn it into an editable document.</div></details>
<details><summary>Which languages print correctly?</summary><div>Languages written in Latin letters, with their accents: Spanish, French, German, Polish, Czech, Turkish, Vietnamese and more. Cyrillic, Greek, Arabic, Hebrew and Asian scripts are not supported yet. You can rename every heading to match your language.</div></details>
<details><summary>Can I import my resume?</summary><div>Yes, from a JSON Resume file (<a href="https://jsonresume.org">jsonresume.org</a>), including the JSON that Resume downloads: open the list of your resumes and choose Import. To bring in a PDF or Word resume, give its text to your AI assistant: it can create the resume in Resume for you through the API.</div></details>
<details><summary>Can my AI assistant write it?</summary><div>Yes. Resume has a public HTTP API with no key. An assistant can turn your career notes into a resume in one call and give you a link where the PDF downloads. See <a href="/llms.txt">llms.txt</a>.</div></details>
</div>
</div>
</section>
<section class="section-tight landing-only">
<div class="wrap">
<h2 class="h2">More free apps</h2>
<ul class="more-apps">
<li><a href="https://invoice-free.openapps.xyz/"><strong>Invoice</strong><span>Free invoices, instead of FreshBooks</span></a></li>
<li><a href="https://sign-free.openapps.xyz/"><strong>Sign</strong><span>Free e-signatures, instead of DocuSign</span></a></li>
<li><a href="https://pdf-free.openapps.xyz/"><strong>PDF</strong><span>Merge and split PDFs, instead of Smallpdf</span></a></li>
<li><a href="https://free-apps.openapps.xyz/apps"><strong>All apps</strong><span>The app store of free alternatives</span></a></li>
</ul>
</div>
</section>
</main>
<footer class="site-foot">
<div class="wrap">
<!-- network:start -->
<nav class="oa-network" aria-label="Free apps from OpenApps">
<p class="oa-network-title"><a href="https://free-apps.openapps.xyz/">Free apps from OpenApps</a><span>Free alternatives to the apps you pay for, built for people and their AI assistants.</span></p>
<ul>
<li><a href="https://sign-free.openapps.xyz/">Sign</a><span>instead of DocuSign</span></li>
<li><a href="https://forms-free.openapps.xyz/">Forms</a><span>instead of Typeform</span></li>
<li><a href="https://split-free.openapps.xyz/">Split</a><span>instead of Splitwise</span></li>
<li><a href="https://links-free.openapps.xyz/">Links</a><span>instead of Bitly</span></li>
<li><a href="https://when-free.openapps.xyz/">When</a><span>instead of Doodle</span></li>
<li><a href="https://pdf-free.openapps.xyz/">PDF</a><span>instead of Smallpdf</span></li>
<li><a href="https://invoice-free.openapps.xyz/">Invoice</a><span>instead of FreshBooks</span></li>
<li><a href="https://bio-free.openapps.xyz/">Bio</a><span>instead of Linktree</span></li>
<li><a href="https://book-free.openapps.xyz/">Book</a><span>instead of Calendly</span></li>
<li><a href="https://dictate-free.openapps.xyz/">Dictate</a><span>instead of Wispr Flow</span></li>
<li><a href="https://images-free.openapps.xyz/">Images</a><span>instead of TinyPNG</span></li>
<li><a href="https://resume-free.openapps.xyz/" aria-current="page">Resume</a><span>instead of Zety</span></li>
<li><a href="https://sheets-free.openapps.xyz/">Sheets</a><span>instead of SignUpGenius</span></li>
<li><a href="https://paste-free.openapps.xyz/">Paste</a><span>instead of Pastebin</span></li>
<li><a href="https://record-free.openapps.xyz/">Record</a><span>instead of Loom</span></li>
<li><a href="https://lingo-free.openapps.xyz/">Lingo</a><span>instead of Duolingo</span></li>
<li><a href="https://still-free.openapps.xyz/">Still</a><span>instead of Calm</span></li>
<li><a href="https://monitor-free.openapps.xyz/">Monitor</a><span>instead of Baby Monitor 3G</span></li>
</ul>
<p class="oa-network-more"><a href="https://free-apps.openapps.xyz/apps">All free apps</a> · <a href="https://free-apps.openapps.xyz/alternatives">Free alternatives A to Z</a> · <a href="https://free-apps.openapps.xyz/for-ai">Add every app to your AI assistant</a></p>
</nav>
<!-- network:end -->
<div class="foot-note" style="margin-top:0;border-top:0;padding-top:0">
<span>Resume is an <a href="https://openapps.xyz">OpenApp</a>: free, with public <a href="/__bounded/source">source</a> and its own agent.</span>
<span><a href="https://free-apps.openapps.xyz/">OpenApps free apps</a> · <a href="/llms.txt">llms.txt</a></span>
</div>
</div>
</footer>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Change history
Quality pass: several resumes, cover letters, phone-readable shared pages
Bounded source sync
Bounded source sync
Bounded source sync