Mostaql Projects Monitor
Pricing
from $5.00 / 1,000 projects
Mostaql Projects Monitor
New freelance projects from mostaql.com, the largest Arabic freelance marketplace: title, category, skills, budget, bids, date and description. Filter by category, skill or keyword; schedule with onlyNew. No client personal data.
Pricing
from $5.00 / 1,000 projects
Rating
0.0
(0)
Developer
ABDULWAHAB NASER RASHED ALQARAWI
Maintained by CommunityActor stats
0
Bookmarked
11
Total users
8
Monthly active users
13 days ago
Last modified
Categories
Share
Choose categories, skills or keywords, or leave them empty to browse public Mostaql projects. Get one row per project with its budget, date, skills, description and a link back to the project.
Filter by category, skill or keyword and reuse Only new to avoid delivering the same project ID again. No Mostaql API key or login is needed; Apify API calls use your Apify token. No browser or proxy is used.
Start with five projects
Click Start with the prefilled input, or use this small API example:
{"maxProjects": 5, "maxPages": 1, "keywords": [], "onlyNew": false}
This reads one listing page and stops after five delivered projects. It does not filter for a particular skill, so the first example does not depend on WordPress or Python projects being available. If the source refuses access, the run reports the block rather than bypassing it.
Verified Apify run TFvxneMCWmYxpoD2a, build 0.1.3, returned five projects
successfully on 7 October 2026 (Kuwait time; 6 October UTC). It read one listing
page and five project pages, plus robots.txt, in 6.3 seconds. These three rows
show metadata from that run; source listings can change:
| Project ID and link | Budget (USD) | Published (UTC) |
|---|---|---|
| 1283464 | 50–100 | 2026-10-06T21:43:13Z |
| 1283461 | 100–250 | 2026-10-06T21:41:49Z |
| 1283459 | 25–50 | 2026-10-06T20:52:22Z |
For a repeatable setup, follow the practical guide to monitoring unseen Mostaql project IDs.
What you get
One row per project, 13 fields, every one always present — missing values
come back as null, never dropped.
| Field | Meaning or example |
|---|---|
title | User-written project title; not reproduced in this guide |
category | Project category displayed by Mostaql |
skills | Comma-separated skill names |
budgetMin / budgetMax / currency | Lower and upper stated budget, with currency |
bidsCount | Number of bids shown in the listing |
publishedAt | ISO 8601 timestamp in UTC, as in the verified sample above |
description | full text, line breaks kept, markup removed |
url | Link back to the project, as in the verified sample above |
Plus projectId, scrapedAt, and changeType (NEW with Only new, else null).
Times are real UTC. The listing shows local-looking timestamps; the site's
own RSS feed gives the same project with +0000, so they are returned as ISO
8601 UTC.
Project text and privacy
This Actor skips structured client and bidder profile elements: names, usernames, avatars and profile links. Tests check those elements are excluded. Titles and descriptions are user-written text returned without redaction; they can contain names, contact details or other personal information. This is not a contact-finding service. Review the data before sharing it and use the project URL to respond through Mostaql.
Public visibility and robots.txt access do not grant ownership or permission to republish project descriptions. Follow the Mostaql terms and applicable rights. The Actor is independent and not endorsed by Mostaql.
Filters
- Categories — programming, AI, design, marketing, writing & translation, business, engineering, support, training.
- Skills — a skill slug (
web-security) or a link such ashttps://mostaql.com/projects/skill/web-security. - Keywords — matched against title, description, skills and category.
Case, Arabic diacritics and alef forms are ignored, so
مسوقfindsمسوّقandالكترونيfindsإلكتروني. A project matches if it contains any keyword. - Minimum budget (
minBudget, USD) — a project matches when the top of its budget range (budgetMax) is at least this, so$100–$250matches250. A project with no stated budget never matches a minimum. - Published since (
publishedSince) —2026-09-01(00:00 UTC) or a date-time with a zone, such as2026-09-01T08:00:00Zor2026-09-01T11:00:00+03:00. It is compared withpublishedAt, which is UTC. A malformed value stops the run before any request; a project with no publish time never matches.
All filters are checked on the project page before a row is delivered, so a
project that does not match is never charged. With onlyNew, the minimum
budget and the since-date become part of the remembered state's key only when
set: an existing monitor that does not use them keeps its memory.
With both skills and categories, the skill listings are read and each project's own category is checked.
Only new projects
Turn on onlyNew and schedule the Actor (every hour, say). Each run delivers
only projects that no earlier run delivered, marked changeType: NEW. Known
projects are recognised from the listing alone, so their pages are not read
again.
Measured 15 Sep 2026, on all categories with maxPages: 2:
| Run | Requests | Time | Projects delivered |
|---|---|---|---|
| First | 53 | 59.9 s | 50 (all NEW) |
| Second, one minute later | 3 | 2.4 s | 0 |
A run skips projects it already delivered and keeps reading older listing
pages, up to maxPages, until it has maxProjects new ones. So when your cap
is smaller than what the pages hold, later runs also deliver older projects
you have not received yet. Measured on Apify 15 Sep 2026 with
maxProjects: 30: the second run skipped the 30 known projects and delivered
the next 30 older ones. To receive only fresh projects, keep maxPages low.
How it remembers:
- Project ids are kept in a named key-value store in your account
(
stateStoreName, defaultmostaql-projects-state), under a key built from your filters. Two monitors with different filters never hide each other's projects. - A project that was read but did not match your keywords is remembered too, so it is not read again on every run.
- A project that was not delivered — its page failed, or the run stopped at your spending limit — is not remembered and is tried again next run.
- If a run stops at
maxProjects, projects further down the listing are still unseen and are delivered by the next run. They are older, not new; setmaxProjectsto at leastmaxPages × 25if you want each run to cover its whole window.
Speed and politeness
One request at a time, at least one second apart. A run reads one listing page per 25 projects plus one page per project it has not seen.
Measured 15 Sep 2026: 50 projects in 59.9 seconds (53 requests).
robots.txtis read at the start of every run and obeyed for every URL. On 15 Sep 2026 it disallowed only/searchand/ajax/; the Actor never requests either, even through a redirect.- Every request, redirects included, must stay on
https://mostaql.com. maxPages(default 5, at most 40) bounds every run.- If the site answers "too many requests", the Actor waits (up to 30 s) and tries once more. If it refuses again, answers 403, or shows a challenge page, the run stops and says so. There is no attempt to get around a block.
Honest notes
Bids count comes from the listing. The project page lists the bids but not
their number; the listing states it (7 عروض, عرض واحد, أضف أول عرض = 0).
Budgets are in US dollars. Every budget seen on 15 Sep 2026 was written in
$. currency is null if a budget ever appears without a currency sign.
A project page that cannot be read is skipped, counted under unreadable
in the run report, and — with onlyNew — tried again next run.
Every run publishes a report to the key-value store under RUN_REPORT:
requests, listing pages read, projects read, already seen, filtered out,
unreadable, and whether the run stopped at a block, the spending limit or
maxProjects.
incomplete: true means a source block, robots restriction or unreadable page
prevented full coverage. Partial rows are kept with that warning. A run with
no delivered rows and one of these source errors fails visibly; a completed
run with no matching or unseen projects still succeeds normally.
Repeat the same monitor
Save an Apify Task with your filters and a stable stateStoreName, then reuse
it with onlyNew: true. Run it again manually before scheduling: zero rows is
expected when the covered listings contain no unseen project IDs. Do not run
two copies against the same state store at once; state updates are not locked.
This monitors unseen project IDs, not later edits to an existing project.
{"categories": ["development"], "maxProjects": 25, "maxPages": 1,"onlyNew": true, "stateStoreName": "mostaql-development-monitor"}
Changes — 7 October 2026
- First-run prefill returns up to five unfiltered projects from one page.
- Source errors no longer look like successful empty runs; partial coverage
is explicit in
RUN_REPORT. - Redirect destinations are checked against the robots.txt rules loaded for the run.
- Clarified that user-written text is not guaranteed free of personal data.
Questions, or a project that looks wrong?
Open an issue with the project link.