HirezzAI — Devpost Submission

GitHub Link


Project Name

HirezzAI (also known as Cooked Resume)

Tagline

The most brutally honest AI recruiter you'll ever meet. No fluff. Just fire.


Inspiration

Job hunting is already rough. But the worst part? Most people don't know why they're getting ghosted.

Generic resume tips are everywhere — "use action verbs," "quantify your impact" — but they never tell you whether your specific resume actually matches this specific job. ATS systems reject 75% of resumes before a human even sees them, and most applicants have no idea what those systems are looking for.

We wanted to build something that feels like a brutally honest friend who works in recruiting — someone who'll tell you straight up: "bro your resume is cooked, here's why, and here's exactly how to fix it." But make it fun. Make it Gen Z. Make it a meme.

That's HirezzAI.


What It Does

HirezzAI takes your resume and a job description, runs them through a chain of AI and meme APIs, and delivers a full application diagnostic — in brainrot.

The Full Experience:

1. Paste or Upload Drop in your resume (paste text, or upload .pdf, .docx, or .txt) and the job description. Pick your roast intensity: 🔥 Brainrot Mode, ⚖️ Balanced, or 🫂 Be Gentle.

2. The Verdict (Rizz Score + Aura Score)

  • Rizz Score — ATS-style fit score (keyword match, action verbs, quantified bullets, title alignment, section structure)
  • Aura Score — Overall resume quality and signal
  • Ready to Apply? — A simple yes/no

3. The Roast

  • Brainrot Diagnosis — Your resume failures, translated into gen-z language. Read it, or hit 🔊 Read Funny to hear it in a chaotic TTS voice
  • Serious Diagnosis — The same feedback, in plain English for when your recruiter friend is looking over your shoulder
  • Recruiter POV — What a hiring manager thinks in the first 6 seconds

4. The Meme Drop Five personalized memes generated by Imgflip with captions written by Gemini. Each one is tailored to your specific application status. The meme slaps before the full report even loads.

5. The Fix

  • Missing Drip — Keywords in the JD that aren't in your resume
  • Ick Detector — Red flags a recruiter will catch immediately
  • Glow Up Plan — Prioritized action items (main quest / side quest / quick buff)
  • Bullet Glow Up — Three AI rewrites for every weak bullet point
  • Improved Summary — A rewritten professional summary, tailored to the job

6. Magic Fix One click. All bullet rewrites applied. Summary replaced. Export your polished resume as a formatted PDF (opens in a new tab, ready to print) or a DOCX file (downloads straight to your computer).

7. Rizz Letter On-demand AI cover letter — written in your tone, matched to the job. Brainrot Mode cover letters are a new art form.

8. Shareable Aura Card Pick your favourite meme, copy your Rizz score, and share to LinkedIn, X, Instagram, or TikTok. Let the internet know you got roasted.


How We Built It

Architecture

One clean pipeline — no overengineering:

User Input (paste / file upload)
    │
    ├── POST /api/extract      → server-side PDF/DOCX/TXT parsing
    │
    └── POST /api/roast        → main orchestrator
          │
          ├── Gemini API       → scoring, analysis, rewrites, meme captions
          ├── BrainRot API     → gen-z translation (+ local fallback)
          └── Imgflip API      → 5 rendered memes per result
                │
                ▼
          RoastResult JSON  →  RoastResultCard (client)
                                    │
                                    ├── /api/rizz-letter  (on-demand)
                                    ├── /api/tts/brainrot (on-demand)
                                    └── lib/generateResumeDocs (client-side)
                                         → DOCX (docx package, lazy-loaded)
                                         → PDF (HTML blob + window.print())

Tech Stack

  • Next.js 15 (App Router, Server Components, API Routes)
  • TypeScript — strict mode throughout
  • Tailwind CSS + shadcn/ui — inlined component primitives
  • Gemini API (gemini-2.0-flash) — structured JSON output with schema validation
  • BrainRot API + local regex fallback for zero-downtime demos
  • Imgflip API/caption_image with Gemini-generated captions
  • ElevenLabs TTS + browser SpeechSynthesis fallback
  • docx package — client-side Word document generation (dynamically imported)
  • mammoth + pdf-parse — server-side resume file extraction
  • Vercel — deployment

Gemini Prompt Design

The entire analysis is one structured Gemini call with a strict JSON response schema — no ambiguous free text parsing. The schema enforces:

  • Numeric scores with defined ranges
  • Typed arrays for keywords, bullets, and glow-up items
  • Priority enums (high, medium, quick-win) for actionable sorting
  • Pre-validated meme caption arrays consumed directly by Imgflip

