Back to blog

HR Interview System: AI Resume Analysis and Interview Platform

An AI agent-based HR interview and candidate analysis platform supporting intelligent resume scoring, AI interview dialogue, and in-depth analysis.

#AI#Full-Stack#FastAPI#Vue#DeepSeek

Project Overview

This system is an AI agent-based HR interview and candidate intelligent analysis platform, supporting historical interview data import, name-based query, AI interviewer dialogue, intelligent resume scoring, and internal in-depth analysis.

Technical Architecture

LayerTechnology
FrontendVue 3, Vite, Pinia, Axios
BackendFastAPI, Uvicorn, SQLite
AIDeepSeek / DashScope (Qwen)
Data ProcessingPandas, python-docx, PyPDF2

Core Features

Internal Personnel Portal

  • Interview Record Query: Enter applicant name to view all historical interview records with that name
  • Intelligent Resume Analysis: Upload resume files (doc/docx/pdf), supports four analysis modes:
    • Standard Analysis: Structured analysis from matching degree, score, comments, questions, suggestions
    • Position-Specific Analysis: Manual selection of position type for targeted analysis
    • General Analysis Mode: Auto-identify position from filename, use corresponding profile
    • Divergent Analysis: Free-form deep insights with Markdown table summary
  • Deep Dialogue: In-depth interview follow-up based on analysis results
  • Analysis Archive: Historical analysis results viewing and export (Excel, CSV, DOCX)

Candidate Portal

  • AI interviewer dialogue interface
  • Real-time interview progress feedback

Concurrent Processing

Use ThreadPoolExecutor for concurrent analysis of multiple resumes, thread lock ensures database write safety, SSE streaming returns real-time progress.

from concurrent.futures import ThreadPoolExecutor
import threading
 
executor = ThreadPoolExecutor(max_workers=4)
db_lock = threading.Lock()
 
async def analyze_batch(files):
    futures = [executor.submit(analyze_single, f) for f in files]
    for future in as_completed(futures):
        yield future.result()

Project Structure

HR/
├── frontend/           # Vue 3 frontend
│   ├── src/
│   └── package.json
├── backend/            # FastAPI backend
│   ├── app/
│   └── requirements.txt
└── data/               # SQLite data

Usage

# Start backend
cd backend && uvicorn app.main:app --reload
 
# Start frontend
cd frontend && npm run dev

Current Status

Production ready, continuously iterating and optimizing.


Related Links


Last updated: 2026-04-09