Přejít k obsahu
Interní nástrojAutomatizaceNode.jsV provozu

Scrapik: čistý seznam kontaktů místo hodin hledání

Interní nástroj, který pomáhá připravit a vyčistit seznam firemních kontaktů z veřejných zdrojů. Výstup lze stáhnout do CSV nebo zapsat do Notionu.

RoleZadání, návrh, vývoj
Pro kohoInterně v nkz
ZdrojePlaces API, firmy.cz, ARES
Scrapik – webové rozhraní se živým logem
Zadání

Seznam, který se dá poslat

Pro Walio potřebujeme přehled kaváren, restaurací a kadeřnictví po městech. Ruční hledání znamenalo hodinu práce na dvacet kontaktů a velká část údajů byla neaktuální.

Zadání proto nebylo „stáhni co nejvíc adres“, ale „dej mi seznam, který jde použít bez ručního čištění“. Kvalita dat rozhoduje víc než jejich počet.

Co jsme dodali

Šest částí nástroje

Sběr přes oficiální API

Podniky hledáme přes Google Places API po městských částech, ne scrapováním Maps. Odpovědi se cachují, takže opakovaný běh nepálí kredit.

Dohledání e-mailu

Když na webu podniku e-mail není, zkusí se další veřejný zdroj, například firmy.cz. Čte i zamlžené adresy typu „info [at] domena“.

IČO a právní forma z ARES

Ke každému podniku se dohledá IČO a právní forma z veřejného rejstříku. Záznam v seznamu se tak dá spárovat s konkrétní firmou.

Validace a čištění

Placeholdery, šablonové weby a nesouhlasné adresy padnou. E-mail projde jen tehdy, když má doména platný MX záznam, takže v seznamu nezůstanou adresy na nefunkčních doménách.

Web pro netechnického kolegu

Formulář, živý log průběhu a stažení CSV s vybranými sloupci. API klíč zůstává na serveru, kolega ho nevidí.

Zápis do Notionu

Výsledky jdou vedle CSV rovnou do Notion databáze. Sloupce se párují podle názvů a stejný podnik se nepřidá dvakrát.

Proč takhle

Dvě rozhodnutí, která drží data použitelná

Oficiální API, ne scrapování Maps

Podniky hledáme přes oficiální Google Places API, ne scrapováním Map. Je to dražší, ale nástroj se nerozbije při každé změně stránky.

Radši prázdné pole než špatný údaj

E-mail projde jen s funkční doménou a shodou s názvem podniku, IČO se ověřuje kontrolní číslicí. Pokrytí e-mailů je díky tomu nižší, zato se seznam dá použít bez ručního čištění.

Průběh

Od skriptu k nástroji pro tým

Ruční sběr jako výchozí bod

Kontakty na podniky jsme dřív hledali po jednom. Hodinu práce na dvacet adres, z nichž řada byla nefunkční.

Zpracování podle jasných pravidel

Vyhledání, detaily, doplnění, kontrola, výstup. Každý krok se dá pustit zvlášť a má vlastní testy.

Přísná validace

Nejdřív jsme hnali objem, pak jsme zjistili, že rozhoduje kvalita. Přidali jsme MX kontrolu a shodu názvu s e-mailem.

Rozhraní pro celý tým

Aby nástroj nezůstal jen u vývojáře, dostal jednoduché rozhraní v prohlížeči a nasazení na Render.

Technologie

Node, žádný framework

Dlouhoběžící úloha, takže klasický server, ne serverless funkce.

Nástroj a provoz
Node.jsESMGoogle Places APIARES APINotion APIServer-Sent EventsCSVMX kontrolaRender
Rozsah

Rozsah řešení

3Zdroje dat: Google Places, firmy.cz, ARES
2Výstupy: CSV a databáze v Notionu

Řešíte něco podobného?

Napište nám, kde vám mizí hodiny. Ozveme se do dvou pracovních dnů.

Další projekty

Co jsme dělali dál

Všechny projekty →