This means zero post-processing failures and demo-safe fallbacks from lib/mocks.ts.

UI / Vibe

The interface is Cosmic Brainrot — a dark, fire-gradient aesthetic built around Gen Z meme culture:

  • Bebas Neue for display headings (poster / meme energy)
  • Space Grotesk for body text (clean, techy)
  • Animated flame cursor with trailing glow blob
  • Scroll-driven chef character (starts centered at full size, slides to bottom-right corner as you scroll — built with requestAnimationFrame + linear interpolation, no CSS Scroll Timeline)
  • Animated meme drop intro on every result (shockwave rings, floating meme thumbnails, stagger animations)
  • Shimmer + fire-glow CTA button
  • Dark-default with a light mode toggle

Challenges We Ran Into

Prompt reliability at speed. Getting Gemini to return consistent structured JSON across all tone modes while staying under latency budgets took significant prompt iteration. Schema-constrained output (responseMimeType: application/json) eliminated most parsing errors.

Meme personalisation at scale. Imgflip has rate limits and template constraints. We built a selectMemeTemplate.ts module that maps CookedLevel to pre-vetted template IDs, with fallback URLs baked in so the meme carousel never breaks even if Imgflip is down.

File extraction across formats. PDF, DOCX, and TXT each need different server-side parsers. pdf-parse can throw on malformed files, and mammoth needs careful HTML stripping for clean plain text. Every path has a try/catch that falls back gracefully.

The scroll-driven chef animation. Getting a fixed position: fixed SVG character to smoothly interpolate from a centered "intro hero" position to a corner widget across all screen sizes — without CSS Scroll Timeline (limited browser support) — required deriving exact pixel positions with useLayoutEffect and a lerp + requestAnimationFrame loop. The spacer height in the intro section is mathematically derived from chef geometry so text never overlaps.

Client-side DOCX without bloating the bundle. The docx package is non-trivial in size. We dynamically import it (await import("docx")) only when the user clicks Download DOCX, so it never touches the initial page load.


Accomplishments That We're Proud Of

  • The meme drop moment. When results load, the screen goes dark, shockwave rings expand, and 22 floating mini-memes burst outward before the main meme slams in. First-time users always react out loud.
  • Zero silent failures. Every API call — Gemini, BrainRot, Imgflip, ElevenLabs — has a tested fallback. The demo works even with no env vars set.
  • One-click resume export. The Magic Fix button applies all AI improvements and exports a properly formatted PDF + DOCX in one click, purely client-side.
  • The brainrot voice. ElevenLabs reads the diagnosis in an unhinged TTS voice. When ElevenLabs is unavailable, SpeechSynthesis with a pitched-up "Zarvox" voice is the fallback. Either way, it's hilarious.
  • Actually useful output. Under the memes and the gen-z language, the analysis is grounded in real ATS research. The Rizz Breakdown tracks keyword match, quantified bullets, action verb density, title alignment, and section structure — the five dimensions that actually move ATS scores.

What We Learned

  • Tone in prompts compounds. A "savage" tone instruction at the top of a Gemini system prompt meaningfully shifts every downstream output — feedback phrasing, meme captions, bullet rewrites. We had to tune each tone to stay funny without becoming useless.
  • Structured output is non-negotiable for demos. Free-form AI text that gets parsed with regex is a liability in front of an audience. Schema-constrained JSON made our demo deterministic.
  • The meme IS the product. In early versions, the meme was an afterthought. When we put the meme drop first — full-screen, with animations — every demo session became 10x more memorable.
  • Design for the 60-second pitch. Every section of the result card was written with one question in mind: "Can a judge understand this in 3 seconds?" That shaped icon choices, copy length, and section order.

What's Next for HirezzAI

  • LinkedIn integration — pull your profile directly instead of pasting
  • Resume history — compare how your score improves across drafts
  • Batch mode — roast the same resume against multiple JDs at once
  • Employer mode — flip it around: paste 10 resumes and rank them against a JD
  • Mobile app — the meme drop deserves a native haptic experience
  • Browser extension — highlight any job posting and get an instant fit score inline

Built With

next.js typescript tailwind-css shadcn-ui gemini-api imgflip-api elevenlabs brainrot-api vercel docx pdf-parse mammoth


Team

Three people. One day. Zero sleep. Maximum brainrot.

  • Lead / Integration / Deployment — API orchestration, file extraction, Vercel infra
  • Gemini Brain — Prompt engineering, ATS scoring methodology, structured output design
  • Vibe / UI / Memes — Frontend, animations, meme pipeline, pitch deck

Built With

  • next.js
  • tailwind
  • ts
Share this project:

Updates