Recruiters often waste time on irrelevant matches or miss strong candidates entirely, resulting in slower hiring and overlooked talent. Traditional resume filtering relies on simple keyword matching, which fails to capture the nuanced relationships between skills, experiences, and roles. This leads to:
- Poor candidate matching: Keyword searches miss candidates with relevant but differently-worded experience
- Overlooked talent: Strong candidates get filtered out due to rigid search criteria
- Inefficient screening: Recruiters spend hours manually reviewing irrelevant resumes
- Missed connections: No way to discover candidates with complementary skills or career progression patterns
ResumeRAG tackles the broken resume filtering process by moving beyond traditional keyword search to a graph-based approach using GraphRAG that actually understands relationships between skills, roles, and experiences.
Our solution builds a knowledge graph of resumes using GraphRAG, then lets users query it in natural language to discover and visualize relevant information. We implemented this with Python, GraphRAG, FastAPI, and React, layering LLM-driven context and visualization on top to make resume search more accurate, transparent, and useful.
- Semantic Understanding: Ask questions like "Find me candidates with blockchain industry experience" or "Show me someone who transitioned from software to finance"
- Context-Aware Matching: Understands relationships between skills, companies, and career progression
- Flexible Querying: No need to know exact keywords - describe what you're looking for in plain English
- Visual Network: See how candidates, skills, companies, and technologies connect
- Depth Control: Expand your search by 1-5 degrees of separation to find related candidates
- Real-time Filtering: Search and filter the graph to focus on specific areas of interest
- Relationship Discovery: Uncover unexpected connections between candidates and opportunities
- Career Progression Analysis: Find candidates who've successfully transitioned between roles or industries
- Skill Combination Matching: Discover candidates with unique combinations of technical and soft skills
- Company Experience Mapping: Identify candidates with experience at specific companies or in particular industries
- Interdisciplinary Talent: Find candidates with diverse backgrounds and cross-functional experience
- Example Queries: Pre-built queries for common recruitment scenarios:
- "Find me a candidate who has blockchain industry experience"
- "Show me a candidate with a strong fullstack builder profile"
- "Show me some candidates with strong interdisciplinary experience"
- Voice Input: Speak your queries naturally using the built-in voice interface
- Real-time Results: Get instant, ranked candidate matches with detailed explanations
- GraphRAG Integration: Processes resume data into a knowledge graph with entities and relationships
- OpenAI API: Powers natural language understanding and query processing
- FastAPI Server: Provides RESTful API endpoints for frontend communication
- Graph Database: Stores and queries the resume knowledge graph efficiently
- Interactive UI: Clean, modern interface for querying and visualizing results
- Graph Visualization: D3.js-powered network visualization with zoom, pan, and filtering
- Voice Interface: Speech-to-text integration for natural query input
- Real-time Updates: Live search results and graph updates
- Resume Ingestion: Parse and structure resume data from various formats
- Entity Extraction: Identify people, companies, skills, technologies, and experiences
- Relationship Mapping: Build connections between entities using GraphRAG
- Knowledge Graph Construction: Create a queryable graph database
- LLM Enhancement: Add semantic understanding and context to the graph
- Python 3.9+
- Node.js 18+
- OpenAI API Key (for GraphRAG processing)
-
Clone the repository
git clone https://github.com/yaoderek/resumeRAG.git cd resumeRAG -
Install Python dependencies
pip install -r backend/requirements.txt
-
Install Node.js dependencies
npm install
-
Set up environment variables
# Create .env file in graphrag-workspace directory echo "OPENAI_API_KEY=your_openai_api_key_here" > graphrag-workspace/.env
-
Start the backend server
python3 backend/app.py
The API will be available at
http://localhost:8000 -
Start the frontend development server (in a new terminal)
npm run dev
The application will be available at
http://localhost:5173 -
Access the application
- Open your browser to
http://localhost:5173 - Start querying resumes using natural language!
- Open your browser to
GET /health- Health check endpointPOST /query- Submit natural language queriesGET /graph-data- Retrieve the knowledge graph dataGET /docs- Interactive API documentation
"Find me Python developers with MLOps experience"
"Who has worked at both startups and big tech companies?"
"Show me candidates with finance and technology backgrounds"
"Find someone who transitioned from engineering to product management"
"Who has experience with both frontend and backend technologies?"
"Show me candidates with strong leadership and technical skills"
- Use the Visualization tab to explore the knowledge graph
- Search for specific nodes (people, companies, skills)
- Adjust the depth slider to expand your search radius
- Click on nodes to see detailed information
The GraphRAG configuration is located in graphrag-workspace/config.yaml. Key settings include:
- LLM Model: Configure which OpenAI model to use
- Entity Types: Define what types of entities to extract
- Relationship Types: Specify how entities should be connected
- Example Queries: Modify the example queries in
src/App.tsx - Styling: Customize the UI in
src/index.css - API Endpoints: Update API URLs in the component files if needed
The system expects resume data in a structured format. The current implementation processes:
- Candidate Information: Names, contact details, education
- Work Experience: Companies, roles, responsibilities, dates
- Skills: Technical skills, programming languages, tools
- Projects: Project descriptions, technologies used, outcomes
This project is open source and available under the MIT License.
- GraphRAG: Microsoft's framework for building knowledge graphs from unstructured text
- OpenAI: For providing the LLM capabilities that power our natural language understanding
- FastAPI: For the robust and fast API framework
- React: For the modern, interactive frontend framework
ResumeRAG - Making resume search intelligent, visual, and efficient.