What Programming Languages Does the Hiring-Agent Support for Evaluation?
The Hiring-Agent is completely language-agnostic and supports evaluation of any programming language mentioned in a candidate's resume without requiring code changes or whitelist updates.
The interviewstreet/hiring-agent repository implements a language-agnostic resume evaluation pipeline that processes candidate PDFs to extract technical skills. Unlike traditional hiring platforms that maintain hard-coded lists of supported technologies, this system evaluates any programming language that appears in the resume data, making it infinitely extensible without modifying the codebase.
How Programming Language Evaluation Works
The system treats programming languages as free-form text data rather than validated enum values. According to the source code, the architecture relies on three key components that handle language data dynamically without restricting specific technology names.
The Language Data Model
The schema foundation resides in models.py where the Language Pydantic model defines two optional string fields—language and fluency. This model imposes no validation constraints on the language name, allowing it to store any programming language string from "Python" to niche or emerging technologies.
Resume Processing Pipeline
When processing resumes, the transform.py module constructs a JSONResume object that includes a languages attribute containing a list of Language objects. The pipeline extracts these entries directly from the LLM-generated JSON output without filtering or normalizing the language names against a predefined catalog. The README.md documents this languages section of the JSON Resume format, confirming the schema accepts arbitrary strings.
Evaluation Logic
In evaluator.py, the scoring component consumes the languages list and processes the strings as-is. Because there is no hard-coded whitelist or validation step, the evaluator can assess expertise in Python, JavaScript, Go, Rust, or any technology that candidates include in their resumes.
Adding Support for New Programming Languages
Since the Hiring-Agent is purely data-driven, adding support for new programming languages requires zero code changes. When a candidate mentions a new language like Zig or Carbon in their resume, the parser captures it automatically, stores it in the JSONResume.languages list, and passes it to the evaluator. The LLM simply sees the string and can generate relevant commentary in the final scoring report.
Practical Implementation Example
The following code demonstrates how the system handles multiple programming languages using the dynamic Language model:
# Example: building a JSONResume with a list of programming languages
from models import Language, JSONResume
resume = JSONResume(
basics=..., # other sections omitted for brevity
languages=[
Language(language="Python", fluency="Expert"),
Language(language="JavaScript", fluency="Intermediate"),
Language(language="Rust", fluency="Beginner"),
],
)
# The evaluator receives `resume.languages` and uses the strings as‑is.
This architecture ensures that niche or newly created programming languages receive the same evaluation treatment as mainstream technologies.
Summary
- The Hiring-Agent stores programming languages as free-form strings in the
Languagemodel defined inmodels.py. - The
transform.pymodule populates theJSONResume.languagesfield without validating against a whitelist. evaluator.pyprocesses any language string present in the resume data, enabling evaluation of arbitrary technologies.- No codebase modifications are required to support new programming languages—candidates simply mention them in their resumes.
Frequently Asked Questions
Does the Hiring-Agent validate programming language names against a fixed list?
No. The system does not validate or restrict programming language names. The Language model in models.py accepts any string value for the language field, allowing candidates to list proprietary, domain-specific, or newly created languages without system updates.
How do I add support for a new programming language like Zig or Carbon?
You do not need to modify the codebase. Simply ensure candidates mention the new language in their resume PDFs. The transform.py pipeline will extract the entry and store it in the languages list, and evaluator.py will process it automatically during scoring.
Where is the list of supported programming languages defined?
There is no supported languages list. Unlike platforms that maintain hard-coded enums or configuration files, the Hiring-Agent uses a dynamic schema where evaluator.py works with whatever strings appear in the JSONResume.languages attribute populated by transform.py.
Can the system evaluate fluency levels for any programming language?
Yes. The Language model includes an optional fluency field that accepts any string value (e.g., "Expert", "Intermediate", "Beginner"). The evaluator processes these fluency ratings alongside the language names regardless of the specific technology mentioned.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →