This is a submission for the DEV April Fools Challenge
I have been rejected from jobs for reasons that were never explained.
Most developers have. The email arrives: "After careful consideration, we've decided to move forward with other candidates." No context. No feedback. Just: we decided.
So I thought: what if the AI told you the real reason? Not the polished HR version — the actual, specific, completely absurd reason your application didn't make it?
Ladies and gentlemen: HireBot™.
"AI Recruitment at Scale. (Declining Scale.)"
What I Built
HireBot™ ** [https://resume-rejector.netlify.app/]
is a Gemini-powered resume rejection machine. Paste your resume, optionally specify the position, and receive a formal rejection letter with 5 specific, creative, completely non-real reasons why you weren't selected.
The letter is formatted exactly like a real rejection email: date, salutation, opening paragraph, numbered reasons, closing paragraph, signature from the "Automated Rejection Division."
Sample reasons:
- "Candidate's email address contains a number. This suggests an indecisive approach to identity."
- "Resume was submitted at 11:47 AM. Our highest performers submit before 9."
- "We detected the use of bullet points. We are a paragraph-first culture."
- "Applicant listed hobbies. This raises questions about prioritization."
- "The font choice suggests someone who has 'opinions.' We prefer alignment."
The closing paragraph is always warm, corporate, and completely meaningless. Something like: "We wish you the best in your future endeavors and encourage you to continue developing the areas that matter most to us, which we are unable to specify."
The Joke Has a Point
Real rejection letters are engineered to say nothing. They're warm enough to avoid rudeness, vague enough to avoid liability, and specific enough to feel personal without actually being personal.
HireBot™ generates the shadow version — specific, confident, and completely wrong. The humor comes from how corporate and precise the absurd reasons sound. Gemini is genuinely good at imitating HR voice.
The real joke is that these reasons are indistinguishable in format from real feedback you've received. The confidence is identical. The tone is identical. Only the reasons are ridiculous.
Or are they?
Demo
1. Paste your resume
Any format — paste plain text from your CV, LinkedIn export, or whatever you have. Or load the sample resume included in the app.
2. Optionally add the role
The absence of a position is also noted: "General Application (this is also a concern)."
3. HireBot reviews your application
Loader stages: "Screening candidate profile...", "Cross-referencing with our values...", "Consulting the rejection matrix...", "Wishing you well (insincerely)..."
4. The rejection letter arrives
Formatted as a real email. Your name extracted from the resume. Five specific reasons. A corporate closing. A "Copy Letter" button so you can share.
5. Share it
The rejection letters are screenshot-worthy. People post them. That's the community favorite play.
How I Built It
Stack: React 19 + Vite + Tailwind CSS v4 + Gemini API (gemini-2.0-flash)
No backend. Direct browser API call.
The Gemini prompt is carefully constrained to produce the right kind of absurdity:
Rules:
- Generate exactly 5 rejection reasons
- Each reason must be absurd, creative, and sound corporate
- NEVER reference real skills, experience, or qualifications
- Do NOT say "overqualified", "underqualified", "not a fit"
- The reasons should be about presentation, formatting choices, timing, energy, or vibes
- Return ONLY valid JSON: { candidateName, reasons, closing }
The constraint "never reference real skills" is critical — it forces Gemini to find completely different angles, which produces much funnier output than skill-based rejections would.
Error handling: if Gemini crashes, BugBot generates a meta-rejection — "Candidate appears to have broken our systems. Culture concerns."
Prize Category
I'm submitting for both Best Google AI Usage and Community Favorite.
For Best Google AI Usage: HireBot™ uses Gemini to read your actual resume and generate five rejection reasons that are specifically about your submission — your email address format, the time you submitted, your font choices — without ever referencing your real skills. That constraint ("never mention actual qualifications") forces Gemini to find creative lateral angles that a static template couldn't produce for arbitrary inputs. The Google AI integration is doing real reasoning; it's just pointed in the wrong direction on purpose.
For Community Favorite: Resume rejection is universal developer trauma. The generated letters are formatted exactly like real HR emails — formal, warm, and specific — which makes the absurd reasons ("we are a paragraph-first culture") land harder. The "Copy Letter" button is there because people will absolutely paste these into Slack. The rejection reasons are screenshot-worthy by design.
What I Learned
Gemini is excellent at satire when you give it a specific voice to inhabit.
"You are HireBot, a fictional AI recruiter" combined with tight constraints on what it can't say produces remarkably consistent, funny output. The HR tone comes naturally — Gemini has clearly ingested a lot of corporate communication.
The hardest part was the constraint design. Too loose, and it produces normal-sounding feedback. Too specific, and it loses variety. The sweet spot is: absurd reason in corporate format. The contrast between form and content is where the joke lives.
📝 Try HireBot™ Live → https://resume-rejector.netlify.app/
💻 Source on GitHub → https://github.com/pulkitgovrani/Resume-Rejector
HireBot™ — Powered by AI. Outcome powered by inevitability. We wish you the best.
Top comments (0)