Blog

FIS-SST

The easy way to your personal resume

Automagically create, update and rewrite your resume using AI and Blazor Webassembly

Adam Siwek

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

The frontend part is built with ASP.NET 5 (successor of ASP.NET Core) and Blazor WebAssembly, which means part of computing is done on the client side (Blazor WebAssembly in contrary to Blazor Server allows that), so you don’t have to send all  the data back and forth. It makes the app run faster even with slower internet connection and it takes small load off of server – multiply this “small” load by clients connected and you get quite reasonable saving in server resources, which is especially important when you pay for your server by resources used. Regarding privacy, less data sent is also a plus. Library wise MatBlazor is responsible for look and feel and it does this job well. Thanks to it, we were able to create slick and modern design without a problem. Since Blazor WebAssembly is still in its younger years, getting data from browser DOM requires us to use JS interop. It is a special function connecting Blazor WebAssembly and JavaScript (programming language well known for its web applications), but it’s implemented quite nicely and it’s very easy to code.

Some people think that Blazor with Blazor WebAssembly will take over JavaScript dominance in Web development space. For now, Blazor still sometimes needs JavaScript, but my vote is on Blazor since it has solid backend to lean on.

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.

Contact form

Patrycja Pałus

Office Administrative Assistant

Please feel free to contact me by phone or email

Newsletter FIS-SST

To continue downloading please subscribe to our newsletter 

Newsletter FIS-SST

Aby kontynuować ściąganie prosimy zapisz się do naszego newsletter`a