Yelp Reviews Scraper & AI Review Analysis
Pricing
from $400.00 / 1,000 per 100 reviews
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 days ago
Last modified
Categories
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
onlyNewReviewsand 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
| Input | Yelp business URL (startUrl) or your own review list (reviews) |
| Output | Prioritized action table (dataset) + full owner report (key-value store MANAGER_REPORT) |
| Analysis | Sentiment, star distribution, themes, top complaints and praises, action plan, quick wins, critical step, competitor opportunities, executive summary |
| Reviews per run | 10-500 from a URL; any number when you paste your own |
| Monitoring | onlyNewReviews: scheduled runs analyze and charge only reviews not seen in earlier runs |
| Collection | Two Yelp review scrapers in order, cheapest first, each with a spending cap |
| Pricing | Pay per 100 reviews analyzed + per report; see Pricing |
| Runs on | Apify Console, API, schedules, n8n, Make, Zapier, AI agents via MCP |
Quick start
- Paste a Yelp business URL into Yelp business URL, for example
https://www.yelp.com/biz/your-business-city. - Set Max reviews to collect (100 is the default) and the output language.
- 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
| Priority | Issue / Area | Risk of Inaction | Risk Level | Benefit | Cost | Score | Recommended Action |
|---|---|---|---|---|---|---|---|
| 1 | Wait to be seated | Guests leave 2-star reviews about waiting with empty tables in view | High | High | Low | 9.0 | Seat walk-ins at open tables first and add a host at weekend dinner |
| 2 | Restroom cleanliness | Hygiene complaints outweigh good food in reviews | High | High | Low | 9.0 | Add an hourly restroom check to the shift checklist |
| 3 | Price vs. portion | "Not the value it used to be" spreads among regulars | Medium | Medium | Medium | 2.0 | Review 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:
- 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.
- It groups problems into themes and counts how often each appears, so you see scale, not single angry reviews.
- It turns each theme into an action with the risk of doing nothing, a benefit and cost level, and a score to sort by.
- It separates quick wins (low effort, visible benefit) from bigger changes.
- It names one critical step for this week, so the report ends in a decision.
Star rating vs. this Actor
| Star average or sentiment score | This Actor | |
|---|---|---|
| Collects the reviews | You look them up | Yes, from a Yelp business URL |
| Output | One number | Themes, complaints, praises, prioritized actions |
| Tells you what to do | No | Yes: action, risk, benefit, cost, score |
| Tracks new reviews only | No | Yes, with onlyNewReviews on a schedule |
| Ready for a manager | Needs interpretation | Executive 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:
| Key | Content |
|---|---|
business | Business name (taken from Yelp in URL mode unless you set one) |
review_count | Number of reviews analyzed |
overall_sentiment | positive, neutral or negative |
rating_distribution | Count of reviews per star rating (and unrated if a review had no stars) |
themes | Up to 10 recurring themes with frequency and +/- direction |
top_complaints / top_praises | Up to 5 of the most frequent negatives and positives |
competitor_opportunities | Gaps a nearby competitor could use, or you could close |
quick_wins | Low-effort actions with high or medium benefit |
critical_step | The single most important action this week |
executive_summary | A short paragraph for an owner, manager or client |
all_actions | The full prioritized action list, including expected gain |
monitoring | Only 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.
- 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.
- 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. - Look at
quick_wins: a table-wiping round every 30 minutes and a second barista during the morning rush. - Read
critical_step: fix the morning staffing this week. - Turn on monitoring. Save the input as a task with
onlyNewReviewson and schedule it weekly. Each Monday the report shows how many new reviews arrived and how many were 1-2 stars. - 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.
- Turn on Only new reviews (weekly monitoring) and save the input as a task for each Yelp URL.
- Add a schedule to the task (weekly suits most businesses; daily for very busy ones).
- The first run analyzes every collected review and stores it as the baseline. The report says
first_run: true. - 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.monitoringshowsnew_reviewsandnew_negative_reviews(1-2 stars), so you can alert on bad weeks. - A run with no new reviews returns one "No new reviews" row, writes the
monitoringblock 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
maxReviewsreviews 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
- 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.
- Normalize. Review text and star rating are extracted into one format; HTML codes in the text are decoded.
- Filter (monitoring only). Reviews already seen in earlier runs are removed.
- 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.
- Merge. Chunk results are combined into themes, complaints, praises and actions with counts.
- Prioritize. Each action gets a score of risk x benefit / cost, computed by code (not by the model), and the list is sorted.
- 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
| Field | Description |
|---|---|
startUrl | Yelp business page URL. The Actor collects its reviews for you. |
maxReviews | Reviews to collect from the URL (10-500). Default 100. |
onlyNewReviews | Monitoring mode for scheduled runs. First run = baseline; later runs analyze and charge only reviews not seen before. Default off. |
reviews | Alternative: 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. |
businessName | Business name for the report. Filled in from Yelp automatically in URL mode unless you type a name. |
domainContext | Advanced: what the analysis should pay attention to. The default covers restaurants, cafes, salons and shops. Edit it for another business type. |
language | English, Türkçe, Deutsch, Español, Français |
model | Advanced: the default is fast and economical; a stronger model is available for deeper analysis |
maxAksiyon | Number 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:
| Event | When | Price |
|---|---|---|
actor-start | Once per run | $0.0001 |
reviews-processed-100 | Per 100 reviews analyzed (rounded up) | $0.40 |
report-generated | Once 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.
| Scenario | This Actor | Collection (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 ApifyClientclient = 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
domainContextwith 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
maxReviewsto what the business receives in a few weeks. The collection cost is per review collected. - Re-run after a change and compare
top_complaintsto 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
| Symptom | Cause | Fix |
|---|---|---|
| "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 why | Check 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 requested | The business has fewer reviews, or a source returned a partial set | Normal; the log shows which sources were tried |
| "No new reviews" row | Monitoring is on and nothing new appeared since the last run | Expected on quiet weeks; only the start fee was charged |
| Every review counted as new again | The review-watch-... store was deleted, or the URL changed | Keep the same URL in the task; the baseline follows the exact address |
| Themes feel generic | Very small sample | Increase maxReviews |
| Report in the wrong language | language left at English | Choose 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.