---
updatedAt: 2025-06-09T21:22:05.000Z
agentTools:
  projectIndex: https://developers.hrflow.ai/llms.txt
---

# Resume Parsing

Parse resumes and CVs across all shapes and formats with a few lines of code.

Resume Parsing is a service that helps standardize all your candidates' resumes in any format (PDF, DOCX, JPEG, ...). Using advanced AI techniques,  we leverage the implicit structure of resumes to build relevant profiles objects.  These resulting objects suits well with HrFlow\.ai's layers, such as Searching, Scoring, or Embedding.

Furthermore, by extracting semantic entities such as names, emails, phones, locations, companies, schools, degrees, job titles, skills, and more, Resume Parsing helps produce advanced dashboards and reports on your data.

> 📘 Prerequisites
>
> 1. [✨ Create a Workspace](https://hrflow.ai/signup)
> 2. [🔑 Get your API Key](https://developers.hrflow.ai/docs/api-authentication)
> 3. [🧠 Activate Profile Parsing API](docs:ai-solutions#parsing-api)
> 4. [🔌 Create a Source](https://developers.hrflow.ai/docs/connectors-source)
> 5. [🔌 Activating Real-time Parsing for a Source](https://developers.hrflow.ai/docs/connectors-source#1-activating-real-time-parsing-for-a-source)
> 6. [Download HrFlow.ai's Postman](https://developers.hrflow.ai/docs/postman#step-1-import-the-hrflowai-collection-into-postman)

> 📘 API Endpoint
>
> Get more information about the endpoint [🧠 Parse a Resume in a Source](https://developers.hrflow.ai/reference/parse-a-resume).

## Step 1:  Configure your Postman Environment

Following the steps from the [HrFlow.ai Postman](https://developers.hrflow.ai/docs/postman) publication will land you on this page:

<Image title="1.png" alt={2880} src="https://files.readme.io/362de37-1.png">
  Configure Postman environment
</Image>

First, click on the "Environments" tab on the left side of your Postman window. Then, fill in the **Empty - Environment** template with the correct values. The compulsory variables for Resume Parsing are:

* <code>x-api-key</code>: follow the steps from [🔑 API Authentication](https://developers.hrflow.ai/docs/api-authentication) to retrieve it
* <code>x-user-email</code>: follow the steps from [🔑 API Authentication](https://developers.hrflow.ai/docs/api-authentication) to retrieve it
* <code>source\_key</code>: key of the Source where to send your resume.

Finally, save the environment and ensure that you selected **Empty - Environment**  as your current environment.

![1920](https://files.readme.io/251b0b0-12b.png "12b.png")

## Step 2: Choose your Resume

Fill in the body parameters:

* <code>file</code>:  select the resume you want to parse
* <code>sync\_parsing</code>: set this value to 1 to get results instantly

![1920](https://files.readme.io/05ff29c-4b1.png "4b1.png")

> 📘 Synchronous/Asynchronous Parsing
>
> * With Synchronous Parsing, your resume's Parsing Object will be available inside the response of your request.
> * With Asynchronous Parsing, your parsing request will be sent in the Parsing queue.

> 🚧 Real time parsing must be activated
>
> Please refer to [🔌 Activating Real-time Parsing for a Source](https://developers.hrflow.ai/docs/connectors-source#1-activating-real-time-parsing-for-a-source).

## Advanced Topics

### 1. Asynchronous Parsing

By setting <code>sync\_parsing</code> to 0, your parsing request will be sent to a Parsing queue.

![1920](https://files.readme.io/81df3fb-4b.png "4b.png")

> 📘 Retrieving Asynchronous Parsing Results
>
> * Set a <code>reference</code> before sending your request.
> * Use a Webhook to be notified when your parsing request is processed (check [🔌 Create, Configure a Webhook](https://developers.hrflow.ai/docs/connectors-webhook) for more details)

### 2. Try Resume Parsing in your Favorite Programming Language

You can use Postman to work with your favorite programming language. Here is an example with Python.

![1920](https://files.readme.io/ad03baa-5b.png "5b.png")

We also provide a Python Software Development Kit called [hrflow](https://pypi.org/project/hrflow/), which simplifies the use of our products.

```python Parsing Request
import requests

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

payload={'source_key': 'YOUR_SOURCE_KEY',
         'sync_parsing': '1'}
files=[
  ('file', ('resume.pdf', open('vdZxkQ4Gx/resume.pdf','rb'),'application/pdf'))
]
headers = {
  'X-USER-EMAIL': 'YOUR_USER_EMAIL',
  'X-API-KEY': 'YOUR_SECRET_KEY',
  'Cookie': 'AWSALB=He2Ej4Q2VDwtgpS3WgmDWFR4/JIw8G4Cvrkrv2BOCw3VWG2zoQRmK7WWJe6SacFiS4JU8IAmpjm0CDSfOjybfAIT4bMIRoIrGbboF9Ncq4F/bVzfiZswNB+hEOMU; AWSALBCORS=He2Ej4Q2VDwtgpS3WgmDWFR4/JIw8G4Cvrkrv2BOCw3VWG2zoQRmK7WWJe6SacFiS4JU8IAmpjm0CDSfOjybfAIT4bMIRoIrGbboF9Ncq4F/bVzfiZswNB+hEOMU'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)
```
```python HrFlow Python SDK
from hrflow import Hrflow

client = Hrflow(api_secret="YOUR_SECRET_KEY", 
                api_user="YOUR_USER_EMAIL")

with open("resume.pdf","rb") as file:
  response = client.profile.parsing.add_file(source_key="YOUR_SOURCE_KEY",
                                             profile_file=file.read(),
                                             profile_content_type='application/pdf',
                                             sync_parsing=1)
```