Repository Analysis

feder-cr/Jobs_Applier_AI_Agent_AIHawk

AIHawk aims to easy job hunt process by automating the job application process. Utilizing artificial intelligence, it enables users to apply for multiple jobs in a tailored way.

26.5 Moderate AI signal View on GitHub
26.5
Adjusted Score
26.5
Raw Score
100%
Time Factor
2026-05-17
Last Push
29,833
Stars
Python
Language
5,977
Lines of Code
57
Files
122
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 3MEDIUM 11LOW 108

Pattern Findings

122 matches across 6 categories. Click a row to expand file-level details.

Excessive Try-Catch Wrapping36 hits · 38 pts
SeverityFileLineSnippet
MEDIUMmain.py523 print(f"An error occurred: {e}")
LOWmain.py302 except Exception as e:
LOWmain.py387 except Exception as e:
LOWmain.py466 except Exception as e:
LOWmain.py495 except Exception as e:
LOWmain.py522 except Exception as e:
LOWmain.py560 except Exception as e:
LOWsrc/resume_schemas/resume.py121 except Exception as e:
LOWsrc/resume_schemas/resume.py132 except Exception as e:
LOWsrc/resume_schemas/resume.py156 except Exception as e:
LOWsrc/resume_schemas/resume.py185 except Exception as e:
LOWsrc/resume_schemas/job_application_profile.py74 except Exception as e:
LOWsrc/resume_schemas/job_application_profile.py96 except Exception as e:
LOWsrc/resume_schemas/job_application_profile.py114 except Exception as e:
LOWsrc/resume_schemas/job_application_profile.py132 except Exception as e:
LOWsrc/resume_schemas/job_application_profile.py150 except Exception as e:
LOWsrc/resume_schemas/job_application_profile.py168 except Exception as e:
LOWsrc/utils/chrome_utils.py45 except Exception as e:
LOWsrc/utils/chrome_utils.py91 except Exception as e:
MEDIUMsrc/utils/chrome_utils.py38def init_browser() -> webdriver.Chrome:
LOWsrc/libs/llm_manager.py229 except Exception as e:
LOWsrc/libs/llm_manager.py245 except Exception as e:
LOWsrc/libs/llm_manager.py258 except Exception as e:
LOWsrc/libs/llm_manager.py265 except Exception as e:
LOWsrc/libs/llm_manager.py295 except Exception as e:
LOWsrc/libs/llm_manager.py322 except Exception as e:
LOWsrc/libs/llm_manager.py379 except Exception as e:
LOWsrc/libs/llm_manager.py456 except Exception as e:
LOWsrc/libs/resume_and_cover_builder/resume_generator.py33 except Exception as e:
LOWsrc/libs/resume_and_cover_builder/utils.py101 except Exception as e:
LOWsrc/libs/resume_and_cover_builder/style_manager.py51 except Exception as e:
LOWsrc/libs/resume_and_cover_builder/style_manager.py86 except Exception as e:
LOWsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py71 except Exception as e:
LOWsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py87 except Exception as e:
LOWsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py141 except Exception as e:
LOW…bs/resume_and_cover_builder/llm/llm_generate_resume.py309 except Exception as exc:
Hyper-Verbose Identifiers35 hits · 36 pts
SeverityFileLineSnippet
LOWmain.py114 def _validate_experience_levels(cls, experience_levels: dict, config_path: Path):
LOWmain.py141 def _validate_list_of_strings(cls, parameters: dict, keys: list, config_path: Path):
LOWmain.py307def create_resume_pdf_job_tailored(parameters: dict, llm_api_key: str):
LOWsrc/job_application_saver.py23 def create_application_directory(self):
LOWsrc/job.py17 def formatted_job_information(self):
LOWsrc/resume_schemas/resume.py125 def _process_personal_information(self, data: Dict[str, Any]) -> PersonalInformation:
LOWsrc/resume_schemas/resume.py135 def _process_education_details(self, data: List[Dict[str, Any]]) -> List[EducationDetails]:
LOWsrc/resume_schemas/resume.py160 def _process_experience_details(self, data: List[Dict[str, Any]]) -> List[ExperienceDetails]:
LOWsrc/libs/llm_manager.py487 def _preprocess_template_string(template: str) -> str:
LOWsrc/libs/llm_manager.py502 def set_job_application_profile(self, job_application_profile):
LOWsrc/libs/llm_manager.py509 def summarize_job_description(self, text: str) -> str:
LOWsrc/libs/llm_manager.py526 def answer_question_textual_wide_range(self, question: str) -> str:
LOWsrc/libs/llm_manager.py639 def extract_number_from_string(self, output_str):
LOWsrc/libs/llm_manager.py649 def answer_question_from_options(self, question: str, options: list[str]) -> str:
LOWsrc/libs/llm_manager.py668 def determine_resume_or_cover(self, phrase: str) -> str:
LOWsrc/libs/resume_and_cover_builder/resume_generator.py47 def create_resume_job_description_text(self, style_path: str, job_description_text: str):
LOWsrc/libs/resume_and_cover_builder/resume_generator.py53 def create_cover_letter_job_description(self, style_path: str, job_description_text: str):
LOWsrc/libs/resume_and_cover_builder/resume_facade.py88 def create_resume_pdf_job_tailored(self) -> tuple[bytes, str]:
LOWsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py46 def _preprocess_template_string(template: str) -> str:
LOW…over_builder/llm/llm_generate_cover_letter_from_job.py34 def _preprocess_template_string(template: str) -> str:
LOW…over_builder/llm/llm_generate_cover_letter_from_job.py52 def set_job_description_from_text(self, job_description_text) -> None:
LOW…_and_cover_builder/llm/llm_generate_resume_from_job.py28 def set_job_description_from_text(self, job_description_text) -> None:
LOW…_and_cover_builder/llm/llm_generate_resume_from_job.py50 def generate_education_section(self) -> str:
LOW…_and_cover_builder/llm/llm_generate_resume_from_job.py61 def generate_work_experience_section(self) -> str:
LOW…_and_cover_builder/llm/llm_generate_resume_from_job.py72 def generate_projects_section(self) -> str:
LOW…_and_cover_builder/llm/llm_generate_resume_from_job.py83 def generate_achievements_section(self) -> str:
LOW…_and_cover_builder/llm/llm_generate_resume_from_job.py95 def generate_certifications_section(self) -> str:
LOW…_and_cover_builder/llm/llm_generate_resume_from_job.py106 def generate_additional_skills_section(self) -> str:
LOW…bs/resume_and_cover_builder/llm/llm_generate_resume.py36 def _preprocess_template_string(template: str) -> str:
LOW…bs/resume_and_cover_builder/llm/llm_generate_resume.py73 def generate_education_section(self, data = None) -> str:
LOW…bs/resume_and_cover_builder/llm/llm_generate_resume.py101 def generate_work_experience_section(self, data = None) -> str:
LOW…bs/resume_and_cover_builder/llm/llm_generate_resume.py129 def generate_projects_section(self, data = None) -> str:
LOW…bs/resume_and_cover_builder/llm/llm_generate_resume.py157 def generate_achievements_section(self, data = None) -> str:
LOW…bs/resume_and_cover_builder/llm/llm_generate_resume.py188 def generate_certifications_section(self, data = None) -> str:
LOW…bs/resume_and_cover_builder/llm/llm_generate_resume.py216 def generate_additional_skills_section(self, data = None) -> str:
Self-Referential Comments9 hits · 32 pts
SeverityFileLineSnippet
MEDIUMmain.py436 # Create the ResumeFacade
MEDIUMmain.py454 # Define the output directory using `suggested_name`
MEDIUMsrc/job_application_saver.py26 # Create a unique directory name using the application ID and company name
MEDIUMsrc/job_application_saver.py30 # Create the directory if it doesn't exist
MEDIUMsrc/logging.py70 # Define a simplified format for selenium logger entries
MEDIUMsrc/resume_schemas/resume.py117 # Create an instance of Resume from the parsed data
MEDIUMsrc/libs/resume_and_cover_builder/utils.py59 # Create a log entry with all relevant information
MEDIUMsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py83 # Create the vectorstore using FAISS
MEDIUM…bs/resume_and_cover_builder/llm/llm_generate_resume.py288 # Create a dictionary to map the function names to their respective callables
Unused Imports28 hits · 28 pts
SeverityFileLineSnippet
LOWconfig.py3
LOWconfig.py3
LOWmain.py2
LOWmain.py5
LOWmain.py7
LOWmain.py10
LOWmain.py11
LOWmain.py12
LOWmain.py13
LOWmain.py16
LOWsrc/resume_schemas/resume.py1
LOWsrc/utils/chrome_utils.py1
LOWsrc/libs/resume_and_cover_builder/__init__.py4
LOWsrc/libs/resume_and_cover_builder/__init__.py5
LOWsrc/libs/resume_and_cover_builder/__init__.py6
LOWsrc/libs/resume_and_cover_builder/style_manager.py1
LOWsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py4
LOWsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py8
LOWsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py11
LOWsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py11
LOWsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py14
LOWsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py15
LOWsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py19
LOWsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py21
LOWsrc/libs/resume_and_cover_builder/llm/llm_job_parser.py22
LOW…over_builder/llm/llm_generate_cover_letter_from_job.py13
LOW…_and_cover_builder/llm/llm_generate_resume_from_job.py7
LOW…_and_cover_builder/llm/llm_generate_resume_from_job.py10
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippet
HIGHsrc/libs/resume_and_cover_builder/config.py0this module is used to store the global configuration of the application.
HIGHsrc/libs/resume_and_cover_builder/template_base.py0this module is used to store the global configuration of the application.
HIGHsrc/libs/resume_and_cover_builder/module_loader.py0this module is used to store the global configuration of the application.
Deep Nesting11 hits · 9 pts
SeverityFileLineSnippet
LOWmain.py220
LOWmain.py307
LOWmain.py392
LOWmain.py88
LOWsrc/resume_schemas/resume.py107
LOWsrc/libs/llm_manager.py188
LOWsrc/libs/llm_manager.py332
LOWsrc/libs/resume_and_cover_builder/style_manager.py20
LOW…_and_cover_builder/llm/llm_generate_resume_from_job.py106
LOW…bs/resume_and_cover_builder/llm/llm_generate_resume.py216
LOW…bs/resume_and_cover_builder/llm/llm_generate_resume.py246