They asked for AI resume screening in a day. Here’s how I built it.
In January 2025, my CEO and CTO got me on a call with one question: could we build AI resume screening for a client? In a day.
The client, a business in the UAE, already ran its hiring on a recruitment portal we had built for them. For AI screening, though, they had gone with a third-party service.
Rehan Ahmed, our CEO, and Muhammad Aimal, our CTO, wanted to know how we would build our own. I said I would do it, and asked Aimal to handle the integration on the portal’s side.
I wasn’t starting cold. My master’s thesis at Sapienza University of Rome, finished in May 2024, was on LLMs, and I had been doing LLM integrations day in, day out since, at Smart Web Agency. What I didn’t have was an AI agent writing code with me. That came later. My only AI help was ChatGPT on GPT-4, with files pasted in.
How LLM resume screening works: the job description writes the rubric
The idea was simple. A recruiter already knows what a role needs, and it is all in the job description. So the job description becomes an evaluation matrix: the skills, experience and qualifications that matter for that one role.
Each CV is then scored against that matrix, one parameter at a time, by an LLM working from a fixed system prompt. The answer comes back in a shape the portal can store and show, next to the application.
Choosing the LLM: Llama 2, a 70B Llama or Gemma 2 27B
I set up a Laravel API and started with Llama 2, 7B and 13B. Cheap and quick, but their context window is small. A job description, the matrix, the instructions and a long CV didn’t fit, and a model that only sees half a CV can’t score it fairly.
Next, a 70B Llama. It had the room, but it was too expensive to run on every application, and the results weren’t better enough to justify the cost.
Then Gemma 2 27B. It produced the most accurate results of the three, at a cost that worked for thousands of CVs. That was the one.
By 2am, about six hours in, the first version worked.
From one night to a Laravel screening pipeline
A working API isn’t a pipeline. Over 18 hours in total, I turned it into one:
- Every application is its own job on a Redis queue, so a big hiring round runs by itself and picks up where it left off.
- LangChain sits around the model, building the prompt and parsing the answer.
- Results land in MySQL, next to the application they belong to.
Then I handed the API to Aimal. He reworked the system prompt, and the results got noticeably sharper. He wired it into the portal, and it went live.
The results: 27,431 applications in nine days
Three months later, in April 2025, we had our quarterly meeting with the client. They told us they had dropped the third-party service back in February, because our screening was giving them much better results.
It has screened 27,431 applications in a single nine-day run. The client reported about 72% less manual work, and their yearly hiring round moved from July to April. They are still using it today, and we couldn’t be happier about that.
What I learned building AI resume screening
- Test models on your real data. Gemma 2 27B wasn’t the biggest model I tried. It was the one that scored real CVs best.
- Check the context window first. If the input doesn’t fit, nothing else matters.
- The prompt is half the product. Aimal’s changes made the same model noticeably better.
The AI resume screening case study shows the pipeline step by step. If you’re building something like it, email me. I’m happy to talk it through.
Also on the blog: how I rebuilt this portfolio with Claude Code in three hours.