I built a free Apify Actor Store audit tool. Would love feedback from Actor builders.
▲ 0 r/apify

I built a free Apify Actor Store audit tool. Would love feedback from Actor builders.

Hey everyone, I’m building Cosnify and just shipped a small free tool for Apify Actor builders:

https://cosnify.app/tools/apify-actor-audit

You paste a public Apify Actor URL and it gives a Store-readiness score across:

- Store positioning

- README quality

- SEO title/description

- input UX

- output/dataset clarity

- trust signals like maintenance, usage, reviews, and recent run reliability

Important: v1 does not run your Actor or inspect private source. It only audits public Actor metadata available from the Apify API, so it is more of a Store/docs/readiness check than a runtime quality test.

I built it because a lot of Actors are technically useful but hard for buyers to understand quickly. My goal is to help builders improve README structure, input explanations, output examples, and Store SEO before publishing or promoting.

Would love feedback on:

  1. Are these the right criteria?

  2. What would you add to a serious Apify Actor audit?

  3. Should the next version inspect `input_schema.json`, `dataset_schema.json`, and run examples?

u/Mpmpz_14 — 10 days ago
▲ 62 r/Morocco

How’s the job market in Morocco? I analyzed all 10,761 offers in ANAPEC’s public search to find out.

Salam Chabab,

So, I collected and analyzed every offer page exposed by ANAPEC's public job search to understand what the visible market actually looks like.

The portal reported 10,761 offers, and I collected 10,761 unique references. But the biggest finding was not an occupation or a city. It was freshness.

Only 3,577 offer pages were posted during the latest 365-day window. In other words, 66.8% of the search results were more than one year old, and the oldest visible posting dated back to 28 July 2017.

So I kept the full corpus to audit the portal, but used only the recent 365-day window for comparisons of occupations, sectors, locations, contracts, education, salaries, and skills.

Another important distinction: one ANAPEC offer can recruit many people. The recent 3,577 offers advertised 83,738 positions. Those are advertised positions, not confirmed hires.

  1. Market and freshness snapshot

The full search contained 10,761 offer pages and 214,844 advertised positions. For the recent market view, I used 3,577 offers posted during the last 365 days, representing 83,738 advertised positions.Salary was explicitly disclosed in only 14.8% of those recent offers.

  1. Which occupations advertised the most positions?

Automotive production operator was the largest exact title, with 23,625 advertised positions across 95 offer pages.Automatic electrical or electronic production-machine operator followed with 16,860 positions across 167 offers.Together, those two exact titles represented 48.3% of all recent advertised positions. This reflects large recruitment campaigns, not half of all employment in Morocco.

  1. Which sectors appeared strongest?

Which sectors appeared strongest?

Automotive industry: 37,277 advertised positions

Business services: 11,281

Electrical machinery and equipment: 5,939

Wholesale trade: 5,427

Food manufacturing: 3,531

This is demand visible through ANAPEC, not total sector employment or completed recruitment.

  1. Where was hiring concentrated?

Where was hiring concentrated?

Kenitra led with 16,214 advertised positions, followed by Berrechid with 7,714 and Casa-Nouacer with 7,339.

This concentration is closely related to high-volume automotive and industrial recruitment. ANAPEC's labels sometimes represent districts, provinces, or several cities rather than one consistent geographic level.

  1. Contract types

Contract types

Among recent offers with a known classification:

CI: 50.2%

CDD: 24.7%

CDI: 19.3%

Mixed contract types: 5.5%

These percentages count offer pages, not recruited people.

  1. Education requirements

Education requirements

An explicit education field was available for 77.9% of recent offers.

Among those:

Bac+2 or specialized technician: 33.8%

Technician or qualification: 25.6%

Baccalaureate: 17.8%

Licence or bachelor level: 6.1%

No diploma: 4.7%

The original labels were detailed and inconsistent, so I grouped them with transparent text rules.

  1. Experience requirements

https://preview.redd.it/8z88xrxcpngh1.png?width=1785&format=png&auto=webp&s=4d74469c2e7c746323744868268a721d1593801a

