# Job Descriptions Extractor (`dadhalfdev/job-descriptions-extractor`) Actor

Want to turn messy job descriptions into clean, structured data? This extractor uses AI to pull out all the key information from any job posting. Just paste a job description text into the input, and the extractor will parse out up to 18 data points.

- **URL**: https://apify.com/dadhalfdev/job-descriptions-extractor.md
- **Developed by:** [Marco Rodrigues](https://apify.com/dadhalfdev) (community)
- **Categories:** Integrations, Agents, Automation
- **Stats:** 2 total users, 1 monthly users, 96.6% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$20.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 📄 Job Descriptions Extractor

Want to turn messy job descriptions into clean, structured data? This extractor uses AI to pull out all the key information from any job posting!

Just **paste a job description text** into the input, and the extractor will parse out up to 18 data points, neatly packing all the company details, technical skills, requirements, and benefits into a structured JSON dataset or CSV file.

### 💡 Perfect for...

- **Recruiters & HR:** Standardize job postings and analyze competitor requirements.
- **Job Board Creators:** Automatically structure scraped job postings for better search and filtering.
- **Candidates & Career Coaches:** Analyze the exact skills and knowledge needed for target roles.
- **Data Analysts:** Download clean, structured data for market trends, salary research, or skill demand visualizations.
- **🤖 OpenClaw & AI Agents:** Power your autonomous recruiting or job-seeking agents with structured data.
- **🔗 Integrations:** Perfect for structuring data scraped from LinkedIn, Glassdoor, Indeed, and other job listing platforms before feeding it to other apps.
- **📚 RAG Systems:** Feed detailed job requirements and company data into Retrieval-Augmented Generation pipelines to match candidates with roles automatically.

### ✨ Why you'll love this extractor

- 🎯 **Deep Extraction:** Pulls out not just the basics, but highly specific details like `work_model` (Remote/Hybrid/Presential), `seniority_level`, and a clear separation between `skills` (tools/languages) and `knowledge` (concepts/methodologies).
- ⚙️ **AI-Powered Accuracy:** Uses advanced AI to understand the context of the text, ensuring high accuracy even with poorly formatted or unique job descriptions.
- ⏱️ **Instant Structuring:** Turns blocks of unstructured text into a highly organized database in seconds.

### 📦 What's inside the data?

For every job description you input, you will get:

- **Company Info:** `company_name`, `company_description`, `company_website_url`
- **Role Details:** `job_title`, `department`, `field`, `seniority_level`, `job_description`
- **Logistics:** `location`, `work_model`, `salary_range`
- **Requirements:** `years_of_experience`, `education`, `languages`
- **Technical Specs:** `skills` (e.g., Python, AWS), `knowledge` (e.g., Machine Learning, Agile)
- **Role Specifics:** `responsibilities` (list), `benefits` (list)

### 🚀 Quick start

1. **Find a Job Posting** on LinkedIn, Glassdoor, a company website, or anywhere else.
2. **Copy the text** of the job description.
3. **Paste the text** into the `job_descriptions` input array of the extractor. (You can paste multiple descriptions!)
4. **Click Start** and let the AI do its magic! ✨ 
5. Once it's done, you can export your structured data as a CSV, Excel spreadsheet, or JSON file.

---

#### Tech details for developers 🧑‍💻

**Input Example:**
```json
{
  "job_descriptions": [
    "Remote role\n\nAbout Reachdesk \ud83d\ude80\n\nReachdesk is a cutting-edge B2B gift and SWAG platform...[rest of description]"
  ]
}
````

**Output Example:**

```json
{
  "company_name": "Reachdesk",
  "company_description": "Reachdesk is a cutting-edge B2B gift and SWAG platform that allows companies to deliver e-gifts, gifts, and bespoke merchandise.",
  "company_website_url": null,
  "field": "B2B Software / Technology",
  "department": "Engineering / Operations",
  "location": "London, Lisbon, New York",
  "work_model": "Remote",
  "job_title": "Business Systems Engineer (Automation & AI)",
  "seniority_level": "Mid-Senior",
  "job_description": "Identify inefficiencies across teams and design practical solutions using automation, integrations, internal tools, and AI to help Reachdesk scale operations.",
  "years_of_experience": "3+",
  "education": null,
  "languages": [],
  "skills": [
    "Zapier",
    "Make",
    "n8n",
    "Python",
    "JavaScript",
    "SQL",
    "APIs"
  ],
  "knowledge": [
    "Business Systems",
    "Automation Engineering",
    "Solutions Engineering",
    "RevOps Engineering",
    "Data transformations",
    "Data analysis"
  ],
  "responsibilities": [
    "Identify operational inefficiencies across the business and design scalable solutions.",
    "Build and maintain automations, integrations, and lightweight internal tools.",
    "Develop and maintain reliable data workflows.",
    "Evaluate and implement practical AI use cases that improve internal productivity."
  ],
  "benefits": [
    "Competitive salary with generous stock options.",
    "Flexible PTO.",
    "Super-friendly, collaborative working culture."
  ],
  "salary_range": null
}
```

**Parameters:**

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `job_descriptions` | array of strings | Yes | List of unstructured job description texts to extract structured data from (Max: 100 per run). |

# Actor input Schema

## `job_descriptions` (type: `array`):

List of job descriptions to extract the structured data from.

## Actor input object example

```json
{
  "job_descriptions": [
    "Remote role\n\nAbout Reachdesk 🚀\n\nReachdesk is a cutting-edge B2B gift and SWAG platform that allows companies to deliver e-gifts, gifts, and bespoke merchandise that build deeper connections with customers, prospects, and employees at the click of a button. We integrate seamlessly with sales and marketing tech stacks, enabling companies to deliver moments that matter at scale, globally, throughout the entire customer lifecycle. Working with some of the world’s leading brands, we're assembling a world-class global team across London, Lisbon, and New York - and we're looking for our next Business Systems Engineer (Automation & AI)!\n\nRole description 📖\n\nWe’re looking for a curious, systems-minded builder to help Reachdesk scale how the business operates. In this role, you’ll identify inefficiencies across teams and design practical solutions using automation, integrations, internal tools, and AI.\n\nReporting to our Chief Product Officer, you’ll work cross-functionally with teams across Product, Engineering, Customer Support, Supply Chain, Marketing, Sales, and Finance to eliminate manual work, improve data flows, and build scalable operational systems. While the role is highly collaborative, you’ll operate with a high degree of autonomy to take ownership of problems, design solutions, and implement them end-to-end.\n\nThis role is ideal for someone who enjoys understanding fragmented real-world processes and turning them into elegant systems. You’ll build lightweight tools, scripts, and integrations that allow Reachdesk teams to move faster, reduce errors, and focus on high-value work.\n\nYou’ll also help Reachdesk leverage AI thoughtfully, identifying opportunities where AI agents, automation tools, or new technologies can meaningfully improve workflows.\n\nThis is a highly strategic role with company-wide impact, perfect for someone who enjoys solving complex problems with pragmatic technical solutions.\n\nYour responsibilities will include:\n\nIdentify operational inefficiencies across the business and design scalable solutions to eliminate manual or repetitive work.\nBuild and maintain automations, integrations, and lightweight internal tools using APIs, scripting, spreadsheets, and automation platforms.\nDevelop and maintain reliable data workflows that consolidate information across systems and ensure data accuracy and accessibility for teams.\nPartner with stakeholders across the company to understand operational processes and translate them into efficient, automated systems.\nPartner with stakeholders across the company to understand operational processes, then autonomously translate them into efficient, automated systems.\nMaintain and prioritize a backlog of automation and operational improvement opportunities that drive measurable efficiency gains.\nDesign systems that reduce operational risk, eliminate human error, and improve the reliability of business processes.\nEvaluate and implement practical AI use cases that improve internal productivity and decision-making.\nEstablish guidelines and best practices to help teams adopt AI tools effectively and responsibly.\nOwn and maintain key components of the company’s automation stack, ensuring reliability, scalability, and proper documentation.\n\nAbout You 🧠\n\nThe successful candidate will have:\n\n3+ years of experience in roles such as Business Systems, Automation Engineering, Solutions Engineering, RevOps Engineering, or similar.\nStrong problem-solving skills and the ability to translate fragmented business workflows into scalable systems.\nExperience building automations and integrations using platforms such as Zapier, Make, n8n, or similar tools.\nComfortable working with APIs, scripting, or lightweight programming (e.g. Python, JavaScript, SQL) to connect systems and automate processes.\nStrong data skills, including working with spreadsheets, data transformations, and analysis.\nExperience working with business systems such as CRMs, marketing platforms, support tools, or internal analytics systems.\nExperience using AI tools to improve workflows or internal processes, with a proactive, hands-on approach to exploring new AI capabilities.\nExcellent communication skills and the ability to collaborate with both technical and non-technical stakeholders.\nA pragmatic, self-driven mindset that is able to identify problems and drive solutions from discovery through implementation.\n\nPerks & Benefits 👍\n\nHere are just some of the benefits:\n\nCompetitive salary with generous stock options.\nFlexible PTO, increasing with tenure, plus extra flexibility for life’s unexpected moments.\nA super-friendly, collaborative working culture populated by fun and dedicated people.\n\nWe are an equal opportunity employer and value diversity at Reachdesk. We do not discriminate on the basis of race, religion, colour, national origin, gender, sexual orientation, age, marital status, disability status, or any other protected characteristic.\n\nWe process personal information submitted as part of your application in accordance with the Reachdesk Candidate Privacy Notice. Please review it here."
  ]
}
```

# Actor output Schema

## `overview` (type: `string`):

Table view using the dataset 'job\_description' view.

## `results` (type: `string`):

All items from the default dataset without view transformation.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "job_descriptions": [
        "Remote role\n\nAbout Reachdesk 🚀\n\nReachdesk is a cutting-edge B2B gift and SWAG platform that allows companies to deliver e-gifts, gifts, and bespoke merchandise that build deeper connections with customers, prospects, and employees at the click of a button. We integrate seamlessly with sales and marketing tech stacks, enabling companies to deliver moments that matter at scale, globally, throughout the entire customer lifecycle. Working with some of the world’s leading brands, we're assembling a world-class global team across London, Lisbon, and New York - and we're looking for our next Business Systems Engineer (Automation & AI)!\n\nRole description 📖\n\nWe’re looking for a curious, systems-minded builder to help Reachdesk scale how the business operates. In this role, you’ll identify inefficiencies across teams and design practical solutions using automation, integrations, internal tools, and AI.\n\nReporting to our Chief Product Officer, you’ll work cross-functionally with teams across Product, Engineering, Customer Support, Supply Chain, Marketing, Sales, and Finance to eliminate manual work, improve data flows, and build scalable operational systems. While the role is highly collaborative, you’ll operate with a high degree of autonomy to take ownership of problems, design solutions, and implement them end-to-end.\n\nThis role is ideal for someone who enjoys understanding fragmented real-world processes and turning them into elegant systems. You’ll build lightweight tools, scripts, and integrations that allow Reachdesk teams to move faster, reduce errors, and focus on high-value work.\n\nYou’ll also help Reachdesk leverage AI thoughtfully, identifying opportunities where AI agents, automation tools, or new technologies can meaningfully improve workflows.\n\nThis is a highly strategic role with company-wide impact, perfect for someone who enjoys solving complex problems with pragmatic technical solutions.\n\nYour responsibilities will include:\n\nIdentify operational inefficiencies across the business and design scalable solutions to eliminate manual or repetitive work.\nBuild and maintain automations, integrations, and lightweight internal tools using APIs, scripting, spreadsheets, and automation platforms.\nDevelop and maintain reliable data workflows that consolidate information across systems and ensure data accuracy and accessibility for teams.\nPartner with stakeholders across the company to understand operational processes and translate them into efficient, automated systems.\nPartner with stakeholders across the company to understand operational processes, then autonomously translate them into efficient, automated systems.\nMaintain and prioritize a backlog of automation and operational improvement opportunities that drive measurable efficiency gains.\nDesign systems that reduce operational risk, eliminate human error, and improve the reliability of business processes.\nEvaluate and implement practical AI use cases that improve internal productivity and decision-making.\nEstablish guidelines and best practices to help teams adopt AI tools effectively and responsibly.\nOwn and maintain key components of the company’s automation stack, ensuring reliability, scalability, and proper documentation.\n\nAbout You 🧠\n\nThe successful candidate will have:\n\n3+ years of experience in roles such as Business Systems, Automation Engineering, Solutions Engineering, RevOps Engineering, or similar.\nStrong problem-solving skills and the ability to translate fragmented business workflows into scalable systems.\nExperience building automations and integrations using platforms such as Zapier, Make, n8n, or similar tools.\nComfortable working with APIs, scripting, or lightweight programming (e.g. Python, JavaScript, SQL) to connect systems and automate processes.\nStrong data skills, including working with spreadsheets, data transformations, and analysis.\nExperience working with business systems such as CRMs, marketing platforms, support tools, or internal analytics systems.\nExperience using AI tools to improve workflows or internal processes, with a proactive, hands-on approach to exploring new AI capabilities.\nExcellent communication skills and the ability to collaborate with both technical and non-technical stakeholders.\nA pragmatic, self-driven mindset that is able to identify problems and drive solutions from discovery through implementation.\n\nPerks & Benefits 👍\n\nHere are just some of the benefits:\n\nCompetitive salary with generous stock options.\nFlexible PTO, increasing with tenure, plus extra flexibility for life’s unexpected moments.\nA super-friendly, collaborative working culture populated by fun and dedicated people.\n\nWe are an equal opportunity employer and value diversity at Reachdesk. We do not discriminate on the basis of race, religion, colour, national origin, gender, sexual orientation, age, marital status, disability status, or any other protected characteristic.\n\nWe process personal information submitted as part of your application in accordance with the Reachdesk Candidate Privacy Notice. Please review it here."
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("dadhalfdev/job-descriptions-extractor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "job_descriptions": ["""Remote role

About Reachdesk 🚀

Reachdesk is a cutting-edge B2B gift and SWAG platform that allows companies to deliver e-gifts, gifts, and bespoke merchandise that build deeper connections with customers, prospects, and employees at the click of a button. We integrate seamlessly with sales and marketing tech stacks, enabling companies to deliver moments that matter at scale, globally, throughout the entire customer lifecycle. Working with some of the world’s leading brands, we're assembling a world-class global team across London, Lisbon, and New York - and we're looking for our next Business Systems Engineer (Automation & AI)!

Role description 📖

We’re looking for a curious, systems-minded builder to help Reachdesk scale how the business operates. In this role, you’ll identify inefficiencies across teams and design practical solutions using automation, integrations, internal tools, and AI.

Reporting to our Chief Product Officer, you’ll work cross-functionally with teams across Product, Engineering, Customer Support, Supply Chain, Marketing, Sales, and Finance to eliminate manual work, improve data flows, and build scalable operational systems. While the role is highly collaborative, you’ll operate with a high degree of autonomy to take ownership of problems, design solutions, and implement them end-to-end.

This role is ideal for someone who enjoys understanding fragmented real-world processes and turning them into elegant systems. You’ll build lightweight tools, scripts, and integrations that allow Reachdesk teams to move faster, reduce errors, and focus on high-value work.

You’ll also help Reachdesk leverage AI thoughtfully, identifying opportunities where AI agents, automation tools, or new technologies can meaningfully improve workflows.

This is a highly strategic role with company-wide impact, perfect for someone who enjoys solving complex problems with pragmatic technical solutions.

Your responsibilities will include:

Identify operational inefficiencies across the business and design scalable solutions to eliminate manual or repetitive work.
Build and maintain automations, integrations, and lightweight internal tools using APIs, scripting, spreadsheets, and automation platforms.
Develop and maintain reliable data workflows that consolidate information across systems and ensure data accuracy and accessibility for teams.
Partner with stakeholders across the company to understand operational processes and translate them into efficient, automated systems.
Partner with stakeholders across the company to understand operational processes, then autonomously translate them into efficient, automated systems.
Maintain and prioritize a backlog of automation and operational improvement opportunities that drive measurable efficiency gains.
Design systems that reduce operational risk, eliminate human error, and improve the reliability of business processes.
Evaluate and implement practical AI use cases that improve internal productivity and decision-making.
Establish guidelines and best practices to help teams adopt AI tools effectively and responsibly.
Own and maintain key components of the company’s automation stack, ensuring reliability, scalability, and proper documentation.

About You 🧠

The successful candidate will have:

3+ years of experience in roles such as Business Systems, Automation Engineering, Solutions Engineering, RevOps Engineering, or similar.
Strong problem-solving skills and the ability to translate fragmented business workflows into scalable systems.
Experience building automations and integrations using platforms such as Zapier, Make, n8n, or similar tools.
Comfortable working with APIs, scripting, or lightweight programming (e.g. Python, JavaScript, SQL) to connect systems and automate processes.
Strong data skills, including working with spreadsheets, data transformations, and analysis.
Experience working with business systems such as CRMs, marketing platforms, support tools, or internal analytics systems.
Experience using AI tools to improve workflows or internal processes, with a proactive, hands-on approach to exploring new AI capabilities.
Excellent communication skills and the ability to collaborate with both technical and non-technical stakeholders.
A pragmatic, self-driven mindset that is able to identify problems and drive solutions from discovery through implementation.

Perks & Benefits 👍

Here are just some of the benefits:

Competitive salary with generous stock options.
Flexible PTO, increasing with tenure, plus extra flexibility for life’s unexpected moments.
A super-friendly, collaborative working culture populated by fun and dedicated people.

We are an equal opportunity employer and value diversity at Reachdesk. We do not discriminate on the basis of race, religion, colour, national origin, gender, sexual orientation, age, marital status, disability status, or any other protected characteristic.

We process personal information submitted as part of your application in accordance with the Reachdesk Candidate Privacy Notice. Please review it here."""] }

# Run the Actor and wait for it to finish
run = client.actor("dadhalfdev/job-descriptions-extractor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "job_descriptions": [
    "Remote role\\n\\nAbout Reachdesk 🚀\\n\\nReachdesk is a cutting-edge B2B gift and SWAG platform that allows companies to deliver e-gifts, gifts, and bespoke merchandise that build deeper connections with customers, prospects, and employees at the click of a button. We integrate seamlessly with sales and marketing tech stacks, enabling companies to deliver moments that matter at scale, globally, throughout the entire customer lifecycle. Working with some of the world’s leading brands, we'\''re assembling a world-class global team across London, Lisbon, and New York - and we'\''re looking for our next Business Systems Engineer (Automation & AI)!\\n\\nRole description 📖\\n\\nWe’re looking for a curious, systems-minded builder to help Reachdesk scale how the business operates. In this role, you’ll identify inefficiencies across teams and design practical solutions using automation, integrations, internal tools, and AI.\\n\\nReporting to our Chief Product Officer, you’ll work cross-functionally with teams across Product, Engineering, Customer Support, Supply Chain, Marketing, Sales, and Finance to eliminate manual work, improve data flows, and build scalable operational systems. While the role is highly collaborative, you’ll operate with a high degree of autonomy to take ownership of problems, design solutions, and implement them end-to-end.\\n\\nThis role is ideal for someone who enjoys understanding fragmented real-world processes and turning them into elegant systems. You’ll build lightweight tools, scripts, and integrations that allow Reachdesk teams to move faster, reduce errors, and focus on high-value work.\\n\\nYou’ll also help Reachdesk leverage AI thoughtfully, identifying opportunities where AI agents, automation tools, or new technologies can meaningfully improve workflows.\\n\\nThis is a highly strategic role with company-wide impact, perfect for someone who enjoys solving complex problems with pragmatic technical solutions.\\n\\nYour responsibilities will include:\\n\\nIdentify operational inefficiencies across the business and design scalable solutions to eliminate manual or repetitive work.\\nBuild and maintain automations, integrations, and lightweight internal tools using APIs, scripting, spreadsheets, and automation platforms.\\nDevelop and maintain reliable data workflows that consolidate information across systems and ensure data accuracy and accessibility for teams.\\nPartner with stakeholders across the company to understand operational processes and translate them into efficient, automated systems.\\nPartner with stakeholders across the company to understand operational processes, then autonomously translate them into efficient, automated systems.\\nMaintain and prioritize a backlog of automation and operational improvement opportunities that drive measurable efficiency gains.\\nDesign systems that reduce operational risk, eliminate human error, and improve the reliability of business processes.\\nEvaluate and implement practical AI use cases that improve internal productivity and decision-making.\\nEstablish guidelines and best practices to help teams adopt AI tools effectively and responsibly.\\nOwn and maintain key components of the company’s automation stack, ensuring reliability, scalability, and proper documentation.\\n\\nAbout You 🧠\\n\\nThe successful candidate will have:\\n\\n3+ years of experience in roles such as Business Systems, Automation Engineering, Solutions Engineering, RevOps Engineering, or similar.\\nStrong problem-solving skills and the ability to translate fragmented business workflows into scalable systems.\\nExperience building automations and integrations using platforms such as Zapier, Make, n8n, or similar tools.\\nComfortable working with APIs, scripting, or lightweight programming (e.g. Python, JavaScript, SQL) to connect systems and automate processes.\\nStrong data skills, including working with spreadsheets, data transformations, and analysis.\\nExperience working with business systems such as CRMs, marketing platforms, support tools, or internal analytics systems.\\nExperience using AI tools to improve workflows or internal processes, with a proactive, hands-on approach to exploring new AI capabilities.\\nExcellent communication skills and the ability to collaborate with both technical and non-technical stakeholders.\\nA pragmatic, self-driven mindset that is able to identify problems and drive solutions from discovery through implementation.\\n\\nPerks & Benefits 👍\\n\\nHere are just some of the benefits:\\n\\nCompetitive salary with generous stock options.\\nFlexible PTO, increasing with tenure, plus extra flexibility for life’s unexpected moments.\\nA super-friendly, collaborative working culture populated by fun and dedicated people.\\n\\nWe are an equal opportunity employer and value diversity at Reachdesk. We do not discriminate on the basis of race, religion, colour, national origin, gender, sexual orientation, age, marital status, disability status, or any other protected characteristic.\\n\\nWe process personal information submitted as part of your application in accordance with the Reachdesk Candidate Privacy Notice. Please review it here."
  ]
}' |
apify call dadhalfdev/job-descriptions-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=dadhalfdev/job-descriptions-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Job Descriptions Extractor",
        "description": "Want to turn messy job descriptions into clean, structured data? This extractor uses AI to pull out all the key information from any job posting. Just paste a job description text into the input, and the extractor will parse out up to 18 data points.",
        "version": "0.1",
        "x-build-id": "ynnpI4pqmQXREss6z"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/dadhalfdev~job-descriptions-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-dadhalfdev-job-descriptions-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/dadhalfdev~job-descriptions-extractor/runs": {
            "post": {
                "operationId": "runs-sync-dadhalfdev-job-descriptions-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/dadhalfdev~job-descriptions-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-dadhalfdev-job-descriptions-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "job_descriptions"
                ],
                "properties": {
                    "job_descriptions": {
                        "title": "List of Job Descriptions",
                        "minItems": 1,
                        "maxItems": 100,
                        "uniqueItems": true,
                        "type": "array",
                        "description": "List of job descriptions to extract the structured data from.",
                        "items": {
                            "type": "string",
                            "maxLength": 8000
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
