{"openapi":"3.1.0","info":{"title":"JobGrid API","summary":"Real-time global jobs feed for tenant integrations.","description":"JobGrid serves a continuously refreshed, deduplicated stream of active job postings collected from employer career sites and ATS providers worldwide.\n\n## Authentication\n\nEvery paid endpoint expects `Authorization: Bearer jgk_<your-key>`. Keys are provisioned by JobGrid; the `jgk_` prefix is a literal marker, the first 12 characters are log-safe, the remainder is the secret. Anonymous, unknown, and revoked keys all return `401`.\n\n## Rate limits\n\nPer-key cap, default 100 requests/minute. Every authenticated response carries `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and (on `429`) `Retry-After`. Back off on `Retry-After` seconds; do not retry sooner. Custom contractual budgets are set per-key and take effect without a redeploy.\n\n## Pagination\n\nList/search responses return `next_cursor`. Prefer cursors over `offset` — cursor pagination is stable under concurrent writes.\n\n## Status & support\n\nOperational issues: `support@jobgrid.dev`. The [onboarding guide](https://github.com/ghassenmiled/JobGrid/blob/main/docs/private_beta_onboarding.md) covers data-contract guarantees, known caveats, and the typical integration shapes.","contact":{"name":"JobGrid support","email":"support@jobgrid.dev"},"license":{"name":"Proprietary — paid tenants only","identifier":"LicenseRef-JobGrid-Proprietary"},"version":"1.0.0"},"paths":{"/v1/health":{"get":{"tags":["ops"],"summary":"Health","operationId":"health_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health V1 Health Get"}}}}}}},"/v1/admin/api-keys":{"post":{"tags":["api-keys"],"summary":"Issue Api Key","operationId":"issue_api_key_v1_admin_api_keys_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["api-keys"],"summary":"List Api Keys","operationId":"list_api_keys_v1_admin_api_keys_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Revoked"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeyRead"},"title":"Response List Api Keys V1 Admin Api Keys Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/api-keys/{key_id}/revoke":{"post":{"tags":["api-keys"],"summary":"Revoke Api Key","operationId":"revoke_api_key_v1_admin_api_keys__key_id__revoke_post","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"name":"reason","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/register":{"post":{"tags":["auth"],"summary":"Register","operationId":"register_v1_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/login":{"post":{"tags":["auth"],"summary":"Login","operationId":"login_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/refresh":{"post":{"tags":["auth"],"summary":"Refresh","operationId":"refresh_v1_auth_refresh_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/logout":{"post":{"tags":["auth"],"summary":"Logout","operationId":"logout_v1_auth_logout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogoutRequest"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/users/me":{"get":{"tags":["users"],"summary":"Get Me","operationId":"get_me_v1_users_me_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["users"],"summary":"Patch Me","operationId":"patch_me_v1_users_me_patch","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["users"],"summary":"Delete Me","operationId":"delete_me_v1_users_me_delete","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/users":{"get":{"tags":["users"],"summary":"Admin List Users","operationId":"admin_list_users_v1_users_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["users"],"summary":"Admin Create User","operationId":"admin_create_user_v1_users_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/users/{user_id}":{"get":{"tags":["users"],"summary":"Admin Get User","operationId":"admin_get_user_v1_users__user_id__get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["users"],"summary":"Admin Update User","operationId":"admin_update_user_v1_users__user_id__patch","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["users"],"summary":"Admin Delete User","operationId":"admin_delete_user_v1_users__user_id__delete","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/companies":{"get":{"tags":["companies"],"summary":"List Companies","operationId":"list_companies_v1_companies_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_CompanyRead_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/companies/{company_id}":{"get":{"tags":["companies"],"summary":"Get Company","operationId":"get_company_v1_companies__company_id__get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"string","title":"Company Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/companies/search":{"get":{"tags":["companies"],"summary":"Search Companies","operationId":"search_companies_v1_companies_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_CompanyRead_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jobs":{"get":{"tags":["jobs"],"summary":"List Jobs","operationId":"list_jobs_v1_jobs_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_JobRead_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jobs/search":{"get":{"tags":["jobs"],"summary":"Search Jobs","operationId":"search_jobs_v1_jobs_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_JobRead_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jobs/{job_id}":{"get":{"tags":["jobs"],"summary":"Get Job","operationId":"get_job_v1_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobRead"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/companies/{company_id}/jobs":{"get":{"tags":["jobs"],"summary":"List Jobs By Company","operationId":"list_jobs_by_company_v1_companies__company_id__jobs_get","parameters":[{"name":"company_id","in":"path","required":true,"schema":{"type":"string","title":"Company Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Total"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_JobRead_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/jobs/search/fulltext":{"get":{"tags":["jobs"],"summary":"Search Jobs Fulltext","description":"Full-text search with faceted filtering via Typesense (MS-3).\n\nWhen Typesense is slow or unreachable, falls back to the SQL search\npath. Filters are dropped on the fallback path and the response is\nmarked `degraded=true` so clients can warn users.","operationId":"search_jobs_fulltext_v1_jobs_search_fulltext_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"title":"Q"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Per Page"}},{"name":"seniority","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seniority"}},{"name":"work_style","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Work Style"}},{"name":"location_country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Country"}},{"name":"employment_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employment Type"}},{"name":"salary_min","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Min"}},{"name":"salary_max","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Max"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort By"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/discovery/batch-import":{"post":{"tags":["Discovery"],"summary":"Batch Import Discovery","operationId":"batch_import_discovery_v1_discovery_batch_import_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchDiscoveryImportRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchDiscoveryImportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/pipeline/run":{"post":{"summary":"Run Discovery Pipeline","operationId":"run_discovery_pipeline_v1_pipeline_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoveryPipelineRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoveryPipelineResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/discovery/prefilter-blocklist":{"get":{"tags":["Discovery"],"summary":"List Blocklist Entries","operationId":"list_blocklist_entries_v1_discovery_prefilter_blocklist_get","parameters":[{"name":"entry_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Entry Type"}},{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrefilterBlocklistListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Discovery"],"summary":"Create Blocklist Entry","operationId":"create_blocklist_entry_v1_discovery_prefilter_blocklist_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrefilterBlocklistCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrefilterBlocklistEntryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/discovery/prefilter-blocklist/{entry_id}":{"patch":{"tags":["Discovery"],"summary":"Update Blocklist Entry","operationId":"update_blocklist_entry_v1_discovery_prefilter_blocklist__entry_id__patch","parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrefilterBlocklistUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrefilterBlocklistEntryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Discovery"],"summary":"Delete Blocklist Entry","operationId":"delete_blocklist_entry_v1_discovery_prefilter_blocklist__entry_id__delete","parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/companies/promote":{"post":{"summary":"Promote Discovered Companies","operationId":"promote_discovered_companies_v1_companies_promote_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoteDiscoveredCompaniesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoteDiscoveredCompaniesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/discovery/stats":{"get":{"tags":["Discovery"],"summary":"Get Discovery Pipeline Stats","operationId":"get_discovery_pipeline_stats_v1_discovery_stats_get","parameters":[{"name":"window_minutes","in":"query","required":false,"schema":{"type":"integer","maximum":1440,"minimum":1,"description":"Minutes of recent discovery attempts to include in the roll-up.","default":60,"title":"Window Minutes"},"description":"Minutes of recent discovery attempts to include in the roll-up."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoveryPipelineStatsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/collectors/validate":{"post":{"summary":"Validate Pending Collectors","operationId":"validate_pending_collectors_v1_collectors_validate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidatePendingCollectorsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidatePendingCollectorsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/etl/collectors":{"get":{"tags":["etl"],"summary":"List Collectors","operationId":"list_collectors_v1_etl_collectors_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectorListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["etl"],"summary":"Register Collector","operationId":"register_collector_v1_etl_collectors_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterCollectorRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterCollectorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/etl/collectors/summary":{"get":{"tags":["etl"],"summary":"Collectors Summary","operationId":"collectors_summary_v1_etl_collectors_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectorSummaryResponse"}}}}}}},"/v1/etl/collectors/ranked":{"get":{"tags":["etl"],"summary":"List Collectors Ranked","description":"List active collectors ranked by health score (healthy first).","operationId":"list_collectors_ranked_v1_etl_collectors_ranked_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/etl/collectors/{collector_id}":{"get":{"tags":["etl"],"summary":"Get Collector","operationId":"get_collector_v1_etl_collectors__collector_id__get","parameters":[{"name":"collector_id","in":"path","required":true,"schema":{"type":"string","title":"Collector Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectorDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/etl/collectors/{collector_id}/run":{"post":{"tags":["etl"],"summary":"Run Collector","operationId":"run_collector_v1_etl_collectors__collector_id__run_post","parameters":[{"name":"collector_id","in":"path","required":true,"schema":{"type":"string","title":"Collector Id"}},{"name":"trace_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCollectorRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCollectorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/etl/dedup-reviews":{"get":{"tags":["etl"],"summary":"List Dedup Reviews","operationId":"list_dedup_reviews_v1_etl_dedup_reviews_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"materialize_pending","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Materialize Pending"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DedupReviewListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/etl/dedup-reviews/{case_id}/decision":{"post":{"tags":["etl"],"summary":"Submit Dedup Review Decision","operationId":"submit_dedup_review_decision_v1_etl_dedup_reviews__case_id__decision_post","parameters":[{"name":"case_id","in":"path","required":true,"schema":{"type":"string","title":"Case Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitDedupReviewDecisionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitDedupReviewDecisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/etl/runs":{"get":{"tags":["etl"],"summary":"List Runs","operationId":"list_runs_v1_etl_runs_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"collector_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collector Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"trace_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EtlRunListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/etl/runs/{etl_run_id}":{"get":{"tags":["etl"],"summary":"Get Run","operationId":"get_run_v1_etl_runs__etl_run_id__get","parameters":[{"name":"etl_run_id","in":"path","required":true,"schema":{"type":"string","title":"Etl Run Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EtlRunItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/etl/collectors/{collector_id}/runs":{"get":{"tags":["etl"],"summary":"List Runs For Collector","operationId":"list_runs_for_collector_v1_etl_collectors__collector_id__runs_get","parameters":[{"name":"collector_id","in":"path","required":true,"schema":{"type":"string","title":"Collector Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"trace_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EtlRunListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/etl/runs/summary":{"get":{"tags":["etl"],"summary":"Runs Summary","operationId":"runs_summary_v1_etl_runs_summary_get","parameters":[{"name":"collector_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collector Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EtlRunSummaryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/etl/source-economics":{"get":{"tags":["etl"],"summary":"Get Source Economics","operationId":"get_source_economics_v1_etl_source_economics_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"Lookback window in days","default":30,"title":"Days"},"description":"Lookback window in days"},{"name":"min_runs","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Min runs to include a source","default":1,"title":"Min Runs"},"description":"Min runs to include a source"},{"name":"dead_streak","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Empty streak to classify as dead","default":10,"title":"Dead Streak"},"description":"Empty streak to classify as dead"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Source Economics V1 Etl Source Economics Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/etl/source-quality":{"get":{"tags":["etl"],"summary":"List Source Quality Daily","operationId":"list_source_quality_daily_v1_etl_source_quality_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"source_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Key"}},{"name":"collector_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collector Id"}},{"name":"bucket_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Bucket Date"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceQualityDailyListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/webhooks/{provider}":{"post":{"tags":["webhooks"],"summary":"Receive a webhook event from an ATS provider","description":"Accept a raw webhook POST and dispatch a fetch task.\n\nThe provider signature is verified against the secret stored in\n``WEBHOOK_SECRET_{PROVIDER}`` (env var). If no secret is configured\nthe signature check is skipped so the endpoint can be brought up\nbefore operator secrets are provisioned.","operationId":"receive_webhook_v1_webhooks__provider__post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AdminUserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password Hash","description":"Pre-hashed password (optional)."},"is_active":{"type":"boolean","title":"Is Active","default":true},"is_verified":{"type":"boolean","title":"Is Verified","default":false},"is_admin":{"type":"boolean","title":"Is Admin","default":false}},"type":"object","required":["email"],"title":"AdminUserCreate"},"AdminUserListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdminUserRead"},"type":"array","title":"Items"},"page":{"type":"integer","title":"Page"},"limit":{"type":"integer","title":"Limit"},"total":{"type":"integer","title":"Total"},"has_next":{"type":"boolean","title":"Has Next"},"has_previous":{"type":"boolean","title":"Has Previous"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"}},"type":"object","required":["page","limit","total","has_next","has_previous"],"title":"AdminUserListResponse"},"AdminUserRead":{"properties":{"id":{"type":"string","title":"Id"},"email":{"type":"string","format":"email","title":"Email"},"is_active":{"type":"boolean","title":"Is Active"},"is_verified":{"type":"boolean","title":"Is Verified"},"is_admin":{"type":"boolean","title":"Is Admin"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","email","is_active","is_verified","is_admin","created_at","updated_at"],"title":"AdminUserRead"},"AdminUserUpdate":{"properties":{"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"password_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password Hash"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"is_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Verified"},"is_admin":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Admin"}},"type":"object","title":"AdminUserUpdate"},"ApiKeyCreateRequest":{"properties":{"name":{"type":"string","maxLength":128,"minLength":1,"title":"Name"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Issue the key for this user. Defaults to the calling admin."}},"type":"object","required":["name"],"title":"ApiKeyCreateRequest"},"ApiKeyCreateResponse":{"properties":{"id":{"type":"string","title":"Id"},"user_id":{"type":"string","title":"User Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"raw_key":{"type":"string","title":"Raw Key","description":"Shown exactly once. Persist on the client."},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","user_id","name","key_prefix","raw_key","created_at"],"title":"ApiKeyCreateResponse"},"ApiKeyRead":{"properties":{"id":{"type":"string","title":"Id"},"user_id":{"type":"string","title":"User Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"revoked_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revoked Reason"}},"type":"object","required":["id","user_id","name","key_prefix","created_at","last_used_at","revoked_at","revoked_reason"],"title":"ApiKeyRead"},"BatchDiscoveryImportAccepted":{"properties":{"domain":{"type":"string","title":"Domain"},"normalized_domain":{"type":"string","title":"Normalized Domain"},"task_id":{"type":"string","title":"Task Id"},"idempotency_key":{"type":"string","title":"Idempotency Key"}},"type":"object","required":["domain","normalized_domain","task_id","idempotency_key"],"title":"BatchDiscoveryImportAccepted"},"BatchDiscoveryImportDuplicate":{"properties":{"domain":{"type":"string","title":"Domain"},"normalized_domain":{"type":"string","title":"Normalized Domain"},"first_index":{"type":"integer","title":"First Index"}},"type":"object","required":["domain","normalized_domain","first_index"],"title":"BatchDiscoveryImportDuplicate"},"BatchDiscoveryImportItem":{"properties":{"domain":{"type":"string","maxLength":255,"minLength":1,"title":"Domain"},"provider":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Provider"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"}},"type":"object","required":["domain"],"title":"BatchDiscoveryImportItem"},"BatchDiscoveryImportRejected":{"properties":{"domain":{"type":"string","title":"Domain"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["domain","reason"],"title":"BatchDiscoveryImportRejected"},"BatchDiscoveryImportRequest":{"properties":{"trace_id":{"type":"string","maxLength":128,"minLength":8,"title":"Trace Id"},"items":{"items":{"$ref":"#/components/schemas/BatchDiscoveryImportItem"},"type":"array","maxItems":1000,"minItems":1,"title":"Items"},"job_id":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Job Id"},"lease_timeout_sec":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Lease Timeout Sec","default":60},"max_attempts":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Max Attempts","default":3}},"type":"object","required":["trace_id","items"],"title":"BatchDiscoveryImportRequest"},"BatchDiscoveryImportResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"accepted_count":{"type":"integer","title":"Accepted Count"},"rejected_count":{"type":"integer","title":"Rejected Count"},"duplicate_count":{"type":"integer","title":"Duplicate Count"},"accepted":{"items":{"$ref":"#/components/schemas/BatchDiscoveryImportAccepted"},"type":"array","title":"Accepted"},"rejected":{"items":{"$ref":"#/components/schemas/BatchDiscoveryImportRejected"},"type":"array","title":"Rejected"},"duplicates":{"items":{"$ref":"#/components/schemas/BatchDiscoveryImportDuplicate"},"type":"array","title":"Duplicates"}},"type":"object","required":["job_id","accepted_count","rejected_count","duplicate_count","accepted","rejected","duplicates"],"title":"BatchDiscoveryImportResponse"},"CandidateValidationSummaryResponse":{"properties":{"collector_candidate_id":{"type":"string","title":"Collector Candidate Id"},"passed":{"type":"boolean","title":"Passed"},"activated_collector_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Activated Collector Id"},"status":{"type":"string","title":"Status"},"reason_codes":{"items":{"type":"string"},"type":"array","title":"Reason Codes"}},"type":"object","required":["collector_candidate_id","passed","activated_collector_id","status","reason_codes"],"title":"CandidateValidationSummaryResponse"},"CollectorDetailResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"kind":{"$ref":"#/components/schemas/CollectorKind"},"status":{"$ref":"#/components/schemas/CollectorStatus"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","kind","status","created_at","updated_at"],"title":"CollectorDetailResponse"},"CollectorItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"kind":{"$ref":"#/components/schemas/CollectorKind"},"status":{"$ref":"#/components/schemas/CollectorStatus"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","kind","status","created_at","updated_at"],"title":"CollectorItem"},"CollectorKind":{"type":"string","enum":["api","rss","ats","careers_page","html","custom"],"title":"CollectorKind","description":"How a collector fetches jobs."},"CollectorListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CollectorItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","default":0},"limit":{"type":"integer","title":"Limit","default":100},"offset":{"type":"integer","title":"Offset","default":0},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["updated_at"],"title":"CollectorListResponse"},"CollectorStatus":{"type":"string","enum":["active","shadow","inactive","paused","error","quarantined"],"title":"CollectorStatus","description":"Whether a collector is enabled for runs."},"CollectorSummaryResponse":{"properties":{"total":{"type":"integer","title":"Total"},"active":{"type":"integer","title":"Active"},"paused":{"type":"integer","title":"Paused"},"quarantined":{"type":"integer","title":"Quarantined"},"shadow":{"type":"integer","title":"Shadow","default":0},"inactive":{"type":"integer","title":"Inactive","default":0},"error":{"type":"integer","title":"Error","default":0},"running":{"type":"integer","title":"Running","default":0},"failing":{"type":"integer","title":"Failing","default":0},"never_successful":{"type":"integer","title":"Never Successful","default":0},"due_now":{"type":"integer","title":"Due Now","default":0},"runs_last_24h":{"type":"integer","title":"Runs Last 24H","default":0},"failures_last_24h":{"type":"integer","title":"Failures Last 24H","default":0},"status_counts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Status Counts"},"computed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Computed At"},"next_scheduler_run":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Scheduler Run"}},"type":"object","required":["total","active","paused","quarantined"],"title":"CollectorSummaryResponse","description":"Admin collector summary — aligned 1:1 with Grafana's\n``collectors_by_status`` gauge.\n\n``status_counts`` is the raw ``GROUP BY status`` map so clients can\nrender whichever states matter without the backend collapsing\ncategories."},"CompanyRead":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","name"],"title":"CompanyRead"},"CursorPage_CompanyRead_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CompanyRead"},"type":"array","title":"Items"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total"},"limit":{"type":"integer","title":"Limit"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More","default":false}},"type":"object","required":["limit"],"title":"CursorPage[CompanyRead]"},"CursorPage_JobRead_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/JobRead"},"type":"array","title":"Items"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total"},"limit":{"type":"integer","title":"Limit"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"has_more":{"type":"boolean","title":"Has More","default":false}},"type":"object","required":["limit"],"title":"CursorPage[JobRead]"},"DedupReviewCaseItem":{"properties":{"case_id":{"type":"string","title":"Case Id"},"candidate_job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Candidate Job Id"},"matched_job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Matched Job Id"},"review_artifact_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Artifact Id"},"match_type":{"type":"string","title":"Match Type"},"composite_score":{"type":"number","title":"Composite Score"},"feature_scores":{"additionalProperties":true,"type":"object","title":"Feature Scores"},"dedup_rule_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dedup Rule Version"},"candidate_normalization_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Candidate Normalization Version"},"matched_normalization_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Matched Normalization Version"},"auto_decision":{"type":"string","title":"Auto Decision","default":""},"status":{"type":"string","title":"Status"},"reviewer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewer"},"decision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Decision"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"decided_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Decided At"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["case_id","match_type","composite_score","status","created_at"],"title":"DedupReviewCaseItem"},"DedupReviewListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DedupReviewCaseItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"summary":{"$ref":"#/components/schemas/DedupReviewStatsResponse"}},"type":"object","required":["total","limit","offset","summary"],"title":"DedupReviewListResponse"},"DedupReviewStatsResponse":{"properties":{"pending":{"type":"integer","title":"Pending","default":0},"confirmed":{"type":"integer","title":"Confirmed","default":0},"overridden":{"type":"integer","title":"Overridden","default":0},"deferred":{"type":"integer","title":"Deferred","default":0},"total":{"type":"integer","title":"Total","default":0},"auto_confirmed":{"type":"integer","title":"Auto Confirmed","default":0},"auto_rejected":{"type":"integer","title":"Auto Rejected","default":0}},"type":"object","title":"DedupReviewStatsResponse"},"DiscoveryPipelineRequest":{"properties":{"trace_id":{"type":"string","maxLength":128,"minLength":8,"title":"Trace Id"},"source_key":{"type":"string","maxLength":120,"minLength":2,"title":"Source Key"},"source_record_id":{"type":"string","maxLength":200,"minLength":1,"title":"Source Record Id"},"company_name":{"type":"string","maxLength":255,"minLength":1,"title":"Company Name"},"company_domain":{"type":"string","maxLength":255,"minLength":3,"title":"Company Domain"},"source_url":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Source Url"},"observed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Observed At"}},"type":"object","required":["trace_id","source_key","source_record_id","company_name","company_domain"],"title":"DiscoveryPipelineRequest"},"DiscoveryPipelineResponse":{"properties":{"company_id":{"type":"string","title":"Company Id"},"career_page_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Career Page Id"},"ats_detection_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ats Detection Id"},"candidate_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Candidate Id"},"candidate_ids":{"items":{"type":"string"},"type":"array","title":"Candidate Ids"}},"type":"object","required":["company_id","career_page_id","ats_detection_id","candidate_id","candidate_ids"],"title":"DiscoveryPipelineResponse"},"DiscoveryPipelineStatsResponse":{"properties":{"generated_at":{"type":"string","title":"Generated At"},"window_minutes":{"type":"integer","title":"Window Minutes"},"totals":{"additionalProperties":{"type":"integer"},"type":"object","title":"Totals"},"companies_discovered":{"additionalProperties":{"type":"integer"},"type":"object","title":"Companies Discovered"},"career_pages":{"additionalProperties":{"type":"integer"},"type":"object","title":"Career Pages"},"ats_detections":{"additionalProperties":{"type":"integer"},"type":"object","title":"Ats Detections"},"collector_candidates":{"additionalProperties":{"type":"integer"},"type":"object","title":"Collector Candidates"},"collector_validation_runs":{"additionalProperties":{"type":"integer"},"type":"object","title":"Collector Validation Runs"},"discovery_tasks":{"additionalProperties":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"object","title":"Discovery Tasks"},"quarantined_domains":{"additionalProperties":{"type":"integer"},"type":"object","title":"Quarantined Domains"},"recent_discovery_attempts":{"additionalProperties":{"type":"integer"},"type":"object","title":"Recent Discovery Attempts"}},"type":"object","required":["generated_at","window_minutes","totals","companies_discovered","career_pages","ats_detections","collector_candidates","collector_validation_runs","discovery_tasks","quarantined_domains","recent_discovery_attempts"],"title":"DiscoveryPipelineStatsResponse"},"EtlRunItem":{"properties":{"id":{"type":"string","title":"Id"},"collector_id":{"type":"string","title":"Collector Id"},"trace_id":{"type":"string","title":"Trace Id"},"status":{"type":"string","title":"Status"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"},"raw_count":{"type":"integer","title":"Raw Count"},"job_upserts":{"type":"integer","title":"Job Upserts"},"errors_count":{"type":"integer","title":"Errors Count"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","collector_id","trace_id","status","started_at","raw_count","job_upserts","errors_count","created_at","updated_at"],"title":"EtlRunItem"},"EtlRunListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EtlRunItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"has_more":{"type":"boolean","title":"Has More","default":false}},"type":"object","required":["total","limit","offset"],"title":"EtlRunListResponse"},"EtlRunSummaryResponse":{"properties":{"total":{"type":"integer","title":"Total"},"by_status":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Status"},"last_started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Started At"},"last_finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Finished At"},"last_failed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Failed At"}},"type":"object","required":["total","by_status"],"title":"EtlRunSummaryResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"JobRead":{"properties":{"id":{"type":"string","title":"Id"},"collector_id":{"type":"string","title":"Collector Id"},"external_id":{"type":"string","title":"External Id"},"company_id":{"type":"string","title":"Company Id"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name"},"company_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Domain"},"company_is_unknown":{"type":"boolean","title":"Company Is Unknown","default":true},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"location_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location City"},"location_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location State"},"location_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Country"},"location_lat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Location Lat"},"location_lng":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Location Lng"},"location_normalized":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Normalized"},"work_style":{"anyOf":[{"$ref":"#/components/schemas/WorkStyle"},{"type":"null"}]},"seniority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seniority"},"employment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employment Type"},"skills":{"items":{"type":"string"},"type":"array","title":"Skills"},"apply_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apply Url"},"salary_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Min"},"salary_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Max"},"salary_interval":{"anyOf":[{"$ref":"#/components/schemas/SalaryInterval"},{"type":"null"}]},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"posted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Posted At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"collected_at":{"type":"string","format":"date-time","title":"Collected At"},"status":{"$ref":"#/components/schemas/JobStatus"},"checksum":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checksum"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","collector_id","external_id","company_id","title","collected_at","status","created_at","updated_at"],"title":"JobRead"},"JobStatus":{"type":"string","enum":["active","inactive","expired","deleted","repost"],"title":"JobStatus","description":"Canonical job lifecycle status in the normalized table."},"LoginRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","minLength":8,"title":"Password"}},"type":"object","required":["email","password"],"title":"LoginRequest"},"LogoutRequest":{"properties":{"refresh_token":{"type":"string","minLength":10,"title":"Refresh Token"}},"type":"object","required":["refresh_token"],"title":"LogoutRequest"},"PrefilterBlocklistCreateRequest":{"properties":{"entry_type":{"type":"string","maxLength":64,"minLength":1,"title":"Entry Type"},"value":{"type":"string","maxLength":2048,"minLength":1,"title":"Value"},"note":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Note"},"added_by":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Added By"}},"type":"object","required":["entry_type","value"],"title":"PrefilterBlocklistCreateRequest"},"PrefilterBlocklistEntryResponse":{"properties":{"id":{"type":"string","title":"Id"},"entry_type":{"type":"string","title":"Entry Type"},"value":{"type":"string","title":"Value"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"},"added_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Added By"},"active":{"type":"boolean","title":"Active"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["id","entry_type","value","note","added_by","active","created_at","updated_at"],"title":"PrefilterBlocklistEntryResponse"},"PrefilterBlocklistListResponse":{"properties":{"entries":{"items":{"$ref":"#/components/schemas/PrefilterBlocklistEntryResponse"},"type":"array","title":"Entries"}},"type":"object","required":["entries"],"title":"PrefilterBlocklistListResponse"},"PrefilterBlocklistUpdateRequest":{"properties":{"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"note":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Note"}},"type":"object","title":"PrefilterBlocklistUpdateRequest"},"PromoteDiscoveredCompaniesRequest":{"properties":{"limit":{"type":"integer","maximum":5000.0,"minimum":1.0,"title":"Limit","default":500},"dry_run":{"type":"boolean","title":"Dry Run","default":true}},"type":"object","title":"PromoteDiscoveredCompaniesRequest"},"PromoteDiscoveredCompaniesResponse":{"properties":{"promotable_with_active_collectors":{"type":"integer","title":"Promotable With Active Collectors"},"already_promoted":{"type":"integer","title":"Already Promoted"},"promoted_now":{"type":"integer","title":"Promoted Now"},"failures":{"type":"integer","title":"Failures"},"promotable_samples":{"items":{"$ref":"#/components/schemas/PromotionSampleResponse"},"type":"array","title":"Promotable Samples"},"promoted_samples":{"items":{"$ref":"#/components/schemas/PromotionSampleResponse"},"type":"array","title":"Promoted Samples"},"promote_company_ids":{"items":{"type":"string"},"type":"array","title":"Promote Company Ids"}},"type":"object","required":["promotable_with_active_collectors","already_promoted","promoted_now","failures","promotable_samples","promoted_samples","promote_company_ids"],"title":"PromoteDiscoveredCompaniesResponse"},"PromotionSampleResponse":{"properties":{"discovered_company_id":{"type":"string","title":"Discovered Company Id"},"normalized_domain":{"type":"string","title":"Normalized Domain"},"canonical_company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical Company Id"},"canonical_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical Domain"}},"type":"object","required":["discovered_company_id","normalized_domain"],"title":"PromotionSampleResponse"},"RefreshRequest":{"properties":{"refresh_token":{"type":"string","minLength":10,"title":"Refresh Token"}},"type":"object","required":["refresh_token"],"title":"RefreshRequest"},"RegisterCollectorRequest":{"properties":{"name":{"type":"string","title":"Name"},"kind":{"$ref":"#/components/schemas/CollectorKind"},"status":{"$ref":"#/components/schemas/CollectorStatus","default":"active"},"config":{"additionalProperties":true,"type":"object","title":"Config"}},"type":"object","required":["name","kind"],"title":"RegisterCollectorRequest"},"RegisterCollectorResponse":{"properties":{"collector_id":{"type":"string","title":"Collector Id"},"created":{"type":"boolean","title":"Created"}},"type":"object","required":["collector_id","created"],"title":"RegisterCollectorResponse"},"RegisterRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","minLength":8,"title":"Password"}},"type":"object","required":["email","password"],"title":"RegisterRequest"},"RunCollectorRequest":{"properties":{"do_fetch":{"type":"boolean","title":"Do Fetch","default":true},"do_process":{"type":"boolean","title":"Do Process","default":true},"fetch_limit":{"type":"integer","maximum":5000.0,"minimum":1.0,"title":"Fetch Limit","default":200},"process_limit":{"type":"integer","maximum":5000.0,"minimum":1.0,"title":"Process Limit","default":200},"since":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"},"force":{"type":"boolean","title":"Force","default":false}},"type":"object","title":"RunCollectorRequest"},"RunCollectorResponse":{"properties":{"status":{"type":"string","title":"Status"},"collector_id":{"type":"string","title":"Collector Id"},"trace_id":{"type":"string","title":"Trace Id"},"etl_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Etl Run Id"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["status","collector_id","trace_id"],"title":"RunCollectorResponse"},"SalaryInterval":{"type":"string","enum":["hourly","monthly","annual"],"title":"SalaryInterval","description":"Salary periodicity when salary is provided."},"SourceQualityDailyItem":{"properties":{"id":{"type":"string","title":"Id"},"source_key":{"type":"string","title":"Source Key"},"bucket_date":{"type":"string","format":"date","title":"Bucket Date"},"collector_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collector Id"},"collector_candidate_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collector Candidate Id"},"successful_runs":{"type":"integer","title":"Successful Runs"},"failed_runs":{"type":"integer","title":"Failed Runs"},"raw_jobs_fetched":{"type":"integer","title":"Raw Jobs Fetched"},"jobs_upserted":{"type":"integer","title":"Jobs Upserted"},"empty_run_streak":{"type":"integer","title":"Empty Run Streak"},"freshness_lag_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Freshness Lag Seconds"},"avg_latency_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Avg Latency Ms"},"normalized_yield_rate":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Normalized Yield Rate"},"dedup_novelty_rate":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Dedup Novelty Rate"},"freshness_sla_rate":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Freshness Sla Rate"},"estimated_cost_usd":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Estimated Cost Usd"},"last_success_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Success At"},"metrics_payload":{"additionalProperties":true,"type":"object","title":"Metrics Payload"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","source_key","bucket_date","successful_runs","failed_runs","raw_jobs_fetched","jobs_upserted","empty_run_streak","normalized_yield_rate","dedup_novelty_rate","freshness_sla_rate","estimated_cost_usd","created_at","updated_at"],"title":"SourceQualityDailyItem"},"SourceQualityDailyListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SourceQualityDailyItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"has_more":{"type":"boolean","title":"Has More","default":false}},"type":"object","required":["total","limit","offset"],"title":"SourceQualityDailyListResponse"},"SubmitDedupReviewDecisionRequest":{"properties":{"decision":{"type":"string","title":"Decision"},"reason":{"type":"string","title":"Reason","default":""}},"type":"object","required":["decision"],"title":"SubmitDedupReviewDecisionRequest"},"SubmitDedupReviewDecisionResponse":{"properties":{"item":{"$ref":"#/components/schemas/DedupReviewCaseItem"}},"type":"object","required":["item"],"title":"SubmitDedupReviewDecisionResponse"},"TokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"refresh_token":{"type":"string","title":"Refresh Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"expires_in":{"type":"integer","title":"Expires In"}},"type":"object","required":["access_token","refresh_token","expires_in"],"title":"TokenResponse"},"UserRead":{"properties":{"id":{"type":"string","title":"Id"},"email":{"type":"string","format":"email","title":"Email"},"is_active":{"type":"boolean","title":"Is Active"},"is_verified":{"type":"boolean","title":"Is Verified"},"is_admin":{"type":"boolean","title":"Is Admin"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","email","is_active","is_verified","is_admin","created_at","updated_at"],"title":"UserRead"},"UserUpdate":{"properties":{"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"},"password":{"anyOf":[{"type":"string","minLength":8},{"type":"null"}],"title":"Password"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"is_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Verified"}},"type":"object","title":"UserUpdate"},"ValidatePendingCollectorsRequest":{"properties":{"trace_id":{"type":"string","maxLength":128,"minLength":8,"title":"Trace Id"},"limit":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Limit","default":50},"auto_activate":{"type":"boolean","title":"Auto Activate","default":true}},"type":"object","required":["trace_id"],"title":"ValidatePendingCollectorsRequest"},"ValidatePendingCollectorsResponse":{"properties":{"processed":{"type":"integer","title":"Processed"},"activated":{"type":"integer","title":"Activated"},"failed":{"type":"integer","title":"Failed"},"summaries":{"items":{"$ref":"#/components/schemas/CandidateValidationSummaryResponse"},"type":"array","title":"Summaries"}},"type":"object","required":["processed","activated","failed","summaries"],"title":"ValidatePendingCollectorsResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WorkStyle":{"type":"string","enum":["remote","hybrid","onsite"],"title":"WorkStyle","description":"Remote/hybrid/onsite classification."}}}}