Inspiration

Modern recruiting often relies on algorithms and human reviewers who unintentionally introduce bias based on names, schools, or demographics. Our team wanted to prove that fairness in AI hiring can be transparent and verifiable. We asked ourselves: what if every applicant could verify that their resume was evaluated blindly, without personal identifiers, and that the score they received was cryptographically guaranteed to be unaltered? This question led to the creation of BlindHire — a privacy-preserving, provably fair AI resume screening platform built on blockchain.

What it does

BlindHire allows applicants to upload resumes that are automatically anonymized and evaluated using an AI similarity model. The system compares the anonymized resume text with a job description to determine fit, producing a score and decision category: auto_pass, review, or auto_fail. Each decision is recorded on the blockchain through cryptographic commitments, allowing both applicants and recruiters to verify that evaluations were performed fairly and without tampering. Recruiters view only blinded results and can accept candidates without ever seeing personal information. Once accepted, candidates can cryptographically claim their identity for follow-up communication.

How we built it

BlindHire is composed of four modular components working together:

Frontend (React + MetaMask): Applicants connect their wallet, upload a PDF resume, and receive their decision and transaction hash for on-chain verification.

Backend (FastAPI): Orchestrates the process by handling file uploads, calling the ML service, generating deterministic hashes, and communicating with the blockchain through web3.py.

ML Service (FastAPI + Sentence Transformers):

Anonymizes resumes by removing identifiers such as names, emails, schools, and demographics.

Generates embeddings for both the resume and the job description using the all-MiniLM-L6-v2 model.

Computes cosine similarity to score job fit and applies a ranking-based threshold policy.

Outputs a canonical payload and computes:

score_hash

SHA256 ( canonical_score_payload ) score_hash=SHA256(canonical_score_payload)

Smart Contracts (Solidity on Sepolia): Store the anonymized evaluation hashes (resume_hash, model_hash, score_hash) and allow verifiable record checks. Recruiters can mark candidates as accepted, and applicants can claim their selection through signed wallet messages.

SQLite was used for temporary metadata storage during the hackathon, and resumes were deleted immediately after processing to preserve privacy.

Challenges we ran into

The biggest challenge was ensuring end-to-end determinism between the ML pipeline and the blockchain commitments. Any small change in text normalization or JSON encoding could cause mismatched hashes. We also had to synchronize hashing logic across three different languages — Python, JavaScript, and Solidity — while maintaining byte-level consistency. Time was another major constraint. Building a fully integrated AI + blockchain system with four developers in under eight hours required strict coordination and frozen APIs. Balancing privacy preservation and transparency also demanded careful architectural trade-offs.

Accomplishments that we're proud of

Built a working end-to-end prototype with ML, backend, blockchain, and frontend integration within the hackathon timeframe.

Achieved deterministic anonymization and verifiable scoring across services.

Implemented a complete wallet-based workflow where applicants can verify and claim their results.

Designed a modular system architecture that can easily support stronger AI models or future zero-knowledge proof extensions.

What we learned

We learned how to combine machine learning, cryptography, and blockchain to create a trustless fairness pipeline. Implementing canonical hashing and deterministic anonymization taught us the importance of reproducibility in AI ethics. We also learned how to make cryptographic systems more approachable for users by designing a clean, understandable UX — letting applicants verify fairness without needing to understand blockchain technology in depth.

What's next for BlindHire

We plan to extend BlindHire by integrating zero-knowledge proofs (ZKPs) to make verification even stronger while protecting privacy further. We also aim to support multi-model scoring, where recruiters can transparently choose or swap AI models without changing the verification flow. In the long term, we envision BlindHire evolving into a standardized “Proof of Fairness” protocol for AI hiring systems — ensuring every applicant, everywhere, can trust that their evaluation was truly blind.

Built With

Share this project:

Updates