Skip to content

Data and account

Resume database

List, read, store under your own ids and erase the resumes of a workspace: every resume parsed, scored or stored there.

The resume database of a workspace holds every resume parsed by the Resume Parser, sent to the Resume Scorer or stored with PUT /resumes/{application_id}, under its application_id. Talent Pool Search searches it, and the Resume Scorer and Job Recommendations read a resume by its id. These endpoints are free.

GET/api/v4/resumes

The resume database of the workspace, most recently stored first. Free.

Authentication
X-API-Key header
Billing
Free
Client timeout
Client timeout ≥ 30 s

Headers

  • HireLayer-Workspacestring

    Your customer's workspace id. Case-insensitive, created on first use. Absent, calls use default.

Query parameters

  • limitinteger

    Page size.

    1–100 · default 20

  • cursorstring

    The next_cursor of the previous page.

  • added_afterstring (date-time)

    Only resumes stored at or after this time.

Response

200A page of resumes.

  • dataobject[]
    ›Show 6 child fields
    • application_idstring
    • file_namestring | null

      Name of the file the resume was parsed from, as sent. null for a resume sent as a text or a parsed JSON.

    • candidate_namestring | nullmay be absent
    • job_titlestring | nullmay be absent
    • created_atstring (date-time)
    • updated_atstring (date-time)
  • next_cursorstring | null

Errors

  • 400
    invalid_requestlimit must be an integer from 1 to 100.

    param: limit. limit out of range.

    Fix, then retry

  • 400
    invalid_requestcursor is not a next_cursor returned by this API.

    param: cursor. cursor is not a next_cursor of this list.

    Fix, then retry

  • 400
    invalid_requestadded_after must be a date or a date-time.

    param: added_after. added_after is not a date.

    Fix, then retry

  • 400
    invalid_requestHireLayer-Workspace must contain letters, digits and . _ : ~ -, up to 200 characters.

    param: HireLayer-Workspace. HireLayer-Workspace is not a valid id.

    Fix, then retry

  • 401
    missing_api_keyThe X-API-Key header is missing.

    No X-API-Key header.

    Fix, then retry

  • 401
    missing_api_keyAuthorization: Bearer is not accepted: send the key in the X-API-Key header.

    The key sent as Authorization: Bearer: it goes in X-API-Key.

    Fix, then retry

  • 401
    missing_api_keyThe key goes in the X-API-Key header, not in the URL.

    The key sent in the URL: it goes in X-API-Key.

    Fix, then retry

  • 401
    invalid_api_keyInvalid API key: it is unknown, malformed or revoked.

    The key is unknown, malformed or revoked.

    Fix, then retry

  • 500
    internal_errorInternal error: retry later. If it persists, contact support with the request_id.

    An unexpected error.

    Retry with backoff

  • 502
    internal_errorThe service could not be reached: retry later.

    The service could not be reached.

    Retry with backoff

  • 503
    internal_errorThe credit service is briefly unavailable: retry in a second.

    The credit service is briefly unavailable. Header Retry-After: <seconds>.

    Retry with backoff

  • 504
    internal_errorThe service did not answer in time. The change may still be applied: read it before sending it again.

    No answer in time.

    Retry with backoff

curl -g "https://hirelayer.co/api/v4/resumes?limit=20" \
  -H "X-API-Key: $HIRELAYER_API_KEY"
{
  "error": {
    "code": "invalid_request",
    "message": "limit must be an integer from 1 to 100.",
    "param": "limit",
    "doc_url": "https://hirelayer.co/api-docs/errors#invalid_request"
  },
  "request_id": "6f1c2a4e-1d2b-4c3a-9e8f-0a1b2c3d4e5f"
}
GET/api/v4/resumes/{application_id}

Get a stored resume.

Authentication
X-API-Key header
Billing
Free
Client timeout
Client timeout ≥ 30 s

Path parameters

  • application_idstringrequired

    The resume's id, including one returned by the legacy /api/v3/parser in info_resume.application_id.

Headers

  • HireLayer-Workspacestring

    Your customer's workspace id. Case-insensitive, created on first use. Absent, calls use default.

Response

200The stored resume.

  • application_idstring
  • workspacestring
  • file_namestring | nullmay be absent

    Name of the file the resume was parsed from, as sent. null for a resume sent as a text or a parsed JSON.

  • textstring

    The resume's plain text.

  • resumeParsedResume | null

    The structured resume, null when only plain text was stored.

  • job_idsstring[]

    Jobs the resume was scored against.

  • created_atstring (date-time)
  • updated_atstring (date-time)

