Yelp Reviews Scraper & AI Review Analysis avatar

Yelp Reviews Scraper & AI Review Analysis

Pricing

from $400.00 / 1,000 per 100 reviews

Go to Apify Store
Yelp Reviews Scraper & AI Review Analysis

Yelp Reviews Scraper & AI Review Analysis

Paste a Yelp business URL: reviews are collected for you and turned into an owner-ready action plan with sentiment, star distribution, recurring themes (service, staff, food, cleanliness, value), top complaints and praises, and prioritized fixes. Weekly mode analyzes only new reviews.

Pricing

from $400.00 / 1,000 per 100 reviews

Rating

0.0

(0)

Developer

Turgay NANTA

Turgay NANTA

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 days ago

Last modified

Share

Yelp Reviews Scraper & AI Review Analysis: From a Business URL to an Action Plan

Reading every Yelp review to understand why guests are unhappy takes hours, and a star average does not tell you whether to fix the wait time, the staff schedule or the cleaning routine.

Paste a Yelp business URL. The Actor collects the reviews for you and turns them into an owner-ready action plan: overall sentiment, star distribution, recurring themes (service, staff, food, atmosphere, cleanliness, value, wait times, booking), the top complaints and praises, prioritized fixes with risk, benefit and cost, quick wins, and the single most important step for this week.

  • One input: a Yelp business page URL. Or paste reviews you already have.
  • Collection included: reviews are gathered through Yelp review scrapers from Apify Store, with automatic fallback to a second source if the first one fails.
  • Decisions, not just scores: every finding becomes an action with a priority score.
  • Weekly monitoring: turn on onlyNewReviews and schedule it. Each run analyzes and charges only reviews it has not seen before. No new reviews means only the start fee.
  • Five output languages: English, Turkish, German, Spanish, French.
  • Safe to try: if no reviews can be collected, this Actor charges nothing.

What it costs: about $0.65 for up to 100 reviews analyzed, plus roughly $0.03 per 100 reviews for collection in URL mode. Details in Pricing.


At a glance

InputYelp business URL (startUrl) or your own review list (reviews)
OutputPrioritized action table (dataset) + full owner report (key-value store MANAGER_REPORT)
AnalysisSentiment, star distribution, themes, top complaints and praises, action plan, quick wins, critical step, competitor opportunities, executive summary
Reviews per run10-500 from a URL; any number when you paste your own
MonitoringonlyNewReviews: scheduled runs analyze and charge only reviews not seen in earlier runs
CollectionTwo Yelp review scrapers in order, cheapest first, each with a spending cap
PricingPay per 100 reviews analyzed + per report; see Pricing
Runs onApify Console, API, schedules, n8n, Make, Zapier, AI agents via MCP

Quick start

  1. Paste a Yelp business URL into Yelp business URL, for example https://www.yelp.com/biz/your-business-city.
  2. Set Max reviews to collect (100 is the default) and the output language.
  3. Click Start. Open the Dataset tab for the action table and the key-value store for MANAGER_REPORT.

To try the analysis without collecting anything, leave the URL empty: the input comes with five sample restaurant reviews, and the Actor analyzes those instead.

What the action table looks like

PriorityIssue / AreaRisk of InactionRisk LevelBenefitCostScoreRecommended Action
1Wait to be seatedGuests leave 2-star reviews about waiting with empty tables in viewHighHighLow9.0Seat walk-ins at open tables first and add a host at weekend dinner
2Restroom cleanlinessHygiene complaints outweigh good food in reviewsHighHighLow9.0Add an hourly restroom check to the shift checklist
3Price vs. portion"Not the value it used to be" spreads among regularsMediumMediumMedium2.0Review portion sizes on the three most mentioned dishes

Illustrative example; your run reports its own findings, based only on the reviews it analyzed.


Why owners use it

Review dashboards usually stop at "4.1 stars, 68% positive". That number does not tell a restaurant owner whether to hire another server, change a supplier or retrain the front of house. This Actor behaves like a consultant who makes recommendations:

  1. It reads every review in chunks small enough that nothing is skipped or cut off. If a model response is ever truncated, the chunk is split in two and retried instead of being silently dropped.
  2. It groups problems into themes and counts how often each appears, so you see scale, not single angry reviews.
  3. It turns each theme into an action with the risk of doing nothing, a benefit and cost level, and a score to sort by.
  4. It separates quick wins (low effort, visible benefit) from bigger changes.
  5. It names one critical step for this week, so the report ends in a decision.

Star rating vs. this Actor

