# UN Careers (United Nations) Job Scraper (`nomad-dev/un-careers-scraper`) Actor

Get live job openings from the United Nations careers portal (careers.un.org) as clean structured data. Filter by keyword, category, job family, network and duty station. No login, no setup.

- **URL**: https://apify.com/nomad-dev/un-careers-scraper.md
- **Developed by:** [Nomad.Dev](https://apify.com/nomad-dev) (community)
- **Categories:** Jobs
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## UN Careers (United Nations) Job Scraper

Get live job openings from the official United Nations careers portal
([careers.un.org](https://careers.un.org/jobSearch?language=en)) as clean,
structured data — **no login, no account, no setup**.

Monitor hundreds of current UN openings across all agencies and duty stations,
filter them the way you need, and export to JSON/CSV/Excel or pull via API.

### Why use it

- **Always current** — reflects the live UN openings, refreshed continuously.
- **Global coverage** — roles across every UN agency, category and duty station.
- **Clean structured output** — ready for spreadsheets, databases, dashboards or
  job-matching pipelines.
- **Fast and cheap** — lightweight runs, no proxies required.

### What you get

One dataset item per opening:

| Field | Description |
|---|---|
| `jobId` | Stable UN opening id |
| `title` | Posting title |
| `company` | Always `United Nations` |
| `department` | Hiring department / office |
| `location` | Duty station |
| `category` / `categoryCode` | Staff category (e.g. Professional / PD) |
| `jobFamily` / `jobFamilyCode` | Functional area (e.g. Engineering / ENG) |
| `network` / `networkCode` | Job network (e.g. ITECNET) |
| `level` | Grade/level (e.g. P-3, G-6, I-1) |
| `recruitmentType` | UN recruitment type code |
| `postedAt` / `deadline` | Posting start / application deadline (ISO) |
| `url` | Direct link to the full posting |
| `description` | Full plain-text description (optional) |

### Input

| Field | Type | Notes |
|---|---|---|
| `keyword` | string | Free-text search over titles + descriptions |
| `categories` | array | Staff category filter |
| `jobFamilies` | array | Functional area filter |
| `networks` | array | Job-network filter |
| `locationFilter` | string | Case-insensitive duty-station substring |
| `maxItems` | integer | Cap results; `0` = all matching openings |
| `includeDescription` | boolean | Include full description text (default true) |
| `sortDirection` | enum | `newest` / `oldest` by start date |

#### Example

```json
{
  "keyword": "data",
  "categories": ["PD"],
  "locationFilter": "geneva",
  "maxItems": 50,
  "includeDescription": true
}
````

Returns up to 50 Professional-category openings matching "data" in Geneva, each
with the full description text.

### Use cases

- Job seekers and career coaches tracking new UN postings before deadlines.
- Recruitment and staffing teams sourcing international-organization roles.
- Development / humanitarian sector aggregators and newsletters.
- Labor-market researchers analyzing roles, grades and duty stations over time.

# Actor input Schema

## `keyword` (type: `string`):

Free-text search across job titles and descriptions (e.g. "data engineer", "human rights"). Leave empty to return all current openings.

## `categories` (type: `array`):

Staff category. Leave empty for all.

## `jobFamilies` (type: `array`):

Functional area. Leave empty for all.

## `networks` (type: `array`):

High-level job network. Leave empty for all.

## `locationFilter` (type: `string`):

Optional case-insensitive substring match on duty station, applied client-side (the API has no server-side location filter). E.g. "geneva", "new york", "nairobi".

## `maxItems` (type: `integer`):

Maximum number of openings to return. Set 0 for no limit (all matching openings).

## `includeDescription` (type: `boolean`):

Include the full plain-text job description in each result. Turn off for lighter, faster output.

## `sortDirection` (type: `string`):

Order openings by posting start date.

## `cacheTtlSeconds` (type: `integer`):

Cache the upstream fetch in the key-value store for this many seconds; re-runs within the window skip the network call. Set 0 to disable.

## Actor input object example

```json
{
  "keyword": "data analyst",
  "locationFilter": "geneva",
  "maxItems": 100,
  "includeDescription": true,
  "sortDirection": "newest",
  "cacheTtlSeconds": 1800
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("nomad-dev/un-careers-scraper").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("nomad-dev/un-careers-scraper").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 '{}' |
apify call nomad-dev/un-careers-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nomad-dev/un-careers-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "UN Careers (United Nations) Job Scraper",
        "description": "Get live job openings from the United Nations careers portal (careers.un.org) as clean structured data. Filter by keyword, category, job family, network and duty station. No login, no setup.",
        "version": "0.1",
        "x-build-id": "juN2nbXON42ITccsU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nomad-dev~un-careers-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nomad-dev-un-careers-scraper",
                "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/nomad-dev~un-careers-scraper/runs": {
            "post": {
                "operationId": "runs-sync-nomad-dev-un-careers-scraper",
                "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/nomad-dev~un-careers-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-nomad-dev-un-careers-scraper",
                "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",
                "properties": {
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Free-text search across job titles and descriptions (e.g. \"data engineer\", \"human rights\"). Leave empty to return all current openings."
                    },
                    "categories": {
                        "title": "Categories",
                        "type": "array",
                        "description": "Staff category. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "PD",
                                "GS",
                                "NPO",
                                "FS",
                                "INT",
                                "CON"
                            ],
                            "enumTitles": [
                                "Professional and Higher (PD)",
                                "General Service and Related (GS)",
                                "National Professional Officers (NPO)",
                                "Field Service (FS)",
                                "Internship (INT)",
                                "Consultants (CON)"
                            ]
                        }
                    },
                    "jobFamilies": {
                        "title": "Job families",
                        "type": "array",
                        "description": "Functional area. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "ADM",
                                "AVI",
                                "CIV",
                                "CON",
                                "DRU",
                                "ECO",
                                "EDU",
                                "ELA",
                                "ENG",
                                "ENV",
                                "FIN",
                                "FMG",
                                "HRA",
                                "HRE",
                                "HRI",
                                "HUM",
                                "ING",
                                "IST",
                                "LAN",
                                "LEG",
                                "LOG",
                                "MED",
                                "MGA",
                                "OMB",
                                "PAM",
                                "PBA",
                                "PGM",
                                "POL",
                                "PUB",
                                "ROL",
                                "SEC",
                                "SOC",
                                "STT",
                                "TEL",
                                "TRA"
                            ],
                            "enumTitles": [
                                "Administration",
                                "Aviation",
                                "Civil Affairs",
                                "Conference Services",
                                "Drug Control and Crime Prevention",
                                "Economic Affairs",
                                "Education",
                                "Electoral Affairs",
                                "Engineering",
                                "Environmental Affairs",
                                "Finance",
                                "Facilities Management",
                                "Humanitarian Affairs",
                                "Human Resources",
                                "Human Rights Affairs",
                                "Human Settlements",
                                "Investigation",
                                "Information Management Systems and Technology",
                                "Language",
                                "Legal Affairs",
                                "Logistics and Supply Chain",
                                "Medical",
                                "Management and Analysis",
                                "Ombudsman",
                                "Property and Asset Management",
                                "Public Administration",
                                "Programme Management",
                                "Political Affairs",
                                "Public Information",
                                "Rule of Law",
                                "Security",
                                "Social Affairs",
                                "Statistics",
                                "Telecommunications Technology",
                                "Transportation"
                            ]
                        }
                    },
                    "networks": {
                        "title": "Job networks",
                        "type": "array",
                        "description": "High-level job network. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "DEVNET",
                                "INFONET",
                                "ITECNET",
                                "LEGALNET",
                                "LOGNET",
                                "MAGNET",
                                "POLNET",
                                "SAFETYNET",
                                "SCINET"
                            ],
                            "enumTitles": [
                                "Economic, Social and Development",
                                "Public Information and Conference Management",
                                "Information and Telecommunication Technology",
                                "Legal",
                                "Logistics, Transportation and Supply Chain",
                                "Management and Administration",
                                "Political, Peace and Humanitarian",
                                "Internal Security and Safety",
                                "Science"
                            ]
                        }
                    },
                    "locationFilter": {
                        "title": "Duty station filter",
                        "type": "string",
                        "description": "Optional case-insensitive substring match on duty station, applied client-side (the API has no server-side location filter). E.g. \"geneva\", \"new york\", \"nairobi\"."
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of openings to return. Set 0 for no limit (all matching openings).",
                        "default": 100
                    },
                    "includeDescription": {
                        "title": "Include full description",
                        "type": "boolean",
                        "description": "Include the full plain-text job description in each result. Turn off for lighter, faster output.",
                        "default": true
                    },
                    "sortDirection": {
                        "title": "Sort by start date",
                        "enum": [
                            "newest",
                            "oldest"
                        ],
                        "type": "string",
                        "description": "Order openings by posting start date.",
                        "default": "newest"
                    },
                    "cacheTtlSeconds": {
                        "title": "Cache TTL (seconds)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Cache the upstream fetch in the key-value store for this many seconds; re-runs within the window skip the network call. Set 0 to disable.",
                        "default": 1800
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
