Automagically create, update and rewrite your resume using AI and Blazor Webassembly
You will love your brand new resume!
CV Maker is a love child of two growing technologies, AI (written in Python) and Blazor WebAssembly (ASP.NET Core, C#). It’s function is to design, create and update your resume to look professional. It takes all the mundane tasks, like data input, visual design etc. from you and automates them, allowing you to focus on final touches, so your resume is done in minutes. All that online, from your browser – it doesn’t matter if you are Windows, Mac or Linux user. It’s a mobile first app, but to be honest, Blazor WebAssembly makes it easy for .NET backend developers to make a mobile browser, classic browser, and Windows desktop apps relatively easy, within comfort of .NET C#.
Blazing fast Blazor
What makes it go “Vroom”
The main feature of CV Maker is its use of Natural Language Processing (NLP) to read and understand your resume. There is no better equipped programming language to this task than Python. Python is famously known for vast number of AI, ML, and Data Science related libraries. Also, writing code in python is quite easy, so it makes it the best programming language for the job.
We can divide process of extracting data into two groups – Personal Info and Complex Sections.
Personal info uses two layers: first is spaCy’s – Named Entity Recognition (NER). The model which is supplemented by NLTK Tokenizer. NLTK Tokenizer is responsible for splitting and tagging of words. Afterwards, the CV is scanned for specific words to recognize name and surname, address etc. For extracting e-mails and phone numbers plain old regex does the job.
Complex sections are, a little bit more… complex. Basic idea and tools are the same (NLTK package, language tokenization, word categorizing, regexes, and spaCy’s NER), the main difference is in unpacking section chunks into smaller packets and repeating the process until we have information in separate instances. First resume is divided into typical categories (Education, Experience etc), for which keywords and linguistic sentence elements are used.
Next (using Education section as an example), we count number of entries basing on year occurrences in text. Assuming that each entry will contain at least one or two pieces of data about year.
After that, extracted entries are again divided into single instances of data. The last step is recognizing information, which is done by NER model specialized in given section (Education, Experience etc) and that’s how your resume is processed. It sounds complicated, and it is, but thanks to Python and all libraries created for this programming language, we are able to shift our focus from creating tools for the job to shape exactly what we want it to be. Developer’s function is to work with available tools efficiently and shape application according to its vision and not being limited by technology.
CV Maker has your back
Age of “one job for life” ended, people these days more and more join not the company, but specific projects. Job switching and creating or updating resume is a daily part of life. CV Maker’s goal is to improve this process and create online tool, so you can create your resume in minutes with professional look and without a problem.
We have few challenges to overcome, like gathering enough reliable data for always data hungry AI, training our models to have highest possible accuracy and so on. Blazor WebAssembly sometimes also needs some workarounds. Like I’ve mentioned in the beginning, technologies that we picked are still developing and growing, so every day we get something new. We also have ambitious plans, like making a whole recruiting platform integrated with top job boards, recognizing resume from picture and many others functionalities. We choose technologies that we believe will be futureproof and won’t create technology debt. We are excited to work with quickly developing, fresh technology and to be early adapters of the newest concept in AI and Web development.