Alchemy RecipeBeginnerworkflow

Job vacancy to recruiter briefing document automation

Published

Recruitment teams spend enormous amounts of time on a task that could be almost entirely automated: taking a job vacancy and producing a recruiter briefing document. The typical workflow involves copying job details, summarising key responsibilities, extracting essential requirements, and formatting everything into a document that new recruiters can actually use. Each step is manual. Each step is repetitive. Each step introduces room for human error or inconsistency....... For more on this, see Automated legal document review and client summary genera....

The problem becomes more acute as hiring velocity increases. A team managing five open roles might spend 3-4 hours per week just on this administrative work. Scale that to twenty roles, and you're looking at a full working day disappearing into document preparation that adds no strategic value.

This guide shows you how to wire together three AI tools into an automated pipeline that turns a job posting into a polished recruiter briefing in seconds. You'll use Chat with PDF to extract structured information from vacancy documents, Resoomer AI to summarise dense job descriptions into digestible sections, and Wordsmith AI to craft the final briefing document with consistent formatting and tone. The entire workflow runs without manual handoff.

The Automated Workflow

We'll build this workflow using n8n, which offers excellent free tier support, good visibility into data flows, and native integrations with most of these tools. Zapier and Make (Integromat) will work equally well; I've noted the equivalent steps for those platforms at the end.

Understanding the Data Flow

The workflow follows this sequence:

  1. A recruitment coordinator uploads a job vacancy PDF to a shared folder or emails it to a webhook endpoint.

  2. The file is sent to Chat with PDF, which extracts structured job details (title, department, responsibilities, required skills, salary range, location).

  3. The extracted data is passed to Resoomer AI, which summarises the responsibilities and requirements sections into more concise prose suitable for a briefing document.

  4. Finally, Wordsmith AI takes all the processed information and generates a polished recruiter briefing document with consistent formatting and tone.

  5. The finished document is saved to a shared drive and a notification is sent to the recruiting manager.

Setting Up n8n

Start by creating a new workflow in n8n. You'll need accounts with each service and API keys ready.

Step 1:

Trigger and File Handling

Create an HTTP webhook trigger that accepts file uploads. This allows recruitment coordinators to upload vacancy PDFs directly, or you can trigger this via email using n8n's Email trigger node (if your n8n instance supports it).


{
  "trigger": "HTTP POST",
  "endpoint": "/webhook/vacancy-upload",
  "method": "POST",
  "expects": {
    "file": "binary PDF",
    "jobTitle": "string",
    "department": "string"
  }
}

In your n8n workflow, start with the HTTP Request node set to Listen for incoming data. Configure it to accept binary file uploads. Store the file reference for the next step.

Step 2:

Extract Job Details with Chat with PDF

Chat with PDF by Copilotus provides an API endpoint for processing PDF documents and extracting structured information. You'll need your API key from the Copilotus dashboard.

In n8n, add a Function node to prepare the request:

return {
  "file": $node["HTTP Request"].binary.file,
  "prompt": "Extract the following information from this job vacancy: job title, department, key responsibilities (as a bullet list), required skills, preferred skills, salary range, location, employment type, and reporting structure. Return as structured JSON."
};

Now add an HTTP Request node to call Chat with PDF:


Method: POST
URL: https://api.copilotus.com/chat-with-pdf/extract
Headers:
  Authorization: Bearer YOUR_COPILOTUS_API_KEY
  Content-Type: application/json

Body (JSON):
{
  "file_url": "{{ $node.FunctionNode.json.file }}",
  "prompt": "{{ $node.FunctionNode.json.prompt }}",
  "response_format": "json"
}

The API returns structured JSON with all extracted fields. Map these to variables you'll use in the next step:


jobTitle: response.job_title
department: response.department
responsibilities: response.responsibilities
requiredSkills: response.required_skills
preferredSkills: response.preferred_skills
salaryRange: response.salary_range
location: response.location
employmentType: response.employment_type

Step 3:

Summarise Content with Resoomer AI

Resoomer AI excels at condensing lengthy text. You'll use it to produce tight summaries of responsibilities and requirements sections. This keeps your final briefing document concise and scannable.

