CV Match
Un flujo que compara CVs con requisitos, calcula coincidencias y devuelve al candidato con mayor ajuste.
+2
graph TD
%%{init: {'theme': 'mc','layout': 'elk'}}%%
TextInput-dvpjv[<div><img src="/_astro/type.Dy26vmDy.svg" style="height: 20px !important;width: 20px !important"/></div>Carrera]
style TextInput-dvpjv stroke:#a170ff
TextInput-s2vgd[<div><img src="/_astro/type.Dy26vmDy.svg" style="height: 20px !important;width: 20px !important"/></div>Certificados]
style TextInput-s2vgd stroke:#a170ff
TextInput-oz3io[<div><img src="/_astro/type.Dy26vmDy.svg" style="height: 20px !important;width: 20px !important"/></div>Habilidades]
style TextInput-oz3io stroke:#a170ff
TextInput-6r3sb[<div><img src="/_astro/type.Dy26vmDy.svg" style="height: 20px !important;width: 20px !important"/></div>Experiencia]
style TextInput-6r3sb stroke:#a170ff
TextInput-ep0wz[<div><img src="/_astro/type.Dy26vmDy.svg" style="height: 20px !important;width: 20px !important"/></div>Educación]
style TextInput-ep0wz stroke:#a170ff
ChatOutput-zlpn1[<div><img src="/_astro/messages-square.BaSDmT6g.svg" style="height: 20px !important;width: 20px !important"/></div>Chat Output]
style ChatOutput-zlpn1 stroke:#a170ff
OpenAIEmbeddings-5myel[<div><img src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI Embeddings]
style OpenAIEmbeddings-5myel stroke:#a170ff
GDriveFilesComponent-3xa20[<div><img src="/_astro/google_drive.wKmDsV2c.svg" style="height: 20px !important;width: 20px !important"/></div>Obtener CV]
style GDriveFilesComponent-3xa20 stroke:#a170ff
Prompt-3a8sl[<div><img src="/_astro/square-terminal.BMOXc-nZ.svg" style="height: 20px !important;width: 20px !important"/></div>Requisitos]
style Prompt-3a8sl stroke:#a170ff
OpenAIEmbeddings-6p7a2[<div><img src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI Embeddings2]
style OpenAIEmbeddings-6p7a2 stroke:#a170ff
LanguageRecursiveTextSplitter-rweqg[Language Recursive Text Splitter]
style LanguageRecursiveTextSplitter-rweqg stroke:#a170ff
AstraDB-un98t[Astra DB]
style AstraDB-un98t stroke:#a170ff
AstraDB-un1f3[Astra DB2]
style AstraDB-un1f3 stroke:#a170ff
LanggraphRAGAgent-cgjw7[RAG Agent]
style LanggraphRAGAgent-cgjw7 stroke:#a170ff
OpenAIModel-448zp[<div><img src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI]
style OpenAIModel-448zp stroke:#a170ff
TextInput-dvpjv -.- Prompt-3a8sl
linkStyle 0 stroke:#a170ff
TextInput-s2vgd -.- Prompt-3a8sl
linkStyle 1 stroke:#a170ff
TextInput-ep0wz -.- Prompt-3a8sl
linkStyle 2 stroke:#a170ff
TextInput-6r3sb -.- Prompt-3a8sl
linkStyle 3 stroke:#a170ff
TextInput-oz3io -.- Prompt-3a8sl
linkStyle 4 stroke:#a170ff
GDriveFilesComponent-3xa20 -.- LanguageRecursiveTextSplitter-rweqg
linkStyle 5 stroke:#a170ff
LanguageRecursiveTextSplitter-rweqg -.- AstraDB-un98t
linkStyle 6 stroke:#a170ff
OpenAIEmbeddings-5myel -.- AstraDB-un98t
linkStyle 7 stroke:#a170ff
LanggraphRAGAgent-cgjw7 -.- ChatOutput-zlpn1
linkStyle 8 stroke:#a170ff
OpenAIEmbeddings-6p7a2 -.- AstraDB-un1f3
linkStyle 9 stroke:#a170ff
AstraDB-un1f3 -.- LanggraphRAGAgent-cgjw7
linkStyle 10 stroke:#a170ff
Prompt-3a8sl -.- LanggraphRAGAgent-cgjw7
linkStyle 11 stroke:#a170ff
OpenAIModel-448zp -.- LanggraphRAGAgent-cgjw7
linkStyle 12 stroke:#a170ff
CV Match
🧩 Overview
This workflow automates the process of matching candidate CVs against a set of specific job requirements. It retrieves CVs from a designated source, processes them into a searchable knowledge base, and uses a Retrieval-Augmented Generation (RAG) agent to intelligently find and present the most suitable candidates. This streamlines the initial screening phase of recruitment by providing a ranked, AI-powered analysis of candidate fit.
⚙️ Main Features
- Ingests CVs from a Google Drive folder and processes them for vector-based search.
- Creates a structured prompt from user-defined job requirements such as education, skills, and experience.
- Employs a RAG agent to search the CV database and identify the best-matching candidates.
- Presents the agent's findings in a clear, conversational chat output.
🔄 Workflow Steps
| Component Name | Role in the Workflow | Key Inputs | Key Outputs |
|---|---|---|---|
| Text Input (Carrera) | Defines the required degree or field of study. | User-defined degree (e.g., "Computer Science Engineer") | Degree requirement text |
| Text Input (Certificados) | Defines the required certifications. | User-defined certifications (e.g., "Engineer") | Certification requirement text |
| Text Input (Educación) | Defines the required level of education. | User-defined education level (e.g., "University") | Education requirement text |
| Text Input (Experiencia) | Defines the required years of experience. | User-defined experience (e.g., "1 year") | Experience requirement text |
| Text Input (Habilidades) | Defines the required technical skills. | User-defined skills (e.g., "Python and C#") | Skills requirement text |
| Prompt (Requisitos) | Compiles all individual requirements into a single, structured prompt for the agent. | All requirement texts (Degree, Certifications, Education, Experience, Skills) | A consolidated prompt message with the job requirements |
| Google Drive Files Component | Retrieves CV documents from a specified Google Drive folder. | Target folder path | Raw CV document data |
| Language Recursive Text Splitter | Splits the retrieved CV documents into smaller, manageable chunks for processing. | Raw CV document data | Chunked text data |
| OpenAI Embeddings | Generates vector embeddings for the text chunks, enabling semantic search. | Text chunk data | Numerical vector embeddings |
| Astra DB | Stores the vector embeddings and associated CV text in a vector database for efficient retrieval. | Text chunks and their corresponding vector embeddings | Configured vector store and retriever |
| OpenAI Model | Provides the core language model that powers the reasoning and response generation of the RAG agent. | Model configuration (e.g., temperature, API settings) | A configured language model instance |
| RAG Agent | The intelligent agent that receives the job requirements, queries the CV database (via the retriever), and generates a response identifying the best matches. | Job requirements prompt, configured language model, CV database retriever | A response message with the matching CV results |
| Chat Output | Displays the final response from the RAG agent in a user-friendly chat interface. | Agent's response message | Formatted chat message for the user |
🧠 Notes
- The workflow requires valid API credentials for OpenAI (for the model and embeddings) and Google Drive to function.
- It also depends on a configured Astra DB instance for vector storage and retrieval.
- The quality of matches depends on the clarity of the input requirements and the comprehensiveness of the CVs in the source folder.
- The RAG agent is configured with checks for answer quality and hallucination to improve response reliability.