Parse a Resumeπ︎
| HTTP Verb | Path |
|---|---|
| POST | /v9/parser/resume |
Parse a single Resume/CV.
Info
- You can try this endpoint out at our Swagger page ( US Data Center | EU Data Center | AU Data Center )
- By default, our resume parser ensures an optimal balance between parsing accuracy and speed. If you have specific preferences, please contact sales@textkernel.com
- This service is designed to parse resumes/CVs. It assumes that all files passed to it are resumes/CVs. It does not attempt to detect whether a document is a resume/CV or not. It should not be used to try to extract information from other types of documents.
- Always send the original file, not the result of copy/paste, not a conversion by some other software, not a scanned image, and not a version marked up with recruiter notes or other non-resume information. Be aware that if you pass garbage into the service, then you are likely to get garbage out. The best results are always obtained by parsing the original resume/CV file.
- In order to provide parsing for a wide range of languages, the parser does not provide low-usage fields for some languages.
- If you are running batch transactions (i.e. iterating through files in a folder), make sure that you do not try to reparse a file if you get an exception back from the service since you will get the same result each time and credits will be deducted from your account.
- Batch transactions must adhere to our Acceptable Use Policy.
Scope of useπ︎
FlexRequests (an optional feature) are powered by Large Language Models (LLMs). LLMs can generate information that is factually incorrect or misleading. It may also output plausible-sounding but false information. Therefore FlexRequests may not always provide accurate or reliable results. Textkernel gives no guarantees or warranties of any kind with the use of FlexRequests, nor does it accept any liability for its use. It is your sole responsibility to use FlexRequests in a responsible and ethical manner, not to use it for harmful, malicious or unethical purposes and to ensure that the use of FlexRequests aligns with applicable laws and regulations.
Request Bodyπ︎
DocumentAsBase64String π︎ string required
DocumentAsBase64Stringπ︎
A Base64 encoded string of the resume file bytes. This should use the standard 'base64' encoding as defined in RFC 4648 Section 4 (not the 'base64url' variant). .NET users can use the Convert.ToBase64String(byte[]) method.
RevisionDate π︎ string required
RevisionDateπ︎
Mandatory date, in YYYY-MM-DD format, so that the Parser knows how to interpret dates in the document that are expressed as "current" or "as of" or similar. To find out why this is so important and how to calculate/find it, read here.
OutputHtml π︎ bool
OutputHtmlπ︎
When true, the original file is converted to HTML and stored in the Html property.
OutputRtf π︎ bool
OutputRtfπ︎
When true, the original file is converted to RTF and stored in the Rtf property.
OutputPdf π︎ bool
OutputPdfπ︎
When true, the original file is converted to PDF and stored in the Pdf property as a byte array.
UseLLMParser π︎ bool
UseLLMParserπ︎
When true, the LLM parser will be used. See here for more information.
OutputCandidateImage π︎ bool
OutputCandidateImageπ︎
When true, if the document contains inline images, the image that is most likely to be a photo of the candidate is returned as a byte array.
Configuration π︎ string Deprecated
Configurationπ︎
This feature is not recommended and only available as an add-on. Please reach out toΒ sales@textkernel.com.
Optional parser configuration string to be used for parsing. If not specified, the default parser configuration will be used.
SkillsData π︎ string[]
SkillsDataπ︎
This feature is not recommended and only available as an add-on. Please reach out to sales@textkernel.com.
String[] of your custom skills list names and the Textkernel "builtin" skills list. If no list is provided the Textkernel builtin skills list will be used. The parser automatically detects language and looks for a corresponding skills list in that language, if no match is found this list is ignored.
NormalizerData π︎ string
NormalizerDataπ︎
This feature is not recommended and only available as an add-on. Please reach out to sales@textkernel.com.
Name of your custom normalization data file. If no list is provided the Textkernel builtin skills list will be used (english only). When using custom normalization files the language to be used is determined by the Parser (the default fall back language is English if the Parser cannot find a match).
GeocodeOptions π︎ object
GeocodeOptionsπ︎
Get or insert geocode coordinate values (latitude/longitude) during the parse transaction.
GeocodeOptions properties
IncludeGeocoding π︎ bool
IncludeGeocodingπ︎
When set to true we will automatically geocode the address that is parsed out leveraging an api call to our/geocode endpoint, and thus will be charged accordingly. This parameter defaults to false.
Provider π︎ string
Providerπ︎
The Provider you wish to use to geocode the postal address (current options are "Google", "Bing", or "None"). If not specified, we will default to Google. If you are just trying to update the postal address in the document, please set this to "None". If passing "Google" or "Bing", ProviderKey is requried.
ProviderKey π︎ string
ProviderKeyπ︎
The Provider Key for the specified Provider. If using Bing you must specify your own provider key.
PostalAddress π︎ object
PostalAddressπ︎
The postal address you wish to geocode. For best results, specify as many of the PostalAddress fields as possible. If provided, this address will be used to get the geocode coordinates instead of the address included in the ParsedDocument (if present), however, the address in the ParsedDocument will not be modified.
PostalAddress properties
CountryCode π︎ string
CountryCodeπ︎
The ISO 3166-1 alpha-2 code indicating the country for the postal address.
GeoCoordinates π︎ object
GeoCoordinatesπ︎
The geographic coordinates (latitude/longitude) for your postal address. Use this if youalready have latitude/longitude coordinates and simply wish to add them to your parsed document. If provided, these values will be inserted into your ParsedDocument and the address included in the ParsedDocument (if present), will not be modified.
GeoCoordinates properties
IndexingOptions π︎ object
IndexingOptionsπ︎
When your account is enabled for Matching/Searching you can automatically index documents during the parse transactions.
Skills Normalization must be included to index documents using V2 Skills Taxonomy. These algorithms ignore raw skills and only consider the normalized skill concepts for skills category scoring. This leads to improved scoring and ranking because normalization produces less false negatives than simple exact keyword matching.
IndexingOptions properties
IndexId π︎ string
IndexIdπ︎
When your account is enabled for Matching/Searching you can automatically index documents during the parse transactions. This determines what index to place the parsed document in. This is case-insensitive.
DocumentId π︎ string
DocumentIdπ︎
When your account is enabled for Matching/Searching you can automatically index documents during the parse transactions. This determines what id to give to the parsed document. This is restricted to alphanumeric with dashes and underscores. All values will be converted to lower-case.
SkillsSettings π︎ object
SkillsSettingsπ︎
Enable skills normalization and enhanced candidate summarization, and specify the version of the skills taxonomy for this parsing transaction.
SkillsSettings properties
Normalize π︎ bool
Normalizeπ︎
When true:
- Raw skills will be normalized. These will be output under Value.ResumeData.Skills.Normalized. Read moreabout the benefits of using a skills taxonomy.- An enhanced candidate summary is generated, leveraging the taxonomy structure to relate skills to profession groups.
When using TaxonomyVersion V2 (see below), additional charges apply. when normalization is enabled.
When you have access to TaxonomyVersion V1, and did not set the taxonomy to V2 explicitly (see below), normalization is enabled by default and the candidate summary is generated using the V1 taxonomy structure.
TaxonomyVersion π︎ string
TaxonomyVersionπ︎
Specifies the version of the skills taxonomy to use. Defaults to V2, unless your account has access to V1. If you have access to V1, use v2 as the value for this property to explicitly set V2.
V1 is deprecated and will be removed in a future release.
Benefits of V2 include:
- 2x larger skills taxonomy, updated frequently based on real-world data
- 15-40% higher accuracy of extracted skills
- Better clustering of skill synonyms
- Distinguish skill types (IT / Professional / Soft)
- Improved candidate summary
- Compatibility with the taxonomy used in Textkernel's Skills Intelligence APIs and Jobfeed, enabling standardization of taxonomies across all of your data and benchmarking against jobs posted online.
ProfessionsSettings π︎ object
ProfessionsSettingsπ︎
Enable normalization of job titles using our proprietary taxonomy and international standards.
ProfessionsSettings properties
Normalize π︎ bool
Normalizeπ︎
When true, the most recent 3 job titles will be normalized. This includes a proprietary value from our profession taxonomy, plus ONET and ISCO mappings. Read more about the benefits of using a professions taxonomy.
When enabling professions normalization, additional charges apply.
The following languages are supported: Chinese (simplified and traditional), Croatian, Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hebrew, Hungarian, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Turkish. For documents in other languages, no normalized values will be returned.
For Textkernel Search & Match, normalized professions are automatically indexed and used when profession normalization is enabled during parsing (through IndexingOptions). To leverage profession normalization for user-created searches, enable profession normalization at query time.
The professions taxonomy and the mappings are compatible with the taxonomies used in Textkernel's Skills Intelligence APIs and Jobfeed, enabling standardization of taxonomies across all of your data and benchmarking against jobs posted online.
FlexRequests π︎ object[]
FlexRequestsπ︎
Custom requests to ask during parsing. See the FlexRequests documentation for more details.
FlexRequests properties
Identifier π︎ string required
Identifierπ︎
Unique field name to be returned alongside the reply in the response
Sample JSON
json
{
"DocumentAsBase64String": "",
"RevisionDate": "",
"OutputHtml": false,
"OutputRtf": false,
"OutputPdf": false,
"UseLLMParser": false,
"OutputCandidateImage": false,
"Configuration": "",
"SkillsData": [
""
],
"NormalizerData": "",
"GeocodeOptions": {
"IncludeGeocoding": false,
"Provider": "",
"ProviderKey": "",
"PostalAddress": {
"CountryCode": "",
"PostalCode": "",
"Region": "",
"Municipality": "",
"AddressLine": ""
},
"GeoCoordinates": {
"Latitude": 0,
"Longitude": 0
}
},
"IndexingOptions": {
"IndexId": "",
"DocumentId": "",
"CustomIds": [
""
]
},
"SkillsSettings": {
"Normalize": false,
"TaxonomyVersion": ""
},
"ProfessionsSettings": {
"Normalize": false
},
"FlexRequests": [
{
"Prompt": "",
"Identifier": "",
"DataType": "",
"EnumerationValues": [
""
]
}
]
}
Response Bodyπ︎
Info π︎ object
Infoπ︎
Explains the outcome of the transaction.
Info properties
Code π︎ string
Codeπ︎
| Code | Description |
|---|---|
Success |
Successful transaction |
WarningsFoundDuringParsing |
Parsing was successful. This is not an error code. This is an advanced level message about the document, not about the parsing. For more information, refer to the ResumeQuality section in the parsed document output and to the documentation here. |
PossibleTruncationFromTimeout |
The timeout occurred before the document was finished parsing which can result in truncation |
Timeout |
The transaction reached its timeout limit |
ConversionException |
There was an issue converting the document |
MissingParameter |
A required parameter wasn't provided |
InvalidParameter |
A parameter was incorrectly specified |
AuthenticationError |
An error occurred with the credentials provided |
Value π︎ object
Valueπ︎
Contains response data for the transaction.
Value properties
ScrubbedParsedDocument π︎ string
ScrubbedParsedDocumentπ︎
This property is the Value.ParsedDocument with all of the Personally Identifiable Information (PII) fields such as first name, last name, email addresses, phone numbers, etc. scrubbed out.
FileType π︎ string
FileTypeπ︎
The input file type that was submitted through the ParseResumeRequest.
TextCode π︎ string
TextCodeπ︎
A response code indicating the status of the conversion to text. See Document Conversion Result Codes for a complete list.
Html π︎ string
Htmlπ︎
HTML version of the input file, if OutputHtml was set to true. Any HTML elements containing known PII will have the class tx-redacted. Below is some example CSS that can be used when displaying the HTML if you want to hide the elements containing known PII. Note that tech-saavy users would still be able to inspect the source HTML to see the redacted data. To fully prevent this, you would need to process the HTML and remove these elements prior to delivering the HTML to your users.
Sample CSS
css
.tx-redacted,
.tx-redacted *
{
background-color: black !important; /* make the background of the redacted elements black */
color: black !important; /* make the foreground of the redacted elements black */
pointer-events: none !important; /* disable any links in the redacted elements */
user-select: none !important; /* do not allow the user to select/copy text within the redacted elements */
}
HtmlCode π︎ string
HtmlCodeπ︎
A response code indicating the status of the conversion to HTML. See Document Conversion Result Codes for a complete list.
RtfCode π︎ string
RtfCodeπ︎
A response code indicating the status of the conversion to RTF. See Document Conversion Result Codes for a complete list.
Pdf π︎ string
Pdfπ︎
The base 64 encoded string of the PDF version of the input file, if OutputPdf was set to true.
PdfCode π︎ string
PdfCodeπ︎
A response code indicating the status of the conversion to PDF. See Document Conversion Result Codes for a complete list.
CandidateImage π︎ string
CandidateImageπ︎
If a candidate photo was extracted, it will be output in this field as a base 64 encoded string of the byte array.
CandidateImageExtension π︎ string
CandidateImageExtensionπ︎
If a candidate photo was extracted, the appropriate file extension for the photo will be output for this field (e.g. ".png").
CreditsRemaining π︎ decimal
CreditsRemainingπ︎
The number of remaining credits is returned with every response. Please ensure that you set up monitoring of this value to ensure that you don't experience an outage by letting your credits reach 0.
GeocodeResponse π︎ object
GeocodeResponseπ︎
If Request.GeocodeOptions.IncludeGeocoding is set to true (thus geocoding is executed), this object will be populated with a response.
GeocodeResponse properties
IndexingResponse π︎ object
IndexingResponseπ︎
If Request.IndexingOptions contains any specified parameters, this object will be populated with a response.
IndexingResponse properties
Message π︎ string
Messageπ︎
Maps to the Response.Message parameter of a Index a Document Transaction.
ProfessionNormalizationResponse π︎ object
ProfessionNormalizationResponseπ︎
If profession normalization was requested in the ProfessionsSettings.Normalize the status of the profession normalization transaction will be output here.
ProfessionNormalizationResponse properties
FlexResponse π︎ object
FlexResponseπ︎
Information about the FlexRequests transaction, if any were provided.
FlexResponse properties
Code π︎ string
Codeπ︎
| Code | Description |
|---|---|
Success |
Successful transaction |
MissingParameter |
A required parameter wasn't provided |
InvalidParameter |
A parameter was incorrectly specified |
Sample JSON
json
{
"Info": {
"Code": "",
"Message": ""
},
"Value": {
"ParsedDocument": "",
"ScrubbedParsedDocument": "",
"FileType": "",
"Text": "",
"TextCode": "",
"Html": "",
"HtmlCode": "",
"Rtf": "",
"RtfCode": "",
"Pdf": "",
"PdfCode": "",
"CandidateImage": "",
"CandidateImageExtension": "",
"FileExtension": "",
"CreditsRemaining": 0,
"GeocodeResponse": {
"Code": "",
"Message": ""
},
"IndexingResponse": {
"Code": "",
"Message": ""
},
"ProfessionNormalizationResponse": {
"Code": "Success",
"Message": "string"
},
"FlexResponse": {
"Code": "Success",
"Message": "string",
"Responses": [
{
"Identifier": "string",
"Reply": "string",
"ReplyList": [
"string"
]
}
]
}
}
}