Errors

  • 400
    invalid_requestapplication_id must contain letters, digits and . _ : ~ -, up to 200 characters.

    param: application_id. application_id in the path is not a valid id.

    Fix, then retry

  • 400
    invalid_requestHireLayer-Workspace must contain letters, digits and . _ : ~ -, up to 200 characters.

    param: HireLayer-Workspace. HireLayer-Workspace is not a valid id.

    Fix, then retry

  • 401
    missing_api_keyThe X-API-Key header is missing.

    No X-API-Key header.

    Fix, then retry

  • 401
    missing_api_keyAuthorization: Bearer is not accepted: send the key in the X-API-Key header.

    The key sent as Authorization: Bearer: it goes in X-API-Key.

    Fix, then retry

  • 401
    missing_api_keyThe key goes in the X-API-Key header, not in the URL.

    The key sent in the URL: it goes in X-API-Key.

    Fix, then retry

  • 401
    invalid_api_keyInvalid API key: it is unknown, malformed or revoked.

    The key is unknown, malformed or revoked.

    Fix, then retry

  • 404
    not_foundNo resume cand-42 in workspace default.

    param: application_id. No resume under this id in the workspace.

    Do not retry

  • 500
    internal_errorInternal error: retry later. If it persists, contact support with the request_id.

    An unexpected error.

    Retry with backoff

  • 502
    internal_errorThe service could not be reached: retry later.

    The service could not be reached.

    Retry with backoff

  • 503
    internal_errorThe credit service is briefly unavailable: retry in a second.

    The credit service is briefly unavailable. Header Retry-After: <seconds>.

    Retry with backoff

  • 504
    internal_errorThe service did not answer in time. The change may still be applied: read it before sending it again.

    No answer in time.

    Retry with backoff

# Example ids: replace file_2c982f413a5e9e79563f8a1fcb5c7caa with an application_id returned by POST /api/v4/resumes/parse.
curl https://hirelayer.co/api/v4/resumes/file_2c982f413a5e9e79563f8a1fcb5c7caa \
  -H "X-API-Key: $HIRELAYER_API_KEY"
{
  "error": {
    "code": "invalid_request",
    "message": "application_id must contain letters, digits and . _ : ~ -, up to 200 characters.",
    "param": "application_id",
    "doc_url": "https://hirelayer.co/api-docs/errors#invalid_request"
  },
  "request_id": "6f1c2a4e-1d2b-4c3a-9e8f-0a1b2c3d4e5f"
}
PUT/api/v4/resumes/{application_id}

Stores under your application_id a resume you already have as text, or as the parsed resume JSON of POST /resumes/parse. Replaces the resume stored before. When its text changes, its scores become stale and are evaluated again only when asked; the same text sent again leaves them as they are. Free. To store a file, use POST /resumes/parse with application_id.

Authentication
X-API-Key header
Billing
Free
Client timeout
Client timeout ≥ 60 s

Path parameters

  • application_idstringrequired

    The resume's id, including one returned by the legacy /api/v3/parser in info_resume.application_id.

Headers

  • HireLayer-Workspacestring

    Your customer's workspace id. Case-insensitive, created on first use. Absent, calls use default.

Request body

Content type application/json

Send exactly one of text or resume.

  • textstring

    The resume as plain text.

    1–50,000 characters

  • resumeobject

    The parsed resume JSON, from POST /resumes/parse (resume) or the legacy /api/v3/parser, kept as is, 1 MB at most (413), arrays and objects nested 100 levels deep at most (400).

Response

200Replaced.

  • application_idstring
  • workspacestring
  • file_namestring | nullmay be absent

    Name of the file the resume was parsed from, as sent. null for a resume sent as a text or a parsed JSON.

  • textstring

    The resume's plain text.

  • resumeParsedResume | null

    The structured resume, null when only plain text was stored.

  • job_idsstring[]

    Jobs the resume was scored against.

  • created_atstring (date-time)
  • updated_atstring (date-time)

201Created.

  • application_idstring
  • workspacestring
  • file_namestring | nullmay be absent

    Name of the file the resume was parsed from, as sent. null for a resume sent as a text or a parsed JSON.

  • textstring

    The resume's plain text.

  • resumeParsedResume | null

    The structured resume, null when only plain text was stored.

  • job_idsstring[]

    Jobs the resume was scored against.

  • created_atstring (date-time)
  • updated_atstring (date-time)

