SYMBOL INDEX (184 symbols across 19 files) FILE: main.py class ConfigError (line 30) | class ConfigError(Exception): class ConfigValidator (line 35) | class ConfigValidator: method validate_email (line 72) | def validate_email(email: str) -> bool: method load_yaml (line 77) | def load_yaml(yaml_path: Path) -> dict: method validate_config (line 88) | def validate_config(cls, config_yaml_path: Path) -> dict: method _validate_experience_levels (line 114) | def _validate_experience_levels(cls, experience_levels: dict, config_p... method _validate_job_types (line 123) | def _validate_job_types(cls, job_types: dict, config_path: Path): method _validate_date_filters (line 132) | def _validate_date_filters(cls, date_filters: dict, config_path: Path): method _validate_list_of_strings (line 141) | def _validate_list_of_strings(cls, parameters: dict, keys: list, confi... method _validate_distance (line 150) | def _validate_distance(cls, distance: int, config_path: Path): method _validate_blacklists (line 158) | def _validate_blacklists(cls, parameters: dict, config_path: Path): method validate_secrets (line 169) | def validate_secrets(secrets_yaml_path: Path) -> str: class FileManager (line 184) | class FileManager: method validate_data_folder (line 190) | def validate_data_folder(app_data_folder: Path) -> Tuple[Path, Path, P... method get_uploads (line 210) | def get_uploads(plain_text_resume_file: Path) -> Dict[str, Path]: function create_cover_letter (line 220) | def create_cover_letter(parameters: dict, llm_api_key: str): function create_resume_pdf_job_tailored (line 307) | def create_resume_pdf_job_tailored(parameters: dict, llm_api_key: str): function create_resume_pdf (line 392) | def create_resume_pdf(parameters: dict, llm_api_key: str): function handle_inquiries (line 471) | def handle_inquiries(selected_actions: List[str], parameters: dict, llm_... function prompt_user_action (line 499) | def prompt_user_action() -> str: function main (line 527) | def main(): FILE: src/job.py class Job (line 5) | class Job: method formatted_job_information (line 17) | def formatted_job_information(self): FILE: src/jobContext.py class JobContext (line 8) | class JobContext: FILE: src/job_application_saver.py class ApplicationSaver (line 16) | class ApplicationSaver: method __init__ (line 18) | def __init__(self, job_application: JobApplication): method create_application_directory (line 23) | def create_application_directory(self): method save_application_details (line 36) | def save_application_details(self): method save_file (line 50) | def save_file(self, dir_path, file_path, new_filename): method save_job_description (line 59) | def save_job_description(self): method save (line 74) | def save(job_application: JobApplication): FILE: src/libs/llm_manager.py class AIModel (line 80) | class AIModel(ABC): method invoke (line 82) | def invoke(self, prompt: str) -> str: class OpenAIModel (line 86) | class OpenAIModel(AIModel): method __init__ (line 87) | def __init__(self, api_key: str, llm_model: str): method invoke (line 94) | def invoke(self, prompt: str) -> BaseMessage: class ClaudeModel (line 100) | class ClaudeModel(AIModel): method __init__ (line 101) | def __init__(self, api_key: str, llm_model: str): method invoke (line 106) | def invoke(self, prompt: str) -> BaseMessage: class OllamaModel (line 112) | class OllamaModel(AIModel): method __init__ (line 113) | def __init__(self, llm_model: str, llm_api_url: str): method invoke (line 122) | def invoke(self, prompt: str) -> BaseMessage: class PerplexityModel (line 126) | class PerplexityModel(AIModel): method __init__ (line 127) | def __init__(self, api_key: str, llm_model: str): method invoke (line 131) | def invoke(self, prompt: str) -> BaseMessage: class GeminiModel (line 136) | class GeminiModel(AIModel): method __init__ (line 137) | def __init__(self, api_key: str, llm_model: str): method invoke (line 162) | def invoke(self, prompt: str) -> BaseMessage: class HuggingFaceModel (line 167) | class HuggingFaceModel(AIModel): method __init__ (line 168) | def __init__(self, api_key: str, llm_model: str): method invoke (line 176) | def invoke(self, prompt: str) -> BaseMessage: class AIAdapter (line 184) | class AIAdapter: method __init__ (line 185) | def __init__(self, config: dict, api_key: str): method _create_model (line 188) | def _create_model(self, config: dict, api_key: str) -> AIModel: method invoke (line 211) | def invoke(self, prompt: str) -> str: class LLMLogger (line 215) | class LLMLogger: method __init__ (line 216) | def __init__(self, llm: Union[OpenAIModel, OllamaModel, ClaudeModel, G... method log_request (line 221) | def log_request(prompts, parsed_reply: Dict[str, Dict]): class LoggerChatModel (line 327) | class LoggerChatModel: method __init__ (line 328) | def __init__(self, llm: Union[OpenAIModel, OllamaModel, ClaudeModel, G... method __call__ (line 332) | def __call__(self, messages: List[Dict[str, str]]) -> str: method parse_llmresult (line 387) | def parse_llmresult(self, llmresult: AIMessage) -> Dict[str, Dict]: class GPTAnswerer (line 461) | class GPTAnswerer: method __init__ (line 462) | def __init__(self, config, llm_api_key): method job_description (line 467) | def job_description(self): method find_best_match (line 471) | def find_best_match(text: str, options: list[str]) -> str: method _remove_placeholders (line 481) | def _remove_placeholders(text: str) -> str: method _preprocess_template_string (line 487) | def _preprocess_template_string(template: str) -> str: method set_resume (line 491) | def set_resume(self, resume): method set_job (line 495) | def set_job(self, job: Job): method set_job_application_profile (line 502) | def set_job_application_profile(self, job_application_profile): method _clean_llm_output (line 506) | def _clean_llm_output(self, output: str) -> str: method summarize_job_description (line 509) | def summarize_job_description(self, text: str) -> str: method _create_chain (line 521) | def _create_chain(self, template: str): method answer_question_textual_wide_range (line 526) | def answer_question_textual_wide_range(self, question: str) -> str: method answer_question_numeric (line 610) | def answer_question_numeric( method extract_number_from_string (line 639) | def extract_number_from_string(self, output_str): method answer_question_from_options (line 649) | def answer_question_from_options(self, question: str, options: list[st... method determine_resume_or_cover (line 668) | def determine_resume_or_cover(self, phrase: str) -> str: method is_job_suitable (line 686) | def is_job_suitable(self): FILE: src/libs/resume_and_cover_builder/config.py class GlobalConfig (line 7) | class GlobalConfig: method __init__ (line 8) | def __init__(self): FILE: src/libs/resume_and_cover_builder/llm/llm_generate_cover_letter_from_job.py class LLMCoverLetterJobDescription (line 27) | class LLMCoverLetterJobDescription: method __init__ (line 28) | def __init__(self, openai_api_key, strings): method _preprocess_template_string (line 34) | def _preprocess_template_string(template: str) -> str: method set_resume (line 44) | def set_resume(self, resume) -> None: method set_job_description_from_text (line 52) | def set_job_description_from_text(self, job_description_text) -> None: method generate_cover_letter (line 65) | def generate_cover_letter(self) -> str: FILE: src/libs/resume_and_cover_builder/llm/llm_generate_resume.py class LLMResumer (line 26) | class LLMResumer: method __init__ (line 27) | def __init__(self, openai_api_key, strings): method _preprocess_template_string (line 36) | def _preprocess_template_string(template: str) -> str: method set_resume (line 46) | def set_resume(self, resume) -> None: method generate_header (line 54) | def generate_header(self, data = None) -> str: method generate_education_section (line 73) | def generate_education_section(self, data = None) -> str: method generate_work_experience_section (line 101) | def generate_work_experience_section(self, data = None) -> str: method generate_projects_section (line 129) | def generate_projects_section(self, data = None) -> str: method generate_achievements_section (line 157) | def generate_achievements_section(self, data = None) -> str: method generate_certifications_section (line 188) | def generate_certifications_section(self, data = None) -> str: method generate_additional_skills_section (line 216) | def generate_additional_skills_section(self, data = None) -> str: method generate_html_resume (line 246) | def generate_html_resume(self) -> str: FILE: src/libs/resume_and_cover_builder/llm/llm_generate_resume_from_job.py class LLMResumeJobDescription (line 24) | class LLMResumeJobDescription(LLMResumer): method __init__ (line 25) | def __init__(self, openai_api_key, strings): method set_job_description_from_text (line 28) | def set_job_description_from_text(self, job_description_text) -> None: method generate_header (line 39) | def generate_header(self) -> str: method generate_education_section (line 50) | def generate_education_section(self) -> str: method generate_work_experience_section (line 61) | def generate_work_experience_section(self) -> str: method generate_projects_section (line 72) | def generate_projects_section(self) -> str: method generate_achievements_section (line 83) | def generate_achievements_section(self) -> str: method generate_certifications_section (line 95) | def generate_certifications_section(self) -> str: method generate_additional_skills_section (line 106) | def generate_additional_skills_section(self) -> str: FILE: src/libs/resume_and_cover_builder/llm/llm_job_parser.py class LLMParser (line 35) | class LLMParser: method __init__ (line 36) | def __init__(self, openai_api_key): method _preprocess_template_string (line 46) | def _preprocess_template_string(template: str) -> str: method set_body_html (line 56) | def set_body_html(self, body_html): method _retrieve_context (line 91) | def _retrieve_context(self, query: str, top_k: int = 3) -> str: method _extract_information (line 109) | def _extract_information(self, question: str, retrieval_query: str) ->... method extract_job_description (line 145) | def extract_job_description(self) -> str: method extract_company_name (line 156) | def extract_company_name(self) -> str: method extract_role (line 167) | def extract_role(self) -> str: method extract_location (line 178) | def extract_location(self) -> str: method extract_recruiter_email (line 189) | def extract_recruiter_email(self) -> str: FILE: src/libs/resume_and_cover_builder/module_loader.py function load_module (line 8) | def load_module(module_path: str, module_name: str): FILE: src/libs/resume_and_cover_builder/resume_facade.py class ResumeFacade (line 16) | class ResumeFacade: method __init__ (line 17) | def __init__(self, api_key, style_manager, resume_generator, resume_ob... method set_driver (line 40) | def set_driver(self, driver): method prompt_user (line 43) | def prompt_user(self, choices: list[str], message: str) -> str: method prompt_for_text (line 57) | def prompt_for_text(self, message: str) -> str: method link_to_job (line 71) | def link_to_job(self, job_url): method create_resume_pdf_job_tailored (line 88) | def create_resume_pdf_job_tailored(self) -> tuple[bytes, str]: method create_resume_pdf (line 113) | def create_resume_pdf(self) -> tuple[bytes, str]: method create_cover_letter (line 131) | def create_cover_letter(self) -> tuple[bytes, str]: FILE: src/libs/resume_and_cover_builder/resume_generator.py class ResumeGenerator (line 13) | class ResumeGenerator: method __init__ (line 14) | def __init__(self): method set_resume_object (line 17) | def set_resume_object(self, resume_object): method _create_resume (line 21) | def _create_resume(self, gpt_answerer: Any, style_path): method create_resume (line 42) | def create_resume(self, style_path): method create_resume_job_description_text (line 47) | def create_resume_job_description_text(self, style_path: str, job_desc... method create_cover_letter_job_description (line 53) | def create_cover_letter_job_description(self, style_path: str, job_des... FILE: src/libs/resume_and_cover_builder/style_manager.py class StyleManager (line 10) | class StyleManager: method __init__ (line 11) | def __init__(self): method get_styles (line 20) | def get_styles(self) -> Dict[str, Tuple[str, str]]: method format_choices (line 55) | def format_choices(self, styles_to_files: Dict[str, Tuple[str, str]]) ... method set_selected_style (line 65) | def set_selected_style(self, selected_style: str): method get_style_path (line 74) | def get_style_path(self) -> Optional[Path]: FILE: src/libs/resume_and_cover_builder/utils.py class LLMLogger (line 19) | class LLMLogger: method __init__ (line 21) | def __init__(self, llm: ChatOpenAI): method log_request (line 25) | def log_request(prompts, parsed_reply: Dict[str, Dict]): class LoggerChatModel (line 77) | class LoggerChatModel: method __init__ (line 79) | def __init__(self, llm: ChatOpenAI): method __call__ (line 82) | def __call__(self, messages: List[Dict[str, str]]) -> str: method parse_llmresult (line 109) | def parse_llmresult(self, llmresult: AIMessage) -> Dict[str, Dict]: FILE: src/logging.py function remove_default_loggers (line 11) | def remove_default_loggers(): function init_loguru_logger (line 19) | def init_loguru_logger(): function init_selenium_logger (line 55) | def init_selenium_logger(): FILE: src/resume_schemas/job_application_profile.py class SelfIdentification (line 9) | class SelfIdentification: class LegalAuthorization (line 18) | class LegalAuthorization: class WorkPreferences (line 39) | class WorkPreferences: class Availability (line 49) | class Availability: class SalaryExpectations (line 54) | class SalaryExpectations: class JobApplicationProfile (line 59) | class JobApplicationProfile: method __init__ (line 66) | def __init__(self, yaml_str: str): method __str__ (line 174) | def __str__(self): FILE: src/resume_schemas/resume.py class PersonalInformation (line 8) | class PersonalInformation(BaseModel): class EducationDetails (line 23) | class EducationDetails(BaseModel): class ExperienceDetails (line 33) | class ExperienceDetails(BaseModel): class Project (line 43) | class Project(BaseModel): class Achievement (line 49) | class Achievement(BaseModel): class Certifications (line 54) | class Certifications(BaseModel): class Language (line 59) | class Language(BaseModel): class Availability (line 64) | class Availability(BaseModel): class SalaryExpectations (line 68) | class SalaryExpectations(BaseModel): class SelfIdentification (line 72) | class SelfIdentification(BaseModel): class LegalAuthorization (line 80) | class LegalAuthorization(BaseModel): class Resume (line 91) | class Resume(BaseModel): method normalize_exam_format (line 102) | def normalize_exam_format(exam): method __init__ (line 107) | def __init__(self, yaml_str: str): method _process_personal_information (line 125) | def _process_personal_information(self, data: Dict[str, Any]) -> Perso... method _process_education_details (line 135) | def _process_education_details(self, data: List[Dict[str, Any]]) -> Li... method _process_experience_details (line 160) | def _process_experience_details(self, data: List[Dict[str, Any]]) -> L... class Exam (line 191) | class Exam: class Responsibility (line 196) | class Responsibility: FILE: src/utils/chrome_utils.py function chrome_browser_options (line 10) | def chrome_browser_options(): function init_browser (line 38) | def init_browser() -> webdriver.Chrome: function HTML_to_PDF (line 51) | def HTML_to_PDF(html_content, driver):