COXIT-CO / RecruitFlowAI

AI Driven Recruitment Assistant
MIT License
14 stars 2 forks source link

Add basic logic of service to get corrected CV data #2

Closed Zhornovyi closed 1 year ago

Zhornovyi commented 1 year ago

🛠 Changes being made

What's the context for the changes?

Why did you choose to make these changes? Were there any trade-offs you had to consider?

🧪 How was it tested? / Demo

It was tested manually: as input it takes the json from the examples, as output we get the next model:

{
    "full_name": "SACHA DUBOIS",
    "summary": {
        "input_text": "Had experience in developing a wide range of applications using Python. During this time Have worked with Flask and Django for web development, Redis for message brokering and backend tasks, Docker for container instances and creating/updating images, and Bash for operating system-level tasks. Additionally developed RESTful and gRPC APIs (client and server side) using Flask and Django, and implemented asynchronous programming techniques using Celery, Asyncio, and multithreading.",
        "corrected_sentences": [
            "Had experience in developing a wide range of applications using Python.",
            "During this time, I have worked with Flask and Django for web development, Redis for message brokering and backend tasks, Docker for container instances and creating/updating images, and Bash for operating system-level tasks.",
            "Additionally, I have developed RESTful and gRPC APIs (client and server side) using Flask and Django, and implemented asynchronous programming techniques using Celery, Asyncio, and multithreading."
        ]
    },
    "experiences": [
        {
            "title": "Senior Software Engineer",
            "company": "MEERMASTER TECH",
            "summary": {
                "input_text": "Senior Software Engineer\nMEERMASTER TECH | -\n- Analyze user wishes and design softwares solution\n- Code high-performance programs using different frameworks\n- Work with other teams for debugging",
                "corrected_sentences": [
                    "Analyze user wishes and design software solutions.",
                    "Code high-performance programs using different frameworks.",
                    "Work with other teams for debugging."
                ]
            },
            "date_start": "2019-01-01T00:00:00",
            "date_end": "2023-08-07T00:00:00"
        },
        {
            "title": "Software Developer",
            "company": "EILECOM SOLUTIONS",
            "summary": {
                "input_text": "Software Developer\nEILECOM SOLUTIONS | -\n- Built back-end services that crunch data to deliver business insignts\n- Created automated release process tools\n- Continuous improve system architecture",
                "corrected_sentences": [
                    "Built back-end services that crunch data to deliver business insights.",
                    "Created automated release process tools.",
                    "Continuously improve system architecture."
                ]
            },
            "date_start": "2018-09-01T00:00:00",
            "date_end": "2019-12-01T00:00:00"
        }
    ],
    "educations": [
        {
            "title": "MASTERS OF SCIENCE",
            "school": "University of Estrecliff",
            "date_start": "2016-05-01T00:00:00",
            "date_end": "2020-05-01T00:00:00",
            "summary": {
                "input_text": "University of Estrecliff\nMASTERS OF SCIENCE | -\nMasters in Computer Science\nGPA: 3.35\nWrote a Thesis on: AI-Generated Diagnoses of Plant Disease on\nMobile Platforms\nWon the Most Impactful Thesis Award",
                "corrected_sentences": [
                    "University of Estrecliff",
                    "MASTERS OF SCIENCE",
                    "Masters in Computer Science",
                    "GPA: 3.35",
                    "Wrote a Thesis on: AI-Generated Diagnoses of Plant Disease on Mobile Platforms",
                    "Won the Most Impactful Thesis Award"
                ]
            }
        },
        {
            "title": "BACHELOR OF SCIENCE",
            "school": "Laemarble College",
            "date_start": "2009-06-01T00:00:00",
            "date_end": "2012-06-01T00:00:00",
            "summary": {
                "input_text": "Laemarble College\nBACHELOR OF SCIENCE | -\nBS Computer Science\nGPA: 3.75\n- Minor in Literature\n- Specialization in Enterprise Systems\n- Vice President and Lead VIolinist, Laemarble Classical Orchestra",
                "corrected_sentences": [
                    "Laemarble College",
                    "BACHELOR OF SCIENCE",
                    "BS Computer Science",
                    "GPA: 3.75",
                    "Minor in Literature",
                    "Specialization in Enterprise Systems",
                    "Vice President and Lead Violinist, Laemarble Classical Orchestra"
                ]
            }
        }
    ],
    "skills": [
        "c#",
        "java",
        "ruby",
        "object-oriented design",
        "machine learning",
        "agile methodology"
    ]
}

🏎 Quality check

Zhornovyi commented 1 year ago

The response model contains both: input text and corrections (the list of mistakes). The response is not corrected CV in doc format.

iramykytyn commented 1 year ago

The response model contains both: input text and corrections (the list of mistakes). The response is not corrected CV in doc format.

Corrections and list of mistakes are different things. Here is what I want to see:

Screenshot 2023-08-10 at 10 54 36

Here is my conversation with chat gpt: https://chatcraft.org/c/-K-O4xKgiHG3SC1ptSg_b. Here is the CV I used: https://cv.djinni.co/db/feb34fa7be7848c5c93d6c11016916/Yulia_Honcharenko_-_Computer_Vision_Engineer.pdf

UPD: As you can see there are some not right corrections, like one about the future. So the prompt should be corrected, and the input will need to be better structured to avoid such mistakes. But also these means that we can not rely on autocorrection, the recruiter will need to update CV manually any way, it just should help her to do it. Or it should give the recruiter the possibility to pick which mistakes to autocorrect if that makes sense to them.

iramykytyn commented 1 year ago

I'm closing this PR since it will be more convenient for review if you create the new one.