Git Product home page Git Product logo

improve-my-cv's Introduction

Improve My CV

This project is designed to use LLMs to improve a json-resume based on a particular string-job-description.

To run the project

  1. Install Ollama

  2. Install dependencies

    poetry install
    
  3. To run the project Run the script from the project's root dir

    Using the CLI

    python3 -m improve_my_cv.ui_cli
    

    Using Streamlit (in a browser)

    streamlit run improve_my_cv/ui_streamlit.py
    

Useful documentation for development

https://github.com/ollama/ollama/blob/main/docs/api.md

improve-my-cv's People

Contributors

gianfranco-s avatar

Watchers

Kostas Georgiou avatar  avatar

Forkers

matiasfalconaro

improve-my-cv's Issues

Avoid changing field names and some field values

We're politely asking the LLM to only change some fields

Please update the following sections of `json_resume`'s fields to better match the `job_description`: "work", "skills", "interests", "projects", "summary", "label"

And to not change others

        Do not change any field names
        Do not change any values for the following fields: "name", "email", "phone", "url", "location", "profiles", "education", "certificates", "publications", "languages"

This should be more of a hard limit.

One possible solution: only pass the change-available sections to the LLM

Keep in mind that the JSON is deeply nested

class ImproveMyCV

Given a JSON-like string (original_json_cv)

  • add a context
  • add a prompt template
  • add a job_description_text
  • the response (improved_json_cv) should be JSON-like, with the same fields as the original JSON, but with the updated values

Should not be changed from the original

  • JSON field names
  • Dates
  • User data (name, phone, url, location, profiles

Either we check the response, or we don't send these fields to the model.

Rebuild resume after sending specific fields

Something like

class ResumeRebuilder:
    """Given an original resume and a filtered_resume, update the original one to include the filtered one"""

    def __init__(self, original_resume: dict, filtered_resume: dict) -> None:
        self.original = original_resume
        self.filtered = filtered_resume

    def rebuild(self) -> dict:
        return

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.