Only 37.5% of recent offers exposed a dedicated experience field.

Within that subset, 56.0% requested one year or less, while 24.3% requested one to two years. This suggests many visible opportunities are aimed at early-career candidates, but missing experience fields prevent a conclusion about the entire dataset.

  1. Salary disclosure

Salary disclosure

Only 528 recent offers, or 14.8%, exposed a parseable monthly salary.

The median disclosed value was 3,500 MAD per month. Among offers that disclosed pay, 45.1% were in the 3,000–4,000 MAD band and 21.2% were in the 4,000–6,000 MAD band.

This is a small, selected subset. Offers that publish salaries may differ systematically from those that do not, and the 10,000+ band includes international or specialized roles.

  1. How old is the “current” search inventory?

How old is the “current” search inventory?

Only 4.2% of the full result set was posted during the last 30 days, and 11.1% during the last 90 days. The portal still exposed pages going back to 2017.

This does not make the archive useless, but it means the headline result count should not be presented as 10,761 new or currently active jobs without checking freshness.

  1. Recurring skills and languages

Recurring skills and languages

In the recent window, a rule-based keyword scan found:

Industrial or technical language: 24.1% of offers

French: 20.2%

Sales: 13.6%

Arabic: 12.6%

Office or Excel: 11.2%

These categories can overlap, and a keyword mention does not prove the required proficiency level.

-> Method and limitations 👀

--> I used only information visible on public ANAPEC offer pages.

--> Recruiter emails and phone numbers appearing in free-text fields were redacted from the analysis export.

--> All 10,761 references were unique in this snapshot.

--> The analysis separates offer-page count from advertised-position count.

--> Market comparisons use offers posted during the latest 365-day window.

--> ANAPEC is an official source, but it does not include every vacancy in Morocco. Company websites, LinkedIn, Rekrute, recruitment agencies, referrals, and informal hiring are outside this dataset.

--> Advertised positions are not completed hires.

--> Some high-volume campaigns may appear across multiple locations or agencies.

--> Education, experience, salary, and requirement fields are incomplete and supplied through the portal.

--> The analysis is descriptive, not causal and not career or salary advice.

What would be the most useful follow-up?

A technology and data-jobs-only analysis?

A city comparison?

A fresh 30-day job dashboard?

Or a comparison between ANAPEC and another Moroccan job platform?
Let me know :)

reddit.com
u/Mpmpz_14 — 20 days ago
▲ 2 r/apify

I scraped and analyzed 1,815 current Avito.ma used-car listings, here’s the Actor pipeline and what it found

Hi Guys,

I wanted to test whether a classifieds Actor could produce something more useful than a pile of listing URLs, so I ran a Morocco-wide snapshot of current public used-car listings on Avito. ma and built a Python analysis pipeline around the export.

The output contains listing ID, title, asking price, currency, city, area, brand, model, model year, mileage, fuel, transmission, condition, first-owner status, fiscal power, description, images, source URL, and collection time when those fields are publicly available.

  1. Market and data-quality snapshot

The dataset had no duplicate listing IDs or URLs. Of the 1,815 records, 1,158 had a usable asking price. Model-year coverage was 99.8%, mileage coverage was 95.8%, brand coverage was 99.6%, and city coverage was 100%.The median advertised price among usable prices was 168,000 MAD. The median listed model year was 2019 and the median recorded mileage was 106,342 km.

  1. Brand inventory

Mercedes-Benz had the most listings in the snapshot at 200, followed by Volkswagen at 177 and Renault at 157.This is inventory exposure, not completed sales or national market share. Search ordering, promoted listings, dealer activity, and listing duration can all influence which brands appear most often.The most frequently observed model was the Renault Clio with 64 listings, followed by the Volkswagen Tiguan with 46 and the Dacia Logan with 42.

  1. Asking prices by high-volume brand

Among the 12 most-listed brands, Land Rover had the highest median asking price at 335,000 MAD, followed by Audi at 314,500 MAD and Mercedes-Benz at 270,000 MAD.Fiat had the lowest median in that high-volume group at 90,000 MAD.This comparison does not control for model mix, model year, mileage, vehicle condition, or dealer versus individual sellers. It describes the composition of the observed inventory.

  1. Model year and asking price

