{"openapi":"3.1.0","info":{"title":"Candora API","version":"v1.2","description":"Veřejné API Candory. Žádná odpověď nikdy neobsahuje skóre, riziko, pravděpodobnost ani doporučení: systém dává nálezy s doloženým zdrojem, rozhoduje člověk. Generováno z apps/web/lib/api-spec.ts, needitovat ručně."},"servers":[{"url":"https://{instance}"}],"security":[{"bearerAuth":[]}],"paths":{"/api/v1/applications":{"post":{"summary":"Přihláška dovnitř, dva režimy","description":"JSON tělo znamená strukturovaná data z ATS: claims se zapíšou rovnou potvrzené identitou `acting_user`. `multipart/form-data` s polem `file` znamená CV cestu, kde extrahovaná tvrzení čekají na potvrzení.","operationId":"post_v1_applications","x-candora-scope":"applications:write","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StructuredApplication"}}}},"responses":{"200":{"description":"Tatáž přihláška už jednou došla: tentýž soubor na tutéž pozici, nebo tentýž `external_ref` v organizaci bez ohledu na pozici. Nic nového nevzniklo, `id` je původní přihláška a `status` je `duplicate`. Opakovat požadavek je bezpečné.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationCreated"}}}},"201":{"description":"Přihláška založena","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationCreated"}}}},"202":{"description":"Přihláška založena, kontrola se dopočítává. Okno požadavku došlo dřív, než se fronta vyprázdnila, takže běh zůstává `partial` a zbytek dobere fronta zdrojů, kterou cron vybírá každou minutu. Není to chyba a požadavek se neopakuje; stav se čte koncovým bodem stavu přihlášky.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationCreated"}}}},"401":{"description":"Chybí nebo neplatí API klíč","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Kvóta ověření je vyčerpaná. Přihláška je zapsaná, kontrola nezačala a odpověď nese počet spotřebovaných a povolených ověření v poli `quota`. Opakovat požadavek nemá smysl dřív, než se kvóta obnoví nebo zvedne pásmo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Přihláška se nepřijala. Tři důvody, rozlišené polem `error`: klíč nemá scope applications:write (`missing scope applications:write`); vlastník organizace nepřijal současnou verzi zpracovatelských podmínek (`processing terms not accepted by the organization owner`, po změně verze podmínek je musí přijmout znovu v aplikaci); nebo organizace ještě není schválená pro příjem (`organization not approved for intake`, pole `state` říká stav schválení). U druhých dvou nic nevzniklo a opakovat požadavek má smysl až po přijetí podmínek nebo schválení.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Chybí povinné pole, nebo soubor CV nejde přečíst (`unreadable_cv`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Překročený limit požadavků, kód `rate_limited` a hlavička `Retry-After`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"summary":"Seznam přihlášek","description":"Od nejnovější, po stránkách (`limit` nejvýš 200, `cursor` z `next_cursor`). Filtry `q` (štítek nebo pozice, nikdy jméno) a `position_id`. Klíč vidí jen kandidáty svého režimu. Řadit podle nálezů nejde, pořadí lidí podle nálezů API nevydá.","operationId":"get_v1_applications","x-candora-scope":"reports:read","parameters":[],"responses":{"200":{"description":"Stránka přihlášek","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationList"}}}}}}},"/api/v1/mcp":{"post":{"summary":"Candora connector (MCP)","description":"Vzdálený MCP server (Streamable HTTP, bez stavu) se stejnými nástroji jako lokální connector. Každý nástroj volá odpovídající routu `/v1` s tímtéž klíčem, takže platí její scope. Lidské úkony nesou autora klíče. Nástroj na rozhodnutí o kandidátovi není.","operationId":"post_v1_mcp","x-candora-scope":"reports:read","parameters":[],"responses":{"200":{"description":"Odpověď MCP (JSON-RPC)"},"401":{"description":"Chybí nebo neplatí API klíč","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Autor klíče už není členem organizace","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/positions":{"get":{"summary":"Seznam náborů","description":"Nábory s `id`, které patří do `position_id` při příjmu CV. Bez počtů za kandidáty.","operationId":"get_v1_positions","x-candora-scope":"reports:read","parameters":[],"responses":{"200":{"description":"Seznam","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PositionList"}}}}}}},"/api/v1/applications/{id}":{"get":{"summary":"Stav přihlášky","description":"Stavy: `waiting_confirmation`, `confirmed`, `running`, `checked`, `decided`.","operationId":"get_v1_applications__id_","x-candora-scope":"reports:read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Stav přihlášky","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationStatus"}}}},"404":{"description":"Přihláška v této organizaci není","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Okamžité smazání kandidáta","description":"Stejná cesta jako retence: kandidát a jeho tvrzení zmizí, nálezy a události se anonymizují, protože jsou to data o pravidlech, ne o člověku.","operationId":"delete_v1_applications__id_","x-candora-scope":"applications:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Smazáno","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"404":{"description":"Přihláška v této organizaci není","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/applications/{id}/claims":{"get":{"summary":"Extrahovaná tvrzení k potvrzení","operationId":"get_v1_applications__id__claims","x-candora-scope":"reports:read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seznam tvrzení; prázdný, když z CV žádné nevzniklo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimList"}}}},"404":{"description":"Přihláška v této organizaci není","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/applications/{id}/claims/confirm":{"post":{"summary":"Potvrzení tvrzení člověkem","description":"`acting_user` je povinný. Potvrzení je lidský úkon a musí mít jméno; API si ho nesmí ulehčit.","operationId":"post_v1_applications__id__claims_confirm","x-candora-scope":"applications:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmClaims"}}}},"responses":{"200":{"description":"Potvrzeno","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"404":{"description":"Přihláška v této organizaci není","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Chybí acting_user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/applications/{id}/checks":{"post":{"summary":"Spuštění kontroly","description":"Kontroly se po příjmu přihlášky spouštějí samy. Tahle routa je pro opakované spuštění a pro integraci, která nechce čekat na frontu. `acting_user` je povinný.","operationId":"post_v1_applications__id__checks","x-candora-scope":"applications:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCheck"}}}},"responses":{"201":{"description":"Kontrola proběhla, `check_run_id` je její běh","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckStarted"}}}},"402":{"description":"Kvóta ověření je vyčerpaná, kontrola nezačala. Pole `quota` nese počet spotřebovaných a povolených ověření.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Přihláška v této organizaci není","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Chybí `acting_user`, nebo přihláška nemá žádné tvrzení (`error: no_claims`, věta v `detail`). Testovací klíč `cand_test_` CV nečte, takže přihláška z něj má tvrzení jen ze strukturovaných dat.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/applications/{id}/report":{"get":{"summary":"Report, tři bloky s proveniencí","description":"Bloky `mismatches`, `verified_without_finding` a `unverifiable`. Třetí blok je součást pravdy, ne chybový stav: říká, co ověřit nešlo a proč. Každý nález nese zdroj, čas dotazu a verzi pravidla. Od schématu 2 aditivní blok `facts`: neutrální fakta stupně `info`, nikdy nesoulad, jen z povoleného výčtu klíčů (`cv.overlapping_employment`, `cv.gap_between_employments`); ostatní fakta zatím API nevrací. Položky `mismatches` i `facts` nesou `claim_unconfirmed`: nález vychází z tvrzení z CV, které nikdo nepotvrdil ani neopravil.","operationId":"get_v1_applications__id__report","x-candora-scope":"reports:read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Report","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Report"}}}},"404":{"description":"Přihláška v této organizaci není","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/monitored-employees":{"post":{"summary":"Sledovaný zaměstnanec, dvě lidské cesty","description":"S `application_id` znamená „tohoto kandidáta jsme přijali\": přenese se jméno, typ dokladu a platnost, nic z nálezů a nic ze CV. Bez něj znamená ruční zadání nastupujícího, což je pro malé firmy hlavní vstup, ne výjimka. `acting_user` je povinný v obou případech: záznam smí vzniknout jen lidským úkonem a `created_by_user_id` je v databázi NOT NULL. Lhůta pro výmaz kandidáta běží dál, převzetí ji neprodlouží.","operationId":"post_v1_monitored-employees","x-candora-scope":"applications:write","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMonitoredEmployee"}}}},"responses":{"201":{"description":"Sledování založeno","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitoredEmployee"}}}},"403":{"description":"Role nesmí založit sledování nebo klíč nemá scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Přihláška v této organizaci není","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Chybí acting_user, jméno nebo platnost dokladu","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/monitored-employees/{id}/documents":{"post":{"summary":"Další doklad u sledovaného","description":"Řidič s průkazem, kódem 95 a osvědčením ADR je jeden člověk se třemi doklady, ne tři lidé. Jen u aktivního sledování. Hlídá se datum vytištěné na dokladu nebo lhůta stanovená předem; zdravotní údaje, posudky a stav z registrů se nepřijímají.","operationId":"post_v1_monitored-employees__id__documents","x-candora-scope":"applications:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddMonitoredDocument"}}}},"responses":{"201":{"description":"Doklad přidán","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitoredEmployee"}}}},"403":{"description":"Role nesmí přidat doklad nebo klíč nemá scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Sledování v této organizaci není nebo je ukončené","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Chybí acting_user, druh dokladu nebo datum, nebo údaj, který se nesmí ukládat","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/monitored-employees/{id}":{"delete":{"summary":"Konec sledování","description":"Nemaže hned: nastaví `ended_at` a tím rozjede lhůtu pro výmaz (výchozích 90 dní), mimo jiné proto, aby šlo omylem kliknuté ukončení vrátit. Po uplynutí lhůty záznam smaže denní úklid.","operationId":"delete_v1_monitored-employees__id_","x-candora-scope":"applications:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndMonitoring"}}}},"responses":{"200":{"description":"Sledování ukončeno","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitoredEmployee"}}}},"404":{"description":"Sledování v této organizaci není nebo už je ukončené","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Chybí acting_user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/webhooks":{"post":{"summary":"Registrace endpointu","description":"`secret` se vrací **jednou** a nikde se neukládá v plaintextu.","operationId":"post_v1_webhooks","x-candora-scope":"webhooks:manage","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhook"}}}},"responses":{"201":{"description":"Endpoint registrován","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreated"}}}},"422":{"description":"Neplatná URL nebo chybí acting_user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"summary":"Seznam aktivních endpointů","description":"Bez secretů.","operationId":"get_v1_webhooks","x-candora-scope":"webhooks:manage","parameters":[],"responses":{"200":{"description":"Seznam","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookList"}}}}}}},"/api/v1/webhooks/{id}":{"delete":{"summary":"Odvolání endpointu","operationId":"delete_v1_webhooks__id_","x-candora-scope":"webhooks:manage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Odvoláno","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}}},"404":{"description":"Endpoint v této organizaci není","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/team/members":{"get":{"summary":"Členové týmu","description":"Aktivní členové organizace s `id` a rolí. `id` patří do cesty změny role.","operationId":"get_v1_team_members","x-candora-scope":"team:manage","parameters":[],"responses":{"200":{"description":"Seznam","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamMemberList"}}}}}}},"/api/v1/team/members/{id}":{"patch":{"summary":"Změna role člena týmu","description":"Mění oprávnění, proto `acting_user` musí být vlastník (`owner`), který tenhle klíč založil, a dál vlastníkem být; jinak `403`. Posledního vlastníka snížit nejde (`409 last_owner`). Stejná role je `200` s `changed: false` a beze změny. Nahrazuje se role, ne její pravidla: `decider` nemění pásmo ani tým, `recruiter` nerozhoduje o lidech.","operationId":"patch_v1_team_members__id_","x-candora-scope":"team:manage","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeTeamRole"}}}},"responses":{"200":{"description":"Role je nastavená","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRoleChanged"}}}},"403":{"description":"`acting_user` není vlastník, který klíč založil, nebo testovací klíč","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Člen v této organizaci není","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Poslední vlastník","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Chybí `acting_user` nebo neznámá role","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API klíč organizace, `cand_live_...` nebo `cand_test_...` pro sandbox."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"},"detail":{"type":"string"}},"required":["error"]},"Ok":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"]},"StructuredApplication":{"type":"object","properties":{"acting_user":{"type":"string","format":"email"},"positionTitle":{"type":"string"},"applicationReceivedAt":{"type":"string","format":"date"},"externalRef":{"type":"string"},"displayName":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"residenceCountry":{"type":"string"},"claims":{"type":"array","items":{"type":"object","properties":{"employerName":{"type":"string"},"employerRegistryId":{"type":"string"},"employerCountry":{"type":"string"},"claimedDomain":{"type":"string"},"periodStart":{"type":"string","description":"YYYY-MM nebo YYYY-MM-DD"},"periodEnd":{"type":"string","description":"YYYY-MM nebo YYYY-MM-DD"},"roleTitle":{"type":"string"}},"required":["employerName","periodStart"]}}},"required":["acting_user","positionTitle","applicationReceivedAt","claims"]},"ApplicationCreated":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["waiting_confirmation","confirmed","partial","duplicate"]},"mode":{"type":"string","enum":["cv","structured"]},"queued_jobs":{"type":"integer"},"extraction":{"type":"string","enum":["fixture"]},"note":{"type":"string"}},"required":["id","status","mode"]},"ApplicationStatus":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["waiting_confirmation","confirmed","running","checked","decided"]},"check_completed":{"type":"boolean"},"claims_confirmed":{"type":"boolean"},"claim_count":{"type":"integer"},"position_title":{"type":"string"},"application_received_at":{"type":"string","format":"date"}},"required":["id","status"]},"ClaimList":{"type":"object","properties":{"claims":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"employer_name":{"type":"string"},"period_start":{"type":"string","format":"date"},"period_end":{"type":"string","format":"date"},"confirmed_at":{"type":"string","format":"date-time","nullable":true}}}}}},"ConfirmClaims":{"type":"object","properties":{"acting_user":{"type":"string","format":"email"},"claims":{"type":"array","items":{"type":"object"}}},"required":["acting_user"]},"RunCheck":{"type":"object","properties":{"acting_user":{"type":"string","format":"email"}},"required":["acting_user"]},"CheckStarted":{"type":"object","properties":{"check_run_id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["running","partial","completed","failed"]}},"required":["check_run_id","status"]},"Report":{"type":"object","properties":{"schema_version":{"type":"string","description":"Verze schématu odpovědi jako řetězec. Aditivní změna ji zvýší, klient přijme i vyšší hodnotu."},"candidate_label":{"type":"string"},"check_completed":{"type":"boolean"},"report":{"type":"object","properties":{"mismatches":{"type":"array","items":{"$ref":"#/components/schemas/Finding"}},"facts":{"type":"array","description":"Od schématu 2. Jen klíče cv.overlapping_employment, cv.gap_between_employments, stupeň `info`.","items":{"$ref":"#/components/schemas/Finding"}},"verified_without_finding":{"type":"array","items":{"type":"object"}},"unverifiable":{"type":"array","items":{"type":"object"}}},"required":["mismatches","verified_without_finding","facts","unverifiable"]}},"required":["schema_version","candidate_label","check_completed","report"]},"Finding":{"type":"object","description":"Nález tvrdí ověřitelný fakt s odkazem na zdroj. Nikdy skóre, riziko ani doporučení.","properties":{"rule_key":{"type":"string"},"rule_version":{"type":"string"},"severity":{"type":"string","enum":["conflict","attention","info"]},"statement_cs":{"type":"string"},"statement_en":{"type":"string"},"evidence":{"type":"object"},"source_url":{"type":"string","nullable":true},"queried_at":{"type":"string","format":"date-time","nullable":true},"claim_unconfirmed":{"type":"boolean","description":"Od schématu 2. Nález vychází z tvrzení z CV, které nikdo nepotvrdil ani neopravil."}},"required":["rule_key","rule_version","severity","statement_cs","statement_en","source_url","queried_at","claim_unconfirmed"]},"CreateMonitoredEmployee":{"type":"object","description":"Nikdy nenese nic z nálezů, tvrzení ani CV. Sledovaný zaměstnanec je jiná osoba v jiném právním vztahu než uchazeč, ne další úroveň téže služby.","properties":{"acting_user":{"type":"string","format":"email"},"application_id":{"type":"string","format":"uuid","description":"Když je vyplněný, jde o převzetí z přihlášky."},"full_name":{"type":"string"},"document_kind":{"type":"string","enum":["employment_permit","employee_card","blue_card","intra_corporate_transfer_card","temporary_protection","permanent_residence","eu_member_state_citizenship","driving_licence","driver_cpc","tachograph_card","adr_certificate","taxi_driver_card","electrical_exam","electrical_instruction","technician_certificate","crane_operator","pressure_vessel_operator","forklift_operator","welder_certificate","company_training","social_services_course","insurance_cpd","training_bozp","training_fire_safety","training_work_at_height","periodic_exam","young_worker_protection_end","ci_reliability_recheck","other"]},"document_number":{"type":"string","description":"Jen u pobytových dokladů cizinců a `other`. U profesních dokladů vrací 422."},"valid_until":{"type":"string","format":"date"},"date_kind":{"type":"string","enum":["valid_until","due_by"],"description":"`valid_until` doklad platí do, `due_by` splnit do (kurz, školení, přezkoušení). Výchozí `valid_until`."},"licence_groups":{"type":"array","items":{"type":"string","enum":["AM","A1","A2","A","B1","B","BE","C1","C1E","C","CE","D1","D1E","D","DE","T"]},"description":"Jen u `driving_licence`. Zdravotní kódy z pole 12 průkazu se nepřijímají."},"field_12":{"type":"string","description":"Jen u `driving_licence`: text pole 12 průkazu. Neukládá se; přečte se z něj jen kód 95 s datem a z toho vznikne doklad `driver_cpc`. Ostatní kódy jsou zdravotní údaj a zahodí se."}},"required":["acting_user"]},"AddMonitoredDocument":{"type":"object","description":"Další doklad nebo lhůta u člověka, kterého už hlídáme. Hlídá se datum vytištěné na dokladu nebo lhůta stanovená předem, nikdy stav z registru ani výsledek posudku.","properties":{"acting_user":{"type":"string","format":"email"},"document_kind":{"type":"string","enum":["employment_permit","employee_card","blue_card","intra_corporate_transfer_card","temporary_protection","permanent_residence","eu_member_state_citizenship","driving_licence","driver_cpc","tachograph_card","adr_certificate","taxi_driver_card","electrical_exam","electrical_instruction","technician_certificate","crane_operator","pressure_vessel_operator","forklift_operator","welder_certificate","company_training","social_services_course","insurance_cpd","training_bozp","training_fire_safety","training_work_at_height","periodic_exam","young_worker_protection_end","ci_reliability_recheck","other"]},"document_number":{"type":"string","description":"Jen u pobytových dokladů cizinců a `other`."},"valid_until":{"type":"string","format":"date"},"date_kind":{"type":"string","enum":["valid_until","due_by"]},"licence_groups":{"type":"array","items":{"type":"string","enum":["AM","A1","A2","A","B1","B","BE","C1","C1E","C","CE","D1","D1E","D","DE","T"]}},"field_12":{"type":"string","description":"Jen u `driving_licence`: text pole 12 průkazu. Neukládá se; přečte se z něj jen kód 95 s datem a z toho vznikne doklad `driver_cpc`. Ostatní kódy jsou zdravotní údaj a zahodí se."}},"required":["acting_user","document_kind","valid_until"]},"EndMonitoring":{"type":"object","properties":{"acting_user":{"type":"string","format":"email"}},"required":["acting_user"]},"MonitoredEmployee":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"state":{"type":"string","enum":["active","ended"]},"source":{"type":"string","enum":["accepted_candidate","manual_entry"]},"document_kind":{"type":"string","description":"Doklad s nejbližším datem."},"valid_until":{"type":"string","format":"date","description":"Datum dokladu s nejbližším datem."},"documents":{"type":"array","description":"Všechny hlídané doklady a lhůty člověka, od nejbližšího data.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"document_kind":{"type":"string","enum":["employment_permit","employee_card","blue_card","intra_corporate_transfer_card","temporary_protection","permanent_residence","eu_member_state_citizenship","driving_licence","driver_cpc","tachograph_card","adr_certificate","taxi_driver_card","electrical_exam","electrical_instruction","technician_certificate","crane_operator","pressure_vessel_operator","forklift_operator","welder_certificate","company_training","social_services_course","insurance_cpd","training_bozp","training_fire_safety","training_work_at_height","periodic_exam","young_worker_protection_end","ci_reliability_recheck","other"]},"date_kind":{"type":"string","enum":["valid_until","due_by"]},"valid_until":{"type":"string","format":"date"},"licence_groups":{"type":"array","items":{"type":"string"},"nullable":true}}}},"ended_at":{"type":"string","format":"date-time","nullable":true}},"required":["id","state"]},"CreateWebhook":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"acting_user":{"type":"string","format":"email"},"events":{"type":"array","items":{"type":"string"}}},"required":["url","acting_user"]},"WebhookCreated":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"secret":{"type":"string"}},"required":["id","secret"]},"ChangeTeamRole":{"type":"object","properties":{"acting_user":{"type":"string","format":"email"},"role":{"type":"string","enum":["owner","decider","recruiter"]}},"required":["acting_user","role"]},"TeamRoleChanged":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"role":{"type":"string","enum":["owner","decider","recruiter"]},"previous_role":{"type":"string","enum":["owner","decider","recruiter"]},"changed":{"type":"boolean"}},"required":["id","role","previous_role","changed"]},"ApplicationList":{"type":"object","properties":{"applications":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string"},"candidate_label":{"type":"string"},"position_id":{"type":"string","format":"uuid","nullable":true},"position_title":{"type":"string","nullable":true},"application_received_at":{"type":"string","format":"date","nullable":true},"external_ref":{"type":"string","nullable":true}}}},"next_cursor":{"type":"string","nullable":true}},"required":["applications","next_cursor"]},"PositionList":{"type":"object","properties":{"positions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"state":{"type":"string"},"opened_at":{"type":"string","format":"date"}}}}},"required":["positions"]},"TeamMemberList":{"type":"object","properties":{"members":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["owner","decider","recruiter"]}}}}}},"WebhookList":{"type":"object","properties":{"webhooks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}}}}}}}}}}