Technology Sep 11, 2026 · 2 min read

Three small API-backed actors I've shipped recently (Docker Hub, lead extraction, SEC Form 4)

I build small, narrow Apify actors — each one wraps a single official API or data source and does one job well, rather than trying to be a general-purpose scraper. Here are three recent ones, each solving a different, specific problem. Docker Hub Image Tracker Docker Hub will repush a ta...

DE
DEV Community
by Timothy Kelvin
Three small API-backed actors I've shipped recently (Docker Hub, lead extraction, SEC Form 4)

I build small, narrow Apify actors — each one wraps a single official API or data source and does one job well, rather than trying to be a general-purpose scraper. Here are three recent ones, each solving a different, specific problem.

Docker Hub Image Tracker

Docker Hub will repush a tag with a new digest, new architectures, or a different underlying image, and the version string stays the same. This actor hits hub.docker.com/v2/repositories directly and tells you what actually changed for a given repository within a time window — digest, size, supported architectures, last-pushed/last-pulled timestamps.

{ "repository": "postgres", "daysBack": 7, "maxResults": 50 }

Real gotcha from building it: the API's ordering param is backwards from the usual REST convention — ordering=last_updated sorts newest-first, and you need a - prefix to get oldest-first.

apify.com/m_ctim/docker-hub-image-tracker · source

Website Lead Extractor

Built on Crawlee's plain CheerioCrawler instead of a headless browser. Point it at a domain, it crawls within that domain up to a set depth, and pulls every email, phone number, and social profile link (LinkedIn, X, Facebook, Instagram, GitHub) it finds in the raw HTML — no Chromium, no render wait.

{ "startUrls": [{ "url": "https://example.com" }], "maxDepth": 1, "maxPagesPerDomain": 20 }

Tradeoff worth stating plainly: it only sees what's in the initial HTML response, so a client-side-only React SPA with no SSR needs a browser-based crawler instead. For the common case of a static or server-rendered marketing site, it's faster and has nothing to configure around headless-browser flakiness.

apify.com/m_ctim/website-lead-extractor · source

Insider Trading Alert

Every SEC Form 4 filing (executive/director/10%-owner stock buys and sells) is public, structured XML, filed within a couple of business days of the transaction. This actor reads EDGAR's filing feed and each filing's own XML directly — search one ticker or scan the market-wide feed of the newest filings.

{ "ticker": "AAPL", "transactionType": "disposed", "minTransactionValue": 100000 }

Real bug from building it: the boolean "is this person an officer/director" flags get encoded as 1/0 by some filers' software and true/absent by others, on the same form type. A naive === '1' check silently returned false for real officers depending on which software generated the filing.

apify.com/m_ctim/insider-trading-alert · source

All three are pay-per-event on Apify (no subscription), no proxy, and read directly from each source's own official API rather than scraping rendered pages.

DE
Source

This article was originally published by DEV Community and written by Timothy Kelvin.

Read original article on DEV Community
Back to Discover

Reading List