Talent Radar

Date: April 27, 2025
Technology Stack:

Python Langchain LLM FastAPI

A self-reliant tool for navigating modern recruitment.

Version: 1.0
Date: April 2025

1. Introduction

1.1 Purpose

Hiring is repetitive. Talent Radar handles the monotony. It reads resumes, learns from job descriptions, matches intent, and prepares interviews. It works quietly and efficiently—designed to shrink time and surface relevance.

1.2 Scope

Included:

  • Parsing resumes, extracting signal from noise.
  • Matching human potential to job descriptions using vector mathematics.
  • Generating questions for interviews.
  • Updating real-time status using Redis.
  • Connecting with ecosystems like Odoo, WhatsApp, and email.

Not Included:

  • Payroll.
  • Onboarding.
  • Multi-user dashboards.

1.3 Stack

ComponentTechnology
BackendFastAPI (AI), Django (Admin)
StoragePostgreSQL
Vector StoragePinecone, Milvus DB
QueueRedis
IntelligenceTogetherAI, Sentence Transformer Embeddings
IntegrationsOdoo CRM

2. Shape of the System

2.1 Overview

    Resume Drop → FastAPI → Pinecone/Milvus (Vectors)
                         ↘ PostgreSQL (Metadata)
                         ↘ Redis Queue → Django Admin → Odoo / Email
    

2.2 Breakdown

  • Resume Ingestion: Accepts files, extracts text, generates embeddings.
  • Matching Engine: Compares job and resume vectors, ranks by closeness.
  • Queue Manager: Handles retries, tracks state, avoids duplication.
  • Admin Interface: Visual CRUD, sends data to external systems.

3. Functionality

3.1 Resume Processing

IDRequirementDetails
FR-01Parse filesPyPDF2, docx2txt
FR-02Store embeddingsPinecone + PostgreSQL
FR-03Batch mode (100+)Async queue

3.2 Matching

IDRequirementDetails
FR-04JD EmbeddingsSentence Transformer
FR-05Rank relevancePincone cosine > 0.85
FR-06Export top picksOdoo PATCH

3.3 Interview Prep

IDRequirementDetails
FR-07Generate questionsPrompted metaai/llama-70b-turbo
FR-08Deliver via EmailIMTP

4. Constraints

CategoryRequirementImplementation
Performance50 resumes/minFastAPI + Redis
SecurityEncrypt PIIAES-256 + Django Fernet
Scaling10K resumes/dayKubernetes
UsabilityTraining < 30 minMinimal Admin Panel

5. Endpoints

    POST /api/v1/pipeline/resume-store
    POST /api/v1/pipeline/resume-analyzer
    GET /api/v1/webhook/receiver?task_id=<ID>
    
    POST /api/candidates/
    GET /api/job-roles/<id>/analyze
    

6. Data Shapes

SQL Models

    Candidate:
      resume: file
      raw_text: text
      metadata: JSON
    
    JobRole:
      description: text
      embeddings: binary
    

Vector Store (Qdrant)

    {
      collection: "resumes",
      vector: [1536 floats],
      payload: {
        candidate_id: 43,
        skills: ["python", "ml"]
      }
    }
    

7. Failure Plans

FailureResolution
Parser crashRetry → DLQ
Agent limitsBackoff 10→60s
Odoo downCache, then sync

8. Deployment

    docker-compose.yml:
      fastapi
      django
      qdrant
    

CI/CD: GitHub Actions → AWS ECS

9. Observability

  • Latency: P99 < 5s
  • Accuracy: A/B test vs HR manual
  • Tools: Prometheus + Grafana, Sentry

Talent Radar observes, learns, and then steps back.