# Configuration Options Available in config.py for the Hiring Agent

> Explore the config.py options in the hiring-agent repo. Discover DEVELOPMENT_MODE to switch between development and production settings for caching and debug output.

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

---

**The [`config.py`](https://github.com/interviewstreet/hiring-agent/blob/main/config.py) module in the interviewstreet/hiring-agent repository currently exposes a single global configuration option, `DEVELOPMENT_MODE`, which toggles between development features (caching and debug output) and production-ready behavior.**

The [`config.py`](https://github.com/interviewstreet/hiring-agent/blob/main/config.py) file in the interviewstreet/hiring-agent repository serves as the central configuration hub for the Hiring Agent application. This lightweight module contains the **configuration options available in config.py** that govern runtime behavior across the entire codebase, specifically controlling whether the system operates in a permissive development mode or an optimized production mode.

## Understanding the DEVELOPMENT_MODE Flag

The primary configuration option available in [`config.py`](https://github.com/interviewstreet/hiring-agent/blob/main/config.py) is the **`DEVELOPMENT_MODE`** boolean flag. When set to `True` (the default), this flag enables development-only features such as caching intermediate results and printing extra debugging information. Setting it to `False` disables these development helpers, configuring the application for production use where verbose logging and caching are typically suppressed.

## Implementation in config.py

In the [`config.py`](https://github.com/interviewstreet/hiring-agent/blob/main/config.py) file, the configuration is defined as a simple boolean constant:

```python

# config.py

DEVELOPMENT_MODE = True

```

This single line establishes the default behavior for the entire application. According to the interviewstreet/hiring-agent source code, this flag acts as a global toggle that downstream modules import to conditionally execute development-specific logic.

## Practical Usage Examples Across the Codebase

The `DEVELOPMENT_MODE` flag is consumed across multiple modules to control caching and debugging behavior conditionally.

### Conditional Debugging in Application Logic

You can import the flag to gate debug logging and verbose output throughout your code:

```python
from config import DEVELOPMENT_MODE

if DEVELOPMENT_MODE:
    # Enable debug logging or caching

    print("Running in development mode")
else:
    # Production-ready behavior

    print("Running in production mode")

```

### Caching Intermediate Results in score.py

In [`score.py`](https://github.com/interviewstreet/hiring-agent/blob/main/score.py), the flag determines whether to load cached results or recompute them:

```python

# Inside score.py (simplified excerpt)

from config import DEVELOPMENT_MODE

if DEVELOPMENT_MODE and os.path.exists(cache_filename):
    # Load cached results

    ...

```

### GitHub API Response Caching in github.py

Similarly, [`github.py`](https://github.com/interviewstreet/hiring-agent/blob/main/github.py) uses `DEVELOPMENT_MODE` to decide whether to cache GitHub API responses. This prevents unnecessary API calls during development while ensuring fresh data in production environments.

## Switching to Production Mode

To run the application in production, modify the [`config.py`](https://github.com/interviewstreet/hiring-agent/blob/main/config.py) file directly before launching your scripts:

```bash

# Before launching the script, edit config.py:

# Change the line:

# DEVELOPMENT_MODE = True

# to:

DEVELOPMENT_MODE = False

```

This change disables the development helpers and configures the Hiring Agent for production deployment.

## Summary

- The [`config.py`](https://github.com/interviewstreet/hiring-agent/blob/main/config.py) module in interviewstreet/hiring-agent contains a single configuration option: **`DEVELOPMENT_MODE`**.
- **DEVELOPMENT_MODE** defaults to `True`, enabling caching and debug output for development workflows.
- Setting `DEVELOPMENT_MODE` to `False` disables these features for production environments.
- Key files consuming this flag include [`score.py`](https://github.com/interviewstreet/hiring-agent/blob/main/score.py) (result caching) and [`github.py`](https://github.com/interviewstreet/hiring-agent/blob/main/github.py) (API response caching).

## Frequently Asked Questions

### What is the only configuration option available in config.py?

The sole configuration option currently defined in [`config.py`](https://github.com/interviewstreet/hiring-agent/blob/main/config.py) is **`DEVELOPMENT_MODE`**, a boolean flag that controls whether the Hiring Agent runs in development mode with caching and verbose debugging enabled, or in production mode with these features disabled.

### How do I disable development mode for production deployment?

To disable development mode, open [`config.py`](https://github.com/interviewstreet/hiring-agent/blob/main/config.py) and change `DEVELOPMENT_MODE = True` to `DEVELOPMENT_MODE = False`. This simple modification switches the application to production-ready behavior by disabling intermediate caching and debug output.

### Which files in the hiring-agent repository depend on DEVELOPMENT_MODE?

According to the source code analysis, the primary files that reference the `DEVELOPMENT_MODE` flag are **[`score.py`](https://github.com/interviewstreet/hiring-agent/blob/main/score.py)** (which uses it to control caching of intermediate results) and **[`github.py`](https://github.com/interviewstreet/hiring-agent/blob/main/github.py)** (which uses it to determine whether to cache GitHub API responses).

### What is the default value of DEVELOPMENT_MODE and why?

The default value is **`True`**, which prioritizes developer experience by enabling caching of expensive operations (like API calls and scoring computations) and providing verbose debugging output. This default ensures that developers working with the interviewstreet/hiring-agent repository have immediate visibility into application behavior and faster iteration cycles.