ActorStack.dev

Nextdoor recommendations are not reviews — and half of them are not even about a business

Measured across 891 recommendations, 50% were neighbors asking for a provider and only 19% were actual reviews. Why the feed mixes three things, and how to separate them before they poison a sentiment model.

By Oswaldo Carabano8 min read

Short answer

Nextdoor recommendations are free-text neighbor posts with no star rating and an anonymized author, and the feed mixes three different kinds of post: praise for a business, requests for a provider, and bare thank-yous. Measured across 891 recommendations from real runs, 50% were service requests and only 19% were actual recommendations. Treating the raw feed as review data inflates volume and inverts sentiment.

Key points

  • Nextdoor calls them recommendations, not reviews. There is no numeric rating and the author is anonymized to a first name and last initial.
  • The feed contains at least three post types that look alike in plain text: recommendation, service request and thanks.
  • Measured over 891 recommendations: 50% service requests, 19% actual recommendations, the rest thanks or below the confidence threshold.
  • Measured over 741 businesses: 42.4% have at least one recommendation and the mean is 2.5 including zeros, so more than half of any local category has none.
  • A classifier with a published accuracy figure and a per-row confidence score is auditable; a filter with neither is not.
On this page7 sections

If you scrape Nextdoor's recommendation feed and count the rows as reviews, your numbers will be roughly five times too high and your sentiment will point the wrong way. This is not a subtle bias — it is a measured 50/19 split — and it comes from the feed mixing three different kinds of post that are almost impossible to tell apart with a keyword filter.

Three different posts that look identical

Nextdoor calls the feed recommendations. What actually appears in it:

kindWhat it is
recommendationActual praise or criticism of a business.
service_requestSomebody looking for a provider, not reviewing one.
thanksAn acknowledgement with no substance about the business.
unknownBelow the confidence threshold — flagged rather than guessed.

The reason a keyword filter does not separate them is that they share vocabulary. “Great plumber, fixed it same day” and “Looking for a great plumber, anyone?” overlap almost completely on tokens, and both are positive in tone. What differs is the grammatical stance — whether the writer is reporting a completed service or requesting one — and that is a classification problem, not a matching problem.

What that does to a sentiment model

Two ways, and the second is the one that survives review unnoticed.

Volume inflation. A business with three real reviews and twelve service requests naming it looks like a business with fifteen reviews. Any “most reviewed provider” ranking built on raw counts is really a ranking of how often a category's name gets typed into a request.

Sentiment inversion. Service requests are usually written by somebody whose current provider just failed them — “need a new dentist, mine cancelled again”. A model reads that as negative and attributes it to whichever business is mentioned, which may be the one the writer is about to hire. The polarity is not just noisy, it is pointed at the wrong entity.

The measured mix

Across 891 recommendations from two real runs:

  • 50% came back service_request.
  • 19% were actual recommendations.
  • The remainder were thanks, or below the confidence threshold and flagged as unknown.

Half the feed is people asking for a provider. That single number is the reason the classifier exists rather than a post-processing filter.

How the classification works

Each row carries three fields instead of one label: kind, kind_confidence and kind_signals. The signals are the features that drove the decision — the presence of a completed-service reference, praise vocabulary, an interrogative stance — so you can see why a row was labelled the way it was.

Accuracy is 95.6% on a hand-labelled validation set. That figure is this project's own measurement rather than an independent audit, which is exactly why the confidence score ships with every row: you can raise the threshold, or discard unknown entirely, and arrive at a stricter dataset without asking anybody to trust a number.

one recommendation row
{
  "kind": "recommendation",
  "kind_confidence": 0.92,
  "kind_signals": ["praise", "past_service"],
  "text": "They fixed our water heater the same day we called. Fair price too.",
  "author_display_name": "Sarah M.",
  "author_city": "San Clemente",
  "sentiment_hint": "positive",
  "char_count": 66
}

Coverage: most businesses have none

Measured over the same 741 businesses:

  • 42.4% have at least one recommendation.
  • 2.5 is the average per business, counting the zeros.
  • 33 was the most seen on a single business.

So more than half of any local category has nothing written about it at all. Those businesses are still returned, with recommendations_count: 0, which keeps your row count predictable — but it means any analysis restricted to businesses with reviews is working with two fifths of the market and should say so.

Using recommendations responsibly

Three rules that follow directly from the numbers:

  1. Filter to kind === "recommendation" before computing anything, and report how many rows that removed.
  2. Keep the service requests. They are poor review data and excellent demand data: a category with many requests and few providers is a market signal.
  3. Never present an average as a rating. There is no numeric scale underneath it — a mean of free-text sentiment scores is your model's output, not Nextdoor's.

If you need star ratings, this is the wrong dataset

Nextdoor recommendations have no numeric rating, and the author is anonymized to a first name and last initial by Nextdoor itself. If your product needs a 1–5 score per business, this source cannot supply one and any tool that appears to is generating it.

What you get instead is what people actually wrote, which for local-market research is usually the more useful half. The Actor documentation lists every field on the recommendation row, and the business field reference covers what sits alongside them.

Frequently asked questions

Do Nextdoor recommendations have star ratings?
No. They are free-text posts. There is no numeric rating anywhere in the public data.
What is a Nextdoor service request?
A post where a neighbor asks for a provider — "anyone know a good plumber?" — rather than reviewing one. It appears in the same feed as genuine recommendations and reads similarly to automated text analysis, which is why it needs classifying rather than filtering by keyword.
How accurate is the classification?
95.6% on a hand-labelled validation set. Every row also carries `kind_confidence` and `kind_signals`, so you can raise the threshold yourself rather than trusting the label blindly.
How many Nextdoor businesses have recommendations?
42.4% of 741 measured businesses had at least one. The average across all businesses, zeros included, is 2.5, and the most seen on a single business was 33.

Sources

Every URL below was requested and returned a page on the date shown.

  1. Operator claimchecked 18 Aug 2026
    Nextdoor Business & Reviews Scraper — Actor README and input schemaActorStack / Apify Store
  2. Operator claimchecked 18 Aug 2026
    Nextdoor for BusinessNextdoor
  3. Platform docschecked 18 Aug 2026
    Dataset storageApify
Overhead view of a suburban neighbourhood, showing house plots and the street grid between them.
NextdoorMeasured

Trade area vs city

Asking Nextdoor for 200 dentists in one city returns the surrounding four towns too. We counted where the switch happens: results 1-75 were 96-100% local, everything past 76 was 0%.

6 min
A suburban residential street of detached houses with cars parked along the kerb.
NextdoorGuide

Scrape Nextdoor business listings

A complete walkthrough: how Nextdoor exposes business data to signed-out visitors, how to select cities and categories, what a first run costs, and how to read the 34 fields you get back.

9 min
A desk with stacked legal reference books, loose documents and a newspaper.
NextdoorExplainer

Is it legal?

The interesting question is not "is scraping legal" but which specific data creates which specific obligation. Public business contact details and neighbor posts are not the same thing.

7 min