Resume Parsing

Automatically extract the different elements from a CV

Hrflow's Parsing API is a powerful tool for transforming resumes of any type (JPEG, DOCX, PDF, ...) into a uniform data structure that is easily processed. Parsing is one of the building blocks offered by Hrflow to allow you to improve CV search, matching, analysis, and reporting.

Reduce costs, save effort and save time with resume analysis.

This page shows you how easy it is with Hrflow.ai to parse a resume.

📘

Prerequisites

  1. ✨ Create a Workspace
  2. 🔑 Get your API Key
  3. 🔌 Create a Source
  4. 🧠 Parse a Resume in a Source

Case Study 1: Upload profiles directly from your computer

Step 1: Create a Source

In order to store the parsed resume information, you will need to create a source.

In this section, you will need a "Folder" type source.

Create a source as described on the page ....

🚧

Please use the "Folder" tile when creating the source

Otherwise, you may not have access to the dropzone useful in the rest of the tutorial.

Step 2: Upload the resumes from your computer to Hrflow

Once you have arrived on this page :

Scroll down the page until you reach the Dropzone.

Import profiles by clicking this zone or drag and drop here.

Case Study 2: Send a resume to parser via the HTTP endpoint

Step 1: Create a Source

In order to store the parsed resume information, you will need to create a source.

Create a source as described on the page Create, Configure a Source. In this part, you will need a source of type "HTTP API".

Step 2: Prepare the HTTP request

To build the request, we will use 🧠 Parse a Resume in a Source

Header

Field

Value

Content-Type

multipart/form-data

X-API-KEY

Your API Key. For the example, we will use ask_abcabcabc.

X-USER-EMAIL

Your HrFlow.ai account's email. For the example, we will use [email protected].

Body

Field

Value

source_key

The source_key of the source you just created. In the example, we will use 5lb87b5604bd5ada4151d8cd2046f6a1ec06fc85.

file

This field will contain your base64 encoded file. For example: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCA...

sync_parsing

Turn to 0 to deactivate real-time Parsing.

sync_parsing_indexing

Turn to 1 because we want the Profile attached to the uploaded Resume to be Indexed.

tags

We'll add a tag for the example but you don't have to. We will create a tag sync_with_my_ats which will have a value of 1 if the profile has been synchronized in the ATS and 0 otherwise.

Example in Python with the requests package

To avoid making the code too large, the content of the file field has been deliberately trimmed.

import requests

url = "https://api.hrflow.ai/v1/profile/parsing/file"

body = {
    "file":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAB578"
    "sync_parsing": 0,
    "sync_parsing_indexing": 1,
    "tags": [
        {
            "name": "sync_with_my_ats",
            "value": "0"
        }
    ],
    "source_key": "5lb87b5604bd5ada4151d8cd2046f6a1ec06fc85"
}

headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
    "X-API-KEY": "ask_abcabcabcabc",
    "X-USER-EMAIL": "[email protected]"
}

response = requests.request("POST", url, json=body, headers=headers)

print(response.text)

We arbitrarily chose Python to build the query in a more understandable way for everyone.

In Python, we could have read the file with open and converted it to base64 with the base64 library.

Example in Python with the hrflow package

from hrflow import Hrflow

client = Hrflow(api_secret="ask_abcabcabcabc", api_user="[email protected]")

# read the resume
with open("my_resume.pdf","rb") as file:
    profile_file = file.read()
return profile_file

response = client.profile.parsing.add_file(source_key=SOURCE_KEY,
                                           profile_file=profile_file,
                                           profile_content_type='application/pdf',
                                           sync_parsing=0,
                                           sync_parsing_indexing=1,
                                           tags=[dict(name="sync_with_my_ats", value="0")])

Case study 3: Let candidates drop their resumes in a Dropzone

Dropzone exampleDropzone example

Dropzone example

The Dropzone is a small boxed area that you can add to any page on your website, such as a job posting to allow candidates to directly submit their resumes.

It makes the application process much easier for candidates and it only takes a few minutes to set up!

For more information: https://help.hrflow.ai/en/articles/4399024-create-a-dropzone-source

Add custom tracking data to a Dropzone source

Activate job matching for a Dropzone source

Case study 4: Using a CVbot to retrieve candidates' CVs

CVbot exampleCVbot example

CVbot example

The CVbot is a chatbot that encourages candidates to submit their CVs on any of your pages.

It can capture up to 60% of the 90% of website visitors who never apply, automatically engaging them and simplifying the application process.

For more information: https://help.hrflow.ai/en/articles/4396857-create-a-cvbot-source

Activate job matching for a CVbot source

Add custom tracking data to a CVbot source


Did this page help you?