Newer model years generally listed at higher prices. The rank correlation between model year and asking price was +0.620.For reference, the median was about 85,000 MAD for 2010 listings, 162,000 MAD for 2015, 235,000 MAD for 2020, and 259,000 MAD for 2025.The series is not perfectly smooth because each year contains a different mix of brands and models. It should not be interpreted as a depreciation curve.

  1. Mileage bands

Median asking price fell across the higher-mileage

Median asking price fell across the higher-mileage bands:

50–100k km: 225,000 MAD

100–150k km: 195,000 MAD

150–200k km: 155,000 MAD

200–300k km: 124,500 MAD

300k+ km: 73,000 MAD

The overall rank correlation between mileage and price was -0.307. The 0–50k band had a lower median than 50–100k because the mix of models and ages differs, which is a good reminder that mileage alone does not determine price.

  1. Fuel mix

listings exposing a fuel type:

Among listings exposing a fuel type:

Diesel: 78.3%

Petrol: 15.9%

Hybrid: 5.5%

Electric: 0.3%

This is the current public listing mix, not a measure of registrations, sales, or vehicles on Moroccan roads.

  1. Transmission mix and price

Automatic cars represented 59.2% of listings with a known transmission.The median asking price was 240,000 MAD for automatic listings and 117,000 MAD for manual listings. That gap mostly reflects different model, age, and market-segment composition; it is not a causal estimate of the value of an automatic gearbox.

  1. City comparison

Among the 12 most represented cities with at least 10 usable prices, Casablanca had the highest median at 200,000 MAD.Rabat followed at 178,000 MAD, Marrakech at 175,000 MAD, and Tangier at 172,500 MAD. Agadir was lowest in this selected group at 139,500 MAD.City medians do not control for brand, model, model year, or whether a listing came from a dealer.

  1. Asking-price bands

The largest segment was 150,000–250,000 MAD, containing 32.4% of listings with usable prices.

The largest segment was 150,000–250,000 MAD, containing 32.4% of listings with usable prices.

The rest of the distribution was:

Under 75,000 MAD: 13.0%

75,000–150,000 MAD: 29.0%

250,000–400,000 MAD: 15.6%

400,000 MAD and above: 10.0%

  1. Mileage–price density

The density view shows why a single average can be misleading. Most listings cluster below 250,000 MAD and below 250,000 km, but there is substantial vertical spread at almost every mileage level.Brand, model, age, condition, origin, and seller type remain important omitted variables.

-> Methodology

I exported the Actor’s default dataset as JSON, normalized nested location and vehicle attributes with pandas, deduplicated by listing ID and URL, and generated the charts with Matplotlib and Seaborn.

Prices outside 15,000–5,000,000 MAD were treated as unusable.

Model years outside 1980 through the current year plus one were excluded.

Mileage outside 0–1,000,000 km was excluded.

Each chart uses only the fields required for that comparison, and coverage percentages are reported instead of silently dropping missing data.

>> Disclosure

I built the Actor used for this collection:

https://apify.com/scraper_guru/avito-maroc-scraper

If people find this useful, the next version could compare repeated monthly snapshots, estimate listing turnover, or build model-year-mileage benchmarks within individual car models.

Which follow-up would be most useful?

reddit.com
u/Mpmpz_14 — 21 days ago
▲ 109 r/Morocco

I analyzed 445 current Mubawab apartment listings across 9 Moroccan cities, here’s what the asking prices show

Salam Guys,

I collected structured public real-estate listings from Mubawab.ma. To test what kind of useful market research it could support, I collected a balanced apartment snapshot across:

Casablanca, Rabat, Marrakech, Tangier, Agadir, Fès, Meknes, Oujda and Tétouan.

I ran one collection for sales and one for rentals in every city. That produced 585 raw listings. After removing missing or implausible values, obvious non-apartment mismatches and probable short-term rentals, 445 listings remained:

228 sale listings

217 probable long-term rental listings

