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
{
"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,
"Version": {
"ONET": "2019"
}
},
"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.
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
{
"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"
]
}
]
}
}
}