Restaurant Booking Gap Lead Finder avatar

Restaurant Booking Gap Lead Finder

Pricing

Pay per event

Go to Apify Store
Restaurant Booking Gap Lead Finder

Restaurant Booking Gap Lead Finder

Analyze submitted restaurant websites for booking-channel gaps with exact BYOD crawling and no discovery.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Tim Zinin

Tim Zinin

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

Analyze buyer-submitted restaurant websites for observable booking-channel gaps and return evidence-backed rows only when the submitted restaurant identity or a structured business identity is actually observed. The actor stays on each submitted host, reads public pages, and never invents missing booking evidence.

What you get

  • One ranked row per qualifying submitted restaurant website.
  • Observed booking, booking CTA, reservation schema, chat, contact form, and phone signals.
  • Booking providers, public phone values, DOM/text excerpts, and structured identity evidence.
  • Robots-first crawling, same-host redirect checks, DNS SSRF protection, body limits, retries, and deadlines.
  • Request replay, conflict, freshness cache, compact OUTPUT, and bounded result delivery.
  • Runs on Apify: schedule it, monitor it, call it from the API, and export JSON, CSV, or Excel.

How to run it

  1. Click Try for free and open the Input tab.
  2. Submit restaurant records with recordId, name, and an absolute HTTP or HTTPS websiteUrl; address is optional.
  3. Click Start, then read useful rows from the Dataset and the run envelope from the OUTPUT key-value record.

Pricing

Pay-per-event: $0.005 per run start + $0.05 per useful result. No monthly seat. Invalid inputs, source failures, generic pages without identity, budget stops, and undelivered rows are not useful-result charges. Ten useful rows cost $0.50 in result events, plus the start event.

Input

{"schemaVersion":"1.0","requestId":"restaurant-demo-001","maxResults":10,"freshnessMinutes":60,"detailLevel":"evidence","minGapScore":45,"restaurants":[{"recordId":"restaurant-001","name":"Dishoom","websiteUrl":"https://www.dishoom.com/","address":null}]}

Output

{"schemaVersion":"1.0","requestId":"restaurant-demo-001","status":"ok","results":[{"dedupeKey":"stable-key","rank":1,"score":65}],"errors":[],"metadata":{"resultCount":1,"datasetWriteCount":1,"billedResultCount":1}}

Useful Dataset rows include restaurantName, websiteUrl, bookingProviders, signals, gapScore, evidenceCoverage, evidence, componentEvidence, and sourceMetrics.

Related tools for adjacent workflows in operational gap-lead generation.

ActorWhat it does
Clinic Reception Gap Lead FinderPair it in the operational gap-lead generation workflow: Analyze submitted clinic websites for reception-channel gaps with exact BYOD crawling and no discovery
EU Accessibility Privacy Lead ScannerPair it in the operational gap-lead generation workflow: BYOD compliance scanner for observed accessibility and privacy exposure signals on a submitted URL....
EU AI Act Transparency Lead ScannerPair it in the operational gap-lead generation workflow: BYOD compliance scanner for observed AI transparency signals on a submitted URL. Deterministic,...
New Opening Permit Lead RadarPair it in the operational gap-lead generation workflow: Detect commercial permit and license openings from five fixed Socrata datasets and return evidence-backed...

FAQ / Limitations

Does it discover restaurants? No. You provide the websites; it does not search maps, directories, reviews, or private systems.

Why did a page return no useful row? The page must be substantive and show either the submitted identity or a structured public business identity. Generic category text is not billable evidence.

Can it place reservations? No. It only reads public HTML, links, and structured data. It never logs in, submits forms, or books.

What is this not? It is not a reservation guarantee, a review service, or proof that a restaurant cannot accept bookings.

How is duplicate work controlled? Cloud runs use the named RequestQueue unique key; local storage tests verify persistence, while local RequestQueue concurrency remains a platform-specific residual.

Need help? Review OUTPUT.errors, confirm the website is public, and include the request ID when reporting a problem on the Actor page.