Inspiration Job hunting – especially for tech roles – still feels like sending the same generic résumé into a black-hole ATS. We wanted a tool that lets candidates present the right achievements for each posting without spending hours rewriting. With Gen-AI now able to summarise and re-phrase context, and Supabase giving us an instant secure backend, we realised we could automate 80 % of the grunt work and let people focus on the interview-winning stories.
What it does HireIQ ingests a user’s career data (work, projects, education, certificates, custom sections), matches it against a job description and produces a polished, PDF-ready résumé in seconds.
Data vault – users can add / edit experiences in structured or free-text form.
Smart picker – Gemini selects the most relevant bullets and rewrites them to match the job’s keywords, tone and seniority level.
LaTeX engine – chosen template + AI-filled content → compiled server-side to a crisp PDF.
One-click download – front-end receives a base-64 PDF blob, offers an instant download link.
How we built it Backend – FastAPI, Pydantic v2, async databases package, secured with Supabase Auth (JWT verified via REST).
DB – Supabase Postgres; tables for work_experience, projects, education; UUID PKs, JSON columns for AI-generated points.
AI layer – Google Gemini 2-flash for prompt-based content selection / rewriting.
PDF pipeline – LaTeX template, compiled by MiKTeX’s pdflatex inside a temporary directory; PDF returned as base-64.
Front-end proof – vanilla JS snippet that posts JSON, decodes the PDF and triggers download.
Challenges we ran into Package roulette (LaTeX) – first compile failed on every missing .sty; solved by auto-install + ensure_hyperref() patch.
Windows WinError 2 – pdflatex missing from PATH in the Uvicorn worker shell; fixed by PATH sanity checks and by allowing an absolute fallback path.
Unicode & back-slashes – raw doc-strings with \usepackage tripped Python’s unicodeescape; converted all template strings to raw.
Token validation – Supabase JWT decoding vs. REST /auth/v1/user lookup until we landed on a robust helper that bubbles proper 401s.
Accomplishments that we're proud of End-to-end demo: paste a JD → click → get a tailored résumé PDF under 10 s.
Clean modular API (/work_experience, /projects, /education, /resume/generate) that a React or mobile client can consume immediately.
100 % local compile – no Overleaf or paid SaaS dependency – yet production-quality output.
What we learned Supabase’s REST & JWT flow is frictionless once you know the right headers.
A thin raw-LaTeX prompt is surprisingly effective for Gemini – fewer “hallucinated packages” compared to Markdown → PDF chains.
Don’t trust your shell’s PATH after installing MiKTeX – always open a new terminal.
What's next for HireIQ Connecting front and backend Interactive front-end (Next.js) with “drag-to-prioritise” sections and live PDF preview.
Job-scan feedback loop – parse JD, score résumé keywords and re-prompt Gemini until we hit a target match score.
Template marketplace – users can bring their own LaTeX or Markdown templates; HireIQ compiles them server-side.
Analytics – track which bullet points get recruiters’ clicks (via unique tracking links) and refine future recommendations.
HireIQ aims to make every résumé feel tailor-made – without burning evenings in Word
Built With
- fastapi
- gemini
- postgresql
- python
- react
- supabase
- vite
Log in or sign up for Devpost to join the conversation.