Skip to content

apollge/validate-cv

Repository files navigation

CV Validation System

A web application that validates CV/resume information by comparing user-submitted form data against the content of an uploaded PDF document. Built with the T3 Stack.

Features

  • Form-based Data Entry: Users input their personal information including name, email, phone number, skills, and experience
  • PDF Upload: Support for PDF CV/resume uploads with text extraction
  • Intelligent Validation: Advanced text matching algorithms that compare form data against PDF content
  • Detailed Feedback: Provides specific information about which fields match or don't match the uploaded document
  • Real-time Processing: Instant validation results with loading states

How It Works

  1. Fill the Form: Enter your personal details in the web form
  2. Upload PDF: Select and upload your CV/resume in PDF format
  3. Automatic Validation: The system extracts text from your PDF and compares it with your form data
  4. Get Results: Receive detailed feedback on matches and mismatches

Tech Stack

  • Framework: Next.js 15 with App Router
  • Database: PostgreSQL with Prisma ORM
  • API: tRPC for type-safe API layer
  • Styling: Tailwind CSS v4
  • PDF Processing: pdf-parse for text extraction
  • Validation: Zod schemas for runtime type checking

Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL database
  • npm or yarn

Installation

  1. Clone the repository

  2. Install dependencies:

    npm install
  3. Set up environment variables:

    cp .env.example .env

    Edit .env and configure your database URL:

    DATABASE_URL="postgresql://postgres:password@localhost:5432/validate-cv"
    
  4. Set up the database:

    npm run db:push
  5. Start the development server:

    npm run dev

Open http://localhost:3000 to view the application.

Development Commands

npm run dev          # Start development server
npm run build        # Build for production
npm run start        # Start production server
npm run lint         # Run ESLint
npm run typecheck    # Run TypeScript type checking
npm run db:studio    # Open Prisma Studio

Validation Algorithm

The system uses sophisticated text matching to validate CV content:

  • Text Normalization: Removes special characters and normalizes whitespace
  • Flexible Phone Matching: Compares last 7 digits of phone numbers
  • Skills Validation: Individual validation of comma-separated skills
  • Experience Matching: Word-based matching with configurable similarity thresholds
  • Fuzzy Matching: Handles variations in formatting and minor discrepancies

Learn More

To learn more about the T3 Stack and its components:

Deployment

This application can be deployed on platforms like Vercel, Netlify, or any Node.js hosting service. Make sure to:

  1. Set up a PostgreSQL database
  2. Configure environment variables
  3. Run database migrations
  4. Build the application

For detailed deployment guides, see the T3 Stack deployment documentation.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors