Hiring
- Job posts with work mode, deadline, education, experience and job type
- A public apply link for every job
- Resume upload up to 10 MB in PDF, DOC or DOCX
- Candidate CRM, accept or reject, bulk email
11Case study · AI recruitment platform
RecruitFlow is an AI recruitment platform that turns resumes into scores, summaries and hiring decisions for small and medium companies. I built it alone between March and May 2026, from the database to the marketing site, on Next.js 15, Supabase and Gemini 2.5 Flash. The source code is public on GitHub.
01The problem
A small company’s recruiter can spend days reading resumes for one role. Recruiters at small and medium companies post a job, receive dozens of PDF resumes and read each one by hand.
Applicant tracking systems that score resumes exist, but they are priced for large companies.
RecruitFlow reads them first: every application gets a score out of 100 and a written summary, so the recruiter starts with the strongest candidates.
02The solution
Recruiters post a job and share a public apply link. Candidates upload a resume. RecruitFlow extracts the text, scores it against the job with Gemini on a fixed rubric, writes a four-paragraph summary, and shows the result in a page-flip resume viewer. Recruiters accept or reject, email candidates in bulk and schedule interviews.
I built it alone, from the database to the marketing site, including an admin panel for the platform owner with users, support tickets, upgrade requests and transactions. It is a complete SaaS product, with plans and billing.

03Features
Hiring, AI and the daily workflow in one place, with plans small companies can afford.

04Architecture
RecruitFlow is a Next.js 15 application with Supabase for the database, authentication, file storage and real-time support chat. It uses three Supabase clients: one in the browser, one on the server with the user’s session, and an admin client used only inside server routes.
Middleware caches token verification for 60 seconds to cut round trips to the auth server, and splits routes into public, signed-in and admin groups. The admin client never reaches the browser.
05Engineering
The three decisions that shaped RecruitFlow, and why I made them. Each one solves a problem a real user would hit.
01
Gemini scores each resume on five fixed factors: skills 35 points, experience 25, job title 20, education 10 and achievements 10. The prompt forbids bonus points for famous company names, the temperature is kept low for consistency, and the result is clamped between 0 and 100.
02
If the Gemini call fails, a local rule-based engine scores the resume instead. It first checks that the file is a resume at all, by looking for section headings, an email address and date ranges, so a recruiter never sees a confident score for a random PDF. Logic like this is what logic verification exists to test.
03
Login, registration, one-time codes, password resets, application processing and the AI chat each have their own limit. One-time codes are generated with a secure random source and expire after two minutes. Eknas guards its public API with scoped keys and IP allowlists in the same spirit.
06Screens
Candidates apply from their phones, so sign-up and pricing were designed for small screens first. Screens from a local run.

07Status
RecruitFlow is complete as a product and its source code is public on GitHub. It is not hosted publicly at the moment, so the screens on this page come from a local run.
RecruitFlow
Complete, source on GitHub
It shows how I use AI inside business software: a fixed rubric instead of a vague prompt, a fallback when the model fails, and limits that keep costs predictable.
Related services
These are the services behind this case study. Each page lists prices, timelines and how I work, and every starting price is on my services page.
Every project, with its stack and status side by side, are in my web development portfolio, and the person behind them is on my about page.
How RecruitFlow scores resumes, what it costs and how it was built.
Ask me on WhatsAppRecruitFlow is an AI recruitment platform for small and medium companies. Recruiters post a job and share a public apply link, candidates upload a resume, and RecruitFlow scores each application out of 100 against the job, writes a summary, and helps the recruiter shortlist, email and schedule interviews.
Gemini scores each resume on five fixed factors: skills 35 points, experience 25, job title 20, education 10 and achievements 10. The prompt forbids bonus points for famous company names, the temperature is kept low for consistency, and the final score is clamped between 0 and 100.
A local rule-based engine scores the resume instead. It first checks that the file is a resume at all, by looking for section headings, an email address and date ranges, so a recruiter never sees a confident score for a random PDF and hiring never stops because a model is down.
There are three plans. Essential is free with 1 job and 5 CVs. Pro costs USD 6.99 or NPR 299 a month for 4 jobs and 30 CVs, and Enterprise costs USD 9.99 or NPR 499 a month for 10 jobs and 200 CVs. Visitors in Nepal see prices in NPR.
RecruitFlow uses the Next.js 15 App Router with React 19, Tailwind CSS and Framer Motion, and Supabase for PostgreSQL, authentication, storage and real-time chat. Gemini 2.5 Flash does the scoring, pdfjs-dist extracts resume text, pdf-lib merges PDFs, and email goes through Nodemailer or Resend.
Yes. I build AI features on Gemini and other LLM APIs inside business software, with fixed rubrics, fallbacks when the model fails and rate limits that keep costs predictable. Tell me the job you want AI to do, and see software development for how I quote it.
Send a short note about your project and budget. I reply within one working day with questions or a first estimate.
Ujjwal RupakhetiReplies within one working day
What are you planning?
Opens WhatsApp with your message started.