Skip to content

Recruiting Screener Agent

Reads a résumé PDF against a job description and returns a fit score, skill gaps, and interview questions.

Stack: Next.js, React, TypeScript, Tailwind CSS, Groq, pdf-parse

The problem

Screening a résumé against a job description is a repetitive first pass that is easy to do inconsistently.

How it works

A résumé PDF and a job description go in. Text is extracted with pdf-parse. A Groq function-calling agent decides the order of five tools: parse résumé, parse job description, score fit, identify gaps, and generate interview questions. Every tool call is logged as an inspectable trace, and each step returns JSON.

Decisions

Decisions worth explaining

Function-calling loop instead of monolithic prompt

A function-calling loop instead of one giant prompt, so each step can be inspected and retried, and new steps are new tools. The tradeoff is a few extra seconds of latency.

Structured output pipeline

Structured output at every step so one step's result feeds the next with no parsing layer.

Status

What's not finished

It is a first-pass filter that should support a human decision, not make one. A production version needs documented scoring criteria, adverse-impact testing, audit history, authentication, and protection against prompt injection hidden in uploaded résumés.

Next project