Star average or sentiment scoreThis Actor
Collects the reviewsYou look them upYes, from a Yelp business URL
OutputOne numberThemes, complaints, praises, prioritized actions
Tells you what to doNoYes: action, risk, benefit, cost, score
Tracks new reviews onlyNoYes, with onlyNewReviews on a schedule
Ready for a managerNeeds interpretationExecutive summary and one critical step

What you get

Dataset: the action table

One row per prioritized action, sorted by score: Priority, Issue / Area, Risk of Inaction, Risk Level, Benefit, Cost, Benefit/Cost, Score, Recommended Action. The number of rows is set by Actions shown in the table (default 5, range 3-10); the full list is always in the report.

Key-value store: MANAGER_REPORT

Machine-readable report with English keys:

KeyContent
businessBusiness name (taken from Yelp in URL mode unless you set one)
review_countNumber of reviews analyzed
overall_sentimentpositive, neutral or negative
rating_distributionCount of reviews per star rating (and unrated if a review had no stars)
themesUp to 10 recurring themes with frequency and +/- direction
top_complaints / top_praisesUp to 5 of the most frequent negatives and positives
competitor_opportunitiesGaps a nearby competitor could use, or you could close
quick_winsLow-effort actions with high or medium benefit
critical_stepThe single most important action this week
executive_summaryA short paragraph for an owner, manager or client
all_actionsThe full prioritized action list, including expected gain
monitoringOnly with onlyNewReviews: first_run, reviews_collected, new_reviews, new_negative_reviews

Who it is for

  • Restaurant, cafe and bar owners who want to know what to change before the next busy weekend.
  • Salon, spa, clinic and local shop owners reviewed on Yelp.
  • Multi-location operators comparing branches with the same settings.
  • Marketing agencies and reputation consultants who report to local clients every month.

Use cases

Restaurant owners

Run it on your own page every week in monitoring mode. When new_negative_reviews goes up, open the action table first. Use top_praises to write menu and social media copy in your guests' own words.

Salons, spas and service businesses

The default analysis focus already covers service speed, staff friendliness, cleanliness, pricing, wait times and booking experience. Booking and punctuality complaints usually show up as a clear theme; the action table tells you whether to fix scheduling or communication first.

Reputation and marketing agencies

Deliver a review audit to a new client on day one. The executive summary and action table drop into a client report, and the scores make priorities easy to defend. Schedule monitoring for each client and send the weekly result.

Multi-location operators

Run the same settings on every location. Themes that repeat across all branches point to a company-wide process; themes that appear in one branch point to that team or building.

Competitor research for local businesses

Analyze the three to five best-rated competitors in your area. top_praises shows what guests reward; top_complaints and competitor_opportunities show gaps you can fill.


Worked example: a cafe losing stars

A neighborhood cafe dropped from 4.4 to 4.0 stars in three months.

  1. Run on the cafe's Yelp URL with 150 reviews. The action table puts "slow service at peak hours" and "cleanliness of tables" at the top, both with high risk and low cost.
  2. Check themes: coffee quality and atmosphere are strong positives; wait time appears often in negative reviews. That means the product is fine and the problem is operations.
  3. Look at quick_wins: a table-wiping round every 30 minutes and a second barista during the morning rush.
  4. Read critical_step: fix the morning staffing this week.
  5. Turn on monitoring. Save the input as a task with onlyNewReviews on and schedule it weekly. Each Monday the report shows how many new reviews arrived and how many were 1-2 stars.
  6. Compare after six weeks. If "slow service" stops appearing in new reviews, the fix worked.

Scheduled monitoring (only new reviews)

This is how most owners and agencies use the Actor after the first audit.

  1. Turn on Only new reviews (weekly monitoring) and save the input as a task for each Yelp URL.
  2. Add a schedule to the task (weekly suits most businesses; daily for very busy ones).
  3. The first run analyzes every collected review and stores it as the baseline. The report says first_run: true.
  4. Each later run collects reviews again, skips every review it has already seen, and builds the action plan from the new ones only. MANAGER_REPORT.monitoring shows new_reviews and new_negative_reviews (1-2 stars), so you can alert on bad weeks.
  5. A run with no new reviews returns one "No new reviews" row, writes the monitoring block to the report and charges only the start fee. You never pay the analysis fee twice for the same review.

