DEV Community

Inderpreet Singh Parmar
Inderpreet Singh Parmar

Posted on

Building My First Open Source Tool – Tailor4Job

As part of my DPS909 - Topics in Open Source Development course, I recently completed my first open-source project called Tailor4Job. It’s a command-line tool that analyzes resumes and cover letters by comparing them to job descriptions. I built this tool because, as a student applying for co-op positions, I often found myself having to adjust my resume and cover letter for each application and having to pay for comparing them with Job Descriptions. I thought, "Why not create something to make this process easier and cheaper?"

Why I Chose Python for Tailor4Job?
Even though I’ve used Python before in some course assignments, I wanted to gain more experience using it in a real-world project. Python’s simplicity and the wide range of libraries made it an ideal choice for building this tool. I also wanted to learn more about how Python can be used to integrate with external APIs (like Groq’s API, which I used in this project). Plus, Python’s popularity means that if I continue to develop this project, it will be easier for others to contribute.

What Tailor4Job Does Right Now?
Tailor4Job focuses on providing an in-depth analysis of a resume and cover letter compared to a specific job description. Here’s what it does:

Analysis of Resume and Cover Letter:

The tool accepts three input files: a resume, a cover letter, and a job description.
It analyzes how well the resume and cover letter align with the job description, highlighting both the strengths and weaknesses of the candidate.
Formatting Feedback:

The tool checks if there are any major mistakes in the formatting of both the resume and cover letter. If mistakes are found, it will point them out; if not, it skips this section.

ATS Compatibility Check:

One of the most useful features is that the tool estimates the percentage chance that the resume and cover letter will pass through an ATS (Applicant Tracking System). This is essential for anyone applying to companies that use ATS to filter candidates.

Keyword Suggestions:
Based on the job description, the tool suggests important keywords that could be added to the resume and cover letter.
It also points out any keywords that could be replaced with better alternatives.

How It Works?
Using Tailor4Job is simple. It runs from the command line and accepts the resume, cover letter, and job description as input. After processing, it gives a detailed analysis, broken down into sections:

Brief Introduction:
It introduces the candidate and the job they are applying for.

Analysis Results:
It compares the resume and cover letter to the job description and tells you whether the candidate is a good fit or not.
It highlights the candidate’s strengths and weaknesses.
It provides feedback on formatting errors if any major mistakes are found.
Summary:
It gives an estimate of how likely it is that the resume and cover letter will pass the ATS system, stated in percentage terms.
It suggests important keywords to add and keywords that could be improved.

Challenges I Faced...
One of the main challenges was handling the various file formats, especially the .docx files used for resumes and cover letters. I had to use Python’s python-docx library to extract the necessary content from the documents. Another challenge was making sure the tool’s output was clear and easy to understand, so I had to carefully structure the sections of the analysis to match the user’s needs.

Another aspect I needed to handle carefully was error handling. If the input files aren’t in the right format, or if there’s an issue with the API, the tool needs to give the user a helpful error message. Debugging and ensuring that error messages went to stderr was something new for me, but it made the tool more professional and easier to use.

What’s Next?
Right now, Tailor4Job focuses purely on analysis, but I have big plans for the future:

Automatic Tailoring of Resumes and Cover Letters:
In the future, I plan to have the tool not only analyze the documents but also generate fully tailored versions of the resume and cover letter based on the job description.

Employer-Focused Feature:
Another idea I’m working on is adding a feature for employers. This would give them a brief summary of whether a candidate is a good fit for the job, based on their resume and cover letter. It would help employers quickly assess candidates.

What I Learned?
Working on this project has been a fantastic learning experience. Building something from scratch and seeing it work felt incredibly rewarding. I also learned the importance of documenting my work clearly, both for myself and for others who might use or contribute to the project in the future.

Writing the project’s README file and this blog post helped me reflect on what I’ve accomplished. It made me realize how far I’ve come from just using Python for small assignments to creating something meaningful.

Final Thoughts
Tailor4Job is still in its early stages, but I’m excited about its potential. The process of building it has helped me not only improve my programming skills but also understand the importance of good user experience and proper error handling.

I’m looking forward to continuing work on this project and exploring new features that can make the tool even more helpful. This was my first open-source project, and I’m proud of what I’ve achieved so far. I can’t wait to see where it goes from here.

Check out the project on GitHub: https://github.com/InderParmar/Tailor4Job/tree/main

I hope this post gives you a better idea of what Tailor4Job is and how I approached building it. Thanks for reading!

Top comments (0)