Skip to content

Sheahni23/ZKJob-Verify

Repository files navigation

ZK Job Verify - Wave 1 MVP

🌊 Overview

ZK Job Verify is a privacy-preserving job application verification DApp designed for the Aleo ecosystem. It allows applicants to prove their eligibility (Age, Degree, Certifications, Skills) to employers using Zero-Knowledge Proofs (ZKP), ensuring their raw personal data (like birthdates, GPAs, or full transcripts) never leaves their device.

This project is part of the "Build a Privacy-focused Application on Aleo" event.

⚠️ Status: Wave 1 (UI & Prototype) This release represents the frontend interface and logic simulation. While the cryptographic concepts are implemented logically, the actual interaction with the Aleo blockchain and Leo Smart Contracts is simulated in this phase.


✨ Key Features (Wave 1)

🤖 1. AI-Powered Data Extraction

  • Resume Parsing: Users can upload PDFs or Images of their resumes.
  • Gemini Integration: Uses Google Gemini 2.5 Flash to analyze documents locally and extract structured claims (Age, Experience, GPA) automatically.
  • Privacy Guard: Extraction happens on-the-fly; no data is stored on our servers.

🔐 2. Privacy-First "Prover" (Applicant)

  • Client-Side Simulation: The "Generate Proof" step mimics a client-side WASM architecture.
  • Data Hashing: Generates a deterministic, cryptographically secure hash (SHA-256) of the inputs combined with a secret nonce to represent a ZK commitment.
  • Granular Status: Visualizes the heavy computational steps (witness generation, constraint checking) expected in a real ZK application.

🛡️ 3. Verification Portal (Employer)

  • Proof Validation: Employers verify the "Proof String" to check eligibility.
  • Expiration Logic: Proofs are valid for 24 hours. Older proofs are marked as Expired even if the cryptographic signature is valid, enhancing security.
  • Verification History: Validations are saved locally (LocalStorage) allowing employers to track past verifications.
  • Zero-Data Reveal: The employer sees only "Verified" status for criteria (e.g., "Age > 18"), never the raw value (e.g., "Age: 24").

💬 4. AI Assistant

  • Integrated Chat: A floating chat widget powered by Google Gemini 3 Pro.
  • Context Aware: The AI is trained to answer questions about Zero-Knowledge Proofs, Aleo, and how to use the DApp.

🏗 Architecture

1. Applicant Flow (The Prover)

  1. Input: User uploads a resume or enters data manually.
  2. Constraint Check: System validates inputs (e.g., Age >= 18) before proof generation.
  3. Proof Generation: The app simulates a Leo circuit execution, producing a Base64 encoded proof string containing the public inputs and the cryptographic commitment.

2. Employer Flow (The Verifier)

  1. Input: Employer receives and pastes the "Proof String".
  2. Decoding & Check: The system decodes the proof, checks the timestamp for expiration, and validates the signature.
  3. Result:
    • Success: Criteria met and proof is fresh.
    • ⚠️ Expired: Proof is valid but too old (>24h).
    • Failure: Invalid signature or corrupted data.

🛠 Tech Stack

  • Frontend: React 19, TypeScript, Vite
  • Styling: Tailwind CSS, Lucide Icons
  • AI: Google GenAI SDK (Gemini 2.5 Flash & Gemini 3 Pro)
  • Visualization: Recharts (for privacy exposure stats)
  • Blockchain (Simulation): Mock Leo Service (mockLeoService.ts) with Web Crypto API

🗺 Roadmap

Phase Description Status
Wave 1 UI, AI Parsing, Proof Simulation, Expiration Logic Completed
Wave 2 Develop verify_jobs.leo Smart Contracts & Circuits ⏳ Pending
Wave 3 Integrate Aleo Wallet Adapter & Testnet Deployment ⏳ Pending
Wave 4 Mainnet Launch & Verifiable Credentials Standard ⏳ Pending

🚀 Getting Started

Prerequisites

  • Node.js (v18+)
  • A Google Cloud API Key (for Gemini AI features)

Installation

  1. Clone the repo:

    git clone https://github.com/Sheahni23/zk-job-verify.git
    cd zk-job-verify
  2. Install dependencies:

    npm install
  3. Configure API Key:

    • Create a .env file (or set in your environment variables):
    API_KEY=your_google_gemini_api_key_here
  4. Run the application:

    npm start
  5. Open in Browser: Navigate to http://localhost:1234 (or the port shown in your terminal).


📄 License

MIT License. Built for the Aleo Privacy-Focused Application Event.

About

Verify Talent. Protect Privacy.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors