> ## Documentation Index
> Fetch the complete documentation index at: https://docs.genieforge.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Tutorial: Job OS with client portal

> Run an internal job pipeline with AI-drafted briefs, and give clients a limited portal for status and feedback.

# Tutorial: Job OS with client portal

Outcome: your team runs jobs on an internal board; AI drafts a brief from intake; invited clients see status and leave feedback without seeing the whole shop. Adapt for media production, agencies, shops, or any delivery pipeline.

## What you will assemble

| Piece     | Role in the app                                          |
| --------- | -------------------------------------------------------- |
| Roles     | `producer`, `client` (optional `owner` for settings)     |
| Data      | Clients, jobs, stages, briefs, feedback notes            |
| Forms     | New job intake; client feedback; stage config (owner)    |
| Pages     | Internal pipeline; job detail; client portal home        |
| Tools     | Advance stage, draft brief (AI), invite client, add note |
| Agents    | Producer assistant (internal); client assistant (portal) |
| End users | Clients invited to the project with the `client` role    |

## Step 1 | Prompt in Build mode

> Build a job operating system for a small studio. Producers create jobs with a client, due date, and stage (intake, in progress, review, delivered). From intake notes, generate an AI brief the team can edit. Clients get a portal that shows only their jobs, current stage, and the shared brief summary. Clients can leave feedback; they cannot edit stages or see other clients. Roles: producer, client, owner.

Approve when the client portal is a distinct page set, not the full producer board with filters.

## Step 2 | Internal pipeline

**New job form → create job → pipeline page → advance stage tool**

Seed a few stages. Confirm advancing to "review" is visible on the job detail for producers.

## Step 3 | AI brief

Add a **draft brief** tool that reads intake notes and writes a structured brief onto the job. Keep regeneration explicit (a button or tool), not automatic on every page load.

## Step 4 | Client portal and invites

1. Build client-only pages (my jobs, job status, feedback form).
2. **Invite** a test client under **End-Users** with role `client`.
3. **Preview as** that client: no other clients, no stage editor, feedback works.
4. Optional event hook: notify producer when feedback is submitted.

## Step 5 | Soft launch

Lock access in **App Blueprint → Access**, then use [Launch checklist](/getting-started/launch-checklist). Add a custom domain later if clients should not see the default portal URL.

## Related

* [Portal](/projects-and-domains/portal)
* [Agents](/primitives/agents)
* [Event hooks](/logic/event-hooks)
* [Custom domains](/projects-and-domains/custom-domains)
