import gradio as gr def analyze_cv(cv_file, desired_role, expected_salary): # Define salary ranges for different roles (this is just an example) salary_ranges = { "Desarrollador": (30000, 60000), "Diseñador": (25000, 50000), "Gerente": (40000, 80000) } # Read the content of the CV cv_content = cv_file.read().decode("utf-8").lower() # Check if the desired role is mentioned in the CV if desired_role.lower() in cv_content: # Check if the expected salary is within the range for the role salary_range = salary_ranges.get(desired_role, (0, 0)) if salary_range[0] <= int(expected_salary) <= salary_range[1]: result = "El candidato es elegible para la posición." else: result = "El candidato no es elegible debido a las expectativas salariales." else: result = "El candidato no es elegible debido a la falta de experiencia relevante." return result # Define the Gradio interface iface = gr.Interface( fn=analyze_cv, inputs=[ gr.File(label="Sube tu CV"), gr.Textbox(label="Nombre del rol o posición deseada"), gr.Textbox(label="Salario esperado"), ], outputs=gr.Textbox(label="Resultado de la elegibilidad"), ) # Launch the application iface.launch()