Skip to main content
An upload and a job are related, but they are not the same thing.
New files change the source library and create one ingest job; duplicates alone create no job.

Upload

An upload receives one or more source files plus optional guidance. The source library records files that are genuinely new.

Ingest job

If at least one source is new, Almanac creates one ingest job. Jobs move through:
queued → running → succeeded
                 ↘ failed
Events explain progress. The final job and outcome explain what sources and pages changed.

Duplicate-only upload

When every file already exists, the upload succeeds with no new job. This is why programs must treat the upload’s job field as nullable and why last is unsafe for concurrent automation. Apply the model in Upload sources, Follow a job, or upload with Python.