9 cities

76.1% valid-data rate

These are current advertised asking prices, not completed transaction prices.

  1. Market snapshot

The final analysis uses 445 of the 585 public ads collected. The balanced city-by-city design makes the comparisons more useful, but this is still a snapshot of available listings rather than a census of the entire Moroccan housing market.

  1. Median sale asking price

Rabat had the highest median total asking price at about 3.25 million MAD, followed by Tangier at 2.4 million MAD. Oujda had the lowest city median in this sample at about 650,000 MAD.Total price alone can be misleading because apartment sizes differ, so price per square metre is the more useful comparison.

  1. Sale asking price per square metre

Rabat ranked highest at roughly 22,778 MAD/m².Marrakech and Casablanca were very close at about 18,457 and 18,432 MAD/m².Fès, Meknes and Oujda were all around 6,400–6,600 MAD/m² in this sample.This is one of the clearest gaps in the dataset, but it does not control for neighborhood, property age, condition or furnishing.

  1. Probable long-term monthly rent

Rabat had the highest median monthly asking rent at 18,000 MAD, followed by Tangier at 12,000 MAD and Marrakech and Casablanca at around 10,000 MAD.Oujda had the lowest median at 3,500 MAD.Mubawab mixes monthly and short-term rentals on some pages. I removed 54 probable short-term listings using price and title signals, but the monthly classification remains a heuristic.

  1. Monthly rent per square metre

Casablanca and Rabat were almost tied at about 133 MAD/m² per month.Marrakech followed at 114 MAD/m², while Meknes had the lowest median at about 37 MAD/m².Again, these numbers describe advertised inventory. Furnished apartments and premium neighborhoods can shift the city median.

  1. Gross rental-yield proxy

I calculated a directional proxy:12 × median monthly rent per m² ÷ median sale price per m²Fès ranked highest at 9.4%, followed by Oujda at 8.9% and Casablanca at 8.7%.This is not a forecast or a net return. It compares unpaired city medians and ignores vacancy, maintenance, taxes, financing, transaction costs and negotiation.

  1. Apartment size versus sale price

Larger apartments generally advertise at higher prices, as expected, but the wide spread shows that surface area alone explains only part of the price. City, neighborhood and property quality remain important.

  1. Validated sample coverage

Most city segments retained around 20–32 valid listings. Some segments, especially Tangier sales and Meknes or Agadir rentals, had fewer usable observations after the quality filters, so their medians should be read with more caution.

  1. Price dispersion within each city

The middle 50% of sale prices per m² is much wider in cities such as Tangier, Casablanca and Rabat. A single city median can hide large differences between neighborhoods and property types.

Methodology and limitations :

I collected public apartment ads separately for every city and transaction type.

Records were deduplicated by listing URL.

The analysis required both a usable price and surface area.

Probable short-term rentals and obvious non-apartment title mismatches were excluded.

These are asking prices, not signed sale or rental contracts.

Search ordering may favor promoted or recent listings.

The results are descriptive and are not investment advice.

If this is useful, what should I analyze next?

Neighborhood-level prices?

Furnished versus unfurnished rentals?

Casablanca and Rabat in more depth?

A repeated monthly snapshot to track asking-pric

reddit.com
u/Mpmpz_14 — 24 days ago
▲ 7 r/apify+1 crossposts

I analyzed 9,966 posts from Substack's Top 25 Technology newsletters, here is what stood out

Hi guys,
So I built an Apify Actor to collect every post URL exposed in the public sitemaps of the 25 publications on Substack’s official Technology leaderboard.

I collected all 9,965 current sitemap URLs, plus one still-valid post observed earlier in the collection window, for a total of 9,966 unique posts.

For fairer comparisons, I analyzed the most recent 3,292 posts published within a 365-day window.

Public engagement here means likes, comments, and restacks. For format comparisons, I ranked each post against other posts from the same publication. This helps reduce the audience-size advantage of the largest newsletters.

  1. MARKET SNAPSHOT

The dataset covers 25 top-ranked technology publications with 100% collection coverage.The top 10% of posts generated 42% of all visible engagement.

  1. PUBLICATION-LEVEL ENGAGEMENT

