Video
![]()
![]()
Editorial hero for a report




A kraft-paper resume site with a taped portrait, experience on lined cards, skill stickers, projects and references.
$9.99once, yours to keep
Payments are non-refundable. See our Terms of service.
Yours. Download it, then add it to your agent.
Builds a personal resume site in a scrapbook style into your own project: kraft paper and cream cards with washi tape, a handwritten name beside a taped portrait, experience on lined cards, skills as stickers, a few projects as photos, references and a contact form. Plain HTML, CSS and JavaScript, or matched to React, Next.js, Vue, Svelte, Astro or Tailwind when the project uses them. Comes with a working reference and a check that screenshots it at phone, tablet and desktop widths and flags sideways overflow, text under 12px, missing alt text and names, low contrast, no focus styles, motion that ignores reduced motion, leftover sample words and emoji icons. Use when someone wants their CV or resume as a friendly personal site, especially in community, education, events or creative work, or asks for a scrapbook, kraft-paper resume.
By RecaplyUpdated 12 Nov
Video
![]()
![]()
Editorial hero for a report
Video1 view, 0 downloads
![]()
![]()
Lavender page for an AI app
Video
![]()
![]()
Product page for headphones
Video
![]()
![]()
Page with a node-flow hero
You say
Turn my CV into a personal website. It's in brief.md.
It said back
Your CV site is built and passes the automated check. That check covers overflow, small text, alt text, names, contrast, focus, motion and script errors at phone, tablet and desktop widths. I looked at the 390px and 1440px screenshots and nothing is cut off or overlapping. I didn't open the 768px screenshot.
Files (in the project folder):
index.htmlstyle.cssscript.jsWhat it did in run 1
${d.get('message')}\n\nFrom: ${d.get('name')} (${d.get('email')}); const s = f.querySelector('.form-status'); if (s) s.textContent = 'Thanks! Your email app should open with your message ready to send.'; window.location.href = mailto:priya.raman@example.com?subject=${encodeURIComponent('Hello from your website')}&body=${encodeURIComponent(body)}; }); EOF cat > index.html <<'EOF' <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Priya Raman: Learning designer in Leicester</title> <meta name="description" content="Primary school teacher turned learning designer, based in Leicester."> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Kalam:wght@400;700&family=Nunito+Sans:wght@400;600;700&display=swap"> <link rel="stylesheet" href="style.css"> </head> <body> <a class="skip" href="#main">Skip to content</a> <header class="nav nav-bar"><div class="wrap nav-in"> <a class="brand" href="index.html" aria-label="Priya Raman home"><span>Priya Raman</span></a> <button class="nav-toggle" type="button" data-nav-toggle aria-expanded="false" aria-controls="menu"><svg class="ic" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M4 7h16M4 12h16M4 17h16"/></svg><span class="sr-only">Menu</span></button> <nav id="menu" class="menu" aria-label="Main"><ul><li><a href="#experience">Experience</a></li><li><a href="#skills">Skills</a></li><li><a href="#references">Reference</a></li><li><a href="#contact">Contact</a></li></ul><a class="btn btn-primary btn-sm" href="#contact">Get in touch</a></nav> </div></header> <main id="main"> <section class="hero hero-portfolio"><div class="wrap hero-in"><div class="hero-words reveal"><p class="kicker">Learning designer · Leicester</p><h1>Hi, I'm Priya. I make hard ideas feel <em>easy</em>.</h1><p class="hero-sub">I started in the classroom as a primary school teacher and now design online courses for 40,000 pupils.</p><div class="hero-ctas"><a class="btn btn-primary" href="#experience">See my experience<svg class="ic" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a><a class="btn btn-ghost" href="#contact">Say hello</a></div></div> <div class="hero-art reveal"><div class="taped"><svg viewBox="0 0 100 100" role="img" aria-label="Illustrated portrait of Priya Raman (placeholder, to be replaced with a photo)" preserveAspectRatio="xMidYMid slice"><rect width="100" height="100" fill="#F0D9B8"/><g transform="rotate(0.7 50 60)"><path d="M27 44c0-20 10-30 23-30s23 10 23 30v34H27z" fill="#2E2418"/><path d="M18 100c2-18 14-28 32-28s30 10 32 28z" fill="#7E2A1F"/><rect x="44" y="56" width="12" height="14" rx="5" fill="#B9794F"/><ellipse cx="50" cy="42" rx="17" ry="20" fill="#B9794F"/><path d="M31 40c0-14 8-22 19-22s19 8 19 22c-8-9-24-9-38 0z" fill="#2E2418"/><circle cx="43" cy="43" r="1.6" fill="#1b1b1b"/><circle cx="57" cy="43" r="1.6" fill="#1b1b1b"/><path d="M45 52q5 3.5 10 0" stroke="#1b1b1b" stroke-width="1.4" fill="none" stroke-linecap="round"/></g></svg><p>Priya, Leicester</p></div></div></div></section> <section class="sec timeline" id="experience" aria-labelledby="experience-h"><div class="wrap"><div class="sec-head"><h2 id="experience-h">Experience</h2></div><ol class="tl-list"> <li class="tl reveal"><p class="tl-when">2022 – now</p><div><h3>Learning designer <span>· Juniper Learning</span></h3><p>Designing online courses used by 40,000 pupils.</p></div></li> <li class="tl reveal"><p class="tl-when">2015 – 2022</p><div><h3>Year 4 teacher <span>· Westcotes Primary</span></h3><p>Seven years teaching Year 4 in the classroom.</p></div></li> </ol></div></section> <section class="sec features features-list" id="skills" aria-labelledby="skills-h"><div class="wrap"><div class="sec-head"><h2 id="skills-h">What I'm <em>good at</em></h2></div><ul class="feat-list"> <li class="feat reveal"><h3>Course design</h3></li> <li class="feat reveal"><h3>Storytelling</h3></li> <li class="feat reveal"><h3>Accessibility</h3></li> <li class="feat reveal"><h3>Canva and video editing</h3></li> </ul></div></section> <section class="sec quotes quotes-single" id="references" aria-labelledby="references-h"><div class="wrap"><div class="sec-head"><h2 id="references-h">Reference</h2></div><ul class="quote-list"><li class="quote reveal"><figure><blockquote><p>Priya makes hard ideas feel easy.</p></blockquote><figcaption><span><b>Mark Owusu</b><br><span class="role">Head teacher</span></span></figcaption></figure></li></ul></div></section> <section class="sec contact" id="contact" aria-labelledby="contact-h"><div class="wrap contact-in"><div class="reveal"><div class="sec-head"><h2 id="contact-h">Say <em>hello</em></h2></div><p class="contact-line"><svg class="ic" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M3 6h18v12H3zM3 7l9 6 9-6"/></svg><a href="mailto:priya.raman@example.com">priya.raman@example.com</a></p><p class="contact-line"><svg class="ic" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M12 21s7-6.5 7-12a7 7 0 0 0-14 0c0 5.5 7 12 7 12zM12 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4"/></svg><span>Leicester</span></p></div> <form class="contact-form reveal" data-form aria-label="Contact form"><label class="field"><span>Your name</span><input name="name" type="text" required autocomplete="name"></label><label class="field"><span>Email</span><input name="email" type="email" required autocomplete="email"></label><label class="field"><span>Message</span><textarea name="message" rows="5" required></textarea></label><button class="btn btn-primary" type="submit">Send message</button><p class="form-status" role="status" aria-live="polite"></p></form></div></section> </main> <footer class="foot"><div class="wrap foot-in"><div class="foot-brand"><a class="brand" href="index.html"><span>Priya Raman</span></a><p>Learning designer in Leicester.</p></div><nav class="foot-col" aria-label="Pages"><h2>Pages</h2><ul><li><a href="#experience">Experience</a></li><li><a href="#skills">Skills</a></li><li><a href="#references">Reference</a></li></ul></nav><nav class="foot-col" aria-label="Contact"><h2>Contact</h2><ul><li><a href="mailto:priya.raman@example.com">Email</a></li></ul></nav></div><div class="wrap foot-small"><p>© <span data-year>2026</span> Priya Raman.</p></div></footer> <script src="script.js" defer></script> </body> </html> EOF cat >> style.css <<'EOF' .quotes-single .quote-list{max-width:760px} .quotes-single blockquote{font-size:clamp(1.6rem,3.2vw,2.3rem)} .feat{display:grid;place-items:center;min-height:150px} .feat h3{margin:0} EOF node .claude/skills/pasted-notes-cv-site/scripts/check.mjs index.html --out check 2>&1 | tail -30${d.get('message')}\n\nFrom: ${d.get('name')} (${d.get('email')}); const s = f.querySelector('.form-status'); if (s) s.textContent = 'Thanks! Your email app should open with your message ready to send.'; window.location.href = mailto:priya.raman@example.com?subject=${encodeURIComponent('Hello from your website')}&body=${encodeURIComponent(body)}; }); EOF cat >> style.css <<'EOF' .quotes-single .quote-list{max-width:760px} .quotes-single blockquote{font-size:clamp(1.6rem,3.2vw,2.3rem)} .feat{display:grid;place-items:center;min-height:150px} .feat h3{margin:0} EOF tail -3 script.js | head -1; wc -l script.js style.cssNo. Pasted-Notes CV Site costs $9.99 once and stays in your Recaply account, or it comes with the Recaply plan ($19.99 a month), which opens every premium skill and prompt.
Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
A ZIP of the whole skill folder (40 KB): the SKILL.md your agent follows and its 6 other files, the references, templates and scripts it uses. You download it from this page whenever you need it, and install it in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. The Recaply plan opens it too, with every other premium skill and prompt.
Buy it, then download the ZIP from this page. For Claude Code, unzip it into .claude/skills/ in your project. For Codex, Cursor and Gemini CLI, unzip it and run npx skills add ./pasted-notes-cv-site with your agent's flag.
One HTML file with its CSS inside: no build step, no framework. A personal resume site in a scrapbook style. Checked at phone and desktop widths.
Node 20+ and Chrome, and no API key. Each use costs nothing beyond your agent.
7 files, about 30,575 tokens in all. The SKILL.md is about 2,512 tokens, and your agent reads it only when the job fits.
Our 1 runs took 1 min 31 s to 1 min 31 s and $0.37 to $0.37 of API use each, in Claude Code with claude-sonnet-5-5. On a Claude plan, a run counts toward your usage instead.
Type /pasted-notes-cv-site first to make sure it loads. Without it, Claude Code may judge a small job simple enough to do without the skill.