Opis za rad
Node 20+, bez ijedne zavisnosti. Podaci su JSON/JSONL fajlovi, program ima CLI i mali HTTP server. Ocena poklapanja i paket prijave se računaju deterministički iz profila i teksta oglasa — nema modela, nema mreže.
Kako se pokreće
node src/cli.mjs serve # HTTP server (PORT, default 8795; this demo runs on 8797) node _qa/smoke.mjs # 9/9 checks PROFILE_FILE=data/profile.demo.json node src/cli.mjs serve # demo candidate # CLI, bez servera node src/cli.mjs jobs node src/cli.mjs pack --id <jobId>
API
| metod | putanja | šta radi |
|---|---|---|
GET | /health | da li radi + broj oglasa |
GET | /metrics | brojači toka i stopa odgovora |
GET | /jobs | svi oglasi sa ocenom poklapanja |
GET | /jobs/:id | jedan oglas |
GET | /jobs/:id/pack | gotov paket prijave |
POST | /jobs/:id/apply | označi kao poslato |
POST | /jobs/:id/status | pomeri status (odgovor, intervju…) |
POST | /import | uvezi novi oglas iz teksta |
Podaci
- data/jobs.json — oglasi (firma, pozicija, plata, zahtevi, link)
- data/profile.json — kandidat (skills, claims, roleFamilies); demo koristi data/profile.demo.json
- data/pipeline.jsonl — tok prijave, samo dodavanje (append-only)
Ograničenja — šta ovaj demo ne radi
- Nema baze podataka — JSON fajlovi (dovoljno za jednog kandidata; za tim treba Postgres).
- Nema autentikacije: svako ko ima URL može da menja status. Demo je namerno otvoren.
- Ne šalje prijave sam — nema mejl integracije; paket se kopira ručno.
- Ne skida oglase sa sajtova — oglas se uvozi kao tekst (POST /import).
Kako se postavlja
Jedan Node proces iza nginx-a, systemd servis, Let’s Encrypt. Recept je u E:\poslovi\DEMO-REGISTAR.md — isti za svaki program.
Demo ne troši novac: nema AI ključeva i nema spoljnih poziva.