ByteByteGo Newsletter had the highest median visible engagement, with approximately 260 interactions per recent post.This mostly reflects audience and publication context. It does not prove that one content strategy directly causes better performance.

  1. PUBLISHING FREQUENCY VS ENGAGEMENT

Pirate Wires was the most frequent publisher, with approximately 412 posts per year.However, publishing more frequently did not automatically result in higher median engagement.

  1. HEADLINE LENGTH

Headlines containing 18 or more words had the strongest median within-publication engagement percentile: 57.8.This is a correlation, not a recommendation to make every headline longer.

  1. FREE VS PAID POSTS

Free posts ranked higher in normalized public engagement.Paid posts serve a different objective and usually expose only a preview, so visible public reactions capture only part of their value.

  1. PUBLISHING DAY

Tuesday was the strongest publishing day in this sample after normalizing performance within each publication.However, timing is still connected to the topic, newsletter schedule, and age of the post.

  1. RECURRING TITLE LANGUAGE

“Guide” was the highest-ranked recurring title term in the discovery score.The score considers how frequently a term appeared, how many publications used it, and the normalized engagement of those posts.

  1. ENGAGEMENT CONCENTRATION

Some newsletters are strongly hit-driven, meaning a small number of posts generate most of their visible engagement.Other newsletters distribute engagement more evenly across their archive.

  1. ARTICLE LENGTH

Article length was compared only for freely available full posts. Paywalled previews were excluded.Character count is only a rough measure of article length. This does not prove that longer or shorter articles directly cause more engagement.

CAVEATS

This analysis covers the official Top 25 Technology leaderboard, not the entire Substack ecosystem.

The leaderboard represents a selected group of successful publications.

Subscriber counts, email opens, clicks, and revenue are private.

Newer posts have had less time to accumulate engagement.

These findings are descriptive, not causal.

I built this analysis using my Substack Scraper Apify Actor and a Python data-analysis pipeline.

The complete workflow was:

Public web data → structured dataset → reproducible analysis → useful insights

If people find this useful, I can publish a deeper analysis of topics, headline patterns, publishing schedules, or the collection methodology.

What other question would you ask this dataset?

reddit.com
u/Mpmpz_14 — 25 days ago
▲ 6 r/apify

I analyzed 54,025 public Apify Actors, here is what the Store data says about demand, SEO, pricing, and momentum

I have been building an Apify Store market analyzer, so I ran a near-complete snapshot instead of looking only at the top-ranked Actors.

The dataset contains **54,025 unique public Actors out of 54,079 reported by the API at finalization, with 99.90% coverage**.

To avoid the duplicate problem I found in my previous run, I merged category and pricing partitions using the official Actor ID. The collector processed 134,266 partition rows and removed 80,241 cross-category overlaps before calculating anything.

1 Overall snapshot :

The snapshot contains 715,034 summed 30-day users. That number is the sum of each Actor's Store metric; it is not a platform-wide unique-user count because one person can use multiple Actors.

2 Where demand is beating supply :

Social Media had the strongest category signal: **11.86% of recent demand versus 8.03% of supply**, or a **1.48× demand-to-supply ratio**.

Social Media had the strongest category signal: **11.86% of recent demand versus 8.03% of supply**, or a **1.48× demand-to-supply ratio**.

Videos, Jobs, and SEO Tools followed.

Important caveat: this does not mean Social Media is easy. It already has 10,892 Actors, and the median Actor in that category has only one 30-day user. Demand appears highly concentrated among the winners.

3 SEO phrases with strong marketplace demand :

SEO phrase opportunities]

The strongest title phrases clustered around:

- LinkedIn profiles and jobs

- Instagram profiles and posts

- Facebook posts and ads

- Google Maps

- Profile/email enrichment

These are **Apify marketplace SEO signals**, not Google search-volume data. I ranked phrases using recent users among leading Actors, relative Store demand, total competing Actors, and observation confidence.

