""" resumate.py A simple Gradio UI for collecting user profile and job post information. This app provides inputs for: - LinkedIn resume export PDF file upload - GitHub profile URL - LinkedIn job post text Upon submission, the input values are processed and displayed in the output box. To run: python resumate.py """ import gradio as gr from functions.gradio import process_inputs with gr.Blocks() as demo: gr.Markdown("# Resumate: tailored resume generator") gr.Markdown(""" ## 1. Biographical details Upload your LinkedIn profile export as a PDF file to provide experience and education details. ### How to Export Your LinkedIn Profile as PDF 1. **Go to your LinkedIn profile page** (linkedin.com/in/your-profile) 2. **Click "More" button** (three dots) in your profile header section 3. **Select "Save to PDF"** from the dropdown menu 4. **Wait for the download** - LinkedIn will generate and download your profile as a PDF file 5. **Upload the downloaded PDF** using the file upload box below **Tip**: Make sure your LinkedIn profile is complete and up-to-date before exporting for best results! """) linkedin_pdf = gr.File( label="LinkedIn Resume Export PDF", file_types=[".pdf"], file_count="single" ) gr.Markdown(""" ## 2. Project portfolio Provide your GitHub profile URL, resumate will select and add the projects most relevant to the job post. Only public repositories will be considered. **Tip**: Make sure your GitHub profile is complete and up-to-date before using resumate! """) github_profile = gr.Textbox( label="GitHub Username", placeholder="Enter your GitHub username" ) gr.Markdown(""" ## 3. The job post Provide the full text of the job post you are applying for, resumate will tailor your resume to match the job description. """) job_post = gr.Textbox( label="Job Post", placeholder="Copy and paste the job post text here", lines=1, max_lines=5 ) submit_btn = gr.Button("Submit") output = gr.Markdown(label="Generated Resume") submit_btn.click( # pylint: disable=no-member process_inputs, inputs=[linkedin_pdf, github_profile, job_post], outputs=output ) demo.launch()