SignalScout: lähteistetty avaus tai tyhjä kenttä
B2B-tutkimustyökalu joka muuttaa liidilistan kylmien sähköpostien avauksiksi, ja jokaisessa on lähdeosoite, päivämäärä ja luottamustaso. Kun se ei tiedä, se ei sano mitään.

Taustaa
SignalScout on kaupallinen B2B-tuote Nuitsilta, yhden hengen studioltani Helsingissä. Lataat CSV-tiedoston liidejä. Saat takaisin kontaktoinnin avauksen jokaiselle, ja jokaisen avauksen vieressä on osoite josta se tuli, tuon lähteen päivämäärä ja se kuinka varma järjestelmä on siitä että nuo kaksi liittyvät toisiinsa.
Jos tutkimus ei tuottanut mitään käyttökelpoista, kenttä palautuu tyhjänä. Se ei palaudu uskottavana.
Ongelma
Jokaisessa kokeilemassani tekoälykontaktointityökalussa oli sama vikatila, eikä se ollut bugi missään niistä. Pyydä personoitu avaus, niin saat sen. Aina. Ei ole syötettä jolla laite sanoisi ettei se tiedä. Saat siis itsevarman kappaleen rahoituskierroksesta joka ei koskaan toteutunut, osoitettuna ihmiselle joka ei sitä kerännyt, panet oman nimesi alle ja painat lähetä.
Sen kustannus on epäsymmetrinen. Lauseen tuottaminen maksaa sentin murto-osan. Sen lähettäminen maksaa maineesi sen yhden prospektin silmissä jonka oikeasti halusit. Kukaan ei hinnoitellut sitä oikein, enimmäkseen siksi että tyhjä solu näyttää rikkinäiseltä tuotteelta ja keksitty solu toimivalta.
Oma roolini
Kaikki. Nuits ei ole koskaan palkannut ketään.
Se tarkoittaa asemointia, hinnoittelumallia, käyttöliittymää, tyhjiä tiloja, tutkimusagentteja, arviointivaljaita, laskutusintegraatiota, transaktiosähköposteja, virhenäkymiä ja sitä hinnoittelusivun lausetta joka myöntää että tekoälytutkimus voi olla väärässä. Suunnittelin sen ja kirjoitin sen. Ei ole ketään jolle ojentaa epämukava teksti.
Lähestymistapa
Suunnittelin tyhjän tilan ennen kuin suunnittelin mitään muuta. En reunatapauksena vaan ensisijaisena näkymänä. Jos tuote näyttää oikealta ja rauhalliselta silloin kun se ei ole löytänyt mitään, muu käyttöliittymä voi olla rehellinen ilman anteeksipyytelyä.
Siitä muoto seurasi. Jokainen tuotoksen väite kantaa lähdetiedon jota ostaja voi klikata. Luottamustaso on todistusaineiston ominaisuus eikä luku jonka pyysin mallia keksimään itsestään. Ja hinnoittelun piti olla liidikohtaista eikä käyttäjäkohtaista, koska käyttäjäkohtainen hinta rankaisee juuri sitä huolellista tekijää joka lähettää neljäkymmentä hyvää sähköpostia neljäntuhannen huonon sijaan. Krediittipaketit ovat 19, 79 ja 249 dollaria.
Toteutus
Se pyörii Astro 7:llä julkaistuna Cloudflare Workersiin. D1 pitää tilit, krediittikirjanpidon ja työtietueet. Jokainen tutkimuserä saa oman Durable Objectin, ja juuri se tekee tuotteesta ylipäätään mahdollisen: yhden liidin kunnollinen tutkiminen vie kymmeniä sekunteja, kahdensadan rivin CSV vie tovin, ja Durable Object selviää siitä että käyttäjä sulkee välilehden. Turnstile vartioi latauspäätepistettä, jottei kallis polku ole tuntemattomille ilmainen.
Tutkimus kulkee kolmessa vaiheessa, ja erottelu on koko suunnitelma. Hakuvaihe käyttää Exaa neuraalihakuun ja Firecrawlia löydettyjen sivujen noutamiseen ja purkamiseen, ja se palauttaa ehdokasdokumentit osoitteineen ja julkaisupäivineen. Kirjoitusvaihe näkee vain nuo dokumentit eikä se saa viitata mihinkään niiden ulkopuoliseen. Arviointivaihe lukee sitten jokaisen tuotetun väitteen takaisin lähdetekstiä vasten ja pudottaa kaiken mitä se ei löydä sieltä. Luottamustaso lasketaan jälkikäteen lähteen tuoreudesta ja siitä ovatko riippumattomat lähteet samaa mieltä, joten malli ei koskaan arvostele omia kotitehtäviään.
Mallit tulevat OpenRouterin kautta, mikä antaa minun reitittää vaiheittain eikä tuotteittain. Poiminta ja luokittelu pyörivät jollain halvalla ja nopealla, koska niissä on suurin osa tokenimäärästä. Vain lopullinen lause, kerran liidiä kohti, menee kalliille mallille. Liidikohtainen kustannus pysyy riittävän ennustettavana jotta sitä vasten voi hinnoitella, mikä on jaon todellinen syy.
Vikatilat ovat se kiinnostava osa. Entiteettien törmäys on pahin: kahdella yrityksellä on sama nimi, haku palauttaa molemmat, ja avaus kuvaa vakuuttavasti väärää. Verkkotunnuksen täsmäytys ja arvioijan sama-entiteetti-tarkistus nappaavat siitä suurimman osan. Vanhentuneet lähteet ovat toinen: kolme vuotta vanha tiedote on teknisesti totta ja sosiaalisesti tuhoisa, joten ikä syötetään suoraan luottamustasoon. Maksumuurit ja bottimuurit tuottavat osittaisia poimintoja jotka näyttävät kokonaisilta, ja arvioija kohtelee niitä puuttumisena eikä todisteena.
Polar hoitaa maksut merchant of record -roolissa, joten EU:n arvonlisävero on jonkun muun työtä. Resend lähettää kuitit ja ilmoitukset valmistuneista töistä. Sentry nappaa sen mitä en osannut ennakoida, mikä on pidempi lista kuin haluaisin.
Lopputulos
Se on julkaistu ja se myy krediittejä. Tuotos jättää kenttiä tyhjiksi, ja hinnoittelusivu toteaa suoraan että tekoälytutkimus voi olla väärässä, mikä on outo asia laittaa ostonapin viereen ja syy siihen että luotan ostonappiin.
Mitä tekisin toisin
Rakensin kolmivaiheisen putken ennen kuin minulla oli arviointiaineistoa, joten ensimmäisen kuukauden ajan ”parempi” oli tunne. Minun olisi pitänyt merkitä sata liidiä käsin ensimmäisenä päivänä ja pakottaa jokainen kehotemuutos todistamaan itsensä niitä vasten.
Hinnoittelin myös krediittipaketit ennen kuin tiesin todellisen liidikohtaisen kustannukseni. 19 dollarin taso oli optimistinen. Olisin mieluummin julkaissut yhden hinnan, mitannut kuukauden ja rakentanut portaikon vasta sitten.