How it works in detail:

  • Seen reviews are kept in a named key-value store whose name starts with review-watch- in your own Apify account. Delete it (or the record for one business) to start a fresh baseline.
  • A review is recognized by its text and star rating. If a reviewer edits the text or changes the stars, the edited version counts as new.
  • "New" means "not seen in an earlier monitored run". It does not read the posting date.
  • The baseline is saved only after a successful analysis, so a failed run never marks reviews as seen.
  • In URL mode the baseline is tracked per URL. In paste mode it is tracked per business name, so give each business its own name.
  • Up to 5,000 seen reviews are remembered per business; beyond that the oldest are forgotten first.
  • The Yelp scraper still collects up to maxReviews reviews on every run and bills that collection at its own price. For weekly monitoring of a small business, 50 is usually enough.

How it works

  1. Collect. For a Yelp URL, the Actor calls a Yelp review scraper from Apify Store. Each call has a spending cap. If the first source fails or returns less than half of what you asked for, the second source is tried, and the larger result is kept.
  2. Normalize. Review text and star rating are extracted into one format; HTML codes in the text are decoded.
  3. Filter (monitoring only). Reviews already seen in earlier runs are removed.
  4. Analyze in chunks. Reviews are analyzed ten at a time by a language model that must answer in a strict JSON format, with the local-business focus from Analysis focus.
  5. Merge. Chunk results are combined into themes, complaints, praises and actions with counts.
  6. Prioritize. Each action gets a score of risk x benefit / cost, computed by code (not by the model), and the list is sorted.
  7. Report. The action table goes to the dataset; the full report goes to MANAGER_REPORT.

If no reviews can be collected, the run stops with a clear message and this Actor charges nothing.


Input

FieldDescription
startUrlYelp business page URL. The Actor collects its reviews for you.
maxReviewsReviews to collect from the URL (10-500). Default 100.
onlyNewReviewsMonitoring mode for scheduled runs. First run = baseline; later runs analyze and charge only reviews not seen before. Default off.
reviewsAlternative: your own reviews as plain strings or {text, rating} objects. Used only when startUrl is empty. Also reads review, comment or snippet for text and stars or score for rating.
businessNameBusiness name for the report. Filled in from Yelp automatically in URL mode unless you type a name.
domainContextAdvanced: what the analysis should pay attention to. The default covers restaurants, cafes, salons and shops. Edit it for another business type.
languageEnglish, Türkçe, Deutsch, Español, Français
modelAdvanced: the default is fast and economical; a stronger model is available for deeper analysis
maxAksiyonNumber of actions shown in the table (3-10). The full list is in the report.

Example: Yelp URL

{
"startUrl": "https://www.yelp.com/biz/your-business-city",
"maxReviews": 150,
"language": "English"
}

Example: weekly monitoring task

{
"startUrl": "https://www.yelp.com/biz/your-business-city",
"maxReviews": 50,
"onlyNewReviews": true
}

Example: your own reviews

{
"reviews": [
{"text": "Lovely patio, but we waited 25 minutes to be seated.", "rating": 3},
{"text": "Staff remembered our names. This is why we come back.", "rating": 5},
"Tables were sticky and the restroom was not clean."
],
"businessName": "Corner Bistro"
}

Pricing

This Actor charges per event. Current prices are on the Pricing tab; at the time of writing:

EventWhenPrice
actor-startOnce per run$0.0001
reviews-processed-100Per 100 reviews analyzed (rounded up)$0.40
report-generatedOnce per report$0.25

In URL mode, the Yelp scraper that collects the reviews bills your account separately at its own price. The first source costs about $0.03 per 100 reviews; the fallback source, used only when the first one fails, costs about $0.20 per 100 reviews. A spending cap is set on every call.

ScenarioThis ActorCollection (approx.)Total (approx.)
50 of your own reviews$0.65$0$0.65
100 reviews from a URL$0.65$0.03$0.68
300 reviews from a URL$1.45$0.09$1.54
500 reviews from a URL$2.25$0.15$2.40
Weekly check, 50 collected, 8 new$0.65$0.015$0.67
Weekly check, 50 collected, 0 new$0.0001$0.015$0.02

"This Actor" is the start fee plus $0.40 per started block of 100 analyzed reviews plus $0.25 for the report; collection uses the first source's price.


Integrations

API

curl -X POST "https://api.apify.com/v2/acts/enezli~yelp-review-intelligence/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrl":"https://www.yelp.com/biz/your-business-city","maxReviews":100}'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("enezli/yelp-review-intelligence").call(
run_input={"startUrl": "https://www.yelp.com/biz/your-business-city", "maxReviews": 100})
report = client.key_value_store(run["defaultKeyValueStoreId"]).get_record("MANAGER_REPORT")["value"]
print(report["critical_step"])

Schedules

