Tagging pipeline
Tag every upload automatically, review what the model is unsure about, and feed corrections back.
Postal's tagging model proposes genres, moods, instruments, vocal types and more for every track. This recipe runs it across a library and puts a human in the loop only where it matters.
Steps
- Find untagged tracks. Page
GET /trackswithfields=id,name,audio_profileand pick tracks whose profile has no genres. - Queue analysis. Send ids in batches to
POST /tracks/auto-tag/batch. - Wait. Handle
track.audio_profile_completedwebhooks, or pollGET /tracks/suggested-tagsuntilanalysisStatusiscompleted. - Apply or review. For tracks where
intelligence.readyis true and the suggestion looks complete, callPOST /tracks/apply-suggested-tags. Route the rest to a review queue. - Write corrections. When a reviewer changes something, send the full
corrected category with
PATCH /tracks/tags. Corrections are recorded as training feedback.
Scopes: read:tracks, update:tracks.
Validating tag names
Load GET /taxonomy once at startup. Reject any tag
a reviewer types that is not in it, or map it to the nearest valid name
before writing.
Throughput
Analysis runs in Postal's queue and can take from seconds to a few minutes per track depending on load. Queue in batches of a few hundred and let webhooks drive the next step rather than polling every track.
In an assistant
The MCP wait_for_auto_tag tool collapses trigger, poll and read into one
call, and apply_suggested_tags commits. See the
tool reference.