> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/keeperpam/endpoint-privilege-manager/custom-tooling/jobs-and-plugins/custom-job-guide/job-examples.md).

# Job Examples

<figure><img src="/files/aC0do0K9gNG6SCG1BJ4t" alt=""><figcaption></figcaption></figure>

This section provides a library of ready-to-use JSON templates covering the most common job integration scenarios for Keeper Endpoint Privilege Manager. Each sub-page focuses on a single scenario, includes a complete, deployable JSON file, and explains what the example demonstrates and when to use it.

All examples are self-describing — each file's `description` field begins with `SCENARIO:` so you can identify the purpose of the template at a glance without reading the entire file. Replace placeholder paths, IDs, and topic names before deploying to your environment.

## Job Examples

Job files are placed under `Jobs/{id}.json` on the agent. The examples below cover the most common trigger and scheduling patterns across all supported platforms.

<table data-header-hidden="false" data-header-sticky><thead><tr><th width="218">Example</th><th>What It Covers</th></tr></thead><tbody><tr><td><a href="/pages/2QC9qfSDVlhYNOGuRu9L">Minimal Job — Windows</a></td><td>The simplest valid job on Windows: interval schedule, Service task execution, and KeeperLogger output. Use this as your starting template on Windows.</td></tr><tr><td><a href="/pages/lk3xt0U27RL2XqaRiYpj">Minimal Job — macOS</a></td><td>The same minimal job pattern adapted for macOS, including the correct binary paths and <code>osFilter</code> configuration.</td></tr><tr><td><a href="/pages/4nAJA3FWsSLjoZ9teSsN">Minimal Job — Linux</a></td><td>The same minimal job pattern adapted for Linux, including the correct binary paths and <code>osFilter</code> configuration.</td></tr><tr><td><a href="/pages/28NT0aVDSpV2vMCniyXd">Job with Schedule &#x26; Startup</a></td><td>A job that runs once immediately when the agent starts and then continues on a recurring interval. This is the recommended pattern for scanner-style integrations.</td></tr><tr><td><a href="/pages/NmlcfFNRECGVbhrZ2fBR">Job with Event Topic</a></td><td>A job that publishes progress updates over MQTT using a custom <code>eventTopic</code>. Demonstrates how to keep <code>eventTopic</code> and <code>mqttTopics.allowedPublications</code> in sync.</td></tr></tbody></table>

## Before You Begin

* Refer to the [Custom Job Integration Guide](/keeperpam/endpoint-privilege-manager/custom-tooling/jobs-and-plugins/custom-job-guide.md) before deploying any example to ensure you understand the binary layout, signing requirements, and MQTT topic permission model.
* For a richer Windows job sample with more fields filled in, see the `secrets-scanner-sample-job.json` reference in the parent integration bundle.
* Use `POST /api/Jobs/validate` to validate your job JSON before deploying it to an endpoint.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.keeper.io/keeperpam/endpoint-privilege-manager/custom-tooling/jobs-and-plugins/custom-job-guide/job-examples.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
