
Mohanad Alshaka
I build data actors on official endpoints rather than scraped page layouts, with real rate-limit handling and a test suite behind each one.
Joined June 2026
ACTOR STATS
10 public Actors
19 total users
1 monthly user
>99% runs succeeded
Data actors for sources that other tools quietly get wrong.
Three rules I hold to:
Official endpoints over scraped layouts. Where a platform publishes structured data, I read that instead of parsing a page. A theme change or a redesign doesn't take the actor down with it.
A throttle is not an empty result. These sources answer bursts with HTTP 429 and often serve an HTML challenge page instead of JSON. My actors back off exponentially, honour Retry-After, and refuse to report a throttled page as "no data found". Silent partial results are worse than a visible error.
Arabic is handled, not mangled. Many Arabic sources publish text in Unicode Presentation Forms-B. It looks identical on screen and is a different set of code points, so a plain keyword search over the raw feed silently drops matching records. I normalise before matching and keep the original wording in every record so it stays traceable to the source.
Beyond that: every row in a dataset carries the same fields, so CSV exports stay rectangular. Personal data that appears in a source but has no bearing on the result gets dropped before it reaches your dataset. Each actor ships with tests, including ones that assert a defect exists before asserting the fix.
- Shopify Catalogue & Price Change Monitor - track competitor stores and get only what moved since the last run
- Etimad Tender Radar - live Saudi government tenders, Arabic-safe filtering
- Etimad Pre-Planning Radar - what Saudi agencies plan to procure before it reaches tender
Bug reports and feature requests through the Issues tab on any actor.