Skip to content

AI-powered resume classifier using OpenAI's gpt-5-nano model. Web interface for classifying text/markdown files with token usage tracking and cost analytics.

Notifications You must be signed in to change notification settings

hellogustav/resume-classifier

Repository files navigation

Resume Classifier

A simple web application that classifies text and markdown files to determine if they are resumes using OpenAI's Responses API with the gpt-5-nano model.

Features

  • Upload individual or multiple files (.txt or .md)
  • Parallel processing of multiple files for fast classification
  • Real-time results display with classification status and response time
  • Persistent storage using localStorage
  • Clean, modern UI with drag-and-drop support
  • Clear button to reset results

Prerequisites

  • Node.js (v18 or higher)
  • OpenAI API key with access to gpt-5-nano model

Setup

  1. Install dependencies:

    npm install
  2. Set your OpenAI API key:

    macOS/Linux:

    export OPENAI_API_KEY='your-api-key-here'

    Windows (PowerShell):

    $env:OPENAI_API_KEY='your-api-key-here'
  3. Start the server:

    npm start

    For development with auto-reload:

    npm run dev
  4. Open your browser: Navigate to http://localhost:3000

Usage

  1. Upload Files:

    • Click the upload area or drag and drop files
    • Select one or multiple .txt or .md files
    • Click "Classify Files" button
  2. View Results:

    • See classification results in the table
    • Each result shows: filename, classification (Yes/No), duration, and timestamp
    • Results are automatically saved in browser localStorage
  3. Clear Results:

    • Click "Clear All" button to remove all results from the table and localStorage

API Configuration

The application uses OpenAI's Responses API with the following configuration:

  • Model: gpt-5-nano
  • Reasoning Effort: minimal
  • Verbosity: low
  • Response Format: Structured JSON with schema validation

The classification prompt and response schema are defined directly in server.js.

For detailed API integration documentation, see OPENAI_INTEGRATION.md.

Project Structure

.
├── server.js                   # Express backend server
├── package.json                # Project dependencies
├── OPENAI_INTEGRATION.md       # Detailed OpenAI API documentation
└── public/
    ├── index.html              # Main HTML page
    ├── style.css               # Styles
    └── app.js                  # Frontend JavaScript

Tech Stack

  • Backend: Node.js, Express, Multer
  • Frontend: Vanilla JavaScript, HTML5, CSS3
  • API: OpenAI Responses API
  • Storage: Browser localStorage

Notes

  • This is a local testing application, not production-ready
  • File size limit: 10MB per file
  • All processing happens asynchronously for better performance
  • Results persist across browser sessions via localStorage
  • The app requires an active internet connection to communicate with OpenAI API

Environment Variables

  • OPENAI_API_KEY (required): Your OpenAI API key
  • PORT (optional): Server port (default: 3000)

Troubleshooting

"OPENAI_API_KEY environment variable is not set"

  • Make sure you've set the environment variable before starting the server

"OpenAI API error: 401"

  • Check that your API key is valid and has proper permissions

"OpenAI API error: 404"

  • Ensure your API key has access to the gpt-5-nano model

License

MIT

About

AI-powered resume classifier using OpenAI's gpt-5-nano model. Web interface for classifying text/markdown files with token usage tracking and cost analytics.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published