above: ResumAI.me

ResumAI

Update, Jan 2024: Swapped the model from text-davinci-003 over to gpt-4. Night and day. The bullets actually read like something a human would write.

Update, Jun 2024: Pulled the plug. Killed the Postgres instance early in the month, suspended the web services soon after. It made a little money — not enough to justify the Render bill — and I was ready to move on. Leaving this post up as a time capsule.

Update, Jan 2026: Finally got around to marking it officially retired on my portfolio, about eighteen months after the server actually stopped running.

I shipped a thing. It's a resume builder with AI baked into the places that matter. It's live at resumai.me, and the first two AI requests are free.

What it is

ResumAI is a resume builder. You fill out a form, you get a PDF. The interesting part is three buttons that use OpenAI to help you write the resume itself:

  • Generate an introduction — give it your years of experience and the role you're seeking, get a short intro written in first person.
  • Generate achievements — give it a position and a company, get three bullet points to start from.
  • Enhance an achievement — give it a bullet you already wrote, get back a cleaner, more professional version.

That's it. Three buttons. I didn't want ResumAI to feel like one of those sites where every input has a little sparkle icon next to it. The AI is there to unstick you when the page is blank, not to write your resume for you.

Pricing

Two free AI requests. After that, $3.99 for five more credits, one-time. No subscription. Share it with a friend and you get an extra free credit.

I wanted it to be cheaper than a cup of coffee. If you're job hunting, you shouldn't need to think twice about it.

How the AI part works

Each of the three buttons hits the OpenAI completion API with a different system prompt and a few query params interpolated in. The model is text-davinci-003.

The prompt for generating an introduction:

You are a seasoned career counsoler. The user will tell you how many years
experience they have and the role they are seeking. Respond with 3 short and
sweet sentences that sound convincing and charasmatic. Dont repeat the role
too many times. Do not be conversational. Your response will be used verbatim
as the introduction to the resume, and therefore should be written in first
person, as the candidate.

The prompt for enhancing a bullet:

The user will send you a position they held, and the resume item they wish to
enhance. Using professional tone write one resume bullet for a ${position} at
${company} related to: "${resumeItem}" do not mention the company name. NEVER
include quotes or bullet points around the response. The response will go
directly in to a resume.

The NEVER include quotes part is all caps because without it, the model wraps the response in quotes and I have to strip them on the client. Prompting is mostly asking nicely and occasionally shouting.

One other thing: I do not store your AI responses. There's a flag in the backend called storeAIResponses and it's false in production. Your resume content stays between you and OpenAI. I don't want it, and I don't want the liability of having it.

The stack

  • Frontend: Angular 15.
  • Backend: Express, Postgres, express-session with a Postgres store.
  • PDF: pdfmake.
  • Payments: Stripe Checkout.
  • Hosting: Render — one render.yaml, one Postgres instance, one click to deploy.
  • AI: The openai npm package talking to the completion endpoint.

Why I built this

I'm a UI engineer. Product, UX, HCI — I've been into all of it for years, and AI is clearly the next frontier of that work. I wanted to build with it.

Go try it

resumai.me. Two free requests. Let me know what you think.