Stack:
- Next.js (pages router)
- Supabase for auth + storage
- Stripe for payments + webhooks
- Resend for transactional email
- PDFKit for resume generation
- Claude API for AI content
What actually took the longest:
Getting the PDF to match the on-screen preview was brutal. The preview renders in React with inline styles, but PDFKit builds documents programmatically — completely different systems. Ended up writing a custom parser to convert the AI output format into structured job blocks that both renderers could consume.
Stripe webhooks in dev vs prod behave differently in ways that will make you question your life choices. Lots of fun with ngrok and event ordering.
The AI prompt engineering for resume generation took way more iteration than I expected. Getting Claude to output structured data reliably required some creative formatting tricks.
The product: AI resume builder with 6 templates (Harvard, MIT, Berkeley style + ATS formats), cover letter generator, ATS scoring. $2.99 one-time or $5/month.
Happy to talk through any part of the stack. What would you have done differently?
The user shares their experience building jobbly.us, an AI resume builder using Next.js, Supabase, Stripe, and other technologies. They discuss challenges faced with PDF rendering, Stripe webhooks, and AI prompt engineering. The product offers resume templates and cover letter generation for a fee.