Errors

  • 400
    invalid_requesttext or resume is required.

    param: text. Neither text nor resume, or both.

    Fix, then retry

  • 400
    invalid_requesttext must be a string.

    param: text. text is not a string.

    Fix, then retry

  • 400
    invalid_requestresume must be the JSON object returned by the Resume Parser.

    param: resume. resume is not a parsed resume, or has no info_resume.text.

    Fix, then retry

  • 400
    invalid_requestapplication_id must contain letters, digits and . _ : ~ -, up to 200 characters.

    param: application_id. application_id in the path is not a valid id.

    Fix, then retry

  • 400
    invalid_requestUnknown field candidate.

    param: candidate. A field the call does not take.

    Fix, then retry

  • 400
    invalid_requestThe request body is not valid JSON.

    The body is not valid JSON, not an object, or not sent as application/json.

    Fix, then retry

  • 400
    invalid_requestHireLayer-Workspace must contain letters, digits and . _ : ~ -, up to 200 characters.

    param: HireLayer-Workspace. HireLayer-Workspace is not a valid id.

    Fix, then retry

  • 400
    storage_requiredThis workspace runs without storage (do_not_store_data): nothing can be stored in it.

    param: HireLayer-Workspace. The workspace runs without storage, and the call would store something in it.

    Do not retry

  • 401
    missing_api_keyThe X-API-Key header is missing.

    No X-API-Key header.

    Fix, then retry

  • 401
    missing_api_keyAuthorization: Bearer is not accepted: send the key in the X-API-Key header.

    The key sent as Authorization: Bearer: it goes in X-API-Key.

    Fix, then retry

  • 401
    missing_api_keyThe key goes in the X-API-Key header, not in the URL.

    The key sent in the URL: it goes in X-API-Key.

    Fix, then retry

  • 401
    invalid_api_keyInvalid API key: it is unknown, malformed or revoked.

    The key is unknown, malformed or revoked.

    Fix, then retry

  • 413
    payload_too_largetext must be 50,000 characters or less.

    param: text. The text is over 50,000 characters.

    Fix, then retry

  • 413
    payload_too_largeresume must be 1 MB or less.

    param: resume. The parsed resume is over 1 MB.

    Fix, then retry

  • 413
    payload_too_largeThe request body must be 10 MB or less.

    The body is over 10 MB.

    Fix, then retry

  • 500
    internal_errorInternal error: retry later. If it persists, contact support with the request_id.

    An unexpected error.

    Retry with backoff

  • 502
    internal_errorThe service could not be reached: retry later.

    The service could not be reached.

    Retry with backoff

  • 503
    internal_errorThe credit service is briefly unavailable: retry in a second.

    The credit service is briefly unavailable. Header Retry-After: <seconds>.

    Retry with backoff

  • 504
    internal_errorThe service did not answer in time. The change may still be applied: read it before sending it again.

    No answer in time.

    Retry with backoff

curl -X PUT https://hirelayer.co/api/v4/resumes/cand-1042 \
  -H "X-API-Key: $HIRELAYER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Alex Morgan, Senior Software Engineer in Paris. 7 years of Node.js and TypeScript…"
  }'
{
  "error": {
    "code": "invalid_request",
    "message": "text or resume is required.",
    "param": "text",
    "doc_url": "https://hirelayer.co/api-docs/errors#invalid_request"
  },
  "request_id": "6f1c2a4e-1d2b-4c3a-9e8f-0a1b2c3d4e5f"
}
DELETE/api/v4/resumes/{application_id}

Erases the resume, its file and all its scores (GDPR erasure). Erasing a resume that does not exist is not an error. Free.

Authentication
X-API-Key header
Billing
Free
Client timeout
Client timeout ≥ 30 s

Path parameters

  • application_idstringrequired

    The resume's id, including one returned by the legacy /api/v3/parser in info_resume.application_id.

Headers

  • HireLayer-Workspacestring

    Your customer's workspace id. Case-insensitive, created on first use. Absent, calls use default.

Response

204Erased.

Errors

  • 400
    invalid_requestapplication_id must contain letters, digits and . _ : ~ -, up to 200 characters.

    param: application_id. application_id in the path is not a valid id.

    Fix, then retry

  • 400
    invalid_requestHireLayer-Workspace must contain letters, digits and . _ : ~ -, up to 200 characters.

    param: HireLayer-Workspace. HireLayer-Workspace is not a valid id.

    Fix, then retry

  • 401
    missing_api_keyThe X-API-Key header is missing.

    No X-API-Key header.

    Fix, then retry

  • 401
    missing_api_keyAuthorization: Bearer is not accepted: send the key in the X-API-Key header.

    The key sent as Authorization: Bearer: it goes in X-API-Key.

    Fix, then retry

  • 401
    missing_api_keyThe key goes in the X-API-Key header, not in the URL.

    The key sent in the URL: it goes in X-API-Key.

    Fix, then retry

  • 401
    invalid_api_keyInvalid API key: it is unknown, malformed or revoked.

    The key is unknown, malformed or revoked.

    Fix, then retry

  • 500
    internal_errorInternal error: retry later. If it persists, contact support with the request_id.

    An unexpected error.

    Retry with backoff

  • 502
    internal_errorThe service could not be reached: retry later.

    The service could not be reached.

    Retry with backoff

  • 503
    internal_errorThe erasure could not be finished: send the same call again to finish it.

    An erasure could not be finished: the same call finishes it. Header Retry-After: <seconds>.

    Retry with backoff

  • 504
    internal_errorThe service did not answer in time. The change may still be applied: read it before sending it again.

    No answer in time.

    Retry with backoff

curl -X DELETE https://hirelayer.co/api/v4/resumes/cand-1042 \
  -H "X-API-Key: $HIRELAYER_API_KEY"
{
  "error": {
    "code": "invalid_request",
    "message": "application_id must contain letters, digits and . _ : ~ -, up to 200 characters.",
    "param": "application_id",
    "doc_url": "https://hirelayer.co/api-docs/errors#invalid_request"
  },
  "request_id": "6f1c2a4e-1d2b-4c3a-9e8f-0a1b2c3d4e5f"
}