This is a submission for Weekend Challenge: Earth Day Edition
Background
What I Built
Recruit Intelligence Agent is an AI-powered recruitment assistant that streamlines hiring through:
- Automated candidate screening
- Resume parsing
- Job description matching
- Candidate validation via live web search
It goes beyond traditional ATS systems by combining RAG, memory, web search, and reasoning into a single intelligent workflow powered by BackBoard
Overview
Recruit Intelligence Agent is a production-ready AI-powered recruitment API built with FastAPI and Backboard. It streamlines the hiring process through automated candidate screening, resume parsing into standardized JSON Resume format, intelligent job matching with gap analysis, job description generation with market research, and candidate validation via live web searches.
Key capabilities:
- Parse resumes (Backboard supported files) into structured JSON Resume format
- Evaluate candidates against job descriptions with scoring and analysis
- Perform deep agentic reasoning with multi-step analysis pipelines
- Validate candidate work history and credentials via web search
- Research skill market trends and salary ranges
- Generate optimized, inclusive job descriptions
- Analyze team composition for skill gaps
- General document Q&A and summarization
Core Features
Resume Parsing
Extracts structured JSON Resume data from the supported file types:
- Basics (name, email, summary)
- Work history
- Education
- Skills
- Projects
- Certifications
Supported File Types
| Category | Extensions |
|---|---|
| Documents |
.pdf, .doc, .docx, .ppt, .pptx, .xls, .xlsx
|
| Text / Data |
.txt, .csv, .md, .markdown, .json, .jsonl, .xml
|
| Images |
.png, .jpg, .jpeg, .webp, .gif, .bmp, .tiff, .tif
|
Candidate Evaluation
- Scores candidates against job descriptions
-
Identifies:
- Skill gaps
- Transferable skills
- Risk factors
Agentic Reasoning
Multi-step pipeline:
- Parse resume
- Extract skills
- Research market demand
- Analyze job fit
- Validate claims
Web Search Validation
- Verifies candidate profiles
- Validates company work history
- Research skill trends
Memory-Enabled Reasoning
- Stores candidate details automatically
- Improves future evaluations
- Enables contextual decision-making
Document Q&A
Ask questions about resumes and get contextual answers.
Job Description Generator
- Generates optimized and inclusive JDs
-
Includes:
- Responsibilities
- Skills
- Market insights
- Inclusivity checks
Demo
Run locally with FastAPI and accessing the API documentation:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- Health check: http://localhost:8000/health
- Cost metrics: http://localhost:8000/metrics/costs
Generate Job Description
Summarization
Parse Resume Document
Quick Start
The application supports two modes of operation:
Mode 1: Stateful (Recommended for multiple operations on same document)
# Step 1: Upload a document
curl -X POST http://localhost:8000/upload -F file=@resume.pdf
# Response: {"thread_id": "thread_xxx", "status": "indexed"}
# Step 2: Use thread_id for all subsequent calls
curl -X POST http://localhost:8000/parse -F thread_id=thread_xxx
curl -X POST http://localhost:8000/evaluate -F thread_id=thread_xxx -F job_description="Senior Python Developer with Django, PostgreSQL experience..."
curl -X POST http://localhost:8000/comprehensive_evaluate -F thread_id=thread_xxx -F job_description="Senior Python Developer..."
Mode 2: Fallback (Single operation, creates new session each time)
# Direct file upload - no need to manage document_id/thread_id
curl -X POST http://localhost:8000/parse -F file=@resume.pdf
curl -X POST http://localhost:8000/evaluate -F file=@resume.pdf -F job_description="Senior Python Developer..."
Code
GitHub Repository:
https://github.com/ranjancse26/recruit_intelligence_agent
Installation
Clone the repository and navigate to the project directory
-
Create and activate a virtual environment:
- Windows: venv\Scripts\activate
- Linux/Mac: source venv/bin/activate
Install dependencies:
pip install -r requirements.txtConfigure environment variables in .env file:
BACKBOARD_API_KEY=your_api_key_here
BACKBOARD_LLM_PROVIDER=openai
BACKBOARD_MODEL_NAME=gpt-5-mini
BACKBOARD_TIMEOUT=1800
Running the Application
uvicorn app.main:app --reload
Endpoint Examples
Parse Resume (JSON Resume format)
curl -X POST http://localhost:8000/parse -F thread_id=thread_xxx
Returns structured resume data with basics, work, education, skills, projects, etc.
Evaluate Candidate
curl -X POST http://localhost:8000/evaluate \
-F thread_id=thread_xxx \
-F job_description="Senior Python Developer with 5+ years experience in Django, FastAPI, PostgreSQL, AWS"
Returns score, strengths, gaps, risk flags, and recommendation.
Comprehensive Agentic Evaluation
curl -X POST http://localhost:8000/comprehensive_evaluate \
-F thread_id=thread_xxx \
-F job_description="Senior Python Developer..."
Performs full pipeline: resume parsing → skill extraction → market research → job fit analysis → validation.
Summarize Document
curl -X POST http://localhost:8000/summarize -F thread_id=thread_xxx
Reason on Document
curl -X POST http://localhost:8000/reasoning \
-F thread_id=thread_xxx \
-F question="What are the candidate's leadership experiences?"
Q&A
curl -X POST http://localhost:8000/qa \
-F thread_id=thread_xxx \
-F question="What Python frameworks has the candidate used?"
Web Search for Candidate
# General search
curl -X POST http://localhost:8000/websearch \
-F thread_id=thread_xxx \
-F query="John Doe Python developer GitHub"
# Search with known details
curl -X POST http://localhost:8000/websearch \
-F name="John Doe" \
-F email="john@example.com" \
-F company="Google"
Validate Candidate Profile
curl -X POST http://localhost:8000/validate \
-F name="John Doe" \
-F email="john@example.com" \
-F company="Google"
Validate All Companies from Resume
curl -X POST http://localhost:8000/validate-companies \
-F thread_id=thread_xxx
Generate Job Description
curl -X POST http://localhost:8000/jd/generate \
-F role_requirements="Senior Python Developer with Django, FastAPI, PostgreSQL experience. 5+ years of backend development."
Research Role Market Trends
curl -X POST http://localhost:8000/jd/research-trends \
-F role="Software Engineer" \
-F industry="Technology"
Analyze Existing Team
curl -X POST http://localhost:8000/jd/analyze-team \
-F team_composition_json='[{"role": "Frontend Developer", "skills": ["React", "TypeScript"], "experience": 3}, {"role": "Backend Developer", "skills": ["Python", "Django"], "experience": 5}]'
How I Built It
Tech Stack
- Python 3.8+
- FastAPI
- Backboard SDK
- Pydantic
- python-multipart
Architecture
recruit_intelligence_agent/
├── app/
│ ├── main.py
│ ├── routes.py
│ ├── core/
│ │ └── monitoring.py
│ ├── services/
│ │ └── backboard_client.py
│ └── tools/
│ ├── reasoning_tools.py
│ ├── resume_tools.py
│ ├── candidate_websearch.py
│ ├── jd_generator.py
│ └── resume_schema.json
├── requirements.txt
├── .env
└── README.md
Key Technical Decisions
1. Backboard Integration
- Document upload with indexing
- Thread-based conversations
- Memory-enabled reasoning
- Web search integration
2. JSON Resume Schema
{
"basics": {
"name": "",
"label": "",
"email": "",
"phone": "",
"url": "",
"summary": "",
"location": {
"address": "",
"city": "",
"region": "",
"postalCode": "",
"countryCode": ""
},
"profiles": []
},
"work": [
{
"name": "",
"position": "",
"url": "",
"startDate": "",
"endDate": "",
"summary": "",
"highlights": []
}
],
"education": [
{
"institution": "",
"area": "",
"studyType": "",
"startDate": "",
"endDate": "",
"score": "",
"courses": []
}
],
"skills": [
{
"name": "",
"level": "",
"keywords": []
}
],
"projects": [
{
"name": "",
"description": "",
"highlights": [],
"keywords": []
}
],
"awards": [],
"certificates": [],
"publications": [],
"languages": [],
"interests": [],
"references": [],
"meta": {}
}
3. Agentic Reasoning Pipeline
- Step 1: Resume parsing
- Step 2: Skill extraction
- Step 3: Market research
- Step 4: Job fit scoring
- Step 5: Validation
4. Memory Layer
- Stores candidate summaries
- Enables better future decisions
5. Dual Mode Operation
- Stateful mode with thread + document IDs
- Stateless fallback mode
API Endpoints
| Endpoint | Description |
|---|---|
| POST /upload | Upload document |
| POST /parse | Parse resume |
| POST /evaluate | Evaluate candidate |
| POST /comprehensive_evaluate | Full reasoning pipeline |
| POST /summarize | Summarize document |
| POST /reasoning | Run reasoning |
| POST /qa | Ask questions |
| POST /websearch | Web search |
| POST /validate | Validate profile |
| POST /validate-companies | Validate companies |
| POST /jd/generate | Generate JD |
| POST /jd/research-trends | Market trends |
| POST /jd/analyze-team | Team analysis |
Job Description Generator
- Inclusive language checks
- Clarity scoring
- Market trend integration
- Skill gap analysis
Interesting Implementation Details
- Document polling until indexed
- Schema-driven parsing
- Graceful error handling
- Company validation via web search
- Skill demand analysis
Prize Category
Best Use of Backboard
- Document processing
- Memory-enabled reasoning
- Web search integration
- Agentic workflows
Summary
Recruit Intelligence Agent is an AI-powered hiring assistant built on Backboard that transforms traditional recruitment into an intelligent, data-driven process.
It combines document understanding (RAG), persistent memory, real-time web search, and multi-step reasoning to go beyond keyword-based screening and enable true candidate evaluation.
The agent can:
- Parse resumes into structured intelligence
- Match candidates to job descriptions with context awareness
- Validate candidate profiles using live web data
- Perform reasoning-based scoring with explainable insights
Unlike conventional ATS systems, it doesn't just filter resumes — it understands experience, identifies transferable skills, and makes informed hiring recommendations.
The result is:
- Faster screening
- Better candidate fit
- Smarter, explainable hiring decisions
Built with ❤️ for the Earth Day Hackathon 2026