Skip to main content

Prerequisites

Before installing ION Career, ensure you have:
A working Frappe bench installation (version 14 or higher recommended)
ERPNext installed with the HR module enabled (the app extends Job Opening and Job Applicant doctypes)
Terminal access with permissions to run bench commands
ION Career adds custom fields to core ERPNext doctypes. Ensure you have database backups before installation.

Installation Steps

1

Navigate to your bench directory

Open a terminal and navigate to your Frappe bench directory:
cd $PATH_TO_YOUR_BENCH
Replace $PATH_TO_YOUR_BENCH with your actual bench path (e.g., /home/frappe/frappe-bench)
2

Get the ION Career app

Download the app from the repository using the bench CLI:
bench get-app https://github.com/Luxoruus/ion_career --branch develop
The --branch develop flag installs the development branch. Omit it for the stable release or specify a different branch/tag as needed.
3

Install the app on your site

Install ION Career on your site:
bench --site your-site-name install-app ion_career
Replace your-site-name with your actual site name (e.g., erp.mycompany.com)The installation process will:
  • Create the three custom doctypes (Job Question Set, Job Question, Job Applicant Question Answer)
  • Install custom fields on Job Opening and Job Applicant
  • Set up web forms for public job applications
  • Install client and server scripts
  • Configure document event hooks
4

Migrate the database

After installation, run migrations to ensure all changes are applied:
bench --site your-site-name migrate
5

Restart bench

Restart your bench to load the new app:
bench restart
6

Verify installation

Log in to your ERPNext instance and verify:
  • Navigate to HR > Job Opening and check for the “Job Question Set” field
  • Go to HR > Job Applicant and look for the “Questions” tab
  • Search for “Job Question Set” in the search bar to access the new doctype
If custom fields don’t appear, try clearing cache with bench --site your-site-name clear-cache

Post-Installation Setup

1. Import Fixtures

The app includes fixtures for custom fields, web forms, and scripts. These are automatically installed, but you can verify them:
bench --site your-site-name export-fixtures

2. Set Permissions

Configure role permissions for the new doctypes:
  1. Go to Role Permission Manager
  2. Set permissions for Job Question Set:
    • HR Manager: Full access
    • HR User: Read access
  3. Set permissions for job applicant question viewing based on your organization’s needs

3. Configure Web Form Access

If using the ION Job Application web form:
  1. Navigate to Website > Web Form > ION Job Application
  2. Enable “Published” to make it accessible
  3. Configure allowed domains and security settings
  4. Customize the form title and introduction text

4. Test the Integration

1

Create a test question set

Go to HR > Job Question Set and create a new set with sample questions
2

Link to a job opening

Create or edit a Job Opening and select your question set in the “Job Question Set” field
3

Submit a test application

Create a Job Applicant record and verify that the Questions tab appears with automated scoring

Troubleshooting

Clear your cache and reload:
bench --site your-site-name clear-cache
bench --site your-site-name reload-doc
Ensure your user role has permissions for the ION Career module. System Managers have full access by default.
Manually import fixtures:
bench --site your-site-name import-fixtures ion_career
Check that:
  • The Job Opening has a Question Set linked
  • The web form API endpoint ion_career.api.get_job_questions is accessible
  • JavaScript console for any errors

Development Setup

If you plan to contribute or customize the app, enable pre-commit hooks:
1

Navigate to the app directory

cd apps/ion_career
2

Install pre-commit

Install pre-commit if not already installed:
pip install pre-commit
3

Enable pre-commit hooks

pre-commit install
The app uses these tools for code quality:
  • ruff: Python linting and formatting
  • eslint: JavaScript linting
  • prettier: Code formatting
  • pyupgrade: Python syntax modernization

Next Steps

Configuration

Configure custom fields, fixtures, and module settings

Create Question Sets

Start building screening questions for your job openings

Build docs developers (and LLMs) love