Skip to content

Latest commit

 

History

49 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

CareerGraph

An explainable candidate screening and ranking platform for recruiters.

CareerGraph is a backend-first hiring platform where recruiters create jobs, candidates apply with their resumes, and a matching engine ranks applicants for a specific job using structured resume signals, skill matching, semantic similarity, and experience fit.

The goal is not to build another generic job portal. The core engineering problem is:

Job Requirements
      +
Applications
      +
Candidate Resumes
      ↓
Resume Understanding
      ↓
Candidate–Job Features
      ↓
Explainable Ranking
      ↓
Recruiter Decision Support

Why CareerGraph?

Traditional applicant tracking systems are good at storing applications, but candidate discovery and ranking often rely on keyword filters or opaque scoring.

CareerGraph is designed around three principles:

  1. Job-specific ranking — candidates are ranked against the role they actually applied for.
  2. Explainability — every score should be decomposable into understandable signals.
  3. Progressive intelligence — start with deterministic, testable ranking features and introduce learned ranking only when real feedback data exists.

V1 Product Flow

Candidate                         Recruiter
    │                                 │
    ├── Sign up                       ├── Sign up
    ├── Build profile                 ├── Create job
    ├── Upload resume                 ├── View applicants
    └── Apply to job                  └── View ranked applicants
              │                                  ▲
              └──────── Application ─────────────┤
                                                 │
                                      Matching Engine
                                                 │
                            ┌────────────────────┼───────────────────┐
                            │                    │                   │
                       Skill Match        Semantic Match      Experience Fit
                            │                    │                   │
                            └────────────────────┼───────────────────┘
                                                 │
                                         Explainable Score

V1 Features

Authentication & Authorization

  • Candidate signup
  • Recruiter signup
  • Login with JWT authentication
  • Current-user endpoint
  • Role-based access control
  • Candidate/recruiter resource ownership

Candidate

  • Candidate profile
  • Profile update
  • Resume upload
  • Resume processing status
  • Apply to jobs
  • View own applications

Recruiter

  • Recruiter profile
  • Create and manage jobs
  • View applicants for owned jobs
  • Update application status
  • View ranked applicants with score breakdowns

Jobs

  • Title and description
  • Responsibilities
  • Required skills
  • Preferred skills
  • Minimum experience
  • Location
  • Job type
  • Job status
  • Recruiter ownership

Applications

  • Candidate–job application entity
  • One application per candidate per job
  • Application status workflow
  • Resume snapshot/reference used for the application

Resume Processing

  • PDF upload
  • Text extraction
  • Structured resume representation
  • Skill normalization
  • Experience/project/education extraction

Matching & Ranking

  • Required-skill match
  • Preferred-skill match
  • Semantic resume ↔ job-description similarity
  • Experience fit
  • Weighted explainable score
  • Matched and missing skills
  • Human-readable score explanation
  • Persisted ranking results

Matching Strategy

CareerGraph V1 does not ask an LLM to arbitrarily decide which candidate is best.

The ranking engine builds explicit features and combines them into a reproducible score.

Initial scoring model:

Overall Score =
    40% Required Skill Match
  + 35% Semantic Similarity
  + 15% Experience Fit
  + 10% Preferred Skill Match

These weights are a V1 baseline and must remain configurable rather than hard-coded across the application.

Example result:

Candidate: Alex
Overall Match: 84/100

Required Skills:      90
Semantic Similarity:  82
Experience Fit:       75
Preferred Skills:     80

Matched Skills:
Python, FastAPI, Docker

Missing Skills:
Kubernetes, AWS

Finalized V1 Architecture

                           Client
                             │
                             ▼
                          FastAPI
                             │
          ┌──────────────────┼──────────────────┐
          │                  │                  │
         Auth             Recruiter          Candidate
          │                  │                  │
          │                 Jobs             Profile
          │                  │               Resume
          │                  └────────┬─────────┘
          │                           │
          │                      Applications
          │                           │
          └───────────────────────────┼────────────────┐
                                      │                │
                                      ▼                ▼
                                  PostgreSQL      Resume Parser
                                                       │
                                                       ▼
                                                Structured Resume
                                                       │
                                                       ▼
                                                Matching Engine
                                                       │
                                   ┌───────────────────┼──────────────────┐
                                   │                   │                  │
                                Skills             Semantic          Experience
                                Matcher             Matcher            Matcher
                                   │                   │                  │
                                   └───────────────────┼──────────────────┘
                                                       ▼
                                                Feature Builder
                                                       │
                                                       ▼
                                                Weighted Scorer
                                                       │
                                                       ▼
                                                  MatchResult
                                                       │
                                                       ▼
                                                Ranked Applicants

Architecture style

CareerGraph V1 is a modular monolith.

We intentionally avoid premature microservices. The API, domain services, persistence layer, resume-processing logic, and matching engine live in one deployable application with clean internal boundaries.


Technology Stack

Backend

  • Python
  • FastAPI
  • Pydantic
  • SQLAlchemy
  • REST APIs

Data

  • PostgreSQL — V1 production database
  • Alembic — schema migrations
  • pgvector — optional when vector persistence/search becomes necessary

ML / NLP

  • PDF text extraction
  • Structured resume parsing
  • Sentence/document embeddings
  • Cosine similarity
  • Deterministic feature engineering
  • Explainable weighted ranking

Infrastructure

  • Docker
  • Docker Compose for local services
  • Pytest

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages