Jahanzaib
All Work
RAGRecruitmentRecruitment

RAG Candidate Search Across 500K CVs on Amazon Bedrock

Recruiters search 500,000 candidate records in plain English, in real time, instead of writing SQL.

Recruitment agency, Canada·50 staff·In production

Client details anonymized under NDA. The work, approach, and results shown here are real. Contact me for references.

A recruiter reading a candidate resume at a table
0

Records Searchable

Real time

Search Results

0

SQL Queries to Write

Ranked

Shortlists With Reasons

Overview

The same agency held about 500,000 candidate records in an internal database, but finding the right people meant writing SQL queries by hand. I built a retrieval augmented generation (RAG) system entirely on AWS: Amazon Bedrock Knowledge Bases indexes the CVs, and an agent running on Amazon Bedrock AgentCore lets recruiters search in plain English. The agent turns the request into a search, finds the relevant CVs and returns a ranked shortlist with the details that matter, in real time.

About the client

A recruitment agency in Canada with 50 staff, running on Bullhorn, with an internal database of about 500,000 candidate records: one of its most valuable assets, and one of the hardest to use.

Industry
Recruitment
Location
Canada
Team
50 staff
Candidate records
About 500K

The Problem

What they were dealing with

Years of candidates sat in an internal database of about 500,000 records. Searching it meant writing SQL queries: exact keywords in exact fields, with results that missed anyone who described their experience in different words. Most recruiters could not write those queries themselves, so a search meant waiting for someone who could, and the agency could not get full value from a database it had spent years building.

Finding candidates meant hand written SQL queries against the database

Keyword matching missed good candidates whose CVs used different words

Most recruiters depended on someone else to run a search

Results came back as raw rows, not a shortlist a recruiter could act on

Before

500K

Candidate records

Manual SQL

Search method

Exact keywords

Matching

Raw rows

Results

The Solution

How I solved it

Recruiters think in descriptions, not queries: a senior accountant near Toronto who has worked with SAP. The system had to understand a request like that and search the whole database in seconds.

I built it entirely on AWS. Amazon Bedrock Knowledge Bases handles the retrieval layer: the CVs from the candidate database are parsed, chunked and embedded into a managed knowledge base, so a search matches on meaning and not only on exact keywords. The agent that sits on top of it runs on Amazon Bedrock AgentCore, with a Claude model on Amazon Bedrock doing the reasoning. It takes the recruiter's plain English request, queries the knowledge base, checks the results against the details that matter for the role, and returns a ranked shortlist with the reason each candidate fits. Recruiters see the relevant details from each CV without touching the database.

1

Data audit

Reviewed how candidate records and CVs were stored and which details recruiters search on most.

2

Indexing on AWS

Set up an Amazon Bedrock Knowledge Base over the CVs, so parsing, chunking, embedding and indexing are managed, with sync jobs to pick up new and updated records.

3

Search agent on AgentCore

A Claude powered agent hosted on Amazon Bedrock AgentCore turns a plain English request into a search over the knowledge base, then ranks the results. AgentCore handles the runtime, tool access, identity and tracing.

4

Shortlists recruiters can trust

Every candidate comes back with the reason they fit and the relevant CV details, so a recruiter can judge in seconds.

Amazon Bedrock Knowledge BasesAmazon Bedrock AgentCoreClaude on Amazon BedrockRAGAWSBullhorn
Indexing pipeline: the candidate database of 500K CVs flows into an Amazon Bedrock Knowledge Base on AWS, which parses, embeds and indexes them
Indexing: the CVs in the candidate database are synced into an Amazon Bedrock Knowledge Base, which parses, embeds and indexes them.
Search flow: a recruiter writes a plain English query, an agent on Amazon Bedrock AgentCore searches the Bedrock Knowledge Base, ranks and explains the matches, and returns a shortlist
Searching: a recruiter asks in plain English, an agent on AgentCore searches the Bedrock Knowledge Base, ranks and explains the matches, and returns a shortlist.

The Result

What changed

500K

Records Searchable

Real time

Search Results

0

SQL Queries to Write

Ranked

Shortlists With Reasons

In production
Recruiters find relevant candidates in their own database in real time, without writing SQL or waiting for someone who can.

Facing a similar challenge?

Every project starts with a conversation. Tell me what you're dealing with and I'll tell you honestly whether I can help.