Supported Resume Formats
We use Gotenberg for document conversion, supporting a wide range of formats:Document Formats
| Format | Extension | Notes |
|---|---|---|
.pdf | Preferred - no conversion needed | |
| Microsoft Word | .doc, .docx, .docm | Fully supported |
| OpenDocument | .odt | Full support |
| Rich Text | .rtf | Full support |
| Plain Text | .txt | Full support |
| Apple Pages | .pages | Full support |
| HTML | .html, .htm | Full support |
Image Formats
| Format | Extension | Notes |
|---|---|---|
| PNG | .png | OCR applied |
| JPEG | .jpg, .jpeg | OCR applied |
| TIFF | .tiff | OCR applied |
| BMP | .bmp | OCR applied |
PDF is preferred as it requires no conversion and preserves formatting best. However,
.docx and .doc are fully supported and commonly used.File Size Limits
| Limit | Value |
|---|---|
| Maximum file size | 10 MB |
| Maximum pages | 50 pages |
Pre-signed URL Requirements
TheresumeUrl must be a pre-signed URL that allows unauthenticated access.
Requirements
HTTPS - HTTP URLs are rejected
Valid for 2+ hours - We recommend 24 hours for safety
Publicly accessible - No authentication required
Direct download - Should return the file, not a redirect to a login page
URL Expiry
| Setting | Recommendation |
|---|---|
| Minimum expiry | 2 hours |
| Recommended expiry | 24 hours |
| Typical processing time | Under 5 minutes |
We recommend 24-hour expiry because retry scenarios may delay processing. Longer expiry has no downside.
Generating Pre-signed URLs
- AWS S3
- Google Cloud Storage
- Azure Blob Storage
Common Issues
RESUME_FETCH_FAILED - URL expired
RESUME_FETCH_FAILED - URL expired
Cause: The pre-signed URL expired before we could fetch it.Solution: Generate URLs with longer expiry (24 hours recommended).
RESUME_FETCH_FAILED - Access denied
RESUME_FETCH_FAILED - Access denied
Cause: The URL requires authentication or the signature is invalid.Solutions:
- Verify the pre-signing credentials are correct
- Check bucket/blob permissions allow public read with signed URLs
- Test the URL in an incognito browser window
RESUME_FETCH_FAILED - Connection timeout
RESUME_FETCH_FAILED - Connection timeout
Cause: Network issues between Nova and your storage provider.Solutions:
- Ensure your storage is in a supported region
- Check for firewall rules blocking our IP ranges
- Retry the request - may be transient
RESUME_ENCRYPTED - Password-protected PDF
RESUME_ENCRYPTED - Password-protected PDF
Cause: The PDF file is encrypted or password-protected.Details: We detect encryption by looking for
/Encrypt markers, security handler flags, and other encryption indicators in the PDF structure.Solutions:- Request an unprotected version of the resume from the candidate
- Remove password protection before uploading (if you have the password)
- This is not retryable - the file must be replaced
RESUME_CORRUPTED - Invalid PDF structure
RESUME_CORRUPTED - Invalid PDF structure
Cause: The PDF file is corrupted or malformed. This can happen when:
- The file is missing the
%PDF-header (not a valid PDF) - The file is missing the
%%EOFend marker (truncated/incomplete) - The URL returned an error page instead of the actual file (e.g., HTML error page, XML access denied response)
- Verify the file opens correctly in a PDF reader locally
- Re-upload the file if it was corrupted during transfer
- Check that your pre-signed URL returns the actual file, not an error page
- If the storage returns HTML/XML errors, check bucket permissions
RESUME_PARSE_FAILED - Unsupported format
RESUME_PARSE_FAILED - Unsupported format
Cause: File extension doesn’t match actual content, or format is not supported.Solutions:
- Verify the file opens correctly locally
- Check the file extension matches the content
- Convert to PDF if using an unusual format
RESUME_EMPTY - No extractable content
RESUME_EMPTY - No extractable content
Cause: The file appears empty or contains only images without text.Solutions:
- Verify the file isn’t corrupted
- For image-only PDFs, we apply OCR but results may be poor
- Consider asking candidates to upload text-based formats
Best Practices
Accept PDF primarily
Encourage candidates to upload PDF for best results
Validate before upload
Check file size and format on your end before storing
Use long URL expiry
24 hours prevents retry failures from expired URLs
Test your URL generation
Verify URLs work in incognito mode before integration