Inspiration

The inspiration for this project came from a frustratingly manual problem during my job search. I was actively applying to positions on LinkedIn and realized I was spending hours manually tweaking my resume for each application - highlighting different skills for a React role versus a Node.js position, emphasizing backend experience for some jobs while bringing frontend projects to the forefront for others. The tedious process of copying, pasting, and reformatting the same core information repeatedly made me think: "There has to be a better way." I needed a system that could take my complete professional profile and dynamically generate optimized resumes on the fly based on specific job requirements.

What it does

This tool takes your resume, some job description and details and generate an ATS Optimized resume for you.

How I built it

This tool was built on AWS infrastructure using AWS Lambdas,

1st step: Your current resume is being uploaded to S3. When upload is complete we trigger an even bridge that pulls the document from S3 and used AWS textract to get the text content from the file, this process actually takes a while so it returns a job ID, which I store in Dynamo dB with a key to identify the Job to check for Job completion later.

2nd step: The job ID key is used to check the status of the AWS textract process, if it is Successful we get the text, if it's not, we wait!. Sometimes this can be fast, and sometimes it is slow, depending on how AWS is feeling xD.

3rd step: We collect information from the user about the Job they are applying for, this would be used together with the text we extracted to generate a personalized optimized resume for the Job. We use Open AI to generate the text in a latex compatible format to be compiled later.

4th step:: We compile the PDF and send it to S3 using S3 we also generate a resigned URL to get a URL that can be shared with the user to get a copy of the optimized resume.

Challenges we ran into

Navigating AWS CDK, there was a lot to learn, me being new to the technology I have never used lambda before, there was a lot of terminology to learn. How to manage resource and permission of lambda. Something breaks, and you learn that it doesn't have permission to this or that resources, and you have to give it the permission, etc.

Accomplishments that I am proud of

Well, I was able to get the project to work. And it is something me and my friends are going to be using personally.

What we learned

I Learnt a lot about AWS Lambdas, Lambda Function URL, API Gateway, Dynamo DB, S3, AWS textract

What's next for ATSResumeOptmizer

I do not know really, maybe add some new features like the ability to choose a desired template of how the resume would look? Well, I guess we would see.

Built With

Share this project:

Updates