Forvandling af en offentlig datakilde til et 29 euro månedligt feed

At sælge data som abonnement er den mest kedelige AI-sidehustle, jeg har kørt, og det er den, der giver den reneste margin. Produktet er ikke en flot chatbot, det er et regneark, der opdateres efter en tidsplan og lander i købers indbakke eller API. Crawleren er lille, det juridiske filter er strengt, og kundelisten er kort og loyal. Jeg byggede min i fire weekender, og den har kørt næsten urørt i fem måneder. Her er, hvordan jeg vælger nichet, holder det lovligt og lander de første betalende kunder.
Nichetesten, inden der skrives kode
Et salgbart datafeed har tre egenskaber: kilden er offentlig, dataene ændrer sig hyppigt nok til at retfærdiggøre et abonnement, og køberne betaler allerede nogen for en grimt version af det. Jeg kasserer alt, der fejler på bare ét af disse. Jeg shortlister kandidater ved at poste et to linjer langt pitch i branchefora og små subreddits – det samme filter, jeg bruger til mit AI-chatbot-abonnement. Får jeg ikke mindst fire seriøse svar inden for 72 timer, dør nichet på stedet. At bygge et feed, ingen bad om, er den fejltype, jeg nægter at gentage.
Den juridiske tjekliste, jeg ikke krydser
Det er det trin, der dræber de fleste projekter, og med rette. Inden jeg skriver en eneste linje crawler-kode, besvarer jeg fem spørgsmål om kilden. Er dataene bag et login? Forbyder servicevilkårene automatiseret adgang? Udelukker robots.txt de stier, jeg vil bruge? Overskrider min crawlehastighed, hvad en høflig user agent ville gøre? Eksponerer outputtet persondata på en måde, den originale udgiver ikke gør? Er et svar ubehageligt, søger jeg videre til næste kandidat. Jeg fører en skriftlig post pr. kilde, dateret, så jeg kan dokumentere checket, hvis en tvist opstår. Juridisk hygiejne her overlapper med den papirspor, jeg fører ved domæneflips; kedelig dokumentation redder dig senere.
Stakken, bevidst holdt lille
En lille VPS til 6 euro om måneden, Python med requests og selectolax til parsing, SQLite til tilstandshåndtering, en roterende proxy-pool med residens til 15 euro månedligt, et enkelt cron-job hvert 60. minut. Ingen Kafka, ingen køer, ingen microservices. Samlet infrastrukturomkostning er 21 euro om måneden. AI indgår på præcis to steder: først til at udkaste ekstraktionsselektorer fra en eksempelside, hvilket sparer cirka tre timer; dernæst til at normalisere rodede fritekstfelter som firmanavne og lokationer. Selve crawleren er 380 linjer deterministisk Python. Kedelig kode, nem at debugge kl. 23, når noget går i stykker.
- Hent listsiden, sammenlign med sidste snapshot, udtræk nye element-URL'er.
- Hent hvert nyt element, parse felter, valider typer.
- Normaliser fritekst med et billigt LLM-kald, begræns omkostningen til 0,002 euro pr. række.
- Dedupliker mod SQLite via hash af det normaliserede payload.
- Føj til daglig CSV, send til abonnenter via e-mail plus et lille JSON-endpoint.
Prissætning, pakketering og de første 14 kunder
Jeg prissatte til 29 euro månedligt fra dag ét, ingen gratis prøveperiode. En gratis prøveperiode ville have tiltrukket vindueskiggere, og dette produkt overlever på kunder, der allerede kender problemet. De første tre abonnenter kom fra det samme forum, hvor jeg testede pitchet. De næste otte kom fra en enkelt kold e-mail-batch, jeg sendte til 40 små bureauer, der tydeligvis lavede det samme arbejde manuelt. Svarrate var 28 procent, close rate på svar var 25 procent. De resterende tre fandt mig via søgning efter to korte indlæg, jeg publicerede. Omsætning ved måned fem: 406 euro månedligt, omkostninger 21 infrastruktur plus cirka 85 euro i token- og proxy-forbrug i den travleste måned, nettoprofit cirka 300 euro. Det svarer til en 74 procents margin på et produkt, der tager mig ca. 90 minutters vedligeholdelse om ugen. Enhedsøkonomien ligner mere mit betalte nyhedsbrev end de fleste AI-wrapper-projekter.
Vedligeholdelse, den del ingen viser på en salgsside
Hver tirsdag aften åbner jeg dashboardet, kigger fejlloggen igennem og patchar det, der ændrede sig. I fem måneder har jeg rørt selektorerne fire gange. To var mindre layoutjusteringer på kilden, én var en stille 403, der krævede ny user agent-rotation, én var en breaking schema-ændring, der kostede mig en hel aften. Jeg budgetterer med 90 minutter om ugen og bruger gennemsnitligt 60. Uden det faste tidslot ville feedet rådne inden for et kvartal, hvilket er den fejltype, jeg advarer om på AI Side Hustles-hubben.
Sælg skemaet, ikke scrapingen
Kunder er ligeglade med, at du scraper. De er interesserede i, at dit output er et rent, stabilt skema, de kan smide direkte ind i egne værktøjer uden at omdøbe kolonner. Jeg publicerer skemaet på salgssiden med en eksempel-CSV og en lille JSON Schema-fil. Den detalje lukkede mindst tre af mine første ti abonnenter, der tidligere var blevet brændt af et feed, der ændrede kolonner uden varsel. Et etsidet skemadokument er mere værd end al den landingssidetekst, jeg kunne skrive.
Scrap ikke noget, der kræver godkendelse, selvom det ser nemt ud. Den ene gang, jeg bøjede denne regel – på en kilde med en meget tynd login-mur – brugte jeg en uge på at argumentere med udgiveren og måtte refundere to abonnenter. En smal, offentlig kilde med beskedent volumen slår en rig, lukket kilde med juridisk risiko hver eneste gang. Kan feedet kun bygges bag et login, byg et andet feed.
Ofte stillede spørgsmål
Er scraping af offentlige data lovligt?
Offentligt tilgængelige data uden login og uden clickwrap-vilkår, der forbyder automatiseret adgang, er den sikre zone i de fleste jurisdiktioner. At scrape bag et login, omgå rategrænser eller ignorere en robots.txt-udelukkelse trækker dig hurtigt ud af den zone. Jeg holder en etsidet juridisk tjekliste pr. kilde og afviser ethvert feed, der ikke kan svare ja til hvert punkt.
Hvad kan man realistisk set tage for et niche-feed?
Mit feed koster 29 euro månedligt for 14 betalende abonnenter – 406 euro i tilbagevendende omsætning. Et generelt nyhedsfeed ville ikke overleve til den pris; et smalt branchefeed med 60 minutters aktualitet og et rent skema gør det. Købere er næsten altid små bureauer eller enkeltmandsforskningskontorer, der sætter den sparede tid højt, ikke rådata.
Kan AI erstatte scraping-pipelinen?
AI skriver ekstraktionsprompts og normaliserer rodet tekstindhold, men VVS-arbejdet (scheduling, retries, deduplication, ændringssporing) er stadig kedelig kode. Jeg prøvede at køre hele pipelinen gennem en LLM-agent – det virkede en weekend og drev stille og roligt bagud. Brug AI til de fuzzy dele, hold de deterministiske dele deterministiske.