# AGENTS.md — upjobs.cz

upjobs.cz je **agent-ready** pracovní portál pro český trh (StartupJobs Labs). Nabídky jsou strojově čitelné a obsluhovatelné AI asistenty z obou stran trhu.

Lidsky čitelný návod (jak zapojit ChatGPT, Claude, Gemini, Perplexity + příklady promptů): https://www.upjobs.cz/agent-ready

## Endpointy
- **REST API** (veřejné, rate-limit 60 req/min/IP; zápis jen reakce uchazeče):
  - `GET https://www.upjobs.cz/api/v1/jobs?q=&category=&location=&seniority=&mode=&salary_min=&lang=&page=`
  - `GET https://www.upjobs.cz/api/v1/jobs/{id}`
  - `GET https://www.upjobs.cz/api/v1/facets`
  - `POST https://www.upjobs.cz/api/v1/jobs/{id}/apply` — reakce uchazeče (multipart/form-data): `name`, `email`, `phone`, `message`, volitelně `cv` (PDF/DOC/DOCX ≤ 5 MB) a `answers`.
- **MCP server** (JSON-RPC 2.0 přes HTTP POST): `https://www.upjobs.cz/mcp`
  - lifecycle: `initialize`, `tools/list`, `tools/call`

## Doplňující otázky k reakci
Detail pozice může obsahovat `applicationQuestions` — otázky, na které se musíš uchazeče zeptat **před** odesláním reakce:
```json
[{"id": 12, "label": "Máte řidičský průkaz C?", "type": "yesno", "required": true},
 {"id": 13, "label": "Které směny můžete?", "type": "select", "required": false, "multiple": true, "options": ["Ranní", "Odpolední", "Noční"]}]
```
- Typy: `text` (≤ 255 znaků), `textarea` (≤ 5 000), `yesno` (`true`/`false`, `ano`/`ne`), `select` (hodnota přesně z `options`; při `multiple: true` pole hodnot).
- Odpovědi posílej jako `answers[ID]=hodnota` (u více možností `answers[ID][]=…`), nebo jedno pole `answers` s JSON objektem `{"12": true, "13": ["Ranní"]}`.
- Povinné otázky se vynucují: bez odpovědi vrátí API `422` a v `fields` klíč `q_ID` s popisem. Nevymýšlej odpovědi za uchazeče — zeptej se ho.

## MCP tooly
- `search_jobs(query?, location?, category?, seniority?, mode?, salary_min?, lang?, limit?)` — vyhledá pozice, vrací strukturovaná data + URL zpět.
- `get_job(id)` — plný detail pozice.
- `get_facets()` — dostupné obory, lokality, seniority, režimy s počty.
- `create_draft(...)` — *(připravováno, vyžaduje autentizaci)* založení konceptu inzerátu pro firmu/agenturu.

## Limity a pravidla
- Rate-limit: 60 req/min/IP na `/api` i `/mcp`; hlavičky `X-RateLimit-*`.
- Data: pole pojmenovaná blízko schema.org `JobPosting`; mzda jako objekt s `normalizedMonthlyCZK`.
- Atribuce: každá odpověď obsahuje `url` zpět na upjobs.cz. Vracíme jen reálná data se stabilními ID.
- Geo: Česko. Jazyky: cs, en.
