The application relies on three main YAML configuration files located in the data_folder.
secrets.yaml: Stores sensitive API keys (e.g.,llm_api_key).config.yaml: General settings likeremote,experience_level,locations,blacklists.plain_text_resume.yaml: The user's resume data in YAML format.
The ConfigValidator class ensures that the config.yaml file contains valid settings before the app runs.
- Required Keys: Checks for existence of keys like
positions,locations,distance. - Type Checking: Ensures values are of correct types (list, bool, int).
- Enums: Validates against allowed values:
EXPERIENCE_LEVELS: internship, entry, associate, etc.JOB_TYPES: full_time, contract, part_time, etc.DATE_FILTERS: all_time, month, week, 24_hours.APPROVED_DISTANCES: 0, 5, 10, 25, 50, 100.
- Email Validation: Regex checking for email formats.
The FileManager class handles the filesystem interface.
validate_data_folder: Ensuresdata_folderexists and contains all required YAML files.- Creates the
outputdirectory if it doesn't exist.