Add documentation for undocumented features (#172)

* documentation writing skill

* visa sponsors page

* overview

* in progress board

* settings

* reactive resume section

* database backups

* workflows

* post application tracking flow

* manual tracking caveats

* pricing section

* pipeline run detalis

* job search bar

* keyboard shortcuts

* bulk actions

* no informal phrasing

* formatting

* build fix?

* Update docs-site/docs/features/overview.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs-site/versioned_docs/version-0.1.20/features/orchestrator.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs-site/docs/features/visa-sponsors.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs-site/docs/features/in-progress-board.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove link to page that don't exist

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Shaheer Sarfaraz
2026-02-16 00:33:35 +00:00
committed by GitHub
co-authored by Copilot
parent 1f929dfc7f
commit 390d03625e
25 changed files with 1720 additions and 193 deletions
+80 -52
View File
@@ -5,88 +5,116 @@ description: Job states, ready flow, and PDF generation/regeneration behavior.
sidebar_position: 1
---
This guide explains job states, how jobs become ready, and how PDF generation works.
## What it is
## Job states
The Orchestrator is the primary jobs workspace in JobOps.
- `discovered`: Found by crawler/import, not tailored yet.
- `processing`: Tailoring and/or PDF generation in progress.
- `ready`: Tailored PDF generated and ready to apply.
- `applied`: Marked as applied.
- `skipped`: Explicitly excluded from active queue.
- `expired`: Deadline passed.
It controls:
## Intended ready flow
- job lifecycle states
- manual and automatic ready flow
- PDF generation and regeneration
- handoff to post-application tracking
### 1) Manual flow
Job states:
1. Job starts in `discovered`.
2. Open in Discovered panel and choose Tailor.
3. Edit JD/tailored fields/project picks.
4. Click **Finalize & Move to Ready**.
- `discovered`: found by crawler/import, not tailored yet
- `processing`: tailoring and/or PDF generation in progress
- `ready`: tailored PDF generated and ready to apply
- `applied`: marked as applied
- `skipped`: explicitly excluded from active queue
- `expired`: deadline passed
### 2) Auto flow
## Why it exists
1. Pipeline scores discovered jobs.
2. Top jobs above threshold are auto-processed.
3. Jobs move directly to `ready` with generated PDFs.
Orchestrator centralizes the transition from discovered opportunities to application-ready artifacts.
## Ghostwriter
It exists to ensure:
- a consistent path from discovery to tailored output
- clear status transitions across manual and automated workflows
- predictable regeneration behavior when job data changes
## How to use it
### Intended ready flow
1. Manual flow:
1. Job starts in `discovered`.
2. Open the job and choose Tailor.
3. Edit JD/tailored fields/project picks.
4. Click **Finalize & Move to Ready**.
2. Auto flow:
1. Pipeline scores discovered jobs.
2. Top jobs above threshold are auto-processed.
3. Jobs move directly to `ready` with generated PDFs.
### Ghostwriter availability
Ghostwriter is available in `discovered` and `ready` job views.
For details, see [Ghostwriter](/docs/features/ghostwriter).
For details, see [Ghostwriter](/docs/next/features/ghostwriter).
## Generating PDFs (first time)
### Generating PDFs
PDF generation uses:
- Base resume selected from RxResume
- Job description
- Tailored summary/headline/skills/projects
- base resume selected from RxResume
- job description
- tailored summary/headline/skills/projects
Common paths:
- **Discovered → Tailor → Finalize**
- `POST /api/jobs/:id/process`
- **Ready → Regenerate PDF**
- `POST /api/jobs/:id/generate-pdf`
- Discovered to finalization: `POST /api/jobs/:id/process`
- Ready regeneration: `POST /api/jobs/:id/generate-pdf`
## Regenerating PDFs after edits
### Regenerating PDFs after edits (copy-pasteable examples)
If JD or tailoring changes, regenerate PDF to keep output in sync.
### API flow
```bash
PATCH /api/jobs/:id
{
"jobDescription": "<new JD>",
"tailoredSummary": "<optional>",
"tailoredHeadline": "<optional>",
"tailoredSkills": "[{\"name\":\"Backend\",\"keywords\":[\"TypeScript\",\"Node.js\"]}]",
"selectedProjectIds": "p1,p2"
}
curl -X PATCH "http://localhost:3001/api/jobs/<jobId>" \
-H "content-type: application/json" \
-d '{
"jobDescription": "<new JD>",
"tailoredSummary": "<optional>",
"tailoredHeadline": "<optional>",
"tailoredSkills": [{"name":"Backend","keywords":["TypeScript","Node.js"]}],
"selectedProjectIds": "p1,p2"
}'
```
```bash
POST /api/jobs/:id/summarize?force=true
POST /api/jobs/:id/generate-pdf
curl -X POST "http://localhost:3001/api/jobs/<jobId>/summarize?force=true"
curl -X POST "http://localhost:3001/api/jobs/<jobId>/generate-pdf"
```
## Post-application tracking
For inbox routing flow and setup, see [Post-Application Tracking](/docs/features/post-application-tracking).
## Notes and gotchas
- `processing` is transient. On PDF failure, job reverts to `discovered`.
- PDFs are served at `/pdfs/resume_<jobId>.pdf` with cache-bust on `updatedAt`.
- `skipped`/`applied` jobs can be reopened by patching `status` to `discovered`.
## External payload and sanitization defaults
### External payload and sanitization defaults
- LLM prompts send minimized profile/job fields.
- Webhooks are sanitized and whitelisted by default.
- Logs and error details are redacted/truncated by default.
- Correlation fields include `requestId`, and when available `pipelineRunId` and `jobId`.
## Common problems
### Job is stuck in `processing`
- `processing` is transient; failures generally revert the job to `discovered`.
- Check run logs and retry generation.
### PDF does not reflect recent edits
- Run summarize with `force=true` after changing the JD/tailoring.
- Regenerate PDF after summarize completes.
### Reopen skipped/applied jobs
- Patch `status` back to `discovered` to return the job to the active queue.
## Related pages
- [Pipeline Run](/docs/next/features/pipeline-run)
- [Ghostwriter](/docs/next/features/ghostwriter)
- [Reactive Resume](/docs/next/features/reactive-resume)
- [Post-Application Tracking](/docs/next/features/post-application-tracking)