Building an AI-Powered Resume Matching System Using Oracle APEX and 23ai Vector Search😎
During this process, you'll gain hands-on experience with:
-
Oracle AI Vector Search
-
Semantic Similarity Search
-
Integrating ONNX models
-
Oracle APEX Interactive Reports and Charts
👀In the video below on my YouTube Channelhttps://www.youtube.com/@LidaGholizadeh_ORACLE_GIS, you can see the steps of Building an AI-Powered Resume Matching System Using Oracle APEX and 23ai Vector Search
🟎Overview of Steps
Use Oracle Cloud Infrastructure (OCI) to create a 23ai-compatible Oracle Database instance. For a step-by-step tutorial, refer to the guide below:
Upload and register your ONNX model in the database to enable vector embedding generation using vector_embedding().
Follow the setup guide here:
Page Name: Personal_Profile
- Component Type: Region with a Textarea item
- Item Name:
P5_PROMPT - Label:
Prompt : Project Description - Region Name:
Prompt
Step 3) Create Similarity Search Report Region
-
Region Name:
Report_result_prompt -
Subregion:
table_similaritySearch -
Type: Interactive Report
-
SQL Query:
The query calculates cosine similarity between the prompt and resume vectors stored in the database. Top 5 matches are retrieved: -
Highlighting Rule:
Rows withsimilarity_percentage >= 50are highlighted with light blue (#7ec7dd).
Step 4) Add a Chart to Visualize Results
-
Region Name:
chart_similaritySearch -
Chart Type: Bar Chart
-
Data Source: Same query as above
-
Bar Color:
-
Blue (
#7ec7dd) if similarity ≥ 50 -
Gray (
#e8e8e8) otherwise
Step 5) Show Full Resume Table
-
Region Name:
Personal_Profile -
Type: Interactive Report
-
SQL Query: Displays detailed resume data, including:
-
CANDIDATE_NAME -
RESUME(download link) -
RESUME_TEXT,RESUME_VECTOR,DATE_CREATE, ...
-
-
Highlighting Rule:
If a resume matches the prompt (MATCHED_RESUME = 1), highlight the row.
Step 6) Create Similarity Search Button and Logic
-
Button Name:
SimilaritySearch -
Trigger: On click
-
Actions Performed:
-
Show
Report_result_promptregion -
Refresh the table and chart regions
-
Run a PL/SQL block that:
-
Queries resumes with similarity ≥ 50%
-
Concatenates matching candidate names into
:P5_TEST -
Used to update the
MATCHED_RESUMEcolumn in the report
Step 7) Automatically Process New Resumes
-
Event Triggered: When Dialog (Page 6) is closed after editing/creating a resume
-
PL/SQL Process:
For any resume withoutresume_text, useCTX_DOC.FILTERto extract text and HTML from the resume, and compute the vector embedding:

Comments
Post a Comment