Downloads · 30 days
0
jagath-sajjan/HireNFire
HireNFire is a machine learning model from jagath-sajjan. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
OpenEnv Environment where an AI agent screens resumes, conducts structured interviews, and makes hiring decisions graded on both quality of hire AND demographic fairness.
Downloads · 30 days
0
Access
Public
Updated Mar 30, 2026
Repo size
—
Likes
0
Public
Click a slice to open those files.
.py90.3 KB · 66%
From the Hugging Face model README
OpenEnv Environment where an AI agent screens resumes, conducts structured interviews, and makes hiring decisions graded on both quality of hire AND demographic fairness.
Hiring is one of the most consequential decisions organizations make. An AI agent that can assist in screening must navigate a fundamental tension:
reward = α · quality + (1 − α) · fairness
This makes the environment scientifically interesting and practically relevant.
┌─────────────────────────────────────────┐
│ Agent (LLM via OpenAI) │
└──────────────────┬──────────────────────┘
│ action
▼
┌─────────────────────────────────────────┐
│ step(action) → obs, reward, │──→ Reward Grader
│ done, info │
└──────────────────┬──────────────────────┘
▼
┌─────────────────────────────────────────┐
│ State │
│ ┌──────────┐ ┌───────────┐ ┌────────┐ │
│ │Candidate │ │ Decision │ │ Task │ │
│ │ Pool │ │ Log │ │ Config │ │
│ └──────────┘ └───────────┘ └────────┘ │
└──────────────────┬──────────────────────┘
▼
┌─────────┐ ┌──────────┐ ┌───────────┐
│Quality │ │Fairness │ │ Final │
│Score │ │Score │ │ Reward │
│P/R │ │Parity │ │α·Q+(1-α)·F│
└─────────┘ └──────────┘ └───────────┘
Each observation contains:
| Field | Type | Description |
|---|---|---|
candidates | list[Candidate] | Pool of candidates with resumes |
current_step | int | Current step in the episode |
task_config | TaskConfig | Role, difficulty, alpha |
decisions | list[dict] | Actions taken so far |
remaining_slots | int | How many hires left to make |
interview_results | dict | Results from conducted interviews |
| Field | Type | Description |
|---|---|---|
id | int | Unique identifier |
name | str | Candidate name |
years_experience | int | Years of relevant experience |
skills | list[str] | Technical skills |
education | str | Education level |
demographic_group | str | Abstract group (A/B/C/D) |
interview_score | float | None | Revealed only after INTERVIEW |
| Action | Parameters | Description |
|---|---|---|
RANK | — | Request a ranking of all candidates by agent's criteria |
INTERVIEW | candidate_id | Conduct a structured interview (reveals hidden score) |
HIRE | candidate_id, reasoning | Hire a specific candidate |
REJECT | candidate_id, reasoning | Reject a specific candidate |
FINALIZE | — | End the episode and compute final scores |
# Clone or download
cd HireNFire
# Install dependencies
pip install -r requirements.txt
# Set API key (for baseline inference only)
export OPENAI_API_KEY="your-key-here"
jupyter notebook HireNFire.ipynb
docker build -t hirenfire .
docker run -p 8888:8888 hirenfire
Tagged with openenv. Deploy as a Docker Space:
# Push to HF Spaces
# Tag: openenv
Heuristic agent (rank by computed score → hire top-K):
| Task | Quality | Fairness | Combined | α |
|---|---|---|---|---|
| Easy | ~0.90 | ~0.75 | ~0.86 | 0.7 |
| Medium | ~0.70 | ~0.60 | ~0.65 | 0.5 |
| Hard | ~0.65 | ~0.45 | ~0.51 | 0.3 |
Scores are approximate and will vary slightly due to random candidate generation.