API

The API allows you to integrate the core CVtoBlind functionality within your app.

Authentication

All endpoints use the Bearer Authentication mechanism. You can create a new API Key at Settings / Access Keys.

Usage guide

Creating a profile

In order to ingest a new profile into CVtoBlind, you need to upload a CV file to the API endpoint. The endpoint returns the ID of created profile.

Profile processing

Once you have that ID, you can retrieve the profile with API. The profile has a status field, which initially will be set to queued. Within 15-30 seconds the profile will be processed & the data field will be populated.

Profile contents

Once the processing is completed, the data field contains the entire CV data object. This object contains all the data we've extracted from the CV file. It can also be modified with the Profile Editor inside the app, but not via the API.

Exporting profiles

In order to export profile data, you can either access the raw files directly as JSON via API or render the profile in a given template with API. The available options are docx and pdf.

If you don't specify a templateId parameter, the default template assigned to your account will be used. In order to lookup available templates, see Templates. You can copy the templateId by clicking the ID column value.

OpenAI Spec

Upload and convert CV

post

Max file size: 10MB. Accepted file types: .pdf, .docx, .jpg, .png

Authorizations
Body
filestring · binaryRequired
Responses
200
ID of the created profile
application/json
post
POST /api/v1/convert HTTP/1.1
Host: app.cvtoblind.com
Authorization: Bearer {access token}
Content-Type: multipart/form-data
Accept: */*
Content-Length: 17

{
  "file": "binary"
}
{
  "profileId": "text"
}

Get profiles

get

Returns a paginated list of profiles

Authorizations
Query parameters
pageintegerOptionalDefault: 1
pageSizeintegerOptionalDefault: 10
Responses
200
A paginated list of profiles
application/json
get
GET /api/v1/profiles HTTP/1.1
Host: app.cvtoblind.com
Authorization: Bearer {access token}
Accept: */*
{
  "data": [
    {
      "profileId": "text",
      "fileName": "text",
      "createdBy": "text",
      "status": "queued",
      "data": {
        "email": "text",
        "github": "text",
        "mobile": "text",
        "skills": [
          "text"
        ],
        "summary": "text",
        "linkedin": "text",
        "education": [
          {
            "major": "text",
            "start": "text",
            "degree": "text",
            "finish": "text",
            "faculty": "text",
            "university": "text"
          }
        ],
        "languages": [
          {
            "level": "text",
            "language": "text"
          }
        ],
        "last_name": "text",
        "main_role": "text",
        "experience": [
          {
            "to": "text",
            "from": "text",
            "roles": [
              "text"
            ],
            "company": "text",
            "project": "text",
            "location": "text",
            "technologies": [
              "text"
            ],
            "responsibilities": [
              "text"
            ]
          }
        ],
        "first_name": "text",
        "other_urls": [
          "text"
        ],
        "technologies": [
          "text"
        ],
        "category_tech": {
          "ANY_ADDITIONAL_PROPERTY": [
            "text"
          ]
        },
        "certifications": [
          {
            "certificate": "text",
            "date": "text"
          }
        ],
        "physical_address": "text",
        "additional_information": "text",
        "hobby": [
          "text"
        ],
        "total_experience": "text",
        "detailed_address": {
          "country": "text",
          "city": "text",
          "postal_code": "text",
          "address": "text"
        },
        "custom_fields": {
          "ANY_ADDITIONAL_PROPERTY": "text"
        }
      }
    }
  ],
  "metadata": {
    "total": 0,
    "page": 1,
    "pageSize": 10,
    "totalPages": 0
  }
}

Get profile by ID

get

Returns a single profile

Authorizations
Path parameters
profileIdstringRequired
Responses
200
Profile details
application/json
get
GET /api/v1/profiles/{profileId} HTTP/1.1
Host: app.cvtoblind.com
Authorization: Bearer {access token}
Accept: */*
{
  "profileId": "text",
  "fileName": "text",
  "createdBy": "text",
  "status": "queued",
  "data": {
    "email": "text",
    "github": "text",
    "mobile": "text",
    "skills": [
      "text"
    ],
    "summary": "text",
    "linkedin": "text",
    "education": [
      {
        "major": "text",
        "start": "text",
        "degree": "text",
        "finish": "text",
        "faculty": "text",
        "university": "text"
      }
    ],
    "languages": [
      {
        "level": "text",
        "language": "text"
      }
    ],
    "last_name": "text",
    "main_role": "text",
    "experience": [
      {
        "to": "text",
        "from": "text",
        "roles": [
          "text"
        ],
        "company": "text",
        "project": "text",
        "location": "text",
        "technologies": [
          "text"
        ],
        "responsibilities": [
          "text"
        ]
      }
    ],
    "first_name": "text",
    "other_urls": [
      "text"
    ],
    "technologies": [
      "text"
    ],
    "category_tech": {
      "ANY_ADDITIONAL_PROPERTY": [
        "text"
      ]
    },
    "certifications": [
      {
        "certificate": "text",
        "date": "text"
      }
    ],
    "physical_address": "text",
    "additional_information": "text",
    "hobby": [
      "text"
    ],
    "total_experience": "text",
    "detailed_address": {
      "country": "text",
      "city": "text",
      "postal_code": "text",
      "address": "text"
    },
    "custom_fields": {
      "ANY_ADDITIONAL_PROPERTY": "text"
    }
  }
}

Render profile document

get

Renders a profile document in the specified format (pdf or docx)

Authorizations
Path parameters
profileIdstringRequired
Query parameters
templateIdstringOptional
fileTypestring · enumRequiredPossible values:
Responses
200
Rendered profile document
Responsestring · binary
get
GET /api/v1/profiles/{profileId}/render HTTP/1.1
Host: app.cvtoblind.com
Authorization: Bearer {access token}
Accept: */*
binary

Delete profile by ID

delete
Authorizations
Path parameters
profileIdstringRequired
Responses
204
Profile deleted
delete
DELETE /api/v1/profiles/{profileId} HTTP/1.1
Host: app.cvtoblind.com
Authorization: Bearer {access token}
Accept: */*

No content

Last updated