Pretvaranje javnog izvora podataka u feed od 29 eura mjesečno

Prodaja podataka kao pretplate je najdosadniji AI sporedni posao koji sam vodio i istodobno onaj koji ispisuje najčišću maržu. Proizvod nije blještavi chatbot, nego tablica koja se osvježava po rasporedu i sleti kupcu u inbox ili API. Crawler je mali, pravni filter strog, a popis kupaca kratak i lojalan. Svoj sam izgradio kroz četiri vikenda i uglavnom netaknut radi već pet mjeseci. Evo kako biram nišu, kako ostajem unutar zakona i kako uvodim prve pretplatnike.
Test niše, prije bilo kakvog koda
Prodavljiv podatkovni feed ima tri svojstva: izvor je javan, podaci se mijenjaju dovoljno često da opravdaju pretplatu, a kupci već plaćaju nekome za ružniju verziju tog istog. Izbacujem sve što ne ispunjava i jedan od ova tri kriterija. Kandidate filtriram tako što u industrijske forume i male subreddite postavim pitch u dva retka, isti filter koji koristim za AI chatbot pretplatu. Ako u 72 sata ne dobijem barem četiri ozbiljna odgovora, niša umire na mjestu. Graditi feed koji nitko nije tražio je greška koju ne želim ponoviti.
Pravna lista koju ne prelazim
Ovo je korak koji ubija većinu projekata i to s razlogom. Prije nego napišem ijedan redak crawler koda, odgovorim na pet pitanja o izvoru. Jesu li podaci iza prijave? Zabranjuju li uvjeti korištenja automatizirani pristup? Isključuje li robots.txt putanje koje želim? Prelazi li moja učestalost zahtjeva ono što bi pristojan user agent radio? Izlaže li izlaz osobne podatke na način na koji izvorni izdavač to ne čini? Ako je neki odgovor neugodan, prelazim na sljedećeg kandidata. Vodim pisanu evidenciju po izvoru, s datumom, pa ako se spor ikad pojavi mogu dokazati provjeru. Pravna higijena se ovdje preklapa s papirnatim tragom koji vodim za domain flipping; dosadna dokumentacija vas poslije spašava.
Stack, namjerno mali
Jedan mali VPS za 6 eura mjesečno, Python s requests i selectolax za parsiranje, SQLite za stanje, rotirajući rezidencijalni proxy pool za 15 eura mjesečno, jedan cron job svakih 60 minuta. Bez Kafke, bez queueova, bez mikroservisa. Ukupni trošak infrastrukture je 21 euro mjesečno. AI ulazi na točno dva mjesta: prvo, za skiciranje ekstrakcijskih selektora s uzorka stranice, čime se uštedi otprilike tri sata; drugo, za normalizaciju neurednih tekstualnih polja poput naziva tvrtki i lokacija. Sam crawler ima 380 redaka determinističkog Pythona. Dosadan kod, lako otklonjiv u 23 h kad nešto pukne.
- Dohvati stranicu s popisom, usporedi s prethodnim snimkom, izvuci URL-ove novih stavki.
- Dohvati svaku novu stavku, parsiraj polja, validiraj tipove.
- Normaliziraj slobodni tekst jeftinim LLM pozivom, ograniči trošak na 0,002 eura po retku.
- Deduplikacija u SQLite-u preko hasha normaliziranog payloada.
- Dopiši u dnevni CSV, šalji pretplatnicima e-mailom i kroz mali JSON endpoint.
Cijena, pakiranje i prvih 14 kupaca
Postavio sam cijenu na 29 eura mjesečno od prvog dana, bez besplatne probe. Besplatna proba bi dovela radoznalce, a ovaj proizvod živi od kupaca koji već znaju bol. Prva tri pretplatnika došla su s istog foruma gdje sam testirao pitch. Sljedećih osam stiglo je iz jedne hladne e-mail kampanje prema 40 malih agencija koje su očito taj posao radile ručno. Stopa odgovora bila je 28 posto, stopa zatvaranja na odgovorene 25 posto. Preostala tri našla su me kroz pretragu nakon dva kratka write-upa koja sam objavio. Prihod u petom mjesecu: 406 eura mjesečno, troškovi 21 euro infrastrukture i otprilike 85 eura tokena i proxyja u najtežem mjesecu, neto marža oko 300 eura. To je 74 posto marže na proizvodu koji mi oduzme otprilike 90 minuta tjedno održavanja. Jedinična ekonomija je bliža mojoj plaćenoj newsletteru nego većini AI wrapper priča.
Održavanje, dio koji nitko ne pokazuje na prodajnoj stranici
Svakog utorka navečer otvorim nadzornu ploču, preletim log grešaka i zakrpam što god se promijenilo. U pet mjeseci selektore sam dirao četiri puta. Dva puta su bile manje izmjene izgleda izvora, jednom je bio tihi 403 koji je tražio novu rotaciju user agenta, jednom je bila promjena sheme koja me koštala cijele večeri. Planiram 90 minuta tjedno, a u prosjeku potrošim oko 60. Bez tog fiksnog termina feed bi istrunuo u kvartalu, što je greška o kojoj upozoravam u hubu AI sporednih poslova.
Prodaj shemu, ne scraping
Kupce ne zanima što scrapate. Njih zanima da je izlaz čista, stabilna shema koju mogu ubaciti u vlastite alate bez preimenovanja stupaca. Shemu objavljujem na prodajnoj stranici s primjerom CSV-a i malom JSON Schema datotekom. Taj jedan detalj zatvorio je barem tri od mojih prvih deset pretplatnika koje je prethodni feed opekao jer je mijenjao stupce bez upozorenja. Jedna stranica dokumenta o shemi vrijedi više od bilo kojeg prodajnog teksta koji bih mogao napisati.
Ne scrapajte ništa što zahtijeva autentifikaciju, čak i ako izgleda lako. Onaj jedan put kad sam prekršio to pravilo, na izvoru s vrlo tankim zidom prijave, izgubio sam tjedan svađajući se s izdavačem i morao vratiti novac dvama pretplatnicima. Uska javna niša sa skromnim volumenom svaki put pobjeđuje bogat izvor s prijavom i pravnim rizikom. Ako se feed može izgraditi samo iza prijave, izgradite drugi feed.
Često postavljana pitanja
Je li scraping javnih podataka legalan?
Javni podaci bez prijave i bez clickwrap uvjeta koji zabranjuju automatizirani pristup su sigurna zona u većini jurisdikcija, uključujući Hrvatsku. Scraping iza prijave, zaobilaženje ograničenja učestalosti ili ignoriranje robots.txt isključenja brzo vas izbacuje iz te zone. Vodim jednostraničnu pravnu listu po izvoru i odbijam svaki feed koji ne može odgovoriti potvrdno na svaku stavku.
Koliko se stvarno može naplatiti za nišu feed?
Moj feed je na 29 eura mjesečno za 14 pretplatnika, 406 eura redovitog prihoda. Opći news feed ne bi preživio po toj cijeni; uska industrijska niša s osvježavanjem unutar 60 minuta i čistom shemom hoće. Kupci su gotovo uvijek male agencije ili jednočlani istraživački desk koji cijene uštedu vremena, ne sirove podatke.
Može li AI zamijeniti scraping pipeline?
AI piše ekstrakcijske promptove i normalizira neuredna polja, ali vodovod (raspoređivanje, retry, deduplikacija, detekcija promjena) je i dalje dosadan kod. Pokušao sam cijeli pipeline pokrenuti kroz LLM agenta i radilo je jedan vikend, pa je tiho odlutalo. Koristi AI za nejasne dijelove, a deterministički dio drži determinističkim.