One interesting contrast: “Google Maps” has strong demand but already appears across 765 Actors, while “Facebook posts” shows a similar score with only 70 Actors in this snapshot.

4 Actors with recent momentum :

Actors with recent momentum

This ranking uses the 7-, 30-, and 90-day user windows. It does not divide lifetime users by Actor age.

The leading signals include email verification, LinkedIn profile enrichment, Shopee, Google Hotels, Instagram, and LinkedIn jobs. I label cases with a very small prior baseline rather than presenting misleading five-digit growth percentages.

5 Pricing has shifted heavily toward pay per event :

Apify Store pricing distribution

Across the snapshot:

- **75.9%** Pay per event — 41,003 Actors

- **13.1%** Free — 7,060 Actors

- **11.0%** Flat price per month — 5,962 Actors

The strongest product-design takeaway for me is that new Actors should have a clear, measurable unit of value that can map naturally to billable events.

What I would investigate next?

- How category demand changes month over month

- Which Actors are gaining users without relying on a famous platform keyword

- Whether lower competition actually predicts better new-Actor survival

- Price-per-event ranges inside each category

The analyzer is here if anyone wants to inspect or challenge the methodology:

https://apify.com/scraper_guru/apify-store-analyzer

I would especially appreciate feedback on the scoring formula. What signal would you add or remove?

reddit.com
u/Mpmpz_14 — 27 days ago
▲ 26 r/n8n

I analyzed all 10,842 public n8n templates to see what beginners should learn first, and what´s the latest on n8n .

Hi guys,

I've been trying to learn n8n more systematically, and I kept coming back to one

question: What should a beginner actually learn first?

Instead of relying only on tutorials, I collected the full public n8n template marketplace: 10,842 workflows. I then used pandas to count the node types and combinations that appeared in each

workflow.

The short version: learn reliable data movement first. Add AI after the basic workflow already works.

  1. The node types beginners will encounter most

Code and HTTP Request both appear in more than half of the marketplace. Google Sheets is the most common beginner-friendly data destination. This makes APIs, JSON, expressions, and small transformations the most reusable starting skills.

  1. The combinations people repeatedly use

Code + HTTP Request is the strongest pair, appearing in 32.1% of public workflows. Even AI-heavy combinations frequently include Code, HTTP Request, or Google Sheets underneath them.

  1. AI is common, but most templates are still free

AI-related nodes appear in 54.2% of templates, so AI is clearly a major part of the public ecosystem. But 88.9% of templates are free, which gives beginners a large library to study before buying anything.

  1. Useful workflows do not need to be huge

73.3% of templates contain 0–5 listed node types, and the median is four. A small workflow with a clear trigger, transformation, destination, and error path is a perfectly realistic place to start.

  1. Marketplace visibility is very concentrated

The top 10% of templates receive 88.9% of recorded marketplace views. That means the popular page is useful for inspiration, but it is not a balanced view of everything people publish.

  1. What gets the most attention?

The attention leaders center on AI assistants, API endpoints, WhatsApp, scraping, and content automation. Those are good project categories, but views measure attention not imports, reliability, or production usage.

What I would learn first :

Based on these patterns, my beginner order would be:

  1. Triggers, JSON, expressions, and field mapping
  2. HTTP authentication, pagination, and API errors
  3. Small Code-node transformations
  4. Google Sheets as a first datastore
  5. Gmail, Slack, or Telegram for visible outputs
  6. Retries, error workflows, and idempotency
  7. One AI model with structured output and validation
  8. Agents after the underlying workflow is reliable

Limitations :

This is public marketplace data, not telemetry from private n8n installations.

Views indicate attention rather than successful executions. AI classification

uses bounded terms in node names, so it is directional rather than a manual

audit. The marketplace response also exposes listed node definitions/types,

which is not always identical to counting every visual canvas instance.

I wrote a small Apify Actor for collection and recomputed the charts from the

exported JSON using pandas, Matplotlib, and Seaborn. I left the Actor link out so

the post is useful without clicking or buying anything.

**For people using n8n in production: which result matches your experience, and

which one does not? **

reddit.com
u/Mpmpz_14 — 28 days ago