Add another HTTP Request node for Resoomer:


Method: POST
URL: https://api.resoomer.com/summarize
Headers:
  Authorization: Bearer YOUR_RESOOMER_API_KEY
  Content-Type: application/json

Body (JSON):
{
  "text": "{{ $node['Chat with PDF'].json.responsibilities }}",
  "language": "en",
  "summary_length": "medium"
}

Resoomer returns a summarised version of the responsibilities. Store this as responsibilitiesSummary. Repeat the process for required skills:


Method: POST
URL: https://api.resoomer.com/summarize
Headers:
  Authorization: Bearer YOUR_RESOOMER_API_KEY
  Content-Type: application/json

Body (JSON):
{
  "text": "{{ $node['Chat with PDF'].json.required_skills }}",
  "language": "en",
  "summary_length": "short"
}

Store the output as skillsSummary.

Step 4:

Generate the Final Document with Wordsmith AI

Wordsmith AI handles the final composition. It takes all your processed data and creates a polished, ready-to-distribute recruiter briefing document. This is where the workflow produces its output.

Create a Set node to compile all data into a single object:

{
  "jobTitle": "{{ $node['Chat with PDF'].json.job_title }}",
  "department": "{{ $node['Chat with PDF'].json.department }}",
  "location": "{{ $node['Chat with PDF'].json.location }}",
  "employmentType": "{{ $node['Chat with PDF'].json.employment_type }}",
  "salaryRange": "{{ $node['Chat with PDF'].json.salary_range }}",
  "responsibilities": "{{ $node['Resoomer Responsibilities'].json.summary }}",
  "skills": "{{ $node['Resoomer Skills'].json.summary }}",
  "preferredSkills": "{{ $node['Chat with PDF'].json.preferred_skills }}"
}

Now add an HTTP Request node for Wordsmith:


Method: POST
URL: https://api.wordsmith.ai/generate/document
Headers:
  Authorization: Bearer YOUR_WORDSMITH_API_KEY
  Content-Type: application/json

Body (JSON):
{
  "template": "recruiter_briefing",
  "data": {{ $node['Compiled Data'].json }},
  "style": "professional",
  "tone": "direct",
  "output_format": "markdown"
}

The Wordsmith API returns a fully formatted recruiter briefing document. Here's an example of what you'd receive:


**Department:** Product Management
**Location:** London, United Kingdom
**Employment Type:** Full-time, Permanent
**Salary Range:** £75,000 – £95,000

## Role Overview
Seeking an experienced Senior Product Manager to lead our flagship customer platform. This role requires strategic thinking, stakeholder management, and a track record of delivering user-focused products.

## Key Responsibilities
- Own product strategy and roadmap for the customer platform
- Collaborate with engineering, design, and marketing teams
- Analyse user data and market trends to inform decisions
- Manage product launches and post-launch optimisation
- Mentor junior product team members

## Required Skills
- 5+ years in product management or related role
- Strong analytical and problem-solving abilities
- Experience with agile methodologies
- Excellent stakeholder communication
- Data-driven decision-making experience

## Preferred Skills
- Background in B2B SaaS
- Experience with mobile and web applications
- Knowledge of customer analytics tools

Step 5:

Save and Notify

Add a Google Drive node to save the generated document:


Action: Create a file
Parent Folder: YOUR_SHARED_DRIVE_FOLDER_ID
File Name: "Briefing - {{ $node['Chat with PDF'].json.job_title }} - {{ now.format('YYYY-MM-DD') }}"
File Type: text/markdown
Content: {{ $node['Wordsmith'].json.document }}

Finally, add an Email node to notify the recruiting manager:


To: recruiting_manager@company.com
Subject: Recruiter Briefing Ready: {{ $node['Chat with PDF'].json.job_title }}
Body: "Your recruiter briefing document has been generated and saved to the shared drive. Link: {{ $node['Google Drive'].json.webViewLink }}"

Enable error handling at each step using n8n's Error Handling feature. Set up a fallback email notification that alerts you if any step fails, with details of what went wrong.

Using Zapier Instead

