# Recruitment agent: talent matching workflow

An agentic workflow demo that shows how agentic ralph style loops handle structured data extraction, retrieval and reasoning steps to provide personalised job recommendations.

**Author:** Anu Joy · April 2026 · Agentic workflows

---

## What this covers

This is a basic job recommendation system with below components:

- **Job posts parser**: An agent to extract structured data from job posts. For this demo we are using unstructured job posts scraped from a startup job board.
- **CV / Resume parser**: A vision language model for PDF CV parsing and an agent to extract structured candidate profile.
- **Job recommender**: An agent that refines job matches based on candidate preferences.

Every component including the LLM (Qwen3.5-4B) is setup to run inside this browser session without any external APIs. WebLLM will download ~2GB+ of model weights from huggingfacehub and consume ~5GB GPU memory. You will need fast internet, a GPU and chrome browser to run the workflow steps below.

---

## Job posts parser agent

We use an LLM thinking loop to convert plain text job posts to structured data.

- [Prompt](assets/extract_job_prompt.txt)
- [Job post schema](assets/jobPostSchema.txt) — This acts as a simple harness for the agent loop. The agent iterates until the output passes schema validation.
- [Agent loop](assets/agentLoop.txt) — The retry loop that drives the agent: prompt construction, streaming, JSON extraction, and schema-guided correction.
- [Parser agent diagram](assets/job-posts-parser-agent.svg)

---

## CV parser agent

We use an LLM thinking loop to convert a plain text CV to structured candidate profile data.

- [Prompt](assets/extract_cv_prompt.txt)
- [Candidate profile schema](assets/candidateProfileSchema.txt) — This acts as a harness for the agent loop. The agent retries until the output passes schema validation.
- [CV](assets/cv.txt)

---

## Job recommender

With structured job and candidate data in place, the recommender runs inside an in-browser PostgreSQL instance (PGlite). It uses vector similarity and BM25 full-text search to rank jobs against the candidate profile.

- Vector search over role, skills, and experience embeddings
- BM25 full-text ranking via `pg_textsearch`
- Runs entirely in this browser session — no external database

[Hybrid match query](assets/hybrid_match_query.sql)

---

## Refine job matches

Use an LLM to filter the ranked results by your own preferences. The agent reads all 10 job matches and your stated criteria, then returns only the jobs that fit.

---

## Run it yourself

Open [ramenbuild.com/recruitment-agent](https://ramenbuild.com/recruitment-agent) in Chrome on a machine with a GPU. Step through the five workflow stages: load data → job parser → CV parser → recommender → refine.

---

ramenbuild.com · Workflow-first AI MVPs for seed-stage founders
