# What Are the Scoring Categories and Maximum Points in Hiring Agent?

> Discover Hiring Agent's scoring categories and maximum points. Learn how Open Source, Self Projects, Production Experience, and Technical Skills contribute to a perfect 100 point score.

- Repository: [HackerRank/hiring-agent](https://github.com/interviewstreet/hiring-agent)
- Tags: api-reference
- Published: 2026-07-17

---

**Hiring Agent evaluates résumés across four distinct scoring categories—Open Source (35 points), Self Projects (30 points), Production Experience (25 points), and Technical Skills (10 points)—yielding a total maximum score of 100 points.**

The `interviewstreet/hiring-agent` repository implements a structured résumé evaluation system that weights practical experience over raw skill listings. Understanding these specific scoring categories and their maximum points helps candidates interpret their evaluation results and identify areas for improvement. The scoring logic resides primarily in [`score.py`](https://github.com/interviewstreet/hiring-agent/blob/main/score.py), with data models defined in [`models.py`](https://github.com/interviewstreet/hiring-agent/blob/main/models.py).

## The Four Scoring Categories

Hiring Agent assigns points based on four core dimensions of technical experience. Each category carries a specific weight reflecting its importance in the evaluation pipeline.

### Open Source (35 Points)

**Open Source** contributions represent the highest-weighted category, capped at **35 points**. This category captures public repository contributions, maintained open-source libraries, and collaborative development activity. The evaluator looks for sustained engagement with public codebases rather than one-off commits.

### Self Projects (30 Points)

**Self Projects** receive a maximum of **30 points**, recognizing independently built and maintained personal projects. This includes side projects, portfolio websites, and tools the candidate actively develops outside of employment. The scoring emphasizes project complexity, user adoption, and ongoing maintenance.

### Production Experience (25 Points)

**Production Experience** caps at **25 points** and covers professional work history, including full-time employment, contract roles, and freelance positions. The evaluator distinguishes between hobby code and battle-tested systems running in production environments.

### Technical Skills (10 Points)

**Technical Skills** carries the lowest weight at **10 points maximum**, covering demonstrated proficiency with programming languages, frameworks, tools, and platforms. Rather than simply listing technologies, the system values evidence of practical application.

## Implementation in the Codebase

The scoring framework is implemented across three core files in the repository.

### Category Maximums in [`score.py`](https://github.com/interviewstreet/hiring-agent/blob/main/score.py)

In [`score.py`](https://github.com/interviewstreet/hiring-agent/blob/main/score.py), the `category_maxes` dictionary explicitly defines the scoring caps using snake_case keys mapped to integer values:

```python
category_maxes = {
    "open_source": 35,
    "self_projects": 30,
    "production": 25,
    "technical_skills": 10,
}

```

This dictionary drives the normalization logic that ensures no single category exceeds its defined limit, regardless of raw LLM output.

### The `CategoryScore` Model in [`models.py`](https://github.com/interviewstreet/hiring-agent/blob/main/models.py)

The underlying data structure for each category is the **`CategoryScore`** Pydantic class located in [`models.py`](https://github.com/interviewstreet/hiring-agent/blob/main/models.py). This model stores three critical fields:
- `score`: The raw points assigned
- `max`: The maximum allowed value (mirroring the `category_maxes` values)
- `evidence`: An explanatory string generated by the LLM justifying the score

### Evaluation Orchestration in [`evaluator.py`](https://github.com/interviewstreet/hiring-agent/blob/main/evaluator.py)

The [`evaluator.py`](https://github.com/interviewstreet/hiring-agent/blob/main/evaluator.py) module orchestrates the LLM calls that produce the `EvaluationData` object containing populated `CategoryScore` instances for each of the four categories.

## Accessing and Displaying Category Scores

When working with the evaluation results programmatically, you can iterate through the categories and access their scores, maximums, and evidence as shown in the `print_evaluation_results` logic:

```python

# Assume `evaluation` is an EvaluationData instance returned by the LLM evaluator

category_maxes = {
    "open_source": 35,
    "self_projects": 30,
    "production": 25,
    "technical_skills": 10,
}

for cat_name in category_maxes:
    cat_score: CategoryScore = getattr(evaluation.scores, cat_name)
    capped = min(cat_score.score, category_maxes[cat_name])
    print(f"{cat_name.replace('_', ' ').title():<25} {capped}/{cat_score.max}")
    print(f"   Evidence: {cat_score.evidence}\n")

```

Running this code produces structured output showing the capped score against the maximum, followed by the LLM's evidence:

```

Open Source               28/35
   Evidence: Contributed to three well‑known OSS libraries.

Self Projects              22/30
   Evidence: Built a personal web‑scraper used by 200+ users.

Production Experience      20/25
   Evidence: 3 years as a backend engineer at Acme Corp.

Technical Skills           8/10
   Evidence: Proficient in Python, Docker, and AWS.

```

## Summary

- **Hiring Agent uses four scoring categories** with a combined maximum of 100 points: Open Source (35), Self Projects (30), Production Experience (25), and Technical Skills (10).
- **The `category_maxes` dictionary** in [`score.py`](https://github.com/interviewstreet/hiring-agent/blob/main/score.py) defines these caps using keys `open_source`, `self_projects`, `production`, and `technical_skills`.
- **The `CategoryScore` model** in [`models.py`](https://github.com/interviewstreet/hiring-agent/blob/main/models.py) encapsulates each category's score, maximum value, and evidence string.
- **Open Source contributions carry the highest weight** at 35 points, while Technical Skills carries the lowest at 10 points, reflecting the system's emphasis on demonstrated work over listed competencies.

## Frequently Asked Questions

### What is the total maximum score possible in Hiring Agent?

The total maximum score across all four categories is **100 points**, calculated by summing the individual caps: 35 points for Open Source, 30 points for Self Projects, 25 points for Production Experience, and 10 points for Technical Skills.

### Where are the scoring caps defined in the Hiring Agent codebase?

According to the `interviewstreet/hiring-agent` source code, the scoring caps are defined in the `category_maxes` dictionary located in **[`score.py`](https://github.com/interviewstreet/hiring-agent/blob/main/score.py)**. This mapping uses snake_case keys (`open_source`, `self_projects`, `production`, `technical_skills`) paired with their respective integer maximums.

### How does the `CategoryScore` model store evaluation evidence?

The **`CategoryScore`** Pydantic class in [`models.py`](https://github.com/interviewstreet/hiring-agent/blob/main/models.py) stores evaluation evidence in a string field called `evidence`. This field contains the LLM's textual justification for the score assigned, explaining specific achievements or qualifications observed in the résumé.

### Which category has the highest weight in Hiring Agent?

**Open Source** carries the highest weight with a maximum of **35 points**, indicating that sustained contributions to public repositories and open-source projects are valued most highly in the evaluation framework.