If you prefer Zapier, the equivalent setup is:

  1. Trigger: Zapier's built-in File Upload or Gmail with attachment.

  2. Chat with PDF: Use the Copilotus action "Extract from PDF".

  3. Resoomer: Use the Resoomer action "Summarise Text" (run twice for responsibilities and skills).

  4. Wordsmith: Use the Wordsmith action "Generate Document".

  5. Save & Notify: Use Google Drive's "Create Spreadsheet Row" or "Create Text File", then Gmail "Send Email".

Zapier's interface is more visual; you won't write code, but you'll configure each action's fields through dropdown menus.

Using Make (Integromat) Instead

Make offers a similar flow with scenario-based building:

  1. Create a scenario and add a Webhook module to listen for PDF uploads.

  2. Add a Chat with PDF module and map the file input.

  3. Chain two Resoomer modules for summarisation.

  4. Add a Wordsmith module to generate the final document.

  5. Use Google Drive and Email modules for output.

Make's strength is its Router module, which lets you branch workflows based on conditions (e.g., if salary range is missing, route to a different template).

The Manual Alternative

Some teams prefer human oversight for certain steps. Here's a hybrid approach:

Run Steps 1–3 as described above (extract and summarise automatically). Then, instead of immediately generating the final document, save the extracted and summarised data to a Google Sheet. A recruiter reviews the data in the sheet, makes any adjustments to summaries or skill descriptions, and manually triggers Wordsmith to generate the final document.

This preserves quality control whilst eliminating the tedious extraction and summarisation work. It's useful if your job vacancy PDFs are inconsistently formatted or if recruiting managers want to customise briefing documents for specific candidate profiles.

To implement this: after the Resoomer steps, add a Google Sheets node to create a new row with all extracted and summarised data. Set up a workflow rule that watches for a "Approved" checkbox in the sheet, then triggers the Wordsmith step when marked.

Pro Tips

1. Manage API Rate Limits

Resoomer and Wordsmith have rate limits on their free tier (typically 50–100 requests per month). If your team posts more than a few vacancies weekly, upgrade to their paid plans. Alternatively, batch-process weekly vacancies in one workflow run to stay within limits.

2. Handle PDF Parsing Failures Gracefully

Some PDF formats confuse Chat with PDF. Build in error handling: if extraction fails, send an email to the recruiter asking them to reformat the PDF or manually enter key details. Don't let the workflow silently fail.

if ($node['Chat with PDF'].status === "error") {
  return {
    "status": "manual_intervention_required",
    "reason": "PDF parsing failed",
    "action": "Contact recruiter to reformat PDF"
  };
}

3. Customise Wordsmith Prompts by Role Level

Wordsmith accepts custom templates. Create different briefing templates for different role levels: Graduate roles get a "skills focus" template, senior roles get a "strategic impact" template. Pass a role_level variable from the Chat with PDF extraction step to choose the template automatically.

4. Test with Real Job Posts First

Before deploying to your team, run 5–10 real job vacancy PDFs through the workflow manually. Check the output quality. Adjust Resoomer summary lengths and Wordsmith tone instructions based on what you see. Each organisation's job descriptions have different conventions.

5. Log Everything for Auditing

Add a Google Sheets logging step at the end of your workflow. Log the job title, extracted salary range, summary quality score (you can ask Wordsmith to rate its own output from 1–10), and any manual interventions required. After a month of data, you'll see patterns about which vacancy types need human review.

Cost Breakdown

ToolPlan NeededMonthly CostNotes
Chat with PDF (Copilotus)Pro£9.99500 PDFs/month; £0.02 per additional
Resoomer AIMonthly£7.99Unlimited summaries; essential for volume
Wordsmith AIStarter£14.991,000 documents/month; covers most teams
n8n CloudPro£302,000 workflow executions/month; self-hosted is free
Google DriveIncluded£0If using existing workspace
Total£62.97Per month for a growing team

If your team is smaller and posts fewer than 10 vacancies per month, you can use Zapier's free tier (100 tasks/month) instead of n8n Cloud, reducing the total to around £33 monthly.

The workflow saves roughly 30–45 minutes per vacancy posting. For a team managing 20 open roles per month, that's 10–15 hours recovered every month. The tools pay for themselves in the time reclaimed within the first week.

More Recipes