"Ingest, convert, parse, and manage user content in Khoj through
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill content-indexing --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Content Indexing?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-content-indexing)More formats (shields.io, HTML) on the badges page.
---
name: content-indexing
description: "Ingest, convert, parse, and manage user content in Khoj through
/api/content, local parsers, and remote source configuration."
disable-model-invocation: true
metadata:
disco-role: operating
license: AGPL 3.0
---
# Content Indexing
Use this sub-skill when a task touches Khoj content ingestion, conversion, parser behavior, file object/entry management, or client sync payloads. It is focused on how content reaches the index; route semantic query filters, ranking, reranking, and result interpretation to `search-retrieval`, and route server URL, auth, deployment, migrations, or API-key setup to `deployment-api`.
## Route Here For
- Implementing or debugging `/api/content` `PUT`, `PATCH`, `DELETE`, `GET`, `/convert`, `/github`, or `/notion` behavior.
- Building client upload/sync flows for Markdown, Org, PDF, DOCX, plaintext/HTML/XML, images, GitHub, or Notion content.
- Understanding parser entry shape: `raw`, `compiled`, `heading`, `file`, `uri`, and `corpus_id`.
- Diagnosing upload limits, unsupported MIME types, empty-file deletion semantics, stale index visibility, remote-source credentials, OCR/PDF/DOCX extraction, or parser failures.
## Start With
- `references/content-api.md` for endpoint contracts, multipart payloads, auth/client notes, delete/update/convert flows, and remote-source config.
- `references/parser-reference.md` for parser classes, static methods, chunking, line-number URIs, entries, deletion markers, and safe parser-only usage.
- `references/data-formats.md` for supported MIME types, parser examples, and fixture-style tiny payloads.
- `references/troubleshooting.md` for practical failures and how to separate ingestion problems from search visibility problems.
- `scripts/parse_content_fixture.py` to parse tiny Markdown, Org, or plaintext content into JSON without database writes.
## Safe Workflow
1. Confirm whether the caller is uploading local files, configuring a remote source, converting documents, deleting indexed data, or inspecting parser output.
2. For local uploads, use multipart field name `files`, include a meaningful filename, and set a MIME type that maps to a supported content type.
3. For remote sources, first store source credentials/config through `/api/content/github` or `/api/content/notion`; then trigger indexing through the normal content configure/update path with no client documents.
4. For parser-only debugging, call static extraction methods or the bundled helper; do not call `process()` unless a real Khoj user/database/search model context is intended.
5. After successful indexing, use `search-retrieval` when validating query behavior, because ingestion success only proves entries were accepted and embeddings/cache were refreshed.
## Important Boundaries
- `/api/content` indexing writes database entries and file objects; parser static methods do not.
- `PUT /api/content` regenerates selected content, while `PATCH /api/content` syncs incrementally.
- Empty uploaded content is treated as deletion input by processors and, when billing limits are active, by the upload limiter.
- The console script `khoj --help` can trigger server startup side effects in this repo; for parser-only CLI checks import `khoj.utils.cli.cli` or run the bundled helper instead.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!