Skip to content

Make integration · HTTP module

Parse resumes in Make scenarios

Make’s HTTP module can send a CV to HireLayer and map the JSON it gets back, with no custom app to install. Combine it with Gmail, Google Drive, Google Sheets, Slack or your ATS to screen candidates automatically.

Module
HTTP › Make a request
Authentication
API key in the X-API-Key header
Timeout to set
300 seconds (parsing takes about 35)
Cost
1 credit per successful call
Make + HireLayer
  1. 1Watch emails or filesMakeGmail Watch emails with attachments, Google Drive Watch files, or a webhook from a form.
  2. 2HTTP › Make a requestHireLayerPOST the file to /api/v3/parser as multipart/form-data. HireLayer answers with the candidate JSON.
  3. 3Score against the jobHireLayerA second HTTP module calls the matching API with the resume text and your job description.
  4. 4Write the resultsMakeGoogle Sheets Add a row, Slack Create a message, or the update module of your ATS.

Use cases

Scenarios teams run with HireLayer and Make

  • Shared CV inbox to a spreadsheet

    Gmail Watch emails → Iterator on attachments → HTTP Make a request to HireLayer → Google Sheets Add a row with name, email, phone, job title and skills.

  • Score every application

    Parse the CV, then send the resume text and the job description to the matching API. A router sends scores above 0.7 to the hiring manger and files the rest.

  • Folder of CVs to a ranked shortlist

    Google Drive Search files → Download a file → parse each CV → Array aggregator → one ranking call with up to 10 candidates, each with a rationale.

  • Clean skills for reporting

    Send free-text skills to the skills API and store standard names, so “React.js” and “ReactJS” count as the same skil in your dashboards.

Setup

Configure the HTTP module

You need a Make account and a HireLayer API key (free plan: 50 credits a month, no card).

  1. 1

    Add a keychain for your API key

    Add an HTTP › Make a request module. In Authentication type choose API key, create a keychain, set the key placement to the header, the header name to X-API-Key, and paste your HireLayer key.

  2. 2

    Set the request

    URL https://hirelayer.co/api/v3/parser, method POST, body content type multipart/form-data. Add a File field named file and map the file name and data from the previous module, for example a Gmail attachment.

    HTTP › Make a requesttext
    URL                https://hirelayer.co/api/v3/parser
    Method             POST
    Authentication     API key (header X-API-Key)
    Body content type  multipart/form-data
    Fields             file            ← File: name + data from the trigger
                       application_id  ← optional, your reference
    Parse response     Yes
    Timeout            300
  3. 3

    Raise the timeout

    Set Timeout to 300 seconds, the maximum Make allows. Parsing usually takes about 35 seconds and can take more than a minute on long scanned files.

  4. 4

    Map the response

    Turn on Parse response and run the module once: the data structure appears, and fields like info_candidate.full_name or info_resume.text become available to the next modules.

Field mapping

Response fields to map

HireLayer fieldMake mapping (module 2 = HTTP)Note
info_candidate.full_name{{2.data.info_candidate.full_name}}
info_candidate.email{{2.data.info_candidate.email}}
info_candidate.phone_number{{2.data.info_candidate.phone_number}}
info_candidate.job_title{{2.data.info_candidate.job_title}}
skills[].skill_title{{join(map(2.data.skills; "skill_title"); ", ")}}
info_resume.text{{2.data.info_resume.text}}Input of the matching call

Example

Score the parsed candidate

Add a second HTTP › Make a request module with the same keychain, body type Raw and content type JSON. Extract the criteria once per job with /api/v1/jobs/extract-criteria and paste them into matching_criteria, so every applicant is scored on the same list.

POST https://hirelayer.co/api/v1/matching/job-candidatejson
{
  "job_text": "Senior React Developer, Paris. 5+ years of React and TypeScript…",
  "candidate_text": "{{2.data.info_resume.text}}",
  "matching_criteria": [
    {
      "id": "crit_1",
      "label": "Maîtrise de React",
      "weight": 3,
      "is_mandatory": true,
      "rationale": "React est explicitement exigé pour le poste."
    }
  ]
}

Limits

Good to know

  • Default timeouts are too short

    A request left at a short timeout fails on most CVs. Allways set 300 seconds on the parsing module; the JSON APIs answer in a few seconds.

  • Escape the resume text

    Resume text contains quotes and line breaks. In a Raw JSON body, wrap mapped text with Make’s escape functions, or build the body with a JSON › Create JSON module.

  • File size

    HireLayer accepts files up to about 4.5 MB, below the 5 MB file limit of Make’s free plan, so any plan works.

  • Results written in French

    Criteria, match summaries and ranking rationales are in French; scores and field names are language-neutral.

FAQ

HireLayer and Make: questions

Is there a HireLayer app in Make?

Not in Make’s public app list yet. The HTTP › Make a request module covers every HireLayer API today: parsing, criteria extraction, matching, ranking and skills.

How do I send a file to an API from Make?

In HTTP › Make a request, choose multipart/form-data as the body content type, add a field of type File named file, and map the file name and data from the module that produced the file.

Why does the HTTP module time out?

Resume parsing takes about 35 seconds, sometimes more than a minute for long scans. Set the module timeout to 300 seconds.

Can I parse attachments from Gmail or Outlook?

Yes. Watch emails, iterate over the attachments, and send each one to HireLayer. Filter on the file extension to skip images in signatures.

Is candidate data stored by HireLayer?

Add a do_not_store_data field set to true and HireLayer keeps no copy of the file; the parsed data is still returned. Processing runs in the EU.

Connect Make to HireLayer today

The Free plan includes 50 credits a month, no card required. One successful call is one credit, on every API.