Skip to content

atiyil/resume-agent-web

Repository files navigation

🤖 AI Resume Screening Agent

An autonomous AI agent that automatically screens PDF resumes, scores them, and maintains a pipeline of qualified candidates. Built with FastAPI and Perplexity AI.

✨ Features

  • 🔄 Autonomous Monitoring: Watches a folder for new PDF resumes automatically
  • 🎯 Goal-Driven: Agent works toward a specific goal (e.g., "Find 3 candidates with score ≥ 75")
  • 🧠 Multi-Step Planning: LLM decides whether to score, skip, or stop based on current state
  • 📊 Real-Time Dashboard: Live updates as resumes are processed
  • ⚡ Fast Processing: Automatic PDF extraction and AI scoring

🚀 Quick Start

1. Installation

cd resume-agent
pip install -r requirements.txt

2. Configuration

Create a .env file:

cp .env.example .env

Edit .env and add your Perplexity API key:

PERPLEXITY_API_KEY=your_actual_api_key_here
GOAL_QUALIFIED_COUNT=3
GOAL_MIN_SCORE=75
JOB_DESCRIPTION_PATH=job_description.txt

3. Customize Job Description (Optional)

Edit job_description.txt with your specific role requirements. The agent will score resumes based on how well they match this job description.

3. Run the Agent

python main.py

The dashboard will be available at: http://localhost:8000

4. Test It Out

Drop PDF resumes into the ./resumes/ folder and watch the agent work autonomously!

📋 How It Works

  1. Monitor: Agent watches the ./resumes/ folder for new PDFs
  2. Plan: LLM decides the next action based on current goal progress
  3. Extract: Text is extracted from the PDF
  4. Score: Resume is evaluated on 4 criteria (Technical Skills, Experience, Education, Career Progression)
  5. Decide: Agent accepts/rejects based on score threshold
  6. Track: Progress toward goal is tracked and displayed in real-time
  7. Stop: Agent achieves goal and stops accepting new candidates

🎯 Scoring Criteria

Resumes are scored out of 100 points:

  • Technical Skills (40 points): Relevant technical abilities
  • Work Experience (30 points): Quality and relevance of work history
  • Education (15 points): Academic background
  • Career Progression (15 points): Career growth trajectory

🎨 Dashboard Features

  • Progress Bar: Visual goal progress
  • Real-Time Stats: Qualified candidates, total processed, acceptance rate
  • Resume Cards: Detailed scores, strengths, weaknesses
  • Agent Reasoning: See the agent's decision-making process
  • Reset Button: Clear all data and start fresh

🔧 API Endpoints

  • GET / - Dashboard UI
  • GET /api/state - Current agent state
  • GET /api/results - All processed resumes
  • GET /api/events - SSE stream for real-time updates
  • POST /api/reset - Reset agent state

📁 Project Structure

resume-agent/
├── agent.py          # Core agent logic and LLM integration
├── monitor.py        # Folder watcher for autonomous detection
├── main.py           # FastAPI server
├── templates/
│   └── index.html    # Dashboard UI
├── resumes/          # Drop PDFs here
├── data/             # Agent state and results (auto-created)
├── requirements.txt
├── .env              # Your configuration
└── README.md

🧪 Demo Script

For a quick demo:

  1. Start the agent: python main.py
  2. Open dashboard: http://localhost:8000
  3. Drop 5 sample resumes into ./resumes/
  4. Watch the agent autonomously process them until goal is reached!

🔑 Key Agent Capabilities Demonstrated

  • Autonomous Triggering: No manual uploads needed
  • Goal-Driven Behavior: Stops when goal is achieved
  • Multi-Step Planning: LLM decides actions dynamically
  • Continuous Operation: Runs 24/7 monitoring the folder

🛠️ Technologies

  • FastAPI: Web framework
  • Perplexity AI: LLM for scoring and planning
  • Watchdog: File system monitoring
  • pypdf: PDF text extraction
  • SSE: Real-time updates

📝 Notes

  • Perplexity API key required (get one at https://www.perplexity.ai)
  • Resumes must be in PDF format
  • Agent persists state across restarts
  • Use "Reset Agent" button to clear all data

🎉 Demo Highlights

What makes this an "agent"?

  1. Autonomy: No human intervention needed once started
  2. Goal-Oriented: Works toward specific objective
  3. Decision Making: LLM plans each action based on context
  4. State Management: Tracks progress and adapts behavior
  5. Continuous Operation: Runs indefinitely until goal met

Enjoy your AI Resume Screening Agent! 🚀

About

Autonomous AI agent for resume screening with goal-driven behavior and real-time web demo

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published