Overview
ION Career is a Frappe application that extends ERPNext’s Human Resources module to add advanced job application management capabilities. It integrates seamlessly with ERPNext’s existing Job Opening and Job Applicant DocTypes while adding custom screening questions and automated scoring functionality.Component Architecture
The application consists of several key components that work together:Custom DocTypes
ION Career introduces three custom DocTypes that form the core of the questionnaire system:Job Question Set
Container for job screening questions
Job Question
Individual questions within a question set
Job Applicant Question Answer
Stores applicant responses to questions
Custom Fields
The app extends ERPNext’s standard DocTypes with custom fields: Job Opening Extensions:custom_job_question_set- Links a question set to a job opening
custom_score- Calculated score based on answerscustom_job_question_answers- JSON storage of raw answerscustom_question_answers- Table of structured answer recordscustom_questions- Tab break for organizing questions UI
Hooks Configuration
ION Career uses Frappe’s hooks system to intercept document events:hooks.py
Event Handlers
Thehandlers.py module contains the business logic for processing applications:
- process_job_questions() - Processes answers after applicant creation
- validate() - Validates required questions are answered
Data Flow
Question Set Creation
Admin creates a Job Question Set with screening questions in the ERPNext desk.
Job Opening Configuration
When creating a Job Opening, admin links it to a Question Set via the
custom_job_question_set field.Application Submission
Applicant submits job application through Web Form with their answers stored as JSON in
custom_job_question_answers.Answer Processing
The
after_insert hook triggers process_job_questions() handler which:- Parses the JSON answers
- Creates structured answer records in
custom_question_answerstable - Calculates the applicant’s score
- Saves the score to
custom_scorefield
Integration Points
Frappe Framework Integration
ION Career leverages core Frappe features:- DocType System - All custom entities are standard Frappe DocTypes
- Hooks - Document event hooks for automated processing
- Whitelisted APIs -
@frappe.whitelist()decorator for web form integration - Fixtures - Exports custom fields, web forms, and scripts for installation
ERPNext HR Module Integration
The app extends existing ERPNext functionality:- Job Opening - Extended with question set field
- Job Applicant - Extended with scoring and answers fields
- Web Forms - Uses ERPNext’s web form system for public applications
ION Career doesn’t modify core ERPNext code. All extensions use Frappe’s customization framework (custom fields, hooks, and fixtures).