Skip to main content
POST
/
v2
/
resume_search
Search through parsed resumes
curl --request POST \
  --url https://{region}.affinda.com/v2/resume_search \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "indices": [
    "all-resumes"
  ],
  "jobDescription": "<string>",
  "resume": "<string>",
  "jobTitles": [
    "<string>"
  ],
  "jobTitlesCurrentOnly": true,
  "jobTitlesRequired": true,
  "jobTitlesWeight": 0.5,
  "yearsExperienceMin": 1,
  "yearsExperienceMax": 1,
  "yearsExperienceRequired": true,
  "yearsExperienceWeight": 0.5,
  "locations": [
    {
      "name": "",
      "coordinates": {
        "latitude": 123,
        "longitude": 123
      },
      "distance": 100,
      "unit": "km"
    }
  ],
  "locationsWeight": 0.5,
  "locationsRequired": true,
  "skills": [
    {
      "name": "<string>",
      "required": true
    }
  ],
  "skillsWeight": 0.5,
  "languages": [
    {
      "name": "<string>",
      "required": true
    }
  ],
  "languagesWeight": 0.5,
  "institutions": [
    "<string>"
  ],
  "institutionsRequired": true,
  "degrees": [
    "<string>"
  ],
  "degreesRequired": true,
  "highestDegreeTypes": [
    "bachelors"
  ],
  "highestDegreeTypesRequired": true,
  "isCurrentStudent": true,
  "isCurrentStudentRequired": true,
  "isRecentGraduate": true,
  "isRecentGraduateRequired": true,
  "educationWeight": 0.5,
  "searchExpression": "<string>",
  "searchExpressionRequired": true,
  "searchExpressionWeight": 0.5,
  "socCodes": [
    5000
  ],
  "socCodesWeight": 0.5,
  "socCodesRequired": true,
  "managementLevel": "Low",
  "managementLevelRequired": true,
  "managementLevelWeight": 0.5,
  "customData": [
    {
      "filterType": "equals",
      "query": {
        "value": true
      },
      "dataPoint": "isAvailable",
      "field": "isAvailable",
      "required": true,
      "weight": 0.5
    }
  ]
}
'
import requests

url = "https://{region}.affinda.com/v2/resume_search"

payload = {
"indices": ["all-resumes"],
"jobDescription": "<string>",
"resume": "<string>",
"jobTitles": ["<string>"],
"jobTitlesCurrentOnly": True,
"jobTitlesRequired": True,
"jobTitlesWeight": 0.5,
"yearsExperienceMin": 1,
"yearsExperienceMax": 1,
"yearsExperienceRequired": True,
"yearsExperienceWeight": 0.5,
"locations": [
{
"name": "",
"coordinates": {
"latitude": 123,
"longitude": 123
},
"distance": 100,
"unit": "km"
}
],
"locationsWeight": 0.5,
"locationsRequired": True,
"skills": [
{
"name": "<string>",
"required": True
}
],
"skillsWeight": 0.5,
"languages": [
{
"name": "<string>",
"required": True
}
],
"languagesWeight": 0.5,
"institutions": ["<string>"],
"institutionsRequired": True,
"degrees": ["<string>"],
"degreesRequired": True,
"highestDegreeTypes": ["bachelors"],
"highestDegreeTypesRequired": True,
"isCurrentStudent": True,
"isCurrentStudentRequired": True,
"isRecentGraduate": True,
"isRecentGraduateRequired": True,
"educationWeight": 0.5,
"searchExpression": "<string>",
"searchExpressionRequired": True,
"searchExpressionWeight": 0.5,
"socCodes": [5000],
"socCodesWeight": 0.5,
"socCodesRequired": True,
"managementLevel": "Low",
"managementLevelRequired": True,
"managementLevelWeight": 0.5,
"customData": [
{
"filterType": "equals",
"query": { "value": True },
"dataPoint": "isAvailable",
"field": "isAvailable",
"required": True,
"weight": 0.5
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
indices: ['all-resumes'],
jobDescription: '<string>',
resume: '<string>',
jobTitles: ['<string>'],
jobTitlesCurrentOnly: true,
jobTitlesRequired: true,
jobTitlesWeight: 0.5,
yearsExperienceMin: 1,
yearsExperienceMax: 1,
yearsExperienceRequired: true,
yearsExperienceWeight: 0.5,
locations: [
{
name: '',
coordinates: {latitude: 123, longitude: 123},
distance: 100,
unit: 'km'
}
],
locationsWeight: 0.5,
locationsRequired: true,
skills: [{name: '<string>', required: true}],
skillsWeight: 0.5,
languages: [{name: '<string>', required: true}],
languagesWeight: 0.5,
institutions: ['<string>'],
institutionsRequired: true,
degrees: ['<string>'],
degreesRequired: true,
highestDegreeTypes: ['bachelors'],
highestDegreeTypesRequired: true,
isCurrentStudent: true,
isCurrentStudentRequired: true,
isRecentGraduate: true,
isRecentGraduateRequired: true,
educationWeight: 0.5,
searchExpression: '<string>',
searchExpressionRequired: true,
searchExpressionWeight: 0.5,
socCodes: [5000],
socCodesWeight: 0.5,
socCodesRequired: true,
managementLevel: 'Low',
managementLevelRequired: true,
managementLevelWeight: 0.5,
customData: [
{
filterType: 'equals',
query: {value: true},
dataPoint: 'isAvailable',
field: 'isAvailable',
required: true,
weight: 0.5
}
]
})
};

