Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

md-sabeel/Hirelytics

Repository files navigation

Hirelytics

Hirelytics is a small full-stack React app (Vite + React Router) that provides AI-powered resume analysis and ATS scoring. Users upload a PDF resume, the app converts it to an image, sends the file to an AI feedback service (via the Puter.js integration), stores results in a KV store, and displays a detailed review.

Key features

  • Upload PDF resumes (drag & drop)
  • Convert the first page of a PDF to an image preview
  • AI-generated structured feedback (ATS score, content, style, structure, skills)
  • Persistent storage via the integrated puter client (KV, fs)
  • View and share analyzed resumes with a unique review page
  • Lightweight server build for SSR using React Router
  • Dockerfile for containerized deployment

Tech stack

  • Frontend: React 19 + TypeScript
  • Routing: React Router (v7) with SSR support
  • Bundler: Vite
  • Styling: Tailwind CSS
  • State: Zustand (used for puter store)
  • PDF handling: pdfjs-dist to render PDF pages to canvas
  • AI & storage: puter.js (injected via script tag) — auth, fs, kv, and AI endpoints

Prerequisites

  • Node.js 20+ and npm
  • A puter.js runtime available in the browser (the app loads https://js.puter.com/v2/ in the HTML layout)

Quick start

Install dependencies:

npm ci

Run the dev server (Vite + React Router dev server):

npm run dev

Screenshot

Screenshot 2026-02-13 172625 Screenshot 2026-02-13 172733 Screenshot 2026-02-13 191957 Screenshot 2026-02-13 192101 Screenshot 2026-02-13 192132 Screenshot 2026-02-13 192148 Screenshot 2026-02-13 192203 Screenshot 2026-02-13 192226

Build for production:

npm run build

Start the production server (serves build/):

npm run start

Notes:

  • The app uses the puter browser SDK to access auth, file upload, AI, and KV features. Ensure the https://js.puter.com/v2/ script can initialize in your environment.

Docker

Build and run the included Dockerfile:

docker build -t hirelytics .
docker run -p 3000:3000 hirelytics

The Dockerfile creates a multi-stage build and runs the built server from build/server.

How it works (workflow)

  1. User uploads a PDF on the Upload page (/upload). See app/routes/upload.tsx.
  2. The file is uploaded via puter.fs.upload, and the app converts the first page to an image using app/lib/pdf2img.ts.
  3. The app sends the uploaded PDF path and prepared instructions (job title & description) to puter.ai.chat via puter's feedback helper. The expected AI response is a JSON object matching the Feedback interface (see constants/index.ts).
  4. The resulting feedback is stored in the KV store (puter.kv.set) under resume:<uuid>.
  5. The user is redirected to /resume/:id to view the review, rendered with components in app/components.

Important files

Environment & configuration

  • The app expects puter.js to be available in the browser. The layout includes this script tag: <script src="https://js.puter.com/v2/"></script> (see app/root.tsx).
  • No additional server-side environment variables are required for the built-in example; production deployments may integrate a proper puter backend or runtime.

Development notes

  • Linting/type generation: npm run typecheck runs react-router typegen and tsc.
  • The Vite config uses @react-router/dev and Tailwind Vite plugin: vite.config.ts.

Contributing

  • Open an issue or submit a PR. Keep changes focused and add tests where appropriate.

Next steps & suggestions

  • Add CI (GitHub Actions) to run npm ci and npm run typecheck.
  • Add e2e tests for the upload and review flow.
  • Secure production puter credentials / runtime if deploying publicly.

About

Track Your Applications & Resume Ratings Review your submissions and check AI-powered feedback.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors