Recruiting
RecruitingMetrics
dataclass
#
A snapshot of where a custom audience's annotators sit in the recruiting funnel.
A custom (distilling) audience recruits its own pool of annotators: candidates start
in distilling, and each one eventually graduates into the eligible pool, is dropped,
or goes inactive. These counts let you tell a healthy pool from one that is still
filling up or has stalled — e.g. a job collecting no responses while graduated is
still 0 is waiting on recruiting, not stuck.
The counts are mutually exclusive: each annotator is in exactly one bucket, so a
graduated annotator who goes quiet moves out of graduated and into inactive.
Only custom audiences recruit, so this is empty (all zeros) for curated audiences.
Attributes:
| Name | Type | Description |
|---|---|---|
graduated |
int
|
Annotators who passed qualification and are eligible to work now. |
distilling |
int
|
Annotators still going through qualification. |
dropped |
int
|
Annotators removed from the pool (score too low, limits hit, etc.). |
inactive |
int
|
Previously-graduated or distilling annotators who went quiet. |
audience_will_never_produce_responses #
audience_will_never_produce_responses(
status: AudienceStatus,
metrics: RecruitingMetrics | None,
) -> bool
Whether an audience can never answer a job assigned to it without the caller acting.
A job only draws responses from graduated annotators, so this is True only when
nobody has graduated and nobody ever will on the audience's own: recruiting was
never started, or the audience is marked ready yet its pool is empty. An audience
that is still recruiting (someone distilling, or status still Pending/Recruiting) is
filling up — waiting, not stuck — and a curated audience (no funnel of its own,
metrics is None) draws on its own ready pool, so neither returns True.