Save the input as a task, turn on onlyNewReviews, and add a schedule in Apify Console. See Scheduled monitoring.

n8n, Make, Zapier

Run Actor, then read MANAGER_REPORT from the run's key-value store. Post executive_summary and critical_step to Slack or email, append the action table to Google Sheets, and send an alert when monitoring.new_negative_reviews is above zero.

AI agents (MCP)

Available through the Apify MCP server, so an assistant can analyze a business's Yelp reviews on request and answer "what should we fix first?".


Workflow recipes

Monday review briefing. One monitoring task per location, scheduled every Monday morning. An automation posts new_reviews, new_negative_reviews and critical_step to the team channel before the week starts.

Monthly client report for agencies. Run once a month with monitoring off on the full recent set. Put the executive summary, the top three actions and the star distribution into the client deck.

Bad-review alert. Daily monitoring with maxReviews at 20-30. When new_negative_reviews is above zero, send the manager an email with the top action.


Tips for better results

  • Use 100-300 reviews for the first audit. Fewer than 30 gives thin themes.
  • Keep the default analysis focus for restaurants, cafes, salons and shops. For a dentist, gym or hotel, rewrite domainContext with the dimensions that matter there.
  • Type the business name if you want a specific name in the report; otherwise the name from Yelp is used.
  • Choose the language your team reads; reviews in any language are understood.
  • For monitoring, lower maxReviews to what the business receives in a few weeks. The collection cost is per review collected.
  • Re-run after a change and compare top_complaints to measure impact.

Limits

  • Review availability depends on Yelp and on the scraper sources. Some pages return fewer reviews than requested.
  • Benefit, cost and risk levels are model estimates from review content, not financial calculations. Use the score to prioritize, not as a forecast.
  • The analysis reflects only the reviews collected in that run (or, in monitoring, only the new ones).
  • Monitoring detects reviews not seen before; it does not read posting dates, and an edited review counts as new.
  • One business per run. Start several runs, or one task per business, to cover more.

Troubleshooting

SymptomCauseFix
"Unsupported URL"The link is not a Yelp business page (or another supported review site)Paste the full https://www.yelp.com/biz/... address
"No reviews could be collected from this URL"A review source failed for that page; the message lists which one and whyCheck the URL opens a public Yelp business page; try again later. This Actor charged nothing
"This page has no public reviews yet"Every review source finished normally and found 0 reviews (common for newly listed businesses)Run it again once customers have reviewed it. This Actor charged nothing
Fewer reviews than requestedThe business has fewer reviews, or a source returned a partial setNormal; the log shows which sources were tried
"No new reviews" rowMonitoring is on and nothing new appeared since the last runExpected on quiet weeks; only the start fee was charged
Every review counted as new againThe review-watch-... store was deleted, or the URL changedKeep the same URL in the task; the baseline follows the exact address
Themes feel genericVery small sampleIncrease maxReviews
Report in the wrong languagelanguage left at EnglishChoose the output language in the input

FAQ

Do I need my own Yelp scraper? No. The Actor collects the reviews for you. If you already have reviews, paste them and skip the collection cost.

Am I charged if nothing is collected? No. This Actor charges only after reviews are available for analysis.

How does monitoring avoid charging twice? Each review's fingerprint (text plus stars) is stored after a successful run. The next run analyzes and charges only reviews whose fingerprint is not stored yet.

Where is the monitoring data kept? In a key-value store whose name starts with review-watch- in your own Apify account. Nobody else can read it, and you can delete it at any time.

Can I analyze a competitor's Yelp page? Yes. Any public Yelp business URL works.

Does it work for businesses outside the US? The URL check accepts Yelp country domains such as yelp.co.uk or yelp.de. Whether reviews come back for a given page depends on the scraper sources; if none do, you are not charged by this Actor.

Does it read reviews in other languages? Yes. Reviews in any language the model understands are analyzed; the report is written in the output language you choose.

Can it analyze TripAdvisor or Amazon links too? The URL field also accepts TripAdvisor and Amazon product URLs, but the default analysis focus is written for local businesses on Yelp. Edit domainContext if you use it that way.

Can I get the raw reviews? Yes. In URL mode the collected reviews are in the scraper's own run in your account (Runs tab), where you can export them.

Is my data stored? Only in your own Apify storage. Review text is sent to the language model provider solely to produce your report.

Can I change the number of actions? Yes, with maxAksiyon (3-10) for the table. The report always contains all actions.


Trademarks

This Actor is not affiliated with, endorsed by, or connected to Yelp. All product names are trademarks of their respective owners.