fetch('https://{region}.affinda.com/v2/resume_search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
{
  "count": 130,
  "next": "https://api.affinda.com/v2/search?limit=20&offset=20",
  "previous": "https://api.affinda.com/v2/search?limit=20",
  "parameters": {
    "indices": [
      "all-resumes"
    ],
    "jobDescription": "<string>",
    "resume": "<string>",
    "jobTitles": [
      "<string>"
    ],
    "jobTitlesCurrentOnly": true,
    "jobTitlesRequired": true,
    "jobTitlesWeight": 0.5,
    "yearsExperienceMin": 1,
    "yearsExperienceMax": 1,
    "yearsExperienceRequired": true,
    "yearsExperienceWeight": 0.5,
    "locations": [
      {
        "name": "",
        "coordinates": {
          "latitude": 123,
          "longitude": 123
        },
        "distance": 100,
        "unit": "km"
      }
    ],
    "locationsWeight": 0.5,
    "locationsRequired": true,
    "skills": [
      {
        "name": "<string>",
        "required": true
      }
    ],
    "skillsWeight": 0.5,
    "languages": [
      {
        "name": "<string>",
        "required": true
      }
    ],
    "languagesWeight": 0.5,
    "institutions": [
      "<string>"
    ],
    "institutionsRequired": true,
    "degrees": [
      "<string>"
    ],
    "degreesRequired": true,
    "highestDegreeTypes": [
      "bachelors"
    ],
    "highestDegreeTypesRequired": true,
    "isCurrentStudent": true,
    "isCurrentStudentRequired": true,
    "isRecentGraduate": true,
    "isRecentGraduateRequired": true,
    "educationWeight": 0.5,
    "searchExpression": "<string>",
    "searchExpressionRequired": true,
    "searchExpressionWeight": 0.5,
    "socCodes": [
      5000
    ],
    "socCodesWeight": 0.5,
    "socCodesRequired": true,
    "managementLevel": "Low",
    "managementLevelRequired": true,
    "managementLevelWeight": 0.5,
    "customData": [
      {
        "filterType": "equals",
        "query": {
          "value": true
        },
        "dataPoint": "isAvailable",
        "field": "isAvailable",
        "required": true,
        "weight": 0.5
      }
    ]
  },
  "results": [
    {
      "identifier": "<string>",
      "score": 0.98,
      "pdf": "https://affinda-api.s3.amazonaws.com/media/documents/Example-Resume",
      "jobTitle": {
        "label": "Job Title",
        "value": "Software Developer",
        "score": 0.68
      },
      "managementLevel": {
        "label": "Management level",
        "value": "Low",
        "score": 0.68
      },
      "experience": {
        "label": "Experience",
        "value": "2.0 - 3.0 years",
        "score": 0.68
      },
      "skills": {
        "label": "Skills",
        "value": "Python (Programming Language), Software Development",
        "score": 0.68
      },
      "languages": {
        "label": "Languages",
        "value": "English",
        "score": 0.68
      },
      "location": {
        "label": "Location",
        "value": "Roxburgh Park, Australia",
        "score": 0.68
      },
      "education": {
        "label": "Education",
        "value": "Architecture Interior Design",
        "score": 0.68
      },
      "occupationGroup": {
        "label": "Occupation group",
        "value": "Programmers and software development professionals",
        "score": 0.68
      },
      "searchExpression": {
        "label": "Search expression",
        "value": "<string>",
        "score": 0.68
      },
      "customData": {},
      "name": "Mary Jane"
    }
  ]
}
{
"type": "validation_error",
"errors": [
{
"attr": "non_field_errors",
"code": "unique",
"detail": "This index name has already been used"
}
]
}
{
"type": "validation_error",
"errors": [
{
"attr": "non_field_errors",
"code": "unique",
"detail": "This index name has already been used"
}
]
}
{
"type": "validation_error",
"errors": [
{
"attr": "non_field_errors",
"code": "unique",
"detail": "This index name has already been used"
}
]
}

Authorizations

Authorization
string
header
required

Basic authentication using an API key, e.g. {Authorization: Bearer 75z0bb4fbdf97b7e4111ff6c0015471094155f91}. You can find your API key within the Settings page of the Affinda web app. You can obtain an API key by signing up for a free trial.

Query Parameters

offset
integer

The number of documents to skip before starting to collect the result set.

Required range: x >= 0
Example:

0

limit
integer

The numbers of results to return.

Required range: 1 <= x <= 50
Example:

20

Body

application/json

Search parameters

indices
string[]
required
Example:
["all-resumes"]
jobDescription
string | null

A random string that uniquely identify the resource.

resume
string | null

A random string that uniquely identify the resource.

jobTitles
string[]
jobTitlesCurrentOnly
boolean

Search only through the canditate's current job

jobTitlesRequired
boolean
jobTitlesWeight
number
Required range: 0 <= x <= 1
yearsExperienceMin
integer | null

Minimum years of total work experience

Required range: x >= 0
yearsExperienceMax
integer | null

Maximum years of total work experience

Required range: x >= 0
yearsExperienceRequired
boolean
yearsExperienceWeight
number
Required range: 0 <= x <= 1
locations
object[]

Search by location name or by coordinates

locationsWeight
number
Required range: 0 <= x <= 1
locationsRequired
boolean
skills
object[]
skillsWeight
number
Required range: 0 <= x <= 1
languages
object[]
languagesWeight
number
Required range: 0 <= x <= 1
institutions
string[]
institutionsRequired
boolean
degrees
string[]
degreesRequired
boolean
highestDegreeTypes
(enum<string> | null)[]
Available options:
school,
certificate,
bachelors,
masters,
doctoral
Example:

"bachelors"

highestDegreeTypesRequired
boolean
isCurrentStudent
boolean

Search for student canditates

isCurrentStudentRequired
boolean
isRecentGraduate
boolean

Search for canditates that graduated less than a year ago

isRecentGraduateRequired
boolean
educationWeight
number
Required range: 0 <= x <= 1
searchExpression
string | null

Search through resumes' raw text

searchExpressionRequired
boolean
searchExpressionWeight
number
Required range: 0 <= x <= 1
socCodes
integer[]

A list of occupation group IDs, more details can be found in the <occupation_groups> endpoint

Required range: 1 <= x <= 9999
socCodesWeight
number
Required range: 0 <= x <= 1
socCodesRequired
boolean
managementLevel
enum<string> | null
Available options:
None,
Low,
Mid,
Upper
Example:

"Low"

managementLevelRequired
boolean
managementLevelWeight
number
Required range: 0 <= x <= 1
customData
object[]

Response

Will return matching documents

count
integer

Total number of results

Required range: x >= 0
Example:

130

next
string | null

URL to request next page of results

Example:

"https://api.affinda.com/v2/search?limit=20&offset=20"

previous
string | null

URL to request previous page of results

Example:

"https://api.affinda.com/v2/search?limit=20"

parameters
object
results
object[]