Skip to main content
Once you’ve created question sets, you need to link them to specific job openings. This ensures that applicants for each position see the appropriate screening questions.

Prerequisites

Before configuring job openings:
  • Create at least one Job Question Set
  • Have an existing Job Opening or be ready to create a new one

Linking Question Sets

1
Open the Job Opening Form
2
  • Navigate to HRRecruitmentJob Opening
  • Either create a new Job Opening or open an existing one
  • 3
    Set the Job Question Set
    4
    Locate the Job Question Set field in the form:
    5
  • The field appears after the Designation field
  • This is a custom field added by the ION Career app (custom_job_question_set)
  • 6
    The Job Question Set field is required - you must select a question set before saving the job opening.
    7
    Select Your Question Set
    8
  • Click on the Job Question Set field
  • Choose the appropriate question set from the dropdown
  • Save the Job Opening
  • Custom Field Configuration

    The ION Career app adds the following custom field to the Job Opening doctype:
    {
      "fieldname": "custom_job_question_set",
      "fieldtype": "Link",
      "label": "Job Question Set",
      "options": "Job Question Set",
      "insert_after": "designation",
      "reqd": 1
    }
    
    This field is automatically created during app installation and is required for the screening questions feature to work.

    How It Works

    When a job opening is linked to a question set:
    1. Web Form Integration: The ION Job Application web form automatically fetches questions for the selected job opening
    2. Dynamic Loading: Questions are loaded when an applicant selects a job opening in the application form
    3. API Call: The system calls ion_career.api.get_job_questions with the job opening name
    4. Question Display: Questions are rendered dynamically in the web form based on the linked question set
    # From api.py
    @frappe.whitelist()
    def get_job_questions(job_opening):
        jo = frappe.get_doc("Job Opening", job_opening)
        qset_name = jo.custom_job_question_set
        
        if not qset_name:
            return []
        
        qset = frappe.get_doc("Job Question Set", qset_name)
        return [{
            "question": q.question,
            "fieldname": q.fieldname,
            "input_type": q.input_type,
            "required": q.required
        } for q in qset.questions]
    

    Testing the Configuration

    1
    Access the Web Form
    2
  • Navigate to your site’s ION Job Application web form:
    https://your-site.com/ion-job-application
    
  • 3
    Select the Job Opening
    4
  • In the Job Opening field, select the job opening you configured
  • The screening questions should appear below the standard application fields
  • 5
    Verify Questions Display
    6
    Check that:
    7
  • All questions from the question set appear
  • Questions are displayed in the correct order
  • Required questions are marked appropriately
  • The form validates required questions on submission
  • Troubleshooting

    Possible Causes:
    • No question set is linked to the job opening
    • The question set is empty
    • Browser cache needs to be cleared
    Solution:
    • Verify the custom_job_question_set field is set on the Job Opening
    • Ensure the linked question set contains at least one question
    • Clear browser cache and reload the web form
    Possible Causes:
    • ION Career app is not installed
    • Custom fields were not imported
    Solution:
    • Run bench --site [sitename] migrate to ensure custom fields are created
    • Check that the custom field exists in Customize Form for Job Opening
    Possible Causes:
    • Required questions are not being answered
    • JavaScript validation is not working
    Solution:
    • Check browser console for JavaScript errors
    • Ensure the web form client script is properly loaded
    • Verify that custom_job_question_answers field exists on the web form

    Multiple Question Sets

    You can create different question sets for different types of positions:
    Software Developer Screening
    ├─ Technical experience questions
    ├─ Programming language proficiency
    └─ Availability questions
    
    Sales Representative Screening
    ├─ Sales experience questions
    ├─ Territory availability
    └─ Compensation expectations
    
    Remote Worker Screening
    ├─ Home office setup questions
    ├─ Timezone availability
    └─ Remote work experience
    
    Create reusable question sets that can be applied to multiple similar positions to maintain consistency and save time.

    Next Steps

    Build docs developers (and LLMs) love