# Cliqto Media: full site content Source: https://cliqtomedia.com · Generated 2026-10-24 --- # Cliqto Media > An independent digital media company. Our brands help people choose good products with honest guides, free tools and picks we stand behind. URL: https://cliqtomedia.com/ Cliqto Media is an independent digital media company. We build our own brands, websites and tools. We promote products we trust to the people who use them. Since 2020. ## Our model 1. **Audience**: We find a group of people with a clear need. 2. **Brand**: We give them a home: a brand, a website or a tool. 3. **Content**: We make guides, tools and posts that help them. 4. **Recommendations**: We recommend products that fit them, and mark partner links. ## Our portfolio - **Voxlo Studio** (brand, live): Original 3D-printable designs: toys, gadgets and puzzles that people print at home. Audience: Makers, 3D printing fans, Families. - **cliqtomedia.com** (website, live): Guides, tool pages and how-tos about web data, AI and online work. Audience: Marketers, Developers, Small businesses, Creators. - **Apify Actors** (product line, live): Apify Actors (web scrapers and data APIs): 150+ built, 103 live. People use them to get public web data without code. Audience: Data teams, Sales teams, Researchers. - **Browser extensions** (product line, live): Free tools that run in your own browser. The first one: Bulk Post Scheduler for X. Audience: Creators, Social media managers. - **Social channels** (channels, live): News, short demos and how-to articles for the people who use our sites and tools. Audience: Our readers, Our users. - **New brands** (in the works, next): New websites for new audiences. We add each brand here when it is ready. Audience: New audiences. ## Our audiences - **3D printing and making** (live): People who design, print and make things at home. Where: Voxlo Studio. - **Software and AI tools** (next): People who choose software for work: AI, automation, CRM, email. Where: cliqtomedia.com. - **Web data and developers** (live): Teams that collect public data and build with APIs. Where: Apify Actors. - **Creators and social media** (live): People who post, film and grow an audience online. Where: Social channels · X extension. - **Travel and life abroad** (next): People who travel, move or live in another country. Where: New brand. - **Insurance and money** (next): Health and travel insurance, banking and money tools. Where: New brand. - **Learning and languages** (next): People who learn new skills and new languages. Where: New brand. Live: we already have a site or a product for this audience. Next: we plan a new brand for it. ## What we publish - **Brand websites**: Each audience gets its own site with its own name. - **Guides and how-tos**: Step by step: how a product works and how to start. - **Reviews and comparisons**: What we liked, what we did not, and who it is for. - **Free tools**: Tools and extensions that people use every day. - **Short videos**: Demos and tips on YouTube and social media. - **Social posts**: News and short tips on X, Medium and LinkedIn. ## Our standards - **Honest fit**: We recommend a product only to the people it is made for. A partner cannot buy a good review. - **Clear disclosure**: Every page with partner links says so, next to the links. - **Clean traffic**: No paid clicks, no coupon sites, no search ads on a partner's brand name without permission, no spam. - **Our own voice**: We choose what to build, what to write and what to recommend. ## For partners We work with affiliate programs, platforms and data owners: https://cliqtomedia.com/partners/ ## Questions ### What is Cliqto Media? Cliqto Media is an independent digital media company. We build our own brands, websites and tools. We promote products we trust to the people who use them. We started in 2020. ### What do you make? Brands with their own websites, like [Voxlo Studio](/brands/voxlo-studio/). Software products: Apify Actors for web data and browser extensions. And content: guides, reviews and tool pages. ### Are you an agency? No. An agency works on other people's projects. We work only on our own brands, websites and products. ### How do you earn money? From our own products and from partner programs. When we recommend a product, we may earn a commission. We always mark these links. ### How do you choose what to recommend? A product must be useful for the people who read the page. We use it or test it first. A partner cannot pay for a good review. ### How can we work together? Write to partners@cliqtomedia.com. See the [Partners page](/partners/) for what we look for and how we promote. Contact: hello@cliqtomedia.com (general), partners@cliqtomedia.com (partnerships). --- # About Cliqto Media > Cliqto Media is an independent digital media company since 2020. We build our own brands, websites and tools, and recommend products we trust. URL: https://cliqtomedia.com/about/ Cliqto Media is an independent digital media company. We build our own brands, websites and tools. We promote products we trust to the people who use them. We are not an agency. Everything you see here is our own. ## Who we are Cliqto Media started in 2020. We build our own brands, websites and tools. Each of them serves one group of people: makers, creators, marketers, developers or small businesses. On our sites we help these people choose good products: guides, reviews, free tools and recommendations. Partner links are always marked. We earn from our own products and from partner programs. ## What we are We are: - A media company with our own brands and websites - A publisher of guides, reviews and tool pages - A maker of our own software - Independent: we choose what we write We are not: - An agency: we do not take outside projects - A coupon or cashback site - An ad network - Part of Apify: our Actors only run there ## Our story - **2020, Cliqto Media starts**: We start Cliqto Media as the home for our own web projects. - **2023, Our tools go live on Apify**: Our first Apify Actors appear in the Apify Store. Today we have built 150+, and 103 are live. - **2026, Voxlo Studio**: Our first separate brand: original 3D-printable designs for makers. - **2026, Browser extensions**: Bulk Post Scheduler for X, our first tool that runs in the browser. - **Next, New brands**: New websites for new audiences, each with its own name. ## Our portfolio - **Voxlo Studio** (brand, live): Original 3D-printable designs: toys, gadgets and puzzles that people print at home. Audience: Makers, 3D printing fans, Families. - **cliqtomedia.com** (website, live): Guides, tool pages and how-tos about web data, AI and online work. Audience: Marketers, Developers, Small businesses, Creators. - **Apify Actors** (product line, live): Apify Actors (web scrapers and data APIs): 150+ built, 103 live. People use them to get public web data without code. Audience: Data teams, Sales teams, Researchers. - **Browser extensions** (product line, live): Free tools that run in your own browser. The first one: Bulk Post Scheduler for X. Audience: Creators, Social media managers. - **Social channels** (channels, live): News, short demos and how-to articles for the people who use our sites and tools. Audience: Our readers, Our users. - **New brands** (in the works, next): New websites for new audiences. We add each brand here when it is ready. Audience: New audiences. ## How we work 1. **Audience**: We find a group of people with a clear need. 2. **Brand**: We give them a home: a brand, a website or a tool. 3. **Content**: We make guides, tools and posts that help them. 4. **Recommendations**: We recommend products that fit them, and mark partner links. Why separate brands? People trust a site that knows them well, so each audience gets its own brand. Every brand says openly that it belongs to Cliqto Media. ## Our principles - **Honest recommendations**: We recommend a product only if it helps the reader. - **Clear disclosure**: Every page with partner links says so, next to the links. - **Our own projects**: We do not take outside projects. Everything here is ours. - **Respect for people**: No spam, no pop-ups, no fake reviews. We never ask for passwords. - **Public data first**: Our Actors read public data. We respect site limits. - **Fast fixes**: If something breaks, tell us. We fix problems fast. ## Company facts - Name: Cliqto Media - Type: Independent digital media company - Since: 2020 - What we own: Brands, websites, Apify Actors and browser extensions - Brands: Voxlo Studio, more in the works - How we earn: Our own products and partner programs - Outside projects: None. We work only on our own projects - Website: cliqtomedia.com Press kit: https://cliqtomedia.com/press/ ## Where to find us - [Apify](https://apify.com/cliqtomedia?fpr=cliqto): All our Actors, ready to run - [X](https://x.com/CliqtoMedia): News and short tips - [LinkedIn](https://www.linkedin.com/company/cliqtomedia): Company news - [YouTube](https://www.youtube.com/@CliqtoMedia): Short demos - [Medium](https://medium.com/@cliqtomedia): How-to articles - [Bluesky](https://bsky.app/profile/cliqtomedia.com): News in short posts - [GitLab](https://gitlab.com/cliqtomedia): Our public projects ## Contact - Questions and support: hello@cliqtomedia.com - Partnerships: partners@cliqtomedia.com - Problems with an Actor: open the Actor on Apify and use the Issues tab We usually reply within 2 business days. ## Questions ### When did Cliqto Media start? In 2020. ### What does Cliqto Media do? We build our own brands, websites and tools, like Voxlo Studio, Apify Actors (150+ built, 103 live) and browser extensions. On our sites we recommend products we trust to the people who use them. ### Is Cliqto Media an agency? No. An agency works on other people's projects. We work only on our own brands, websites and products. ### How do you earn money? From our own products and from partner programs. When we recommend a product, we may earn a commission. You pay the same price. ### Are you part of Apify? No. We are an independent company. Our Actors run on the Apify platform. ### Can I suggest a new tool? Yes. [Suggest a tool](/partners/#suggest) on the Partners page. We read every idea, but we do not promise to build it. ### Are you the same as cliqto.com? No. cliqto.com is a different company. Cliqto Media is not connected to cliqto.com or to any company on that website. Our main website is cliqtomedia.com, and our email addresses end in @cliqtomedia.com. Our brands have their own sites, like voxlostudio.com. --- # Partners > Partner with Cliqto Media, an independent digital media company. We promote products we trust in guides, reviews and free tools on our own brands. URL: https://cliqtomedia.com/partners/ Cliqto Media is an independent digital media company. We promote products we trust on our own brands, websites and channels. ## Who we work with - **Affiliate programs**: you run a program for a product that real people use. - **Platforms and integrations**: our products may fit your users. - **API and data owners**: you have a public API or open data. - **Writers and creators**: you write or make videos about online tools. ## For affiliate programs - **Real audiences**: Each brand has its own readers. Your product appears where its users already are. - **A publisher, not a coupon site**: We write guides, reviews and tool pages. People read them to make a choice. - **We use what we recommend**: We use or test a product before we write about it. - **Safe for your brand**: Clear disclosure, no search ads on your brand name without your permission, no spam. We follow your program rules. ## Our properties - **Voxlo Studio** (brand, live): Original 3D-printable designs: toys, gadgets and puzzles that people print at home. Audience: Makers, 3D printing fans, Families. - **cliqtomedia.com** (website, live): Guides, tool pages and how-tos about web data, AI and online work. Audience: Marketers, Developers, Small businesses, Creators. - **Apify Actors** (product line, live): Apify Actors (web scrapers and data APIs): 150+ built, 103 live. People use them to get public web data without code. Audience: Data teams, Sales teams, Researchers. - **Browser extensions** (product line, live): Free tools that run in your own browser. The first one: Bulk Post Scheduler for X. Audience: Creators, Social media managers. - **Social channels** (channels, live): News, short demos and how-to articles for the people who use our sites and tools. Audience: Our readers, Our users. - **New brands** (in the works, next): New websites for new audiences. We add each brand here when it is ready. Audience: New audiences. We do not publish audience numbers on this page. Ask us, and we will share the facts that matter for your program. ## Programs that fit A great fit today: Software and SaaS, AI tools, Automation and no-code, CRM, email and sales tools, Hosting and domains, Proxies and data tools, Developer tools, Tools for creators, Video and social media tools, 3D printers and filament, 3D software and maker tools. Open to, with our new brands: Travel, Insurance, Banking and money, Education and languages, Other products for everyday life. Your product is in a different field? Tell us anyway. We do not promote a brand if one of our tools collects data from that brand's website. ## How we promote - **Brand websites**: Each audience gets its own site with its own name. - **Guides and how-tos**: Step by step: how a product works and how to start. - **Reviews and comparisons**: What we liked, what we did not, and who it is for. - **Free tools**: Tools and extensions that people use every day. - **Short videos**: Demos and tips on YouTube and social media. - **Social posts**: News and short tips on X, Medium and LinkedIn. ## How it works 1. **Write to us**: Send a link to your program and your terms. 2. **We check the fit**: Is the product right for one of our audiences? 3. **We try the product**: We use it or test it ourselves. 4. **We publish**: Guides, reviews or tool pages, with marked links. 5. **We keep it up to date**: We update the content when your product changes. ## Traffic sources Search engines, Our own social channels, Our product listings on Apify, Links from other sites. We do not buy clicks and we do not pay people to click. ## Compliance - Every partner link is marked, and each page with them says so - No search ads on your brand name without your permission - No coupon or cashback sites - No email spam, pop-ups or hidden links - No paid clicks and no fake traffic - No paid reviews ## Platforms and integrations Our Actors already work with Make, Zapier, n8n, Google Sheets and AI agents: https://cliqtomedia.com/actors/integrations/ ## API and data owners Do you have a public API or an open data source? We may make an Apify Actor for it. We decide what to make ourselves. ## Writers and creators We can share product facts, images or a sample of data from one of our Actors. ## Suggest a tool Send the website or source with example links, the data you need and how you will use it to partners@cliqtomedia.com. We read every idea, but we do not promise to make it. There is no price and no contract. ## What we do not do - We do not work on other people's projects or make tools to order. - We do not write paid reviews. A partner cannot buy a good review. - We do not hide partner links. - We do not use fake reviews, fake traffic or paid clicks. - We do not buy search ads on your brand name without your permission. - We do not send spam or mass messages. - We do not ask for, store or use anyone's passwords. - We do not access other people's private accounts. ## Contact Partnerships: partners@cliqtomedia.com. Product questions: hello@cliqtomedia.com. We usually reply within 2 business days. ## Questions ### What kind of company is Cliqto Media? An independent digital media company. We build our own brands, websites and tools, and we recommend products we trust to the people who use them. ### Do you work only with software and tech products? No. Each of our brands has its own audience. Today we fit software, web and data, creator tools and 3D printing. We are working on new brands for new audiences. ### Where will my product appear? On the site whose readers need it: in guides, reviews and product pages. Sometimes also on our social accounts. ### How do you promote? With content only. We always mark partner links. No coupon sites, no search ads on your brand name without your permission, no spam. ### Can I pay for a review? No. We write about a product only if it fits our readers. Partner links never change what we say. ### Do you make tools to order? No. We make only our own products. You can [suggest a tool](#suggest), and we decide if we make it. ### Can I get sample data for an article? Yes. Tell us about your article or video and which Actor you want to show. --- # What people do with our Actors > Nine ways to use our Apify Actors: lead lists, prices, reviews, SEO, social listening, content and more. Each with steps and sample data. URL: https://cliqtomedia.com/actors/use-cases/ Our Apify Actors collect public web data. Pick a use case. Each page shows the Actors, the steps and a sample result. ## Use cases - [Lead lists from public data](https://cliqtomedia.com/actors/use-cases/lead-generation/): Build lists of companies and contacts from public sites. Check emails and phones before you send. (13 tools) - [Reach out when the company is ready](https://cliqtomedia.com/actors/use-cases/buying-signals/): Know when a company hires, raises money or wins a contract. Reach out at the right moment. (12 tools) - [Know what your competitors do](https://cliqtomedia.com/actors/use-cases/competitor-monitoring/): See what your competitors launch, hire, change and advertise. Every week, without opening their sites. (11 tools) - [Track prices in shops and marketplaces](https://cliqtomedia.com/actors/use-cases/price-monitoring/): Track prices and offers in shops and marketplaces. See changes before your customers do. (14 tools) - [Read new reviews, yours and theirs](https://cliqtomedia.com/actors/use-cases/review-monitoring/): Collect reviews from the App Store, Google Play and more. Find what people love and what they hate. (7 tools) - [SEO data without a big suite](https://cliqtomedia.com/actors/use-cases/seo-research/): Collect keyword ideas and check your pages and your rivals' pages. Search results and trends coming soon. (11 tools) - [Hear what people say about you](https://cliqtomedia.com/actors/use-cases/social-listening/): Find what people say about your brand and your topic on Bluesky, Hacker News, YouTube and more. (12 tools) - [One piece of content, ten new posts](https://cliqtomedia.com/actors/use-cases/content-repurposing/): Turn videos, podcasts, PDFs and articles into clean text. Make posts, notes and AI drafts from it. (10 tools) - [Find the right creators, fast](https://cliqtomedia.com/actors/use-cases/creator-outreach/): Find podcasts, YouTube channels and newsletters in your niche, with public contact details. (8 tools) ## How every Actor works 1. **Pick the sources**: Websites, registers, app stores, feeds or social sites 2. **Run on a schedule**: Daily, weekly or hourly runs in the Apify cloud 3. **Clean and check**: Tidy fields, checked contacts, only new items 4. **Send to your tools**: Google Sheets, CRM, Make, Zapier, n8n or your AI agent ## By team - **Growth and sales**: Fresh lead lists and the right moment to reach out. (Lead lists, Buying signals) - **Product marketing**: Know what rivals launch and what customers say. (Competitor watch, Review monitoring) - **SEO and content**: Real search data and more posts from every video. (SEO research, Content repurposing) - **E-commerce**: Daily prices, offers and reviews in your market. (Price tracking, Review monitoring) - **Brand and PR**: Hear every mention and find the right creators. (Social listening, Creator outreach) - **Agencies**: Use the same Actors on many projects. (Lead lists, Competitor watch, SEO research) ## Questions ### What is on this page? Common ways to use our Apify Actors. They collect public data: leads, prices, reviews, posts, search data and text. Some pages also show our browser extension. ### Do your Actors send emails or post for us? Our Actors collect and prepare data. You keep your own email tool, CRM and social accounts. You can connect the data to them with Make, Zapier or n8n. Our extension for X adds posts to X's own Scheduled list. ### How fast can we start? On the same day. Make a free Apify account, open an Actor, fill the form and click Start. Then add a schedule. ### Is the data legal to use? Our Actors collect public data only. You are responsible for how you use it, for example GDPR rules when you contact people. Read the [Terms](/legal/terms/). ### What if my use case is not here? [Suggest a tool](/partners/#suggest). We read every idea, but we do not promise to build it. --- # Lead lists from public data > Build lead lists from public sites and registers. Check emails, phones and VAT numbers. Send clean rows to your CRM. Pay per result on Apify. URL: https://cliqtomedia.com/actors/use-cases/lead-generation/ Collect companies and their public contacts from websites, directories and official registers. Check emails and phones. Get one clean row per lead, ready for your CRM. ## The task Most sales and marketing teams build lead lists by hand. Someone opens a directory, copies a company name, finds the website, looks for an email and pastes it into a sheet. It takes hours. Some emails may be old or wrong. Our Actors do the copy and paste. They read public pages and official registers, find contacts, and check them. You start your day with a list, not with a blank sheet. | By hand | With our Actors | |---|---| | Copy companies from directories by hand | Companies from directories and registers in one table | | Guess emails and hope they work | Every email checked for format and mail domain | | No way to know the company size or stack | Tech stack, country and register data in each row | | Old lists with dead contacts | Run again every month to keep the list fresh | ## How it works 1. **Find companies**: Directories, startup lists and company registers 2. **Get contacts**: Public emails, phones and social links from each website 3. **Check them**: Email, phone and VAT checks remove bad rows 4. **Send to CRM**: HubSpot, Google Sheets, Airtable or a CSV file ## Tools for this use case - [Website Contact Scraper](https://cliqtomedia.com/actors/website-contacts-scraper/) (live): Add a list of company websites. - [Bulk Email Verifier: MX, Disposable, Role & Typo Check](https://cliqtomedia.com/actors/email-verifier/) (live): Paste email addresses or pick a dataset from a lead scraper. - [Phone Number Validator & Formatter - Bulk E.164, No Login](https://cliqtomedia.com/actors/phone-number-validator/) (live): Paste phone numbers in any format. - [Website Tech Stack Detector: CMS, Versions & CDN, No Login](https://cliqtomedia.com/actors/tech-stack-detector/) (live): Paste a list of websites. The tool checks each live page against 7,600+ technology fingerprints. You get one row per site with CMS, shop… - [EU VAT Number Validator (VIES) - Bulk Check, No Login](https://cliqtomedia.com/actors/vat-number-validator/) (live): Paste a list of EU VAT numbers. - [Europages Scraper: B2B Suppliers & Certificates (No Login)](https://cliqtomedia.com/actors/europages-companies-scraper/) (live): Search Europages by product and country. - [YC Companies Scraper: Founders & Jobs, No Login](https://cliqtomedia.com/actors/y-combinator-companies/) (live): Pick a YC batch, industry or region. - [France Company & SIRET Search](https://cliqtomedia.com/actors/france-sirene-company-search/) (live): Check French companies by SIREN, SIRET or VAT number. - [Norway Company Register (Brreg) & Updates](https://cliqtomedia.com/actors/norway-brreg-company-register/) (live): Look up Norwegian companies by organisation number, or search the register with filters. - [Domain WHOIS (RDAP) & DNS Lookup, No Login](https://cliqtomedia.com/actors/domain-whois-dns-lookup/) (live): Paste a list of domains. For each one, you get registrar, dates and days until expiry from the official registry. You also get live DNS… - [Bulk Email List Validator: Clean CSV, No Login](https://cliqtomedia.com/actors/bulk-email-validator/) (coming soon): Upload your email list as a CSV or Google Sheet link. - [Finland Company Register (PRH YTJ)](https://cliqtomedia.com/actors/finland-ytj-company-register/) (coming soon): Check Finnish companies by Business ID (Y-tunnus), or search by name and town. - [LEI Lookup & Change Monitor (GLEIF)](https://cliqtomedia.com/actors/lei-gleif-lookup/) (coming soon): Paste LEI codes or a company name. ## Example workflow 1. **Pick your market**: For example: software companies in Norway, or new Y Combinator startups. 2. **Collect the companies**: Run a register or directory tool. You get names, websites and register IDs. 3. **Add contacts**: Give the websites to Website Contact Scraper. It finds public emails, phones and social profiles. 4. **Clean the list**: Run Email Verifier and Phone Number Validator. Keep only the rows that pass. 5. **Send and repeat**: Send the rows to your CRM with Make, Zapier or n8n. Schedule the run every month. Example result row: company = Example Apps AS, website = example.com, email = hello@example.com, email_status = deliverable, phone = +47 …, tech = WordPress, HubSpot, country = NO Send the data to: HubSpot, Google Sheets, Airtable, Make, Zapier, n8n. ## Who uses it - **Sales teams**: Fill the pipeline with fresh, checked contacts every week. - **Agencies**: Build lead lists for each project. - **Founders**: Build a list of your first 100 prospects in one evening. ## Questions ### Do you sell lead lists? No. We make tools. You run them and you own the data. This way the list is always fresh and fits your market. ### Is it legal to collect business contacts? Our tools read only public pages and open registers. Laws like GDPR still apply to how you use the data. Read [our note on web scraping and the law](/faq/#is-web-scraping-legal). ### How do I avoid bounced emails? Run every list through Email Verifier before you send. It checks the format, the domain and its mail (MX) records. It does not check the mailbox itself, so a few emails can still bounce. Bulk Email Validator for CSV lists is coming soon. ### Can I get leads for one country only? Yes. Use a company register for that country, or filter directory results by country. ## More use cases - [Reach out when the company is ready](https://cliqtomedia.com/actors/use-cases/buying-signals/) - [Find the right creators, fast](https://cliqtomedia.com/actors/use-cases/creator-outreach/) - [Know what your competitors do](https://cliqtomedia.com/actors/use-cases/competitor-monitoring/) --- # Reach out when the company is ready > Get alerts when companies hire, raise money or win public contracts. Daily monitors for job boards, SEC Form D, tenders and startup lists. URL: https://cliqtomedia.com/actors/use-cases/buying-signals/ A company that hires ten engineers, raises a round or wins a public contract needs new tools now. Our monitors watch these signals every day and tell you who is new. ## The task Timing is half of a good sales email. The same message works much better the week a company starts to grow. But nobody can check hundreds of career pages and filings every day. Our monitors can. They check job boards, funding filings, startup lists and public tenders on a schedule. Each run shows only what is new since the last run. | By hand | With our Actors | |---|---| | Check career pages one by one | New job posts from 15+ hiring systems in one feed | | Hear about a funding round weeks later | New Form D filings every morning | | Miss public tenders in your field | New tenders and federal awards by keyword | | Send the same email to everyone | Write to companies that just started to grow | ## How it works 1. **Watch sources**: Career pages, SEC filings, tenders, startup lists 2. **Run daily**: A schedule on Apify, no server to run 3. **Keep only new**: Each run marks new, changed and removed items 4. **Alert the team**: Email, Slack, CRM task or Google Sheets ## Tools for this use case - [Greenhouse Jobs Monitor & Scraper](https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/) (live): Add the Greenhouse boards of companies you follow. - [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/) (live): Add a Lever company name or board link. - [Ashby Jobs Scraper](https://cliqtomedia.com/actors/ashby-jobs-scraper/) (live): Add a known Ashby board name, like ramp. - [Workable Jobs Monitor & Scraper](https://cliqtomedia.com/actors/workable-jobs-monitor-scraper/) (live): Add Workable companies, or search Workable jobs by keyword and place. - [SmartRecruiters Jobs Monitor & Scraper](https://cliqtomedia.com/actors/smartrecruiters-jobs-monitor-scraper/) (live): Name the SmartRecruiters companies you follow. - [Recruitee Job Snapshots & Changes](https://cliqtomedia.com/actors/recruitee-jobs-monitor-scraper/) (live): Enter a Recruitee company name or link. - [Personio Vacancy Watch](https://cliqtomedia.com/actors/personio-jobs-monitor-scraper/) (live): Add the Personio board of a company you know. - [Wellfound Jobs Scraper](https://cliqtomedia.com/actors/wellfound-jobs-scraper/) (live): Pick a role and a location, or paste a Wellfound job link. - [SEC Form D Filing Monitor](https://cliqtomedia.com/actors/sec-edgar-form-d-funding-monitor/) (live): Find public Form D and D/A filings in SEC EDGAR by date or CIK. - [YC Companies Scraper: Founders & Jobs, No Login](https://cliqtomedia.com/actors/y-combinator-companies/) (live): Pick a YC batch, industry or region. - [USAspending Federal Awards & Recipient Monitor](https://cliqtomedia.com/actors/usaspending-federal-awards-monitor/) (live): Find US federal contracts, grants and loans from USAspending.gov. - [EU TED Tenders Scraper & Monitor](https://cliqtomedia.com/actors/eu-ted-tenders-scraper/) (live): Find EU public tenders on TED with your own filters. ## Example workflow 1. **Choose a signal**: Hiring for a role, a new funding filing, or a tender with your keyword. 2. **Add your targets**: Paste the career pages of your target companies, or set a keyword and a country. 3. **Schedule it**: Run the monitor every day. It remembers what it saw last time. 4. **Get only news**: Each run gives only new items. No noise from old posts. 5. **Act fast**: Send new signals to your CRM or team chat with Make, Zapier or n8n. Example result row: company = Acme Robotics, signal = new job post, title = Head of Growth, location = Berlin, first_seen = 2026-10-14, change = new, url = boards.greenhouse.io/… Send the data to: HubSpot, Google Sheets, Slack, Make, Zapier, n8n. ## Who uses it - **Sales teams**: Write to companies in the week they grow. - **Recruiting agencies**: See which companies open new roles first. - **Investors and analysts**: Track hiring and funding across a market. ## Questions ### What is a buying signal? An event that shows a company may need to buy soon. For example: new hires in one team, a funding round, a new office or a won contract. ### How do the monitors know what is new? Each monitor saves what it saw in the last run. The next run compares and marks items as new, changed or removed. ### Which hiring systems do you cover? Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio and many more. See [Jobs and hiring](/actors/jobs/). ### Can I get the alerts in Slack? Yes. Connect the run to Slack with Make, Zapier or n8n. Apify can also call a webhook after each run. ## More use cases - [Lead lists from public data](https://cliqtomedia.com/actors/use-cases/lead-generation/) - [Know what your competitors do](https://cliqtomedia.com/actors/use-cases/competitor-monitoring/) - [Track prices in shops and marketplaces](https://cliqtomedia.com/actors/use-cases/price-monitoring/) --- # Know what your competitors do > Track competitor ads, launches, job posts, site changes and releases. Collect the facts each week in your own sheet. Status pages coming soon. URL: https://cliqtomedia.com/actors/use-cases/competitor-monitoring/ Their new ads, new pages, new jobs and new releases tell you their plan. Our tools collect these facts on a schedule and put them in one sheet. ## The task Most teams look at competitors only when something goes wrong. Then they open ten tabs and try to guess what changed. The picture is never complete. With a few scheduled runs you see the changes as they happen: a new ad message, a new pricing page, ten new sales jobs or a new product launch. | By hand | With our Actors | |---|---| | Look at competitor sites only from time to time | A weekly list of new pages and changed titles | | Hear about a launch from customers | Launches and releases in one feed (status pages coming soon) | | No history of their ads | Their Google ads from the Ads Transparency Center | | Guess their next step | New jobs show where they invest | ## How it works 1. **List competitors**: Their domains, career pages and product pages 2. **Run weekly**: Ads, sitemaps, jobs, launches and releases 3. **Compare**: New pages, new ads, new jobs, new versions 4. **Share the report**: Google Sheets, Notion or your team chat ## Tools for this use case - [Google Ads Transparency Scraper - Ad Text, No Login](https://cliqtomedia.com/actors/google-ads-transparency-scraper/) (live): See which ads a brand runs on Google. - [XML Sitemap URLs Extractor](https://cliqtomedia.com/actors/xml-sitemap-urls-extractor/) (live): Turn a sitemap into a clean list of page URLs. - [Website Metadata & Open Graph Scraper](https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/) (live): Get the title, description, canonical and social tags of up to 100 pages. - [Website Tech Stack Detector: CMS, Versions & CDN, No Login](https://cliqtomedia.com/actors/tech-stack-detector/) (live): Paste a list of websites. The tool checks each live page against 7,600+ technology fingerprints. You get one row per site with CMS, shop… - [Product Hunt Launches Scraper – Daily Top, No Login](https://cliqtomedia.com/actors/product-hunt-launches/) (live): Get Product Hunt daily leaderboards for any day or period up to 31 days. - [GitHub Releases Monitor & Scraper](https://cliqtomedia.com/actors/github-releases-monitor-scraper/) (live): Add up to 10 public repositories and get their releases as rows. - [Greenhouse Jobs Monitor & Scraper](https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/) (live): Add the Greenhouse boards of companies you follow. - [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/) (live): Add a Lever company name or board link. - [Google Search Results Scraper (SERP) - No Login, Per Page](https://cliqtomedia.com/actors/google-search-scraper/) (live): Add keywords and get Google results as rows. - [Trustpilot Reviews Scraper - Ratings & Replies, No Login](https://cliqtomedia.com/actors/trustpilot-reviews-scraper/) (live): Add a company domain and get its public Trustpilot reviews in a table. - [Statuspage Incidents Monitor — Vendor Status & Changes](https://cliqtomedia.com/actors/statuspage-incidents-monitor/) (coming soon): Check the status pages of vendors you use, like GitHub or Cloudflare. ## Example workflow 1. **List the competitors**: Write down their domains, career pages and product names. 2. **Watch their site**: XML Sitemap URLs Extractor shows new pages. Website Metadata shows new titles and texts. 3. **Watch their ads**: Google Ads Transparency Scraper shows which ads they run and where. 4. **Watch their moves**: Jobs, launches and releases show where they invest. Status pages: after release. 5. **Read one report**: Send all results to one Google Sheet with a tab per source. Example result row: competitor = rival.com, source = sitemap, change = new page, url = rival.com/pricing-teams, title = Pricing for teams, seen = 2026-10-15 Send the data to: Google Sheets, Notion, Slack, Airtable, Make, Zapier. ## Who uses it - **Marketing teams**: See competitor messages and offers each week. - **Product managers**: Track their launches, releases and job posts. - **Agencies**: Use the same report on many projects. ## Questions ### Is competitor monitoring legal? Our tools read public pages only: ads in the official transparency center, public sitemaps, public job posts. We do not log in to any account. ### How often should I run it? Weekly is enough for most teams. Run ads and pricing pages daily in busy markets. ### Can I see their Facebook ads too? Our current tools cover Google ads. Need another ad platform? [Suggest a tool](/partners/#suggest). We read every idea, but we do not promise to build it. ### Do I need to write code? No. Each tool has a simple form. You can send results to Google Sheets without writing code. ## More use cases - [Track prices in shops and marketplaces](https://cliqtomedia.com/actors/use-cases/price-monitoring/) - [SEO data without a big suite](https://cliqtomedia.com/actors/use-cases/seo-research/) - [Read new reviews, yours and theirs](https://cliqtomedia.com/actors/use-cases/review-monitoring/) --- # Track prices in shops and marketplaces > Track product prices online: idealo, Trendyol, eBay sold prices, Naver Shopping, Australian supermarkets, any shop's product data and FX rates. URL: https://cliqtomedia.com/actors/use-cases/price-monitoring/ Watch prices, offers and sellers in online shops and marketplaces. Get one table with every product and every change. Use it to set your prices and plan promotions. ## The task Online prices change many times a week. Sellers who check by hand see the change too late, or they only check five products out of five hundred. Our shop and marketplace tools read product pages and search results on a schedule. You get the price, the seller, the stock and the time, for every product you care about. | By hand | With our Actors | |---|---| | Check a few competitor prices by hand | Many products checked every day | | Find a price drop after sales fall | Alerts when a price goes down | | No history to plan promotions | Price history in your own sheet | | Prices in many currencies | Prices in one currency, with daily exchange rates | ## How it works 1. **List products**: Search words, product links or shop pages 2. **Run on schedule**: Daily or hourly runs on Apify 3. **Clean prices**: Price, currency, seller, stock and time 4. **Use the data**: Sheets, BI tools or your repricing rules ## Tools for this use case - [Historical Exchange Rates & Currency Converter](https://cliqtomedia.com/actors/historical-fx-rates-converter/) (live): Get official ECB exchange rates for any pair and date since 1999. - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) (live): Read JSON-LD structured data from a list of web pages. - [Idealo Price Scraper: All Shop Offers, 6 Countries, No Login](https://cliqtomedia.com/actors/idealo-price-scraper/) (live): Search idealo or paste product links. - [AliExpress Scraper: Products, Prices & Reviews, No Login](https://cliqtomedia.com/actors/aliexpress-scraper/) (live): Type keywords to get AliExpress products, or paste product links to get reviews. - [eBay Sold Listings Scraper - Sold Prices & Dates](https://cliqtomedia.com/actors/ebay-sold-listings/) (live): Search eBay sold and completed listings by keyword. - [Trendyol Scraper: Products, Prices & Reviews (No login)](https://cliqtomedia.com/actors/trendyol-scraper/) (live): Add a keyword or product links from Trendyol, Turkey's largest online marketplace. - [Naver Shopping Scraper: Korea Products & Prices](https://cliqtomedia.com/actors/naver-shopping-scraper/) (live): Search Naver Shopping, Korea's largest shopping search, by keyword. - [Coles, Woolworths & Aldi Price Scraper - No Login](https://cliqtomedia.com/actors/au-supermarket-prices/) (live): Search Coles, Woolworths and Aldi Australia at once and get one price table. - [Google Shopping Scraper - Prices, Stores & Offers, No Login](https://cliqtomedia.com/actors/google-shopping-scraper/) (coming soon): Add product searches and pick a country. - [Wildberries Scraper: Products, Prices, Reviews, No Login](https://cliqtomedia.com/actors/wildberries-scraper/) (coming soon): Search Wildberries by keyword, or paste article numbers. - [JD.com Products Scraper](https://cliqtomedia.com/actors/jd-com-scraper/) (coming soon): Type Chinese keywords or paste JD.com links and get products as rows. - [Marketplace Seller Fee Calculator](https://cliqtomedia.com/actors/marketplace-fee-calculator/) (coming soon): Enter a sale price and item cost. - [Vinted Scraper - Listings, Prices & Brands in 25 Countries](https://cliqtomedia.com/actors/vinted-scraper/) (coming soon): Search Vinted like on the website and get a clean list of items. - [Wallapop & Poshmark Scraper - Secondhand Listings, No Login](https://cliqtomedia.com/actors/secondhand-listings-scraper/) (coming soon): Search Wallapop in Spain, Italy or Portugal, or Poshmark in the US or Canada. ## Example workflow 1. **Choose the products**: Use search words like "wireless earbuds", or paste product links. 2. **Pick the markets**: Live now: idealo, Trendyol, eBay sold listings, Naver Shopping or Australian supermarkets. After release: Google Shopping, AliExpress or Wildberries. 3. **Schedule the run**: Daily is enough for most shops. Hourly works for fast markets. 4. **Compare and alert**: Keep a price history in Google Sheets. Send an alert when a price drops. 5. **Check your margin**: After release: Marketplace Fee Calculator will show the real profit after fees. Example result row: product = Wireless earbuds X2, price = 49.90, currency = EUR, seller = TopTech, in_stock = true, checked_at = 2026-10-16 08:00 Send the data to: Google Sheets, Google BigQuery, Airtable, Make, Zapier, n8n. ## Who uses it - **E-commerce sellers**: Set prices with real market data every day. - **Brands**: See how resellers price your products. - **Market analysts**: Build price indexes and track trends. ## Questions ### Which shops and marketplaces do you cover? Live today: idealo, Trendyol, product data from any shop that publishes it (JSON-LD), eBay sold listings, Naver Shopping, Coles, Woolworths and Aldi in Australia, and daily exchange rates. The eBay tool needs your own eBay session or an API key. Coming soon: Google Shopping, AliExpress, Wildberries, JD.com, Vinted, and the second-hand sites Wallapop and Poshmark. See [E-commerce and prices](/actors/ecommerce/). ### Can I track the same product in many shops? Today, run the JSON-LD tool on each shop's product page. idealo already shows offers from many shops for one product. After release, Google Shopping will too. ### How do I get an alert on a price drop? Send results to Google Sheets and use a simple rule in Make, Zapier or n8n: if the new price is lower, send a message. ### How much does it cost? You pay per result on Apify. For example, one product price is one result. Each tool page shows its price. ## More use cases - [Know what your competitors do](https://cliqtomedia.com/actors/use-cases/competitor-monitoring/) - [Read new reviews, yours and theirs](https://cliqtomedia.com/actors/use-cases/review-monitoring/) - [Reach out when the company is ready](https://cliqtomedia.com/actors/use-cases/buying-signals/) --- # Read new reviews, yours and theirs > Collect and track reviews from the Apple App Store, Google Play and TrustRadius. Trustpilot and OpenTable coming soon. Find complaints early. URL: https://cliqtomedia.com/actors/use-cases/review-monitoring/ Collect reviews from app stores and TrustRadius on a schedule. Read new reviews in one place, see the rating trend, and learn from your competitors' customers too. ## The task Reviews are free market research. But they live on many sites, and new ones arrive every day. Teams read a few, miss the rest, and answer bad reviews too late. Our review tools collect the reviews each source makes available, with rating, date, text and reply. Limits depend on the tool. Run them every day and you see new complaints the same morning. | By hand | With our Actors | |---|---| | Read reviews site by site | Reviews from app stores and review sites in one table | | See a bad review a week later | Fresh reviews in your table every morning | | No numbers on what people complain about | Rating trends, and text ready for AI to group by topic | | No view of competitor reviews | The same data for your competitors | ## How it works 1. **Pick the pages**: Your company, your apps and your competitors 2. **Run daily**: A fresh snapshot of recent reviews 3. **Read and group**: Rating, date, text, reply, country 4. **Act**: Support tickets, product notes, marketing quotes ## Tools for this use case - [Trustpilot Reviews Scraper - Ratings & Replies, No Login](https://cliqtomedia.com/actors/trustpilot-reviews-scraper/) (live): Add a company domain and get its public Trustpilot reviews in a table. - [Apple App Store Reviews Scraper](https://cliqtomedia.com/actors/apple-app-store-reviews-scraper/) (live): Export public App Store reviews for your apps and countries. - [Google Play Reviews Scraper](https://cliqtomedia.com/actors/google-play-reviews-scraper/) (live): Export written Google Play reviews for your apps. - [TrustRadius Reviews Scraper](https://cliqtomedia.com/actors/trustradius-reviews-scraper/) (live): Get public TrustRadius software reviews as clean rows. - [OpenTable Reviews & Restaurants Scraper, No Login](https://cliqtomedia.com/actors/opentable-reviews-scraper/) (live): Get OpenTable guest reviews with detailed ratings and owner replies. - [App Store Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/app-store-apps-search/) (live): Search the Apple App Store for many keywords in many countries at once. - [Google Play Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/google-play-apps-search/) (live): Search Google Play for many keywords in many countries in one run. ## Example workflow 1. **Add the pages**: Your app IDs and the same for 2–3 competitors. Trustpilot pages after release. 2. **Run the tools**: Get reviews with rating, date, country and text. 3. **Schedule it**: Each daily run collects a fresh snapshot. It can include reviews you already have. 4. **Merge by review ID**: Each review has a stable ID. Add new IDs and update changed reviews. 5. **Group by topic**: Give the text to an AI tool or a simple sheet formula: price, bugs, support, delivery. 6. **Close the loop**: Send bad reviews to support and good ones to marketing. Example result row: source = Google Play, app = com.example.app, rating = 2, date = 2026-10-15, text = The new update logs me out…, reply = null Send the data to: Google Sheets, Airtable, Notion, Claude, Make, Zapier. ## Who uses it - **App teams**: Find bugs from reviews the day after a release. - **Brand and support teams**: Answer bad reviews fast. - **Product marketers**: Find real customer words for ads and pages. ## Questions ### Can I collect reviews of my competitors? Yes. Reviews on these sites are public. You can collect them for any company or app. ### Can I filter by country or language? Yes. The app store tools work per country. After release, Trustpilot reviews will include the reviewer's country. ### How do I see only new reviews? The tools do not return only new reviews. Each run is a fresh snapshot. Merge the rows by review ID. Keep new IDs and update changed reviews. ### Can AI read the reviews for me? Yes. The output is clean text. Send it to Claude or ChatGPT and ask for the top complaints. See [AI agents](/actors/ai-agents/). ## More use cases - [Hear what people say about you](https://cliqtomedia.com/actors/use-cases/social-listening/) - [Know what your competitors do](https://cliqtomedia.com/actors/use-cases/competitor-monitoring/) - [Track prices in shops and marketplaces](https://cliqtomedia.com/actors/use-cases/price-monitoring/) --- # SEO data without a big suite > SEO data from our Apify Actors: autocomplete keyword ideas, structured data, sitemaps and URL status checks. Google results and Trends coming soon. URL: https://cliqtomedia.com/actors/use-cases/seo-research/ Get keyword ideas and check your pages. Find what to fix. Search results and trends are coming soon. ## The task Good SEO needs a lot of data: where you rank, what people search, which pages are broken, what your rivals publish. Collecting it by hand is slow, and many SEO suites cost hundreds per month. Our tools collect this data on demand. You pay for the results you get, and you keep the data in your own sheets. | By hand | With our Actors | |---|---| | Check rankings by hand in a private window | Search results for your keywords on a schedule (coming soon) | | Guess keyword ideas | Hundreds of real search ideas from autocomplete | | Find broken links after traffic drops | Status, redirects and metadata for every URL | | Pay for a big suite you use 10% of | Pay per result, keep the data | ## How it works 1. **Keywords and URLs**: Your keywords, your sitemap, rival domains 2. **Collect**: Keyword ideas and page data. Search results and trends soon 3. **Check**: Status codes, titles, structured data 4. **Report**: Google Sheets, Looker Studio, BigQuery ## Tools for this use case - [Google Search Results Scraper (SERP) - No Login, Per Page](https://cliqtomedia.com/actors/google-search-scraper/) (live): Add keywords and get Google results as rows. - [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/) (live): Get the phrases Google suggests when people start typing. - [Google Trends Scraper - Interest & Related, No Login](https://cliqtomedia.com/actors/google-trends-scraper/) (live): Get Google Trends data for many keywords in one run. - [Google News Scraper - Real Article URLs, No Login](https://cliqtomedia.com/actors/google-news-scraper/) (live): Search Google News by keyword, topic or Top stories. - [Google Images Scraper - Image URLs, Sizes & Source Pages](https://cliqtomedia.com/actors/google-images-scraper/) (live): Type a search phrase and get Google Images results as a table. - [XML Sitemap URLs Extractor](https://cliqtomedia.com/actors/xml-sitemap-urls-extractor/) (live): Turn a sitemap into a clean list of page URLs. - [Link Route Audit — Bulk HTTP Status & Redirects](https://cliqtomedia.com/actors/bulk-url-status-redirect-checker/) (live): Paste a list of URLs and see where each one ends up. - [Website Metadata & Open Graph Scraper](https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/) (live): Get the title, description, canonical and social tags of up to 100 pages. - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) (live): Read JSON-LD structured data from a list of web pages. - [DuckDuckGo & Bing Search Scraper - No Login, Real URLs](https://cliqtomedia.com/actors/duckduckgo-bing-search/) (coming soon): Add keywords and get DuckDuckGo and Bing results as rows. - [Wikipedia Pageviews & Trends Monitor](https://cliqtomedia.com/actors/wikipedia-pageviews-monitor/) (coming soon): See how many people read a Wikipedia article each day or month. ## Example workflow 1. **Find keyword ideas**: Google Autocomplete Scraper turns one seed word into hundreds of real searches. 2. **Check the demand**: After release: Google Trends Scraper will show interest over time and by country. 3. **Track the results**: After release: Google Search Scraper will save the top results for each keyword on a schedule. 4. **Audit your site**: Get all URLs from the sitemap, then check status, titles and structured data. 5. **Report**: Send everything to Google Sheets or BigQuery for your dashboard. Example result row: url = example.com/old-running, statusCode = 301, isRedirect = true, finalUrl = example.com/running, isBroken = false, checkedAt = 2026-10-16 Send the data to: Google Sheets, Google BigQuery, Airtable, Make, n8n, Python. ## Who uses it - **SEO specialists**: Get keyword and audit data without a big suite. - **Content teams**: Find topics people really search for. - **Agencies**: Run the same checks on many sites. ## Questions ### Can it replace my SEO suite? No. It covers data tasks like keyword ideas and site checks. Rank checks are coming soon. Big suites also have backlink data and reports, which we do not cover. ### Can I track rankings in another country? After the search Actors are released. Their inputs let you choose the country and language. ### How many URLs can I check? The sitemap tool can list thousands of URLs. The status and metadata checks take up to 100 URLs per run, so split a big list into a few runs. You pay per result, so a small check costs very little. ### Where can I see the results? Download a CSV, or send the data to Google Sheets, BigQuery or Looker Studio. ## More use cases - [One piece of content, ten new posts](https://cliqtomedia.com/actors/use-cases/content-repurposing/) - [Know what your competitors do](https://cliqtomedia.com/actors/use-cases/competitor-monitoring/) - [Hear what people say about you](https://cliqtomedia.com/actors/use-cases/social-listening/) --- # Hear what people say about you > Track brand mentions and topics on Bluesky, Hacker News, YouTube comments and Substack. Reddit, Threads and Telegram coming soon. Daily runs, clean data. URL: https://cliqtomedia.com/actors/use-cases/social-listening/ Find posts and comments about your brand, your rivals and your topic on many social sites. Get them in one table every day. Spot problems, ideas and trends early. ## The task People talk about products in many places: Bluesky posts, Hacker News threads, YouTube comments, newsletters. Brands that listen find ideas and problems early. Brands that do not, find them late. Social listening suites are expensive. Our tools give you the raw posts and comments for a small price per result, so you can listen to the places that matter to you. | By hand | With our Actors | |---|---| | Search each site by hand | Mentions from many sites in one feed | | Miss a viral complaint | New posts every morning | | No data for content ideas | Real questions to answer in your content | | Pay a lot for a listening suite | Pay for the posts you collect | ## How it works 1. **Set keywords**: Your brand, your rivals, your topic 2. **Search the sites**: Bluesky, Hacker News, YouTube and more 3. **Collect posts**: Text, author, date, likes and link 4. **Read and act**: Sheets, AI summary or team chat ## Tools for this use case - [Reddit Scraper: Posts, Comments & Subreddits (No login)](https://cliqtomedia.com/actors/reddit-scraper/) (live): Get public Reddit posts and comments as clean rows. - [Bluesky Scraper — Posts, Profiles, Feeds & Threads, No Login](https://cliqtomedia.com/actors/bluesky-scraper/) (live): Get public Bluesky posts, profiles, threads and feeds as clean rows. - [Threads Scraper — Posts, Profiles, Replies & Search](https://cliqtomedia.com/actors/threads-scraper/) (live): Get public Threads posts without login. - [Hacker News Stories & Comments Scraper](https://cliqtomedia.com/actors/hacker-news-stories-comments-scraper/) (live): Export Hacker News stories and comments as rows. - [Telegram Channel Scraper - Posts & Views, No Login](https://cliqtomedia.com/actors/telegram-channel-scraper/) (live): Get posts from public Telegram channels as clean rows. - [YouTube Comments Scraper](https://cliqtomedia.com/actors/youtube-comments-scraper/) (live): Export public comments and replies from YouTube videos. - [Substack Newsletter Scraper](https://cliqtomedia.com/actors/substack-newsletter-scraper/) (live): Get post data from public Substack feeds. - [Medium Article Scraper: Tags, Authors & Publications](https://cliqtomedia.com/actors/medium-articles-scraper/) (live): Get the newest Medium stories by tag, author or publication. - [Pinterest Search Scraper: Pins & Boards, No Login](https://cliqtomedia.com/actors/pinterest-search-scraper/) (live): Get pins and boards from Pinterest search, boards and profiles. - [Weibo Scraper: Posts, Comments & Profiles, No Login](https://cliqtomedia.com/actors/weibo-scraper/) (live): Get public Weibo data without login. - [Bilibili Scraper: Videos, Comments & Creators, No Login](https://cliqtomedia.com/actors/bilibili-scraper/) (live): Get public Bilibili data in clean rows. - [Quora Answers Scraper: Upvotes, Views & Authors, No Login](https://cliqtomedia.com/actors/quora-scraper/) (coming soon): Get public Quora answers for a question or a topic. ## Example workflow 1. **Write your keywords**: Your brand name, product names, rival names and 3–5 topic words. 2. **Pick the places**: Hacker News for tech, Bluesky for news, YouTube for reviews. Reddit and Threads after release. 3. **Run every day**: Each run collects new posts and comments with a link to each. 4. **Summarize**: Send the text to an AI tool for a short daily summary. 5. **Answer and create**: Reply where it matters. Turn real questions into posts and FAQs. Example result row: site = bluesky, handle = @brand.bsky.social, text = Has anyone tried…, author = @…, likes = 42, date = 2026-10-15, url = bsky.app/profile/… Send the data to: Google Sheets, Notion, Claude, Telegram, Make, n8n. ## Who uses it - **Brand managers**: See mentions and complaints early. - **Content teams**: Find real questions and hot topics. - **Community managers**: Join the right threads at the right time. ## Questions ### Which social sites do you cover? Live now: Bluesky, Hacker News, YouTube comments, Substack, Pinterest and Bilibili. Coming soon: Reddit, Threads, Quora, Telegram channels, Medium and Weibo. See [Social media](/actors/social/). ### Do I need an account on these sites? No. The tools read public posts and pages. You do not log in. ### Can I get a daily summary? Yes. Send the posts to Claude or ChatGPT with a short prompt, and post the summary to your team chat. ### Is it private data? No. We collect only public posts. Do not use the data to target private people. Read [our FAQ](/faq/#is-web-scraping-legal). ## More use cases - [Read new reviews, yours and theirs](https://cliqtomedia.com/actors/use-cases/review-monitoring/) - [One piece of content, ten new posts](https://cliqtomedia.com/actors/use-cases/content-repurposing/) - [Find the right creators, fast](https://cliqtomedia.com/actors/use-cases/creator-outreach/) --- # One piece of content, ten new posts > Turn YouTube videos, podcasts, PDFs, RSS feeds and web pages into clean text and Markdown. Feed it to AI to make posts, newsletters and summaries. URL: https://cliqtomedia.com/actors/use-cases/content-repurposing/ Get transcripts from videos and podcasts, and clean text from articles, PDFs and feeds. Then use AI to turn one piece of content into posts, newsletters and summaries. ## The task A one-hour video or podcast has enough ideas for a month of posts. But first you need the text. Typing it by hand is slow, and copy from web pages comes with menus, ads and broken lines. Our tools give you clean text and Markdown, ready for AI. Add a short prompt and you have drafts for posts, threads, emails and blog articles. | By hand | With our Actors | |---|---| | Watch a video again to write notes | Full transcripts in minutes | | Copy text with ads and menus | Clean text from web pages and PDFs | | Start every post from zero | AI drafts from your own best content | | Content lives in one format only | One video becomes posts, threads and a newsletter | ## How it works 1. **Pick content**: Videos, podcasts, PDFs, articles or RSS feeds 2. **Get clean text**: Transcripts and Markdown without noise 3. **Rewrite with AI**: Claude, ChatGPT or your own agent 4. **Publish**: Social posts, newsletter, blog ## Tools for this use case - [YouTube Subtitles & Transcript Scraper API](https://cliqtomedia.com/actors/youtube-transcript-scraper/) (live): Get the public captions of a YouTube video as full text and timed parts. - [Audio & Podcast Transcriber (Speech to Text)](https://cliqtomedia.com/actors/audio-video-transcriber/) (live): Turn audio files or podcast episodes into text. - [YouTube Search Results Scraper — No Login](https://cliqtomedia.com/actors/youtube-search-scraper/) (live): Search YouTube by keyword and get each result as a row. - [News Article Extractor: RSS, URLs & Clean Text](https://cliqtomedia.com/actors/news-article-extractor/) (live): Paste news links or a news site. - [Website to Markdown for RAG: Crawl & Changed Pages](https://cliqtomedia.com/actors/website-to-markdown/) (live): Give a start URL and a page limit. - [PDF & Image to Text OCR for AI Agents - No Login](https://cliqtomedia.com/actors/pdf-text-ocr/) (live): Give a link to a PDF or an image. - [RSS & Atom Feed Reader / Monitor](https://cliqtomedia.com/actors/rss-atom-feed-reader-monitor/) (live): Paste one or more feed links and get each item as a row. - [Video URL to Text: Transcribe TikTok, Reels, X, YouTube](https://cliqtomedia.com/actors/video-to-text/) (coming soon): Paste a video link and get the spoken words as text. - [Fast Webpage to Markdown API for AI Agents](https://cliqtomedia.com/actors/webpage-to-markdown-api/) (coming soon): Give a link and get the page as clean Markdown in a few seconds. - [PDF to Markdown for LLMs & RAG Chunks - No Login](https://cliqtomedia.com/actors/pdf-to-markdown/) (coming soon): Paste a PDF link and get Markdown with real headings, lists and tables. ## Example workflow 1. **Pick the source**: Your own videos and podcasts, or articles and reports in your field. 2. **Get the text**: YouTube Transcript Scraper for videos, Website to Markdown for pages, PDF & Image to Text OCR for reports. After release: Webpage to Markdown API and PDF to Markdown. 3. **Write with AI**: Ask for 5 short posts, one thread and one newsletter from the text. 4. **Edit and post**: Check the facts, add your voice and schedule the posts, for example with [Bulk Post Scheduler for X](/extensions/x-bulk-scheduler/). 5. **Make it a loop**: Watch your RSS feed. Each new episode starts the flow again. Example result row: video = youtu.be/…, title = How we grew to 10k users, language = en, duration = 00:42:10, transcript = Hello and welcome… Send the data to: Claude, OpenAI, Notion, Google Drive, Make, n8n. ## Who uses it - **Content teams**: Make a month of posts from one long video. - **Creators and podcasters**: Turn every episode into text, clips and notes. - **AI builders**: Feed clean text to RAG and agents. ## Questions ### Can I get transcripts of any YouTube video? Of public videos with captions, yes. For audio or video files, use the Audio & Podcast Transcriber with a direct file link. After release: Video to Text for video page links. ### Which languages work? Transcripts come in the languages the video has. The transcriber tools support many languages. ### Can I use other people's content? Use it for research and summaries, and respect copyright. Do not republish other people's work as your own. ### Does it work with AI agents? Yes. Agents can run these tools over the Apify MCP server. See [AI agents](/actors/ai-agents/). ## More use cases - [Hear what people say about you](https://cliqtomedia.com/actors/use-cases/social-listening/) - [SEO data without a big suite](https://cliqtomedia.com/actors/use-cases/seo-research/) - [Find the right creators, fast](https://cliqtomedia.com/actors/use-cases/creator-outreach/) ## Browser extensions for this task - [Bulk Post Scheduler for X](https://cliqtomedia.com/extensions/x-bulk-scheduler/): Bulk schedule X posts from a CSV or Excel file. Posts go to X's own Scheduled list. --- # Find the right creators, fast > Find podcasts, YouTube channels, newsletters and creators in your niche with public contacts. Build outreach lists for guest spots, sponsorships and PR. URL: https://cliqtomedia.com/actors/use-cases/creator-outreach/ Find podcasts, YouTube channels, newsletters and creators that talk to your audience. Get their public contacts and key numbers in one list, ready for outreach. ## The task Guest spots on podcasts, sponsored videos and newsletter ads work well, but finding the right creators takes days. You search, click, look for a contact page, and copy. Our tools search podcast directories, YouTube and newsletter platforms for your topic. They return the show or channel with its public contact info, so you can start outreach the same day. | By hand | With our Actors | |---|---| | Search podcasts and channels one by one | Hundreds of shows and channels by topic | | Hunt for contact emails | Public emails from RSS feeds and pages | | No numbers to compare creators | Episodes, views and dates to compare | | Lists get old fast | Fresh lists in minutes | ## How it works 1. **Pick a topic**: Your niche words, like "bootstrapped SaaS" 2. **Find creators**: Podcasts, YouTube channels, newsletters 3. **Get contacts**: Public emails, links and key numbers 4. **Start outreach**: CRM, sheet or email tool ## Tools for this use case - [Apple Podcast Directory & RSS Contacts Scraper](https://cliqtomedia.com/actors/podcast-directory-rss-contacts-scraper/) (live): Find podcasts on Apple by keyword or ID, or read a public RSS feed. - [YouTube Search Results Scraper — No Login](https://cliqtomedia.com/actors/youtube-search-scraper/) (live): Search YouTube by keyword and get each result as a row. - [YouTube Comments Scraper](https://cliqtomedia.com/actors/youtube-comments-scraper/) (live): Export public comments and replies from YouTube videos. - [Substack Newsletter Scraper](https://cliqtomedia.com/actors/substack-newsletter-scraper/) (live): Get post data from public Substack feeds. - [Medium Article Scraper: Tags, Authors & Publications](https://cliqtomedia.com/actors/medium-articles-scraper/) (live): Get the newest Medium stories by tag, author or publication. - [Website Contact Scraper](https://cliqtomedia.com/actors/website-contacts-scraper/) (live): Add a list of company websites. - [Bulk Email Verifier: MX, Disposable, Role & Typo Check](https://cliqtomedia.com/actors/email-verifier/) (live): Paste email addresses or pick a dataset from a lead scraper. - [SoundCloud Scraper - Tracks, Artists, Playlists & Plays](https://cliqtomedia.com/actors/soundcloud-scraper/) (coming soon): Get public SoundCloud track data by search, artist, playlist or link. ## Example workflow 1. **Write the topic**: Use 3–5 words your audience uses, like "indie hackers" or "home baking". 2. **Find the shows**: Podcast Directory & RSS Contacts finds podcasts and the public email in their feed. 3. **Add channels**: YouTube Search Scraper finds channels and videos on the same topic. 4. **Check contacts**: Run Email Verifier. It checks the format, the domain and its mail (MX) records. It does not confirm that the mailbox exists. 5. **Pitch and track**: Send the list to your CRM and track replies. Example result row: show = The Growth Show, type = podcast, episodes = 212, last_episode = 2026-10-10, email = host@…, website = growthshow.fm Send the data to: HubSpot, Google Sheets, Airtable, Notion, Make, Zapier. ## Who uses it - **PR and growth teams**: Book guest spots on the right podcasts. - **Brands**: Find creators for sponsorships in your niche. - **Agencies**: Build creator lists for each project. ## Questions ### Where do the emails come from? From public places only: podcast RSS feeds, channel pages and websites. Many podcasts list a contact email in their feed. ### Can I find creators in other languages? Yes. Search with words in that language, and set the country where the tool allows it. ### Is cold outreach to creators OK? Keep your offer short, personal and relevant to their audience, and follow the email laws of your country. ### Can you run the outreach for me? No. Our Actors find creators and their public contacts. You write and send the messages yourself, with your own email tool. ## More use cases - [Lead lists from public data](https://cliqtomedia.com/actors/use-cases/lead-generation/) - [Hear what people say about you](https://cliqtomedia.com/actors/use-cases/social-listening/) - [One piece of content, ten new posts](https://cliqtomedia.com/actors/use-cases/content-repurposing/) --- # Apify Actors: Web Scrapers & Data APIs > Apify Actors by Cliqto Media, 150+ built, 103 live: web scrapers and data APIs for jobs, shops, social media, SEO and reviews. Pay per result. URL: https://cliqtomedia.com/actors/ ## Use cases - [Lead lists](https://cliqtomedia.com/actors/use-cases/lead-generation/): Build lists of companies and contacts from public sites. Check emails and phones before you send. - [Buying signals](https://cliqtomedia.com/actors/use-cases/buying-signals/): Know when a company hires, raises money or wins a contract. Reach out at the right moment. - [Competitor watch](https://cliqtomedia.com/actors/use-cases/competitor-monitoring/): See what your competitors launch, hire, change and advertise. Every week, without opening their sites. - [Price tracking](https://cliqtomedia.com/actors/use-cases/price-monitoring/): Track prices and offers in shops and marketplaces. See changes before your customers do. - [Review monitoring](https://cliqtomedia.com/actors/use-cases/review-monitoring/): Collect reviews from the App Store, Google Play and more. Find what people love and what they hate. - [SEO research](https://cliqtomedia.com/actors/use-cases/seo-research/): Collect keyword ideas and check your pages and your rivals' pages. Search results and trends coming soon. - [Social listening](https://cliqtomedia.com/actors/use-cases/social-listening/): Find what people say about your brand and your topic on Bluesky, Hacker News, YouTube and more. - [Content repurposing](https://cliqtomedia.com/actors/use-cases/content-repurposing/): Turn videos, podcasts, PDFs and articles into clean text. Make posts, notes and AI drafts from it. - [Creator outreach](https://cliqtomedia.com/actors/use-cases/creator-outreach/): Find podcasts, YouTube channels and newsletters in your niche, with public contact details. ## Jobs & hiring - [Wellfound Jobs Scraper](https://cliqtomedia.com/actors/wellfound-jobs-scraper/) (live): Pick a role and a location, or paste a Wellfound job link. - [Ashby Jobs Scraper](https://cliqtomedia.com/actors/ashby-jobs-scraper/) (live): Add a known Ashby board name, like ramp. - [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/) (live): Add a Lever company name or board link. - [Greenhouse Jobs Monitor & Scraper](https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/) (live): Add the Greenhouse boards of companies you follow. - [Recruitee Job Snapshots & Changes](https://cliqtomedia.com/actors/recruitee-jobs-monitor-scraper/) (live): Enter a Recruitee company name or link. - [SmartRecruiters Jobs Monitor & Scraper](https://cliqtomedia.com/actors/smartrecruiters-jobs-monitor-scraper/) (live): Name the SmartRecruiters companies you follow. - [BambooHR Jobs Monitor & Scraper](https://cliqtomedia.com/actors/bamboohr-jobs-monitor-scraper/) (live): Add a BambooHR board name. You get its public jobs with text, pay and apply links. Give a past snapshot to see new, changed and removed… - [Breezy HR Jobs Monitor & Scraper](https://cliqtomedia.com/actors/breezy-jobs-monitor-scraper/) (live): Add up to 4 Breezy HR board URLs. - [JazzHR Jobs Monitor & Scraper](https://cliqtomedia.com/actors/jazzhr-jobs-monitor-scraper/) (live): Paste a JazzHR career page or job link. - [Pinpoint Jobs Monitor & Scraper](https://cliqtomedia.com/actors/pinpoint-jobs-monitor-scraper/) (live): Add one to five Pinpoint career boards. - [Rippling Jobs Monitor & Scraper](https://cliqtomedia.com/actors/rippling-jobs-monitor-scraper/) (live): Add Rippling board names or links. - [GoHire Jobs Monitor & Scraper](https://cliqtomedia.com/actors/gohire-jobs-monitor-scraper/) (live): Add up to 4 GoHire companies and get their public jobs with full descriptions. - [HireHive Jobs Monitor & Scraper](https://cliqtomedia.com/actors/hirehive-jobs-monitor-scraper/) (live): Add the HireHive boards of companies you know. - [Homerun Jobs Monitor & Scraper](https://cliqtomedia.com/actors/homerun-jobs-monitor-scraper/) (live): Add the Homerun career pages of companies you know. - [Personio Vacancy Watch](https://cliqtomedia.com/actors/personio-jobs-monitor-scraper/) (live): Add the Personio board of a company you know. - [TalentLyft Jobs Monitor & Scraper](https://cliqtomedia.com/actors/talentlyft-jobs-monitor-scraper/) (live): Add the TalentLyft subdomain of a company. - [Workable Jobs Monitor & Scraper](https://cliqtomedia.com/actors/workable-jobs-monitor-scraper/) (live): Add Workable companies, or search Workable jobs by keyword and place. - [Hireology Jobs Monitor & Scraper](https://cliqtomedia.com/actors/hireology-jobs-monitor-scraper/) (live): Paste a Hireology career page link. - [Manatal Jobs Monitor & Scraper](https://cliqtomedia.com/actors/manatal-jobs-monitor-scraper/) (live): Add a Manatal board name or link. - [Google Jobs Scraper - Salary, Apply Links & Dates, No Login](https://cliqtomedia.com/actors/google-jobs-scraper/) (live): Type a job title and a city. You get the jobs Google shows, one row per job. Each row has the company, salary text, posting age and the… - [Remote Jobs Aggregator - RemoteOK, WWR & Himalayas, No login](https://cliqtomedia.com/actors/remote-jobs-aggregator/) (live): Get remote jobs from three popular boards in one list. - [SEEK Jobs Scraper AU & NZ — Filters, No Login](https://cliqtomedia.com/actors/seek-jobs-scraper/) (live): Type a job search and a place in Australia or New Zealand. - [StepStone Jobs Scraper DE, AT, BE, NL — New Jobs, No Login](https://cliqtomedia.com/actors/stepstone-jobs-scraper/) (live): Search StepStone for a role and a city. ## E-commerce & prices - [AliExpress Scraper: Products, Prices & Reviews, No Login](https://cliqtomedia.com/actors/aliexpress-scraper/) (live): Type keywords to get AliExpress products, or paste product links to get reviews. - [Coles, Woolworths & Aldi Price Scraper - No Login](https://cliqtomedia.com/actors/au-supermarket-prices/) (live): Search Coles, Woolworths and Aldi Australia at once and get one price table. - [Idealo Price Scraper: All Shop Offers, 6 Countries, No Login](https://cliqtomedia.com/actors/idealo-price-scraper/) (live): Search idealo or paste product links. - [Naver Shopping Scraper: Korea Products & Prices](https://cliqtomedia.com/actors/naver-shopping-scraper/) (live): Search Naver Shopping, Korea's largest shopping search, by keyword. - [Trendyol Scraper: Products, Prices & Reviews (No login)](https://cliqtomedia.com/actors/trendyol-scraper/) (live): Add a keyword or product links from Trendyol, Turkey's largest online marketplace. - [eBay Sold Listings Scraper - Sold Prices & Dates](https://cliqtomedia.com/actors/ebay-sold-listings/) (live): Search eBay sold and completed listings by keyword. - [Etsy Listings & Shop Export (Etsy Open API v3)](https://cliqtomedia.com/actors/etsy-listings-api/) (coming soon): Search Etsy by keyword or export whole shops. - [Google Shopping Scraper - Prices, Stores & Offers, No Login](https://cliqtomedia.com/actors/google-shopping-scraper/) (coming soon): Add product searches and pick a country. - [JD.com Products Scraper](https://cliqtomedia.com/actors/jd-com-scraper/) (coming soon): Type Chinese keywords or paste JD.com links and get products as rows. - [Marketplace Seller Fee Calculator](https://cliqtomedia.com/actors/marketplace-fee-calculator/) (coming soon): Enter a sale price and item cost. - [Shopify Store Products Export - No Login, Any Store](https://cliqtomedia.com/actors/shopify-products-scraper/) (coming soon): Add a store URL and get its public products in one table. - [Taobao & 1688 Products Scraper](https://cliqtomedia.com/actors/taobao-1688-scraper/) (coming soon): Search 1688.com or Taobao by keyword. - [Wildberries Scraper: Products, Prices, Reviews, No Login](https://cliqtomedia.com/actors/wildberries-scraper/) (coming soon): Search Wildberries by keyword, or paste article numbers. - [WooCommerce Store Products Export - Prices, Stock, No Login](https://cliqtomedia.com/actors/woocommerce-products/) (coming soon): Add a store URL and get its public products in one table. - [eBay Search Scraper: Active Listings & Prices, No Login](https://cliqtomedia.com/actors/ebay-browse-search/) (coming soon): Search live eBay listings by keyword or category. ## Classifieds & second-hand - [AutoScout24 Scraper - EU Car Listings & Prices, No login](https://cliqtomedia.com/actors/car-listings-scraper/) (live): Pick a car make and model, and add filters. - [Depop Scraper - Listings, Prices, Brands & Shops](https://cliqtomedia.com/actors/depop-scraper/) (live): Search Depop by keyword, or add shop names. - [Kleinanzeigen Scraper: Listings, Prices & Photos (No Login)](https://cliqtomedia.com/actors/kleinanzeigen-scraper/) (live): Search Kleinanzeigen.de by keyword, city and radius. - [OLX Listings Scraper: Poland, Ukraine, Romania & More](https://cliqtomedia.com/actors/olx-listings-scraper/) (live): Search OLX by keyword or paste an OLX results link. - [Subito.it Scraper - Italy Classifieds & Prices, No Login](https://cliqtomedia.com/actors/subito-listings-scraper/) (live): Get ads from Subito.it, a big Italian classifieds site, as a clean table. - [Craigslist Scraper - Listings, Prices & Photos, No Login](https://cliqtomedia.com/actors/craigslist-scraper/) (coming soon): Pick Craigslist cities, a category and a keyword. - [Vinted Scraper - Listings, Prices & Brands in 25 Countries](https://cliqtomedia.com/actors/vinted-scraper/) (coming soon): Search Vinted like on the website and get a clean list of items. - [Wallapop & Poshmark Scraper - Secondhand Listings, No Login](https://cliqtomedia.com/actors/secondhand-listings-scraper/) (coming soon): Search Wallapop in Spain, Italy or Portugal, or Poshmark in the US or Canada. - [mobile.de Car Listings Scraper - Prices & Specs, No login](https://cliqtomedia.com/actors/mobile-de-scraper/) (coming soon): Turn a mobile.de car search into a clean table. ## Real estate, travel & cars - [99acres & MagicBricks India Property Scraper - No Login](https://cliqtomedia.com/actors/india-property-listings/) (live): Get rent and sale homes from MagicBricks and 99acres in one table. - [Events Scraper: Eventbrite, Meetup & Luma — No Login](https://cliqtomedia.com/actors/events-aggregator/) (live): Get public events from three sites in one list. - [Google Flights Scraper - Prices & Times, No Login](https://cliqtomedia.com/actors/google-flights-scraper/) (live): Get Google Flights results for a route and dates as a table. - [Redfin & Realtor Listings Scraper (US): Sale, Sold & Rent](https://cliqtomedia.com/actors/us-property-listings/) (coming soon): Get US home listings from Redfin or Realtor.com for cities, ZIP codes or counties. ## Social media & communities - [Substack Newsletter Scraper](https://cliqtomedia.com/actors/substack-newsletter-scraper/) (live): Get post data from public Substack feeds. - [Hacker News Stories & Comments Scraper](https://cliqtomedia.com/actors/hacker-news-stories-comments-scraper/) (live): Export Hacker News stories and comments as rows. - [Bilibili Scraper: Videos, Comments & Creators, No Login](https://cliqtomedia.com/actors/bilibili-scraper/) (live): Get public Bilibili data in clean rows. - [Bluesky Scraper — Posts, Profiles, Feeds & Threads, No Login](https://cliqtomedia.com/actors/bluesky-scraper/) (live): Get public Bluesky posts, profiles, threads and feeds as clean rows. - [Medium Article Scraper: Tags, Authors & Publications](https://cliqtomedia.com/actors/medium-articles-scraper/) (live): Get the newest Medium stories by tag, author or publication. - [Pinterest Search Scraper: Pins & Boards, No Login](https://cliqtomedia.com/actors/pinterest-search-scraper/) (live): Get pins and boards from Pinterest search, boards and profiles. - [Product Hunt Launches Scraper – Daily Top, No Login](https://cliqtomedia.com/actors/product-hunt-launches/) (live): Get Product Hunt daily leaderboards for any day or period up to 31 days. - [Reddit Scraper: Posts, Comments & Subreddits (No login)](https://cliqtomedia.com/actors/reddit-scraper/) (live): Get public Reddit posts and comments as clean rows. - [Telegram Channel Scraper - Posts & Views, No Login](https://cliqtomedia.com/actors/telegram-channel-scraper/) (live): Get posts from public Telegram channels as clean rows. - [Threads Scraper — Posts, Profiles, Replies & Search](https://cliqtomedia.com/actors/threads-scraper/) (live): Get public Threads posts without login. - [Truth Social Scraper - Posts & Profiles, No Login](https://cliqtomedia.com/actors/truth-social-scraper/) (live): Get public Truth Social posts and profiles by username. - [Weibo Scraper: Posts, Comments & Profiles, No Login](https://cliqtomedia.com/actors/weibo-scraper/) (live): Get public Weibo data without login. - [Quora Answers Scraper: Upvotes, Views & Authors, No Login](https://cliqtomedia.com/actors/quora-scraper/) (coming soon): Get public Quora answers for a question or a topic. - [Stack Overflow & Stack Exchange Q&A Scraper, No Login](https://cliqtomedia.com/actors/stack-exchange-scraper/) (coming soon): Pick a site and a tag, a search or a list of question links. ## Video, audio & streaming - [YouTube Subtitles & Transcript Scraper API](https://cliqtomedia.com/actors/youtube-transcript-scraper/) (live): Get the public captions of a YouTube video as full text and timed parts. - [YouTube Comments Scraper](https://cliqtomedia.com/actors/youtube-comments-scraper/) (live): Export public comments and replies from YouTube videos. - [Apple Podcast Directory & RSS Contacts Scraper](https://cliqtomedia.com/actors/podcast-directory-rss-contacts-scraper/) (live): Find podcasts on Apple by keyword or ID, or read a public RSS feed. - [Audio & Podcast Transcriber (Speech to Text)](https://cliqtomedia.com/actors/audio-video-transcriber/) (live): Turn audio files or podcast episodes into text. - [Social Video Downloader: TikTok, Instagram, X - No Login](https://cliqtomedia.com/actors/social-video-downloader/) (live): Save public videos from TikTok, Instagram, X, Facebook and more as files. - [YouTube Search Results Scraper — No Login](https://cliqtomedia.com/actors/youtube-search-scraper/) (live): Search YouTube by keyword and get each result as a row. - [Kick Live Streams & Viewer Count (Official API), No Login](https://cliqtomedia.com/actors/kick-channels/) (coming soon): Paste Kick channel names or links. - [SoundCloud Scraper - Tracks, Artists, Playlists & Plays](https://cliqtomedia.com/actors/soundcloud-scraper/) (coming soon): Get public SoundCloud track data by search, artist, playlist or link. - [Twitch Clips & VODs Scraper - Export by Channel and Date](https://cliqtomedia.com/actors/twitch-clips-vods/) (coming soon): Add Twitch channels and pick clips or VODs. - [Twitch Follower Count & Channel Stats (Helix API), No Login](https://cliqtomedia.com/actors/twitch-channels/) (coming soon): Paste Twitch logins or links. Get followers, bio, partner or affiliate status, last game, language and tags. You can also search channels.… - [Twitch Live Streams Scraper - Viewers by Game & Language](https://cliqtomedia.com/actors/twitch-streams/) (coming soon): Find who is live on Twitch right now. - [Video URL to Text: Transcribe TikTok, Reels, X, YouTube](https://cliqtomedia.com/actors/video-to-text/) (coming soon): Paste a video link and get the spoken words as text. - [YouTube Channel Videos Export - Views, Likes & Shorts](https://cliqtomedia.com/actors/youtube-channel-videos/) (coming soon): Paste channel links, @handles or IDs. - [YouTube Playlist Export (Data API), No Login](https://cliqtomedia.com/actors/youtube-playlist-export/) (coming soon): Paste playlist links or IDs. Get one row per playlist position in the same order as on YouTube. Each row has title, channel, date… - [YouTube Video Stats & Metadata (Data API), No Login](https://cliqtomedia.com/actors/youtube-video-details/) (coming soon): Paste video links or IDs. Get views, likes, comments, duration, tags, category and language. One row per video, with numbers as numbers.… ## Search, SEO & ads - [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/) (live): Get the phrases Google suggests when people start typing. - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) (live): Read JSON-LD structured data from a list of web pages. - [XML Sitemap URLs Extractor](https://cliqtomedia.com/actors/xml-sitemap-urls-extractor/) (live): Turn a sitemap into a clean list of page URLs. - [Website Metadata & Open Graph Scraper](https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/) (live): Get the title, description, canonical and social tags of up to 100 pages. - [Google Ads Transparency Scraper - Ad Text, No Login](https://cliqtomedia.com/actors/google-ads-transparency-scraper/) (live): See which ads a brand runs on Google. - [Google Images Scraper - Image URLs, Sizes & Source Pages](https://cliqtomedia.com/actors/google-images-scraper/) (live): Type a search phrase and get Google Images results as a table. - [Google News Scraper - Real Article URLs, No Login](https://cliqtomedia.com/actors/google-news-scraper/) (live): Search Google News by keyword, topic or Top stories. - [Google Search Results Scraper (SERP) - No Login, Per Page](https://cliqtomedia.com/actors/google-search-scraper/) (live): Add keywords and get Google results as rows. - [Google Trends Scraper - Interest & Related, No Login](https://cliqtomedia.com/actors/google-trends-scraper/) (live): Get Google Trends data for many keywords in one run. - [AI Search Visibility Tracker (ChatGPT, Perplexity, Gemini)](https://cliqtomedia.com/actors/ai-search-visibility/) (coming soon): Ask ChatGPT, Perplexity and Gemini the questions your buyers ask. - [DuckDuckGo & Bing Search Scraper - No Login, Real URLs](https://cliqtomedia.com/actors/duckduckgo-bing-search/) (coming soon): Add keywords and get DuckDuckGo and Bing results as rows. - [SEO Site Audit: Broken Links, Meta Tags & Speed](https://cliqtomedia.com/actors/seo-site-audit/) (coming soon): Crawl one website from a start URL. - [Wayback Machine Snapshots & Archived Text (No Login)](https://cliqtomedia.com/actors/wayback-machine-snapshots/) (coming soon): Add a URL, a URL prefix or a domain. ## Reviews & app stores - [Apple App Store Reviews Scraper](https://cliqtomedia.com/actors/apple-app-store-reviews-scraper/) (live): Export public App Store reviews for your apps and countries. - [Google Play Reviews Scraper](https://cliqtomedia.com/actors/google-play-reviews-scraper/) (live): Export written Google Play reviews for your apps. - [TrustRadius Reviews Scraper](https://cliqtomedia.com/actors/trustradius-reviews-scraper/) (live): Get public TrustRadius software reviews as clean rows. - [App Store Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/app-store-apps-search/) (live): Search the Apple App Store for many keywords in many countries at once. - [Google Play Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/google-play-apps-search/) (live): Search Google Play for many keywords in many countries in one run. - [OpenTable Reviews & Restaurants Scraper, No Login](https://cliqtomedia.com/actors/opentable-reviews-scraper/) (live): Get OpenTable guest reviews with detailed ratings and owner replies. - [Trustpilot Reviews Scraper - Ratings & Replies, No Login](https://cliqtomedia.com/actors/trustpilot-reviews-scraper/) (live): Add a company domain and get its public Trustpilot reviews in a table. - [Steam Reviews & Game Details Scraper — No login](https://cliqtomedia.com/actors/steam-reviews/) (coming soon): Add a Steam app ID or store link. ## AI-ready content & documents - [RSS & Atom Feed Reader / Monitor](https://cliqtomedia.com/actors/rss-atom-feed-reader-monitor/) (live): Paste one or more feed links and get each item as a row. - [WordPress Posts & Pages Scraper](https://cliqtomedia.com/actors/wordpress-posts-pages-scraper/) (live): Add a WordPress site URL and export its public posts and pages. - [News Article Extractor: RSS, URLs & Clean Text](https://cliqtomedia.com/actors/news-article-extractor/) (live): Paste news links or a news site. - [PDF & Image to Text OCR for AI Agents - No Login](https://cliqtomedia.com/actors/pdf-text-ocr/) (live): Give a link to a PDF or an image. - [RAG Web Search: Google Results as Clean Markdown](https://cliqtomedia.com/actors/rag-web-search/) (live): Type a question or topic and get the top Google pages as clean text. - [Website Screenshot & PDF Generator: Full Page & Mobile](https://cliqtomedia.com/actors/website-screenshot-pdf/) (live): Make full-page pictures or PDFs of a list of web pages. - [Website to Markdown for RAG: Crawl & Changed Pages](https://cliqtomedia.com/actors/website-to-markdown/) (live): Give a start URL and a page limit. - [Fast Webpage to Markdown API for AI Agents](https://cliqtomedia.com/actors/webpage-to-markdown-api/) (coming soon): Give a link and get the page as clean Markdown in a few seconds. - [LLM Web Data Extractor for OpenAI, Anthropic, Gemini Keys](https://cliqtomedia.com/actors/llm-web-extractor/) (coming soon): Give page links and the fields you want. - [PDF to Markdown for LLMs & RAG Chunks - No Login](https://cliqtomedia.com/actors/pdf-to-markdown/) (coming soon): Paste a PDF link and get Markdown with real headings, lists and tables. - [Screenshot API: URL to PNG, JPEG or PDF, Fast, No Login](https://cliqtomedia.com/actors/screenshot-api/) (coming soon): Send up to 200 links and get a picture or PDF of each page. - [Text Translator: 50 Languages, No API Key](https://cliqtomedia.com/actors/text-translator/) (coming soon): Send a list of texts and get translations in 50 languages. ## Leads, companies & validation - [Website Contact Scraper](https://cliqtomedia.com/actors/website-contacts-scraper/) (live): Add a list of company websites. - [Bulk Email Verifier: MX, Disposable, Role & Typo Check](https://cliqtomedia.com/actors/email-verifier/) (live): Paste email addresses or pick a dataset from a lead scraper. - [Domain WHOIS (RDAP) & DNS Lookup, No Login](https://cliqtomedia.com/actors/domain-whois-dns-lookup/) (live): Paste a list of domains. For each one, you get registrar, dates and days until expiry from the official registry. You also get live DNS… - [EU VAT Number Validator (VIES) - Bulk Check, No Login](https://cliqtomedia.com/actors/vat-number-validator/) (live): Paste a list of EU VAT numbers. - [Europages Scraper: B2B Suppliers & Certificates (No Login)](https://cliqtomedia.com/actors/europages-companies-scraper/) (live): Search Europages by product and country. - [France Company & SIRET Search](https://cliqtomedia.com/actors/france-sirene-company-search/) (live): Check French companies by SIREN, SIRET or VAT number. - [Norway Company Register (Brreg) & Updates](https://cliqtomedia.com/actors/norway-brreg-company-register/) (live): Look up Norwegian companies by organisation number, or search the register with filters. - [Phone Number Validator & Formatter - Bulk E.164, No Login](https://cliqtomedia.com/actors/phone-number-validator/) (live): Paste phone numbers in any format. - [Website Tech Stack Detector: CMS, Versions & CDN, No Login](https://cliqtomedia.com/actors/tech-stack-detector/) (live): Paste a list of websites. The tool checks each live page against 7,600+ technology fingerprints. You get one row per site with CMS, shop… - [YC Companies Scraper: Founders & Jobs, No Login](https://cliqtomedia.com/actors/y-combinator-companies/) (live): Pick a YC batch, industry or region. - [Bulk Email List Validator: Clean CSV, No Login](https://cliqtomedia.com/actors/bulk-email-validator/) (coming soon): Upload your email list as a CSV or Google Sheet link. - [Finland Company Register (PRH YTJ)](https://cliqtomedia.com/actors/finland-ytj-company-register/) (coming soon): Check Finnish companies by Business ID (Y-tunnus), or search by name and town. - [LEI Lookup & Change Monitor (GLEIF)](https://cliqtomedia.com/actors/lei-gleif-lookup/) (coming soon): Paste LEI codes or a company name. - [OpenStreetMap POI Extractor: Cafes, Shops, Hotels by City](https://cliqtomedia.com/actors/openstreetmap-poi-extractor/) (coming soon): Get places from OpenStreetMap for a city or a map box. ## Developer & website monitoring - [Link Route Audit — Bulk HTTP Status & Redirects](https://cliqtomedia.com/actors/bulk-url-status-redirect-checker/) (live): Paste a list of URLs and see where each one ends up. - [GitHub Releases Monitor & Scraper](https://cliqtomedia.com/actors/github-releases-monitor-scraper/) (live): Add up to 10 public repositories and get their releases as rows. - [Software End-of-Life Checker](https://cliqtomedia.com/actors/software-end-of-life-checker/) (live): Add rows like nodejs 18.20.4 or ubuntu 20.04, or a CSV. - [Dependency Vulnerability Scanner (OSV)](https://cliqtomedia.com/actors/osv-dependency-vulnerability-scanner/) (coming soon): Paste a package list, package.json, package-lock.json or requirements.txt. - [GitHub Repositories & Users Search (No Login)](https://cliqtomedia.com/actors/github-search/) (coming soon): Search GitHub with its own search syntax. - [OpenAPI Catalog & Breaking Change Detector](https://cliqtomedia.com/actors/openapi-spec-catalog-diff/) (coming soon): Compare an old and a new OpenAPI spec and see possible breaking changes. - [SSL Certificate Checker: Expiry, Chain & CT, No Login](https://cliqtomedia.com/actors/ssl-certificate-inspector/) (coming soon): Check the SSL certificate of many sites in one run. - [Statuspage Incidents Monitor — Vendor Status & Changes](https://cliqtomedia.com/actors/statuspage-incidents-monitor/) (coming soon): Check the status pages of vendors you use, like GitHub or Cloudflare. - [npm Package Metadata & Release Monitor](https://cliqtomedia.com/actors/npm-package-metadata-monitor/) (coming soon): List up to 100 npm packages and get one row for each. ## Science & research data - [Google Patent Details Scraper](https://cliqtomedia.com/actors/google-patents-scraper/) (live): Add patent numbers or Google Patents links you already have. - [DOI Metadata & Bibliography Enrichment](https://cliqtomedia.com/actors/doi-bibliography-enrichment/) (live): Paste a list of DOIs and get one clean citation record each. - [ClinicalTrials.gov Studies Search & Monitor](https://cliqtomedia.com/actors/clinicaltrials-gov-studies-monitor/) (coming soon): Search ClinicalTrials.gov with simple filters and export study records. - [DataCite Research Dataset Search](https://cliqtomedia.com/actors/datacite-dataset-search/) (coming soon): Search DataCite for research datasets with simple filters. - [Europe PMC Literature Search & Monitor](https://cliqtomedia.com/actors/europe-pmc-literature-search/) (coming soon): Search Europe PMC for articles and preprints. - [GBIF Biodiversity Occurrence Search](https://cliqtomedia.com/actors/gbif-occurrence-search/) (coming soon): Search species records from GBIF with a few filters. - [Google Scholar Search Scraper - Citations & PDFs, No Login](https://cliqtomedia.com/actors/google-scholar-scraper/) (coming soon): Search Google Scholar and get one row per article. - [The Met & Art Institute of Chicago Artwork Search](https://cliqtomedia.com/actors/museum-open-access-search/) (coming soon): Search two big museum collections with one input. - [Wikipedia Pageviews & Trends Monitor](https://cliqtomedia.com/actors/wikipedia-pageviews-monitor/) (coming soon): See how many people read a Wikipedia article each day or month. - [arXiv Papers Search & Version Monitor](https://cliqtomedia.com/actors/arxiv-papers-monitor/) (coming soon): Search arXiv papers by words, category and dates. ## Government & open data - [EU TED Tenders Scraper & Monitor](https://cliqtomedia.com/actors/eu-ted-tenders-scraper/) (live): Find EU public tenders on TED with your own filters. - [UK Bank Holidays & Business Day Calculator](https://cliqtomedia.com/actors/uk-bank-holidays-business-days/) (live): Get UK bank holidays from GOV.UK for each part of the UK. - [UK Postcode Lookup](https://cliqtomedia.com/actors/gb-postcode-lookup/) (live): Paste a list of Great Britain postcodes and get map points and official area codes. - [USAspending Federal Awards & Recipient Monitor](https://cliqtomedia.com/actors/usaspending-federal-awards-monitor/) (live): Find US federal contracts, grants and loans from USAspending.gov. - [VIN Decoder & Vehicle Recalls](https://cliqtomedia.com/actors/vin-decoder-vehicle-recalls/) (live): Turn a list of VINs into clean vehicle rows with NHTSA data. - [FDA Recalls & Enforcement Monitor](https://cliqtomedia.com/actors/fda-recalls-enforcement-monitor/) (coming soon): Get FDA recalls for food, drugs and medical devices in one table. - [NASA POWER Historical Weather & Solar Data](https://cliqtomedia.com/actors/nasa-power-climate-data/) (coming soon): Get past weather and solar data for any latitude and longitude. - [NPI Registry Provider Lookup — US Practices & Taxonomies](https://cliqtomedia.com/actors/npi-registry-provider-lookup/) (coming soon): Search the public NPPES NPI Registry by specialty and place. - [Solar PV Yield Estimator (PVGIS)](https://cliqtomedia.com/actors/solar-pv-yield-estimator/) (coming soon): Estimate how much power a solar system makes at each site in your list. - [UK Carbon Intensity & Low-Carbon Windows](https://cliqtomedia.com/actors/uk-carbon-intensity/) (coming soon): See how clean the electricity grid is, half hour by half hour. - [US Health Data: CDC & HealthData.gov API, No login](https://cliqtomedia.com/actors/us-health-data-api/) (coming soon): Search the open data of the CDC and HealthData.gov by keyword or dataset ID. - [USGS Earthquake Events Export & Monitor](https://cliqtomedia.com/actors/usgs-earthquake-events/) (coming soon): Export earthquakes from the official USGS catalog with your own filters. - [USGS Water Data Export — Rivers & Streams](https://cliqtomedia.com/actors/usgs-water-data-export/) (coming soon): Export river flow and water level readings from USGS. - [Weather Forecast & Alerts Export (NWS + MET Norway)](https://cliqtomedia.com/actors/weather-forecast-alerts-export/) (coming soon): Get hourly or daily forecasts for up to 10 places in one table. - [World Bank Indicators Export — GDP & Population](https://cliqtomedia.com/actors/world-bank-indicators-export/) (coming soon): Export yearly World Bank data for the countries and indicators you pick. ## Finance, markets & sports - [SEC Form D Filing Monitor](https://cliqtomedia.com/actors/sec-edgar-form-d-funding-monitor/) (live): Find public Form D and D/A filings in SEC EDGAR by date or CIK. - [Crypto Prices & OHLC History Export - No Login](https://cliqtomedia.com/actors/crypto-market-data/) (live): Choose coins and get their price, market cap and 24h volume. - [Historical Exchange Rates & Currency Converter](https://cliqtomedia.com/actors/historical-fx-rates-converter/) (live): Get official ECB exchange rates for any pair and date since 1999. - [Polymarket & Kalshi Prediction Market Data, No Login](https://cliqtomedia.com/actors/prediction-markets-data/) (live): Search or look up markets on Polymarket and Kalshi. - [Tennis Scraper: ATP & WTA Matches, Players & Rankings](https://cliqtomedia.com/actors/tennis-stats-scraper/) (live): Get ATP and WTA match results, upcoming matches, player profiles and rankings. ## Questions ### How do I pick the right tool? Start with the website you need data from. Search for its name or open a category. Read the sample output to check the fields. ### Can I try a tool for free? Yes. Apify has a free plan with $5 of usage every month. That is enough for a small test run. ### What formats can I export? You can export JSON, CSV, Excel and more from Apify. You can also read the data with the API. ### What if the site I need is not listed? [Suggest a tool](/partners/#suggest). Tell us the site and the data you need. We read every idea, but we do not promise to build it. ### Do the tools need my login on the source site? Most do not. A few, like eBay sold listings, need your own session or an API key. Each tool page says what it needs. --- # Job scrapers and ATS jobs APIs > Collect job posts from Greenhouse, Lever, Ashby, Workable, SEEK, StepStone and more. Track new and closed jobs. Export to CSV or JSON. URL: https://cliqtomedia.com/actors/jobs/ Many companies post jobs on an ATS. ATS means applicant tracking system. Greenhouse, Lever, Ashby and Workable are popular examples. Each one has its own job page. Our job tools read these pages for you. You give a list of companies. The tool returns every open job in one clean table. You get the title, location, team, remote flag, date and apply link. We also have tools for big job sites. You can search SEEK, StepStone, Wellfound and remote job boards. Google Jobs is coming soon. You can filter by keyword, place or date. Many tools can also watch for changes. Run them on a schedule, for example every day. They show which jobs are new and which jobs closed. This is useful for job boards, recruiters and market research. All tools run on Apify. You can export to CSV, JSON or Excel. You pay for use on Apify. ## Tools - [Wellfound Jobs Scraper](https://cliqtomedia.com/actors/wellfound-jobs-scraper/) (live): Pick a role and a location, or paste a Wellfound job link. - [Ashby Jobs Scraper](https://cliqtomedia.com/actors/ashby-jobs-scraper/) (live): Add a known Ashby board name, like ramp. - [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/) (live): Add a Lever company name or board link. - [Greenhouse Jobs Monitor & Scraper](https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/) (live): Add the Greenhouse boards of companies you follow. - [Recruitee Job Snapshots & Changes](https://cliqtomedia.com/actors/recruitee-jobs-monitor-scraper/) (live): Enter a Recruitee company name or link. - [SmartRecruiters Jobs Monitor & Scraper](https://cliqtomedia.com/actors/smartrecruiters-jobs-monitor-scraper/) (live): Name the SmartRecruiters companies you follow. - [BambooHR Jobs Monitor & Scraper](https://cliqtomedia.com/actors/bamboohr-jobs-monitor-scraper/) (live): Add a BambooHR board name. You get its public jobs with text, pay and apply links. Give a past snapshot to see new, changed and removed… - [Breezy HR Jobs Monitor & Scraper](https://cliqtomedia.com/actors/breezy-jobs-monitor-scraper/) (live): Add up to 4 Breezy HR board URLs. - [JazzHR Jobs Monitor & Scraper](https://cliqtomedia.com/actors/jazzhr-jobs-monitor-scraper/) (live): Paste a JazzHR career page or job link. - [Pinpoint Jobs Monitor & Scraper](https://cliqtomedia.com/actors/pinpoint-jobs-monitor-scraper/) (live): Add one to five Pinpoint career boards. - [Rippling Jobs Monitor & Scraper](https://cliqtomedia.com/actors/rippling-jobs-monitor-scraper/) (live): Add Rippling board names or links. - [GoHire Jobs Monitor & Scraper](https://cliqtomedia.com/actors/gohire-jobs-monitor-scraper/) (live): Add up to 4 GoHire companies and get their public jobs with full descriptions. - [HireHive Jobs Monitor & Scraper](https://cliqtomedia.com/actors/hirehive-jobs-monitor-scraper/) (live): Add the HireHive boards of companies you know. - [Homerun Jobs Monitor & Scraper](https://cliqtomedia.com/actors/homerun-jobs-monitor-scraper/) (live): Add the Homerun career pages of companies you know. - [Personio Vacancy Watch](https://cliqtomedia.com/actors/personio-jobs-monitor-scraper/) (live): Add the Personio board of a company you know. - [TalentLyft Jobs Monitor & Scraper](https://cliqtomedia.com/actors/talentlyft-jobs-monitor-scraper/) (live): Add the TalentLyft subdomain of a company. - [Workable Jobs Monitor & Scraper](https://cliqtomedia.com/actors/workable-jobs-monitor-scraper/) (live): Add Workable companies, or search Workable jobs by keyword and place. - [Hireology Jobs Monitor & Scraper](https://cliqtomedia.com/actors/hireology-jobs-monitor-scraper/) (live): Paste a Hireology career page link. - [Manatal Jobs Monitor & Scraper](https://cliqtomedia.com/actors/manatal-jobs-monitor-scraper/) (live): Add a Manatal board name or link. - [Google Jobs Scraper - Salary, Apply Links & Dates, No Login](https://cliqtomedia.com/actors/google-jobs-scraper/) (live): Type a job title and a city. You get the jobs Google shows, one row per job. Each row has the company, salary text, posting age and the… - [Remote Jobs Aggregator - RemoteOK, WWR & Himalayas, No login](https://cliqtomedia.com/actors/remote-jobs-aggregator/) (live): Get remote jobs from three popular boards in one list. - [SEEK Jobs Scraper AU & NZ — Filters, No Login](https://cliqtomedia.com/actors/seek-jobs-scraper/) (live): Type a job search and a place in Australia or New Zealand. - [StepStone Jobs Scraper DE, AT, BE, NL — New Jobs, No Login](https://cliqtomedia.com/actors/stepstone-jobs-scraper/) (live): Search StepStone for a role and a city. ## Use cases - Fill a niche job board with fresh jobs every day. - Watch hiring at target companies to find sales leads. - Track which teams a competitor is growing. - Build a salary and skills dataset for research. - Send new jobs to Slack or email with a webhook. ## Questions ### What is an ATS job scraper? It reads the public job page of an ATS like Greenhouse or Lever. It returns all open jobs of a company as data. ### How do I find a company's ATS? Open the company's careers page and check the job links. The address often shows the ATS name, like greenhouse.io or lever.co. ### Can I get only new jobs? Yes. Many of our job tools compare runs. They mark jobs as new, changed or closed. ### Can I scrape many companies at once? Yes. Most tools take a list of companies in one run. ### Do I need an API key from the ATS? No. The tools read public job pages. You only need an Apify account. --- # E-commerce price and product scrapers > Get product names, prices and offers from eBay sold listings, Idealo, Trendyol, Naver Shopping and more. AliExpress and Google Shopping are coming soon. URL: https://cliqtomedia.com/actors/ecommerce/ Prices online change every day. Checking them by hand takes a lot of time. Our e-commerce tools do this work for you. You give a search word, a category or product links. The tool returns product data in a clean table. You get the name, price, old price, seller, rating, reviews and link. Live today: eBay sold listings, Idealo, Trendyol, Naver Shopping and Australian supermarkets. Coming soon: AliExpress, Google Shopping, Wildberries, JD.com, Shopify and WooCommerce stores. Run a tool once for research. Or run it on a schedule to track prices over time. A fee calculator for marketplace sellers is coming soon too. All tools run on Apify. Export to CSV, JSON or Excel, or send data to Google Sheets. You pay for use on Apify. ## Tools - [AliExpress Scraper: Products, Prices & Reviews, No Login](https://cliqtomedia.com/actors/aliexpress-scraper/) (live): Type keywords to get AliExpress products, or paste product links to get reviews. - [Coles, Woolworths & Aldi Price Scraper - No Login](https://cliqtomedia.com/actors/au-supermarket-prices/) (live): Search Coles, Woolworths and Aldi Australia at once and get one price table. - [Idealo Price Scraper: All Shop Offers, 6 Countries, No Login](https://cliqtomedia.com/actors/idealo-price-scraper/) (live): Search idealo or paste product links. - [Naver Shopping Scraper: Korea Products & Prices](https://cliqtomedia.com/actors/naver-shopping-scraper/) (live): Search Naver Shopping, Korea's largest shopping search, by keyword. - [Trendyol Scraper: Products, Prices & Reviews (No login)](https://cliqtomedia.com/actors/trendyol-scraper/) (live): Add a keyword or product links from Trendyol, Turkey's largest online marketplace. - [eBay Sold Listings Scraper - Sold Prices & Dates](https://cliqtomedia.com/actors/ebay-sold-listings/) (live): Search eBay sold and completed listings by keyword. - [Etsy Listings & Shop Export (Etsy Open API v3)](https://cliqtomedia.com/actors/etsy-listings-api/) (coming soon): Search Etsy by keyword or export whole shops. - [Google Shopping Scraper - Prices, Stores & Offers, No Login](https://cliqtomedia.com/actors/google-shopping-scraper/) (coming soon): Add product searches and pick a country. - [JD.com Products Scraper](https://cliqtomedia.com/actors/jd-com-scraper/) (coming soon): Type Chinese keywords or paste JD.com links and get products as rows. - [Marketplace Seller Fee Calculator](https://cliqtomedia.com/actors/marketplace-fee-calculator/) (coming soon): Enter a sale price and item cost. - [Shopify Store Products Export - No Login, Any Store](https://cliqtomedia.com/actors/shopify-products-scraper/) (coming soon): Add a store URL and get its public products in one table. - [Taobao & 1688 Products Scraper](https://cliqtomedia.com/actors/taobao-1688-scraper/) (coming soon): Search 1688.com or Taobao by keyword. - [Wildberries Scraper: Products, Prices, Reviews, No Login](https://cliqtomedia.com/actors/wildberries-scraper/) (coming soon): Search Wildberries by keyword, or paste article numbers. - [WooCommerce Store Products Export - Prices, Stock, No Login](https://cliqtomedia.com/actors/woocommerce-products/) (coming soon): Add a store URL and get its public products in one table. - [eBay Search Scraper: Active Listings & Prices, No Login](https://cliqtomedia.com/actors/ebay-browse-search/) (coming soon): Search live eBay listings by keyword or category. ## Use cases - Track competitor prices every day. - Find what similar items really sold for on eBay. - Research a new product before you sell it. - Compare offers from many shops for one product. - Build a price history dataset for analysis. ## Questions ### Can I track prices every day? Yes. Save your input as a task and add a schedule in Apify. Each run saves the new prices. ### Can I get product reviews too? Some tools return ratings and reviews. Check the output fields on each tool page. ### Can I send the data to Google Sheets? Yes. Export a CSV, or send new rows to Google Sheets with Make, Zapier or n8n. ### Is it OK to collect prices from shops? Prices on public pages are usually public data. Follow each site's terms and your local law. Ask a lawyer about your own case. --- # Classifieds and second-hand marketplace scrapers > Collect listings and prices from Kleinanzeigen, OLX, Subito, Depop and AutoScout24 cars. Vinted, Craigslist and mobile.de are coming soon. No login. URL: https://cliqtomedia.com/actors/marketplaces/ Classifieds sites have millions of used items, cars and local deals. Good deals go fast. Our tools help you see them early. You give a search word, a filter link or a category. The tool returns listings in a clean table. You get the title, price, photos, place, date and link. Some tools also return brand, size or condition. Live today: Kleinanzeigen (Germany), OLX (Poland, Ukraine, Romania and more), Subito (Italy), Depop, and AutoScout24 for cars in Europe. Coming soon: Vinted, Craigslist, Wallapop, Poshmark, and mobile.de for cars. Many tools need no login. Run them on a schedule to catch new listings. You can then send them to email, Slack or a sheet. All tools run on Apify. Export to CSV, JSON or Excel. You pay for use on Apify. ## Tools - [AutoScout24 Scraper - EU Car Listings & Prices, No login](https://cliqtomedia.com/actors/car-listings-scraper/) (live): Pick a car make and model, and add filters. - [Depop Scraper - Listings, Prices, Brands & Shops](https://cliqtomedia.com/actors/depop-scraper/) (live): Search Depop by keyword, or add shop names. - [Kleinanzeigen Scraper: Listings, Prices & Photos (No Login)](https://cliqtomedia.com/actors/kleinanzeigen-scraper/) (live): Search Kleinanzeigen.de by keyword, city and radius. - [OLX Listings Scraper: Poland, Ukraine, Romania & More](https://cliqtomedia.com/actors/olx-listings-scraper/) (live): Search OLX by keyword or paste an OLX results link. - [Subito.it Scraper - Italy Classifieds & Prices, No Login](https://cliqtomedia.com/actors/subito-listings-scraper/) (live): Get ads from Subito.it, a big Italian classifieds site, as a clean table. - [Craigslist Scraper - Listings, Prices & Photos, No Login](https://cliqtomedia.com/actors/craigslist-scraper/) (coming soon): Pick Craigslist cities, a category and a keyword. - [Vinted Scraper - Listings, Prices & Brands in 25 Countries](https://cliqtomedia.com/actors/vinted-scraper/) (coming soon): Search Vinted like on the website and get a clean list of items. - [Wallapop & Poshmark Scraper - Secondhand Listings, No Login](https://cliqtomedia.com/actors/secondhand-listings-scraper/) (coming soon): Search Wallapop in Spain, Italy or Portugal, or Poshmark in the US or Canada. - [mobile.de Car Listings Scraper - Prices & Specs, No login](https://cliqtomedia.com/actors/mobile-de-scraper/) (coming soon): Turn a mobile.de car search into a clean table. ## Use cases - Get alerts for new listings that match your search. - Check fair prices for used items before you buy or sell. - Find stock for a resale business. - Compare used car prices across countries. - Study second-hand market trends over time. ## Questions ### Can I get alerts for new listings? Yes. Run the tool on a schedule. Then send new items to email or Slack with Make, Zapier or a webhook. ### Do I need an account on the marketplace? No. Our tools read public listing pages only. ### Can I use a search link from the site? Many tools accept a search link with your filters. Check the input on each tool page. ### Can I collect seller contact details? Our tools focus on public listing data. Personal data has extra rules, so follow the site's terms and privacy law. --- # Real estate, travel, cars and events scrapers > Collect events from Eventbrite, Meetup and Luma, and India property from 99acres and MagicBricks. Coming soon: Redfin, Realtor.com and Google Flights. URL: https://cliqtomedia.com/actors/real-estate-travel/ Homes, trips and events have one thing in common. Prices and dates change fast. Our tools collect this data so you can compare it in one place. Live today: one tool collects events from Eventbrite, Meetup and Luma. You get the name, date, place and link. Another tool collects property listings in India from 99acres and MagicBricks. Coming soon: US property listings from Redfin and Realtor.com (homes for sale, sold homes and rentals), and Google Flights prices for your route. All tools run on Apify. Export to CSV, JSON or Excel. You pay for use on Apify. ## Tools - [99acres & MagicBricks India Property Scraper - No Login](https://cliqtomedia.com/actors/india-property-listings/) (live): Get rent and sale homes from MagicBricks and 99acres in one table. - [Events Scraper: Eventbrite, Meetup & Luma — No Login](https://cliqtomedia.com/actors/events-aggregator/) (live): Get public events from three sites in one list. - [Google Flights Scraper - Prices & Times, No Login](https://cliqtomedia.com/actors/google-flights-scraper/) (live): Get Google Flights results for a route and dates as a table. - [Redfin & Realtor Listings Scraper (US): Sale, Sold & Rent](https://cliqtomedia.com/actors/us-property-listings/) (coming soon): Get US home listings from Redfin or Realtor.com for cities, ZIP codes or counties. ## Use cases - Compare home prices in one area. - Track sold prices to study a local market. - Watch flight prices for a route every day. - Build a local events calendar for a city. - Find rental listings for market research. ## Questions ### Can I get sold home prices? Yes. Our US listings tool can return homes for sale, sold homes and rentals. ### Can I track flight prices over time? Yes. Run the Google Flights tool on a schedule. Each run saves the prices of that day. ### Which countries do you cover for property? Right now we cover the US and India. Want another country? [Suggest it](/partners/#suggest) on our Partners page. We read every idea. ### Can I export the data to Excel? Yes. Apify lets you download results as Excel, CSV or JSON. --- # Social media and community scrapers > Collect public posts and profiles from Threads, Bluesky, Telegram channels, Medium, Pinterest, Hacker News and more. Reddit and Quora are coming soon. URL: https://cliqtomedia.com/actors/social/ People talk about brands, products and ideas every day. They do it on social media and in online communities. Our tools collect these public posts for you. You give a search word, a profile, a channel or a link. The tool returns posts in a clean table. You get the text, author, date, likes, replies and link. Some tools also return comments. Live today: Threads, Bluesky, Telegram channels, Medium, Truth Social, Pinterest, Bilibili, Hacker News, Product Hunt and Substack. Coming soon: Reddit, Quora, Weibo and Stack Exchange. Many tools need no login. They read public data only. All tools run on Apify. Export to CSV, JSON or Excel. You pay for use on Apify. ## Tools - [Substack Newsletter Scraper](https://cliqtomedia.com/actors/substack-newsletter-scraper/) (live): Get post data from public Substack feeds. - [Hacker News Stories & Comments Scraper](https://cliqtomedia.com/actors/hacker-news-stories-comments-scraper/) (live): Export Hacker News stories and comments as rows. - [Bilibili Scraper: Videos, Comments & Creators, No Login](https://cliqtomedia.com/actors/bilibili-scraper/) (live): Get public Bilibili data in clean rows. - [Bluesky Scraper — Posts, Profiles, Feeds & Threads, No Login](https://cliqtomedia.com/actors/bluesky-scraper/) (live): Get public Bluesky posts, profiles, threads and feeds as clean rows. - [Medium Article Scraper: Tags, Authors & Publications](https://cliqtomedia.com/actors/medium-articles-scraper/) (live): Get the newest Medium stories by tag, author or publication. - [Pinterest Search Scraper: Pins & Boards, No Login](https://cliqtomedia.com/actors/pinterest-search-scraper/) (live): Get pins and boards from Pinterest search, boards and profiles. - [Product Hunt Launches Scraper – Daily Top, No Login](https://cliqtomedia.com/actors/product-hunt-launches/) (live): Get Product Hunt daily leaderboards for any day or period up to 31 days. - [Reddit Scraper: Posts, Comments & Subreddits (No login)](https://cliqtomedia.com/actors/reddit-scraper/) (live): Get public Reddit posts and comments as clean rows. - [Telegram Channel Scraper - Posts & Views, No Login](https://cliqtomedia.com/actors/telegram-channel-scraper/) (live): Get posts from public Telegram channels as clean rows. - [Threads Scraper — Posts, Profiles, Replies & Search](https://cliqtomedia.com/actors/threads-scraper/) (live): Get public Threads posts without login. - [Truth Social Scraper - Posts & Profiles, No Login](https://cliqtomedia.com/actors/truth-social-scraper/) (live): Get public Truth Social posts and profiles by username. - [Weibo Scraper: Posts, Comments & Profiles, No Login](https://cliqtomedia.com/actors/weibo-scraper/) (live): Get public Weibo data without login. - [Quora Answers Scraper: Upvotes, Views & Authors, No Login](https://cliqtomedia.com/actors/quora-scraper/) (coming soon): Get public Quora answers for a question or a topic. - [Stack Overflow & Stack Exchange Q&A Scraper, No Login](https://cliqtomedia.com/actors/stack-exchange-scraper/) (coming soon): Pick a site and a tag, a search or a list of question links. ## Use cases - Track what people say about your brand. - Find common questions and pain points in your niche. - Collect posts to train or test an AI model. - Watch new launches on Product Hunt every day. - Study trends and topics for research. ## Questions ### Can I scrape Reddit without an API key? Our Reddit tool needs no login and no Reddit API key. You only need an Apify account. ### Can I get comments as well as posts? Many tools return comments or replies. Check the output fields on each tool page. ### Do you collect private posts? No. Our tools read public data only. ### Is it legal to scrape social media? Public posts are often fine to collect, but rules differ by site and country. Follow the site's terms and privacy law. Ask a lawyer about your case. --- # Video, audio and streaming data tools > Get YouTube transcripts, comments and search results. Turn audio and video files into text. Collect podcast data. SoundCloud is coming soon. URL: https://cliqtomedia.com/actors/video-audio/ Video and audio hold a lot of useful words. But you cannot search or analyze them easily. Our tools turn them into text and data. For YouTube, you can get transcripts, comments and search results. Give a video link or a search word. The tool returns clean text with times, or a table of comments. Another tool turns audio and video files into text. You can also transcribe podcast files. For podcasts, we cover Apple Podcasts. You get shows, RSS feeds and public contacts. Coming soon: video to text from TikTok, Reels and X links, a social video downloader and SoundCloud. The text is ready for AI tools, search or notes. All tools run on Apify. Export to JSON, CSV or Excel. You pay for use on Apify. ## Tools - [YouTube Subtitles & Transcript Scraper API](https://cliqtomedia.com/actors/youtube-transcript-scraper/) (live): Get the public captions of a YouTube video as full text and timed parts. - [YouTube Comments Scraper](https://cliqtomedia.com/actors/youtube-comments-scraper/) (live): Export public comments and replies from YouTube videos. - [Apple Podcast Directory & RSS Contacts Scraper](https://cliqtomedia.com/actors/podcast-directory-rss-contacts-scraper/) (live): Find podcasts on Apple by keyword or ID, or read a public RSS feed. - [Audio & Podcast Transcriber (Speech to Text)](https://cliqtomedia.com/actors/audio-video-transcriber/) (live): Turn audio files or podcast episodes into text. - [Social Video Downloader: TikTok, Instagram, X - No Login](https://cliqtomedia.com/actors/social-video-downloader/) (live): Save public videos from TikTok, Instagram, X, Facebook and more as files. - [YouTube Search Results Scraper — No Login](https://cliqtomedia.com/actors/youtube-search-scraper/) (live): Search YouTube by keyword and get each result as a row. - [Kick Live Streams & Viewer Count (Official API), No Login](https://cliqtomedia.com/actors/kick-channels/) (coming soon): Paste Kick channel names or links. - [SoundCloud Scraper - Tracks, Artists, Playlists & Plays](https://cliqtomedia.com/actors/soundcloud-scraper/) (coming soon): Get public SoundCloud track data by search, artist, playlist or link. - [Twitch Clips & VODs Scraper - Export by Channel and Date](https://cliqtomedia.com/actors/twitch-clips-vods/) (coming soon): Add Twitch channels and pick clips or VODs. - [Twitch Follower Count & Channel Stats (Helix API), No Login](https://cliqtomedia.com/actors/twitch-channels/) (coming soon): Paste Twitch logins or links. Get followers, bio, partner or affiliate status, last game, language and tags. You can also search channels.… - [Twitch Live Streams Scraper - Viewers by Game & Language](https://cliqtomedia.com/actors/twitch-streams/) (coming soon): Find who is live on Twitch right now. - [Video URL to Text: Transcribe TikTok, Reels, X, YouTube](https://cliqtomedia.com/actors/video-to-text/) (coming soon): Paste a video link and get the spoken words as text. - [YouTube Channel Videos Export - Views, Likes & Shorts](https://cliqtomedia.com/actors/youtube-channel-videos/) (coming soon): Paste channel links, @handles or IDs. - [YouTube Playlist Export (Data API), No Login](https://cliqtomedia.com/actors/youtube-playlist-export/) (coming soon): Paste playlist links or IDs. Get one row per playlist position in the same order as on YouTube. Each row has title, channel, date… - [YouTube Video Stats & Metadata (Data API), No Login](https://cliqtomedia.com/actors/youtube-video-details/) (coming soon): Paste video links or IDs. Get views, likes, comments, duration, tags, category and language. One row per video, with numbers as numbers.… ## Use cases - Get transcripts of many YouTube videos for AI summaries. - Collect YouTube comments to see what viewers think. - Turn short videos into text for content ideas. - Find podcasts and their public contacts for outreach. - Track top tracks and artists on SoundCloud. ## Questions ### Can I get YouTube transcripts in bulk? Yes. Give a list of video links in one run. The tool returns the text for each video. ### What if a video has no subtitles? Use our video to text tool. It listens to the audio and writes the text. ### Can I use the text with ChatGPT or Claude? Yes. The output is clean text. You can paste it or send it to an AI tool with the API. ### Which languages are supported? It depends on the tool and the video. Check the input options on each tool page. --- # Search, SEO and ads data tools > Get Google search results and Autocomplete ideas. Check sitemaps, metadata, JSON-LD and Google ad text. Coming soon: Google Trends, News and Images. URL: https://cliqtomedia.com/actors/search-seo/ SEO work needs a lot of search data. Checking Google by hand is slow. Our tools collect this data for you. Live today: Google search results. You get the position, title, link, snippet and related searches for each keyword. Google Autocomplete gives keyword ideas. It shows what people search for. You can also check your own site. Other tools read sitemaps, page metadata, Open Graph tags and JSON-LD data. For ads, you can see public ad text in the Google Ads Transparency Center. Coming soon: Bing and DuckDuckGo, Google News, Google Images, Google Trends, a site audit and Wayback Machine snapshots. Many tools need no login. All tools run on Apify. Export to CSV, JSON or Excel. You pay for use on Apify. ## Tools - [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/) (live): Get the phrases Google suggests when people start typing. - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) (live): Read JSON-LD structured data from a list of web pages. - [XML Sitemap URLs Extractor](https://cliqtomedia.com/actors/xml-sitemap-urls-extractor/) (live): Turn a sitemap into a clean list of page URLs. - [Website Metadata & Open Graph Scraper](https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/) (live): Get the title, description, canonical and social tags of up to 100 pages. - [Google Ads Transparency Scraper - Ad Text, No Login](https://cliqtomedia.com/actors/google-ads-transparency-scraper/) (live): See which ads a brand runs on Google. - [Google Images Scraper - Image URLs, Sizes & Source Pages](https://cliqtomedia.com/actors/google-images-scraper/) (live): Type a search phrase and get Google Images results as a table. - [Google News Scraper - Real Article URLs, No Login](https://cliqtomedia.com/actors/google-news-scraper/) (live): Search Google News by keyword, topic or Top stories. - [Google Search Results Scraper (SERP) - No Login, Per Page](https://cliqtomedia.com/actors/google-search-scraper/) (live): Add keywords and get Google results as rows. - [Google Trends Scraper - Interest & Related, No Login](https://cliqtomedia.com/actors/google-trends-scraper/) (live): Get Google Trends data for many keywords in one run. - [AI Search Visibility Tracker (ChatGPT, Perplexity, Gemini)](https://cliqtomedia.com/actors/ai-search-visibility/) (coming soon): Ask ChatGPT, Perplexity and Gemini the questions your buyers ask. - [DuckDuckGo & Bing Search Scraper - No Login, Real URLs](https://cliqtomedia.com/actors/duckduckgo-bing-search/) (coming soon): Add keywords and get DuckDuckGo and Bing results as rows. - [SEO Site Audit: Broken Links, Meta Tags & Speed](https://cliqtomedia.com/actors/seo-site-audit/) (coming soon): Crawl one website from a start URL. - [Wayback Machine Snapshots & Archived Text (No Login)](https://cliqtomedia.com/actors/wayback-machine-snapshots/) (coming soon): Add a URL, a URL prefix or a domain. ## Use cases - Track your Google rank for a keyword list. - Find long-tail keyword ideas with Autocomplete. - Compare interest in topics with Google Trends. - Check titles, meta tags and structured data on many pages. - See which ads your competitors run. ## Questions ### Can I track my Google rankings? Yes. Run the search results tool on a schedule with your keywords. Then compare the positions over time. ### Can I choose the country and language? Our search tools let you set the country and language. Check the input on each tool page. ### Do I need a Google API key? No. You only need an Apify account. ### How is this different from an SEO suite? You get raw data and pay for use on Apify. There is no monthly plan from us. You choose how to use the data. --- # Review and app store scrapers > Collect reviews and ratings from the Apple App Store, Google Play, TrustRadius and OpenTable. Track app ranks. Trustpilot is coming soon. URL: https://cliqtomedia.com/actors/reviews-apps/ Reviews tell you what customers like and dislike. But they are spread across many sites. Our tools collect them into one table. For software reviews, we cover TrustRadius. You get the rating, text, date, author and company reply. For restaurants, we cover OpenTable reviews. Coming soon: Trustpilot and Steam reviews. For mobile apps, you can get reviews from the Apple App Store and Google Play. You can choose the country. Other tools search the app stores. They show app details and rank for a keyword. Use the data to find common problems, compare competitors or watch new reviews. Many tools need no login. Run them on a schedule to catch new reviews early. You can also send reviews to an AI tool for a short summary. All tools run on Apify. Export to CSV, JSON or Excel. You pay for use on Apify. ## Tools - [Apple App Store Reviews Scraper](https://cliqtomedia.com/actors/apple-app-store-reviews-scraper/) (live): Export public App Store reviews for your apps and countries. - [Google Play Reviews Scraper](https://cliqtomedia.com/actors/google-play-reviews-scraper/) (live): Export written Google Play reviews for your apps. - [TrustRadius Reviews Scraper](https://cliqtomedia.com/actors/trustradius-reviews-scraper/) (live): Get public TrustRadius software reviews as clean rows. - [App Store Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/app-store-apps-search/) (live): Search the Apple App Store for many keywords in many countries at once. - [Google Play Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/google-play-apps-search/) (live): Search Google Play for many keywords in many countries in one run. - [OpenTable Reviews & Restaurants Scraper, No Login](https://cliqtomedia.com/actors/opentable-reviews-scraper/) (live): Get OpenTable guest reviews with detailed ratings and owner replies. - [Trustpilot Reviews Scraper - Ratings & Replies, No Login](https://cliqtomedia.com/actors/trustpilot-reviews-scraper/) (live): Add a company domain and get its public Trustpilot reviews in a table. - [Steam Reviews & Game Details Scraper — No login](https://cliqtomedia.com/actors/steam-reviews/) (coming soon): Add a Steam app ID or store link. ## Use cases - Find the top complaints in your app reviews. - Compare your ratings with competitors. - Get alerts for new bad reviews. - Track your app rank for a keyword in the store. - Feed reviews to an AI tool for a summary. ## Questions ### Can I get reviews from one country only? Our app store tools let you choose the country. Check the input on each tool page. ### Can I get only new reviews? Set a limit on results and run the tool on a schedule. Then you see new reviews each time. ### Do you get company replies to reviews? Some tools return replies, for example Trustpilot. Check the output fields on each tool page. ### Can I see my app's search rank? Yes. Our app search tools show the rank of apps for a keyword. --- # AI-ready content and document tools > Turn web pages, PDFs and images into clean Markdown or text for LLMs and RAG. Take screenshots, read RSS feeds and extract news articles. URL: https://cliqtomedia.com/actors/ai-content/ AI models work best with clean text. Web pages have menus, ads and scripts. PDFs and images are hard to read for code. Our tools clean this up. Give a website link and get clean Markdown. One tool can crawl a whole site. It can also find pages that changed since the last run. Another tool returns Google results as Markdown for RAG. For documents, you can turn PDFs into Markdown chunks. OCR reads text from scanned PDFs and images. Other tools extract news articles, read RSS and Atom feeds, and export WordPress posts. Screenshot tools save pages as PNG, JPEG or PDF. The output is ready for LLMs, vector stores and AI agents. All tools run on Apify. You pay for use on Apify. ## Tools - [RSS & Atom Feed Reader / Monitor](https://cliqtomedia.com/actors/rss-atom-feed-reader-monitor/) (live): Paste one or more feed links and get each item as a row. - [WordPress Posts & Pages Scraper](https://cliqtomedia.com/actors/wordpress-posts-pages-scraper/) (live): Add a WordPress site URL and export its public posts and pages. - [News Article Extractor: RSS, URLs & Clean Text](https://cliqtomedia.com/actors/news-article-extractor/) (live): Paste news links or a news site. - [PDF & Image to Text OCR for AI Agents - No Login](https://cliqtomedia.com/actors/pdf-text-ocr/) (live): Give a link to a PDF or an image. - [RAG Web Search: Google Results as Clean Markdown](https://cliqtomedia.com/actors/rag-web-search/) (live): Type a question or topic and get the top Google pages as clean text. - [Website Screenshot & PDF Generator: Full Page & Mobile](https://cliqtomedia.com/actors/website-screenshot-pdf/) (live): Make full-page pictures or PDFs of a list of web pages. - [Website to Markdown for RAG: Crawl & Changed Pages](https://cliqtomedia.com/actors/website-to-markdown/) (live): Give a start URL and a page limit. - [Fast Webpage to Markdown API for AI Agents](https://cliqtomedia.com/actors/webpage-to-markdown-api/) (coming soon): Give a link and get the page as clean Markdown in a few seconds. - [LLM Web Data Extractor for OpenAI, Anthropic, Gemini Keys](https://cliqtomedia.com/actors/llm-web-extractor/) (coming soon): Give page links and the fields you want. - [PDF to Markdown for LLMs & RAG Chunks - No Login](https://cliqtomedia.com/actors/pdf-to-markdown/) (coming soon): Paste a PDF link and get Markdown with real headings, lists and tables. - [Screenshot API: URL to PNG, JPEG or PDF, Fast, No Login](https://cliqtomedia.com/actors/screenshot-api/) (coming soon): Send up to 200 links and get a picture or PDF of each page. - [Text Translator: 50 Languages, No API Key](https://cliqtomedia.com/actors/text-translator/) (coming soon): Send a list of texts and get translations in 50 languages. ## Use cases - Load your help center into a RAG chatbot. - Turn PDF reports into text an LLM can read. - Give an AI agent fresh web search results as Markdown. - Watch news feeds and save new articles. - Save screenshots of pages for records or reports. ## Questions ### Why use Markdown for LLMs? Markdown keeps headings and lists but drops page clutter. It uses fewer tokens than raw HTML. ### Can I crawl a whole website? Yes. Our website to Markdown tool can follow links or use the sitemap. ### Can it read scanned PDFs? Yes. Use our OCR tool. It reads text from scanned PDFs and images. ### Can my AI agent call these tools? Yes. Use the Apify MCP server or the API. See our AI agents page. --- # Leads, company data and validation tools > Find public contacts on websites. Verify emails and phone numbers. Check EU VAT numbers, search company registers and detect a site's tech stack. URL: https://cliqtomedia.com/actors/leads-companies/ Good leads start with clean, correct data. Our tools help you find companies and check your lists. To find leads, give a list of websites. Our contact tool returns public emails, phones and social links. You can also search Europages suppliers and Y Combinator companies. To check data, you can verify email lists in bulk. Other tools format phone numbers and check EU VAT numbers with VIES. This helps you avoid bounces and errors. For company facts, we cover official registers in France, Finland and Norway. We also cover LEI codes from GLEIF. For websites, you can look up WHOIS and DNS data. You can also detect the CMS and tech a site uses. All tools run on Apify. You pay for use on Apify. ## Tools - [Website Contact Scraper](https://cliqtomedia.com/actors/website-contacts-scraper/) (live): Add a list of company websites. - [Bulk Email Verifier: MX, Disposable, Role & Typo Check](https://cliqtomedia.com/actors/email-verifier/) (live): Paste email addresses or pick a dataset from a lead scraper. - [Domain WHOIS (RDAP) & DNS Lookup, No Login](https://cliqtomedia.com/actors/domain-whois-dns-lookup/) (live): Paste a list of domains. For each one, you get registrar, dates and days until expiry from the official registry. You also get live DNS… - [EU VAT Number Validator (VIES) - Bulk Check, No Login](https://cliqtomedia.com/actors/vat-number-validator/) (live): Paste a list of EU VAT numbers. - [Europages Scraper: B2B Suppliers & Certificates (No Login)](https://cliqtomedia.com/actors/europages-companies-scraper/) (live): Search Europages by product and country. - [France Company & SIRET Search](https://cliqtomedia.com/actors/france-sirene-company-search/) (live): Check French companies by SIREN, SIRET or VAT number. - [Norway Company Register (Brreg) & Updates](https://cliqtomedia.com/actors/norway-brreg-company-register/) (live): Look up Norwegian companies by organisation number, or search the register with filters. - [Phone Number Validator & Formatter - Bulk E.164, No Login](https://cliqtomedia.com/actors/phone-number-validator/) (live): Paste phone numbers in any format. - [Website Tech Stack Detector: CMS, Versions & CDN, No Login](https://cliqtomedia.com/actors/tech-stack-detector/) (live): Paste a list of websites. The tool checks each live page against 7,600+ technology fingerprints. You get one row per site with CMS, shop… - [YC Companies Scraper: Founders & Jobs, No Login](https://cliqtomedia.com/actors/y-combinator-companies/) (live): Pick a YC batch, industry or region. - [Bulk Email List Validator: Clean CSV, No Login](https://cliqtomedia.com/actors/bulk-email-validator/) (coming soon): Upload your email list as a CSV or Google Sheet link. - [Finland Company Register (PRH YTJ)](https://cliqtomedia.com/actors/finland-ytj-company-register/) (coming soon): Check Finnish companies by Business ID (Y-tunnus), or search by name and town. - [LEI Lookup & Change Monitor (GLEIF)](https://cliqtomedia.com/actors/lei-gleif-lookup/) (coming soon): Paste LEI codes or a company name. - [OpenStreetMap POI Extractor: Cafes, Shops, Hotels by City](https://cliqtomedia.com/actors/openstreetmap-poi-extractor/) (coming soon): Get places from OpenStreetMap for a city or a map box. ## Use cases - Find public contact details for a list of company websites. - Clean an email list before a campaign. - Check EU VAT numbers of new customers. - Get official company data from a national register. - Find sites that use a certain CMS or tool. ## Questions ### How do I verify an email list? Upload or paste your list into our email verifier. It checks the domain, mail server and common typos. ### Can I check EU VAT numbers in bulk? Yes. Our VAT tool checks many numbers in one run with the EU VIES service. ### Is it legal to collect business emails? Rules differ by country, for example GDPR in the EU. Use the data in line with privacy and anti-spam law. Ask a lawyer about your case. ### Which company registers do you cover? Right now France, Finland and Norway, plus global LEI data. Want another country? [Suggest it](/partners/#suggest) on our Partners page. We read every idea. --- # Developer and website monitoring tools > Monitor GitHub releases and npm packages. Scan dependencies with OSV. Check end-of-life dates, track vendor status pages and test URLs in bulk. URL: https://cliqtomedia.com/actors/developer/ Software changes every day. New releases, security issues and outages can surprise you. Our tools watch these changes for you. Track new GitHub releases and npm package versions. Scan your dependencies against the OSV vulnerability database. Check when your software versions reach end of life. Watch the status pages of your vendors and get new incidents. Compare OpenAPI specs to find breaking changes in an API. For websites, check many URLs at once. See status codes, redirects and broken links. Each run returns a clean table. Many tools also show what changed since the last run. Run these tools on a schedule. Then send results to Slack, email or your own system with a webhook. All tools run on Apify. You pay for use on Apify. ## Tools - [Link Route Audit — Bulk HTTP Status & Redirects](https://cliqtomedia.com/actors/bulk-url-status-redirect-checker/) (live): Paste a list of URLs and see where each one ends up. - [GitHub Releases Monitor & Scraper](https://cliqtomedia.com/actors/github-releases-monitor-scraper/) (live): Add up to 10 public repositories and get their releases as rows. - [Software End-of-Life Checker](https://cliqtomedia.com/actors/software-end-of-life-checker/) (live): Add rows like nodejs 18.20.4 or ubuntu 20.04, or a CSV. - [Dependency Vulnerability Scanner (OSV)](https://cliqtomedia.com/actors/osv-dependency-vulnerability-scanner/) (coming soon): Paste a package list, package.json, package-lock.json or requirements.txt. - [GitHub Repositories & Users Search (No Login)](https://cliqtomedia.com/actors/github-search/) (coming soon): Search GitHub with its own search syntax. - [OpenAPI Catalog & Breaking Change Detector](https://cliqtomedia.com/actors/openapi-spec-catalog-diff/) (coming soon): Compare an old and a new OpenAPI spec and see possible breaking changes. - [SSL Certificate Checker: Expiry, Chain & CT, No Login](https://cliqtomedia.com/actors/ssl-certificate-inspector/) (coming soon): Check the SSL certificate of many sites in one run. - [Statuspage Incidents Monitor — Vendor Status & Changes](https://cliqtomedia.com/actors/statuspage-incidents-monitor/) (coming soon): Check the status pages of vendors you use, like GitHub or Cloudflare. - [npm Package Metadata & Release Monitor](https://cliqtomedia.com/actors/npm-package-metadata-monitor/) (coming soon): List up to 100 npm packages and get one row for each. ## Use cases - Get a message when a library you use has a new release. - Find known vulnerabilities in your dependency list. - Plan upgrades before software reaches end of life. - Track outages of the services you depend on. - Check redirects and broken links after a site move. ## Questions ### Can I get alerts in Slack? Yes. Run the tool on a schedule. Then add a webhook or a Make, Zapier or n8n flow. ### Where does the vulnerability data come from? Our scanner uses OSV, a public vulnerability database. ### Do I need a GitHub token? Not always. A token can help with GitHub rate limits. Check the input on the tool page. ### Can I check thousands of URLs? Yes. The URL checker takes a list of links in one run. --- # Science and research data tools > Search and monitor arXiv papers, Europe PMC, ClinicalTrials.gov, DataCite, Google Patents, GBIF and museum collections. Export to CSV or JSON. URL: https://cliqtomedia.com/actors/research/ Research data is often public, but it is spread across many sites. Each site has its own search and format. Our tools bring this data into one clean table. Search papers on arXiv and Europe PMC. Watch for new papers and new versions. Search ClinicalTrials.gov for studies and track their status. Get details for patents from Google Patents. For data and citations, search DataCite datasets. Turn DOIs into full metadata and bibliography entries. We also cover nature and culture. Search GBIF for species records. Search open art at The Met and the Art Institute of Chicago. Track Wikipedia page views over time. Most tools use official public APIs. You do not need to write code or handle paging. All tools run on Apify. Export to CSV, JSON or Excel. You pay for use on Apify. ## Tools - [Google Patent Details Scraper](https://cliqtomedia.com/actors/google-patents-scraper/) (live): Add patent numbers or Google Patents links you already have. - [DOI Metadata & Bibliography Enrichment](https://cliqtomedia.com/actors/doi-bibliography-enrichment/) (live): Paste a list of DOIs and get one clean citation record each. - [ClinicalTrials.gov Studies Search & Monitor](https://cliqtomedia.com/actors/clinicaltrials-gov-studies-monitor/) (coming soon): Search ClinicalTrials.gov with simple filters and export study records. - [DataCite Research Dataset Search](https://cliqtomedia.com/actors/datacite-dataset-search/) (coming soon): Search DataCite for research datasets with simple filters. - [Europe PMC Literature Search & Monitor](https://cliqtomedia.com/actors/europe-pmc-literature-search/) (coming soon): Search Europe PMC for articles and preprints. - [GBIF Biodiversity Occurrence Search](https://cliqtomedia.com/actors/gbif-occurrence-search/) (coming soon): Search species records from GBIF with a few filters. - [Google Scholar Search Scraper - Citations & PDFs, No Login](https://cliqtomedia.com/actors/google-scholar-scraper/) (coming soon): Search Google Scholar and get one row per article. - [The Met & Art Institute of Chicago Artwork Search](https://cliqtomedia.com/actors/museum-open-access-search/) (coming soon): Search two big museum collections with one input. - [Wikipedia Pageviews & Trends Monitor](https://cliqtomedia.com/actors/wikipedia-pageviews-monitor/) (coming soon): See how many people read a Wikipedia article each day or month. - [arXiv Papers Search & Version Monitor](https://cliqtomedia.com/actors/arxiv-papers-monitor/) (coming soon): Search arXiv papers by words, category and dates. ## Use cases - Get new papers on your topic every week. - Track the status of clinical trials in a field. - Build a reference list from a list of DOIs. - Collect species records for a map or study. - Measure public interest in a topic with Wikipedia views. ## Questions ### Can I get new arXiv papers every day? Yes. Run the arXiv tool on a schedule with your search. It can show new papers and new versions. ### Where does the data come from? Most tools use official public APIs, like arXiv, Europe PMC and ClinicalTrials.gov. ### Can I export references for Zotero? Our DOI tool returns full metadata. Export it as JSON or CSV and import it into your tool. ### Do I need to know how to code? No. Fill the form on Apify and click Start. --- # Government and open data tools > Export open data to CSV or JSON. Sources include the World Bank, USAspending, FDA, USGS and NASA POWER. Also EU TED tenders and UK data. URL: https://cliqtomedia.com/actors/public-data/ Governments publish a lot of useful open data. But each portal has its own API, limits and format. Our tools give you a simple form and a clean table. For economy and contracts, export World Bank indicators. Track US federal awards on USAspending. Find EU public tenders on TED. For health, watch FDA recalls and look up US providers in the NPI registry. For cars, decode VIN numbers and check vehicle recalls. For weather and earth, get NASA POWER climate data, weather forecasts and alerts. You can also export USGS earthquakes and river data, and estimate solar panel output. For the UK, look up postcodes, bank holidays and carbon intensity. All tools run on Apify. Export to CSV, JSON or Excel. You pay for use on Apify. ## Tools - [EU TED Tenders Scraper & Monitor](https://cliqtomedia.com/actors/eu-ted-tenders-scraper/) (live): Find EU public tenders on TED with your own filters. - [UK Bank Holidays & Business Day Calculator](https://cliqtomedia.com/actors/uk-bank-holidays-business-days/) (live): Get UK bank holidays from GOV.UK for each part of the UK. - [UK Postcode Lookup](https://cliqtomedia.com/actors/gb-postcode-lookup/) (live): Paste a list of Great Britain postcodes and get map points and official area codes. - [USAspending Federal Awards & Recipient Monitor](https://cliqtomedia.com/actors/usaspending-federal-awards-monitor/) (live): Find US federal contracts, grants and loans from USAspending.gov. - [VIN Decoder & Vehicle Recalls](https://cliqtomedia.com/actors/vin-decoder-vehicle-recalls/) (live): Turn a list of VINs into clean vehicle rows with NHTSA data. - [FDA Recalls & Enforcement Monitor](https://cliqtomedia.com/actors/fda-recalls-enforcement-monitor/) (coming soon): Get FDA recalls for food, drugs and medical devices in one table. - [NASA POWER Historical Weather & Solar Data](https://cliqtomedia.com/actors/nasa-power-climate-data/) (coming soon): Get past weather and solar data for any latitude and longitude. - [NPI Registry Provider Lookup — US Practices & Taxonomies](https://cliqtomedia.com/actors/npi-registry-provider-lookup/) (coming soon): Search the public NPPES NPI Registry by specialty and place. - [Solar PV Yield Estimator (PVGIS)](https://cliqtomedia.com/actors/solar-pv-yield-estimator/) (coming soon): Estimate how much power a solar system makes at each site in your list. - [UK Carbon Intensity & Low-Carbon Windows](https://cliqtomedia.com/actors/uk-carbon-intensity/) (coming soon): See how clean the electricity grid is, half hour by half hour. - [US Health Data: CDC & HealthData.gov API, No login](https://cliqtomedia.com/actors/us-health-data-api/) (coming soon): Search the open data of the CDC and HealthData.gov by keyword or dataset ID. - [USGS Earthquake Events Export & Monitor](https://cliqtomedia.com/actors/usgs-earthquake-events/) (coming soon): Export earthquakes from the official USGS catalog with your own filters. - [USGS Water Data Export — Rivers & Streams](https://cliqtomedia.com/actors/usgs-water-data-export/) (coming soon): Export river flow and water level readings from USGS. - [Weather Forecast & Alerts Export (NWS + MET Norway)](https://cliqtomedia.com/actors/weather-forecast-alerts-export/) (coming soon): Get hourly or daily forecasts for up to 10 places in one table. - [World Bank Indicators Export — GDP & Population](https://cliqtomedia.com/actors/world-bank-indicators-export/) (coming soon): Export yearly World Bank data for the countries and indicators you pick. ## Use cases - Find new public tenders in your field every day. - Track FDA recalls for products you sell. - Add World Bank data to a report or dashboard. - Get historical weather data for a location. - Check vehicle recalls for a list of VIN numbers. ## Questions ### Why not use the official API directly? You can. Our tools save time: no code, no paging, and clean CSV output. ### Is this data free to use? Most open data is free to use, but licenses differ. Check the license of each source. ### Can I get only new records? Many tools are monitors. Run them on a schedule to see new or changed records. ### Can I export to Excel? Yes. Apify lets you download results as Excel, CSV or JSON. --- # Finance, markets and sports data tools > Export crypto prices and exchange rates. Get Polymarket and Kalshi data, SEC Form D filings and ATP and WTA tennis stats. URL: https://cliqtomedia.com/actors/finance/ Market data helps you test ideas and watch changes. Our tools give you clean history and fresh data in one table. For crypto, export prices and OHLC history. OHLC means open, high, low and close prices. For currencies, get historical exchange rates and convert amounts. For prediction markets, get Polymarket and Kalshi markets, prices and history. No login is needed. For startup funding, watch new SEC Form D filings. Companies file this form when they raise money. For sports, get ATP and WTA tennis matches, players and rankings. You can run these tools on a schedule to keep your data fresh. Or run them once to build a history. This is data, not advice. All tools run on Apify. Export to CSV, JSON or Excel. You pay for use on Apify. ## Tools - [SEC Form D Filing Monitor](https://cliqtomedia.com/actors/sec-edgar-form-d-funding-monitor/) (live): Find public Form D and D/A filings in SEC EDGAR by date or CIK. - [Crypto Prices & OHLC History Export - No Login](https://cliqtomedia.com/actors/crypto-market-data/) (live): Choose coins and get their price, market cap and 24h volume. - [Historical Exchange Rates & Currency Converter](https://cliqtomedia.com/actors/historical-fx-rates-converter/) (live): Get official ECB exchange rates for any pair and date since 1999. - [Polymarket & Kalshi Prediction Market Data, No Login](https://cliqtomedia.com/actors/prediction-markets-data/) (live): Search or look up markets on Polymarket and Kalshi. - [Tennis Scraper: ATP & WTA Matches, Players & Rankings](https://cliqtomedia.com/actors/tennis-stats-scraper/) (live): Get ATP and WTA match results, upcoming matches, player profiles and rankings. ## Use cases - Build a price history to test a trading idea. - Convert past invoices with the right exchange rate. - Compare prediction market odds across platforms. - Find startups that just raised money. - Build a tennis stats dataset for a model. ## Questions ### Is this investment advice? No. Our tools only collect data. They do not give advice. ### Can I get historical data? Yes. Our crypto, currency and prediction market tools can return history. ### What is SEC Form D? It is a US filing for some private fundraising. It can show which companies raised money. ### Do I need an API key? Usually not. You only need an Apify account. Check each tool page. --- # AI Search Visibility Tracker > Check if ChatGPT, Perplexity and Gemini name your brand. Get mention, position, rival brands and cited sources per question. You bring your own API keys. URL: https://cliqtomedia.com/actors/ai-search-visibility/ Category: Search, SEO & ads · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto Ask ChatGPT, Perplexity and Gemini the questions your buyers ask. See if your brand is in the answer. Each row shows the place, the rival brands and the cited sites. You use your own API keys. ## How to use it: 3 steps 1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `best web scraping platform` in Prompts. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Check whether ChatGPT, Perplexity and Gemini name your brand when buyers ask them about your market. You write the questions, your brand and competitors; the Actor asks each AI through its official API with web search on and returns one row per question and AI: mentioned or not, in which place, which competitors came up and which websites the answer cited. - sends the prompt once through the provider's official API with web search enabled — OpenAI Responses API with the `web_search` tool, Perplexity Agent API, Gemini API with Google Search grounding; - reads the answer and finds your brand, its other spellings and your competitors as whole words, case-insensitive; - ranks the names in the order the answer first mentions them, so you see your position next to the competitors; - lists the cited sources and tells you whether one of them is on your own domain; - saves the answer text, an excerpt around the first mention, tokens and the time it was received. ### Good for - Track how often AI assistants recommend you versus competitors for the questions your buyers ask. - Find which pages AI answers cite for your category, so you know where to earn coverage. - Run the same prompt set every week with an Apify schedule and compare the mention rate over time. ### Not a good fit - API answers are not the same as the ChatGPT, Perplexity or Gemini apps. The apps add personal memory, account settings, location and their own system prompts, and they change often. The API with web search is the closest repeatable signal, not a copy of what one person sees on screen. - AI answers vary from run to run. One answer is a sample; use several prompts and repeat runs to see a trend. - The Actor never scrapes the consumer apps and never logs in anywhere. It only uses the public APIs with your key. - Position is the order of first mention among the names you track, not a place in a numbered list the AI might show. - Gemini's API has no location setting, so `country` applies only to OpenAI and Perplexity. ## Price Prices will be shown after release. ## Questions ### Do I need my own API key? Yes. You need a key from OpenAI, Perplexity or Gemini. Without a key you get one free row that says what is missing. ### Who pays the AI providers? You do. Your key is billed by the provider. Gemini needs billing on for web search. ### Does it read the ChatGPT app? No. It uses the official APIs with web search on. This is close to the app, not a copy of it. ### Are the answers always the same? No. AI answers change from run to run. Use several questions and repeat runs to see a trend. ### Why do results change between runs? AI answers are not deterministic and web results change. Ask several related prompts and repeat runs on a schedule; compare `mentionRate` in the run summary rather than single answers. ### Do you store my key or the answers anywhere else? The key is a secret input, encrypted by Apify and never written to the dataset, run summary or log. Answers go only to your run's dataset. ### Can I check Claude, Google AI Overviews or Copilot? Not in this version. It covers OpenAI, Perplexity and Gemini APIs. ## Data fields - `prompt` (string): Prompt from the input; null on a row about a whole AI (missing or rejected key). - `provider` (string): openai, perplexity or gemini; null when no key was given at all. - `model` (string): Model the provider says answered; null when there was no answer. - `requestedModel` (string): Model or preset asked for. - `status` (string): ok = answer checked (the only charged status); no_answer = the AI returned empty text; api_key_required = no key for this AI; error = see errorCode. - `brand` (string): Brand name from the input. - `mentioned` (boolean): true/false whether the answer names the brand; null when there is no answer. - `position` (integer): Place of the brand among the tracked names, in the order the answer first mentions them (1 = first). null when not mentioned. - `mentionCount` (integer): How many times the brand is named. - `competitorsMentioned` (array): Tracked competitors found in the answer: name, position, mentionCount. - `ranking` (array): Brand and competitors in the order the answer first names them. - `brandCited` (boolean): Whether a cited source is on your brandDomain; null when no domain was given or no answer. - `brandCitedPosition` (integer): Place of the first source from your domain among cited sources. - `citedSources` (array): Web sources the answer cites: position, url, title, domain. Gemini gives Google redirect links; the domain is the real site. - `citedSourcesCount` (integer): Number of cited sources. - `searchQueries` (array): Web searches the AI ran, when the API reports them. - `answerExcerpt` (string): About 400 characters around the first brand mention, or the start of the answer. - `answer` (string): Full answer text, up to 20000 characters. - `answerTruncated` (boolean): true when the answer was cut to 20000 characters. - `country` (string): Country from the input. - `countryApplied` (boolean): Whether the country was sent to this AI (false for Gemini). - `inputTokens` (integer): Input tokens billed to your key. - `outputTokens` (integer): Output tokens billed to your key, including thinking tokens. - `providerCostUsd` (number): Cost in USD that the provider reported for this answer (Perplexity only); null when not reported. - `latencyMs` (integer): Time the answer took. - `errorCode` (string): API_KEY_REQUIRED, API_KEY_INVALID, API_QUOTA_EXHAUSTED, API_RATE_LIMITED, MODEL_UNAVAILABLE, PROVIDER_BAD_REQUEST, PROVIDER_UPSTREAM_ERROR, DEADLINE_REACHED and others. - `errorMessage` (string): Short explanation and what to do. Never contains your key. - `fetchedAt` (string): When the answer was received, ISO 8601. ## Input settings - `prompts` (array, required): Questions a buyer might ask an AI assistant, for example "best CRM for small business". Up to 100, each up to 2000 characters. Each prompt is asked once per AI. - `brand` (string, required): Brand name to look for in the answers. Matching is whole-word and case-insensitive. - `brandAliases` (array): Optional: other names that count as your brand, for example a product name or "apify.com". Up to 10. - `brandDomain` (string): Optional, for example apify.com. When set, each row tells whether the AI cited a page from this domain (subdomains count) and in which place. - `competitors` (array): Optional competitor names to track in the same answers, up to 25. Add other spellings after a | sign: Bright Data|BrightData. - `providers` (array): Which AIs to ask. Empty = every AI you gave a key for. An AI picked here without a key gets one free api_key_required row telling where to get a key. - `geminiApiKey` (string): Your Google AI Studio key: aistudio.google.com/apikey. Google bills web-search answers to this key. Search (grounding) needs billing enabled on the key's Google Cloud project; the free tier does not include it. Stored encrypted, used only for this run, never written to logs or results. - `openaiApiKey` (string): Your OpenAI key: platform.openai.com/api-keys. Needs API credits; ChatGPT Plus does not include API use. Stored encrypted, used only for this run, never written to logs or results. - `perplexityApiKey` (string): Your Perplexity key: perplexity.ai/account/api/keys. Needs API credits. Stored encrypted, used only for this run, never written to logs or results. - `country` (string): Optional two-letter country code, for example US or DE. Sent to OpenAI and Perplexity as the searcher's approximate location. Gemini's API has no location setting, so its rows show countryApplied = false. - `openaiModel` (string): Model id with web search support. Empty = gpt-5.4-mini (fast and cheap). Bigger models cost more per answer on your key. - `perplexityPreset` (string): Perplexity Agent API preset. Empty = fast. Other presets may cost more per answer on your key. - `geminiModel` (string): Gemini model id. Empty = gemini-3.8-flash. ## Step by step on Apify 1. Open the Input tab. 2. Keep the prefilled prompt `best web scraping platform` or write your own under Prompts. 3. Enter your brand under Your brand (prefilled: `Apify`). 4. Paste at least one key — OpenAI, Perplexity, or Gemini from a Google AI Studio project with billing on — and pick that AI under AI assistants to check. 5. Click Start, then open the Visibility view of the dataset. ## Use cases | Task | Input | What you get | Key fields | Next step | |---|---|---|---|---| | Am I recommended for my category? | `prompts`, `brand`, `brandAliases` | One row per prompt and AI | `mentioned`, `position`, `answerExcerpt` | Run summary `mentionRate` per AI | | Who wins the answer instead of me? | `competitors` | Names in order of first mention | `ranking`, `competitorsMentioned` | Compare competitor mention rates in the run summary | | Which pages do AI answers trust? | `brandDomain` | Cited links per answer | `citedSources`, `brandCited` | Export the dataset and group by domain | | Is visibility changing over time? | Same input on a schedule | A new dataset each run | `fetchedAt`, `mentioned`, `position` | Schedule plus webhook or Google Sheets export | ## Tips - Use many questions. One AI answer is only a sample. - Add your domain to see if the AI cites your own site. - Add rival names. Use a pipe for other spellings, like Bright Data|BrightData. ## Limits - Up to 100 prompts per run, 3 AIs, 25 competitors, 10 brand aliases. - In our tests an answer took about 3 seconds on Perplexity, about 4 seconds on OpenAI and 15–27 seconds on Gemini, and 10 prompts on OpenAI and Perplexity finished in 44 seconds. Prompts for one AI run one after another and the AIs run side by side, so the run time grows with the number of prompts. A slower model or a rate-limited key takes longer. The default timeout is 1 hour. - One answer per prompt and AI per run; answers are not cached between runs. - No Claude, Google AI Overviews, Copilot or other assistants. ## Sample result ```json { "prompt": "best web scraping platform", "provider": "perplexity", "model": "openai/gpt-6-luna", "status": "ok", "brand": "Apify", "mentioned": true, "position": 1, "mentionCount": 1, "competitorsMentioned": [ { "name": "Octoparse", "position": 2, "mentionCount": 1 }, { "name": "ScrapingBee", "position": 3, "mentionCount": 1 }, { "name": "Bright Data", "position": 4, "mentionCount": 1 } ], "ranking": ["Apify", "Octoparse", "ScrapingBee", "Bright Data"], "brandCited": true, "brandCitedPosition": 3, "citedSources": [ { "position": 1, "url": "https://webscraper.io/blog/best-web-scraping-platforms", "title": "Best web scraping platforms compared - Web Scraper", "domain": "webscraper.io" }, { "position": 3, "url": "https://blog.apify.com/best-web-scraping-tools/", "title": "6. Octoparse", "domain": "blog.apify.com" } ], "citedSourcesCount": 6, "answerExcerpt": "**Apify is the best all-around choice for developers**: it combines ready-made scrapers (“Actors”) with custom code, cloud runs, scheduling, and storage…", "country": "US", "countryApplied": true, "inputTokens": 6325, "providerCostUsd": 0.00168, "errorCode": null, "fetchedAt": "2026-10-22T05:46:32.698Z" } ``` ## Similar tools - [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/) - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) - [XML Sitemap URLs Extractor](https://cliqtomedia.com/actors/xml-sitemap-urls-extractor/) - [Website Metadata & Open Graph Scraper](https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/) - [Google Ads Transparency Scraper - Ad Text, No Login](https://cliqtomedia.com/actors/google-ads-transparency-scraper/) - [Google Images Scraper - Image URLs, Sizes & Source Pages](https://cliqtomedia.com/actors/google-images-scraper/) --- # AliExpress Scraper: Products, Prices and Buyer Reviews > AliExpress scraper for search results and reviews: price, discount, rating, orders, delivery note and images, or review text. Pick country. No login. URL: https://cliqtomedia.com/actors/aliexpress-scraper/ Category: E-commerce & prices · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/aliexpress-scraper?fpr=cliqto Type keywords to get AliExpress products, or paste product links to get reviews. You pick the ship-to country and currency. No AliExpress login or cookies needed. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `usb c cable` in Search queries. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Type keywords or paste AliExpress product links, and get AliExpress search results or buyer reviews as one row each. Products come with price as a number, original price, discount, currency, rating, orders as a number, delivery note and images; reviews have stars, text, English translation, country, date and variant. No AliExpress login, no cookies, no API key. The prefilled search (10 products) costs about $0.014. - Search — for each keyword, it reads the AliExpress search results in page order (60 products per page) for the ship-to country and currency you pick. One row per product: price, original price, discount, currency, new-shopper price flag, rating, orders, delivery note, images, badges, ad flag and the position in the results. - Reviews — for each product link or ID, it reads the buyer reviews. One row per review: stars, text, English translation by AliExpress, reviewer country, date, variant, shipping method, photos and helpful votes, plus the product rating and total number of reviews. ### Good for - Find products by keyword and compare price, discount and orders across sellers. - Track how prices and discounts change for the same keywords over time (run on a schedule). - Read what buyers say about a product: stars, text in English, countries and variants. ### Not a good fit - No product page details: no store name, no exact shipping cost by method, no variants (SKU) list, no stock. Search cards give a delivery note only (for example `Free shipping` or `Delivery: Oct 20 - 25`). - Prices are the ones AliExpress shows to a new visitor. Often this is a new-shopper offer; the row marks it with `newShopperPrice: true`. Regular buyers may pay more. - aliexpress.ru, short share links (`a.aliexpress.com`) and other AliExpress apps are not supported. - Up to 1,000 products per keyword and 1,000 reviews per product. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.0015 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Search result | $0.0012 (from $0.00102 on paid Apify plans) | Charged for each product row saved from AliExpress search results (price, original price, discount, rating, orders, images). Keywords without results are free. | | Review | $0.0005 (from $0.000425 on paid Apify plans) | Charged for each review row saved, and once for a product that has no reviews. Wrong product links are free. | - One result: about $0.0027. - 1,000 results: about $1.20. - Every day 100 results, for 30 days: about $3.65 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/aliexpress-scraper?fpr=cliqto ## Questions ### Can I get the store name or exact shipping cost? No. Search cards give a delivery note only. Store name and SKU list are not included. ### Does it work with aliexpress.ru? No. aliexpress.ru and short share links are not supported. ### Are the reviews in English? You get the original text plus the English translation from AliExpress. ### How many products can I get? Up to 1,000 products per keyword and 1,000 reviews per product. ### Do I need an AliExpress account, cookies or API key? No. The Actor reads public pages without a login. ### What does a `null` value mean? AliExpress did not show this value for this product or review. It is not 0. For example, `rating: null` means the product has no rating yet. ### Are the results complete and fresh? The rows show what AliExpress shows at `fetchedAt`. AliExpress changes the order, prices and offers often and may show different results to different visitors. The Actor does not promise every product for a keyword. ## Data fields - `status` (string): complete: row read in full; partial: read but price or title missing (see error); no_reviews: AliExpress returned no reviews for this product (charged once, it is a definite answer). Invalid product URLs are not rows; they are listed in the RUN_SUMMARY record. - `productId` (string): AliExpress product ID (global site numbering; aliexpress.us IDs are converted). - `title` (string): Product title. - `url` (string): Product page on www.aliexpress.com. - `price` (number): Current price (lowest variant) for the ship-to country. - `originalPrice` (number): Price before discount, from the card or from the card's own price data when it gives the same discount; null when there is no such price. - `discountPercent` (number): Discount in percent. - `currency` (string): Currency code of the prices. - `priceText` (string): Price as AliExpress shows it; null on "FREE with any purchase" gift cards, whose price comes from the page data. - `newShopperPrice` (boolean): true when the price is a new-shopper offer (AliExpress search shows these by default), including "FREE with any purchase" gift cards; regular buyers may pay more. - `rating` (number): Average rating, 0–5. - `ordersCount` (number): Units sold as a number; "10,000+ sold" gives 10000. - `ordersText` (string): Units sold as AliExpress shows it. - `shippingText` (string): Delivery or free-shipping note from the search card, e.g. "Free shipping" or "Delivery: Oct 20 - 25"; null when the card shows none. Exact shipping cost is not on search cards. - `imageUrl` (string): Main image. - `images` (array): Image URLs. - `badges` (array): Selling-point tags on the search card, e.g. "Free shipping". - `sponsored` (boolean): true for an ad placement in search results. - `searchQuery` (string): Query that found the product. - `searchPage` (number): Results page number. - `searchPosition` (number): Position within the query results (1-based, ads included). - `shipTo` (string): Ship-to country used. - `reviewId` (string): Review ID (reviews mode). - `text` (string): Review text in the original language. - `translatedText` (string): English translation by AliExpress. - `country` (string): Reviewer's country code. - `date` (string): Review date, YYYY-MM-DD. - `dateText` (string): Review date as AliExpress shows it. - `reviewerName` (string): Masked public nickname as AliExpress shows it (e.g. J***e); null for anonymous reviews. - `variant` (string): Variant the reviewer bought. - `shippingMethod` (string): Shipping method the reviewer used. - `helpfulCount` (number): Helpful votes. - `additionalText` (string): Follow-up review text. - `productUrl` (string): Reviewed product page. - `productRating` (number): Product's average rating. - `productReviewsCount` (number): Product's total number of reviews. - `input` (string): Your input entry for this row. - `error` (string): What is missing or why the row has no data. - `source` (string): Always aliexpress. - `fetchedAt` (string): When the data was read (ISO 8601). ## Input settings - `mode` (string): Search: product cards from AliExpress search results. Reviews: buyer reviews of the products below. - `searchQueries` (array): Keywords as you would type them on AliExpress, e.g. "usb c cable" or "phone case iphone 16". Up to 20 queries. Used in Search mode. - `productUrls` (array): AliExpress product pages such as https://www.aliexpress.com/item/1005006727707575.html (aliexpress.com and aliexpress.us links work) or bare numeric product IDs. Up to 200. Short share links (a.aliexpress.com) and aliexpress.ru are not supported. Used in Reviews mode. - `shipTo` (string): Two-letter country code AliExpress ships to, e.g. US, GB, DE, FR, BR. Prices, discounts and delivery notes in Search mode depend on it. - `currency` (string): Currency for prices. - `maxItems` (integer): Search mode: most products per search query (1–1000; AliExpress shows 60 per results page). Default 50. - `maxReviews` (integer): Reviews mode: most reviews per product (1–1000), in AliExpress's default order. - `proxyConfiguration` (object): Not needed in most cases: the Actor switches to Apify Proxy on its own if AliExpress blocks direct requests. Residential proxy is not supported. ## Step by step on Apify 1. Open the Input tab. 2. Keep Mode = `Search` and the prefilled keyword `usb c cable` in Search queries, or type your own. 3. Keep Ship to = `US` and Currency = `USD`, or pick your country and currency. 4. Keep Max products per query = 10 (prefill) or raise it up to 1,000. 5. Click Start. 6. Open the Output tab, view Products, and check `price`, `originalPrice` and `ordersCount`. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Product research for dropshipping | `searchQueries` | product | `price`, `ordersCount`, `rating`, `discountPercent` | Google Sheets, CSV | | Price and discount tracking | `searchQueries` + schedule | product | `price`, `originalPrice`, `newShopperPrice`, `fetchedAt` | Dataset API, webhooks | | Review analysis | `productUrls` (mode `reviews`) | review | `rating`, `translatedText`, `country`, `variant` | LLM or sentiment tools | | Prices for a local market | `shipTo` + `currency` | product | `price`, `currency`, `shipTo` | spreadsheet | ## Tips - Set the ship-to country and currency for your market. Prices change by country. - Watch the new shopper price flag. Regular buyers may pay more. - Run on a schedule with the same keywords to see price trends. ## Limits - search-result — each saved product row; - review — each saved review row, and one `no_reviews` row for a product that has no reviews (a definite answer). - Up to 20 keywords per run, 1,000 products per keyword; up to 200 products and 1,000 reviews per product in reviews mode. - Measured: 1,000 products in 47 seconds; 6 keywords × 1,000 products in about 22 minutes (with proxy after a block); 3 × 1,000 reviews in under 2 minutes. - Default run timeout is 1 hour. The Actor stops on its own before the timeout and keeps saved rows (`stopReason: TIMEOUT`). ## Sample result ```json { "status": "complete", "productId": "1005013255649235", "title": "240W 10A Cables Super Fast Charging Type C To Type C Silicone Cable For Samsung iPhone 17Pro Xiaomi 17 Quick Charging Cable New", "url": "https://www.aliexpress.com/item/1005013255649235.html", "price": 3.49, "originalPrice": 6.96, "discountPercent": 49, "currency": "USD", "priceText": "US $3.49", "newShopperPrice": true, "rating": 4.9, "ordersCount": 5000, "ordersText": "5,000+ sold", "shippingText": "Delivery: Oct 20 - 25", "imageUrl": "https://ae-pic-a1.aliexpress-media.com/kf/S17ff1b936cd2428dab3deb72259dbc02M.png", "images": ["https://ae-pic-a1.aliexpress-media.com/kf/S17ff1b936cd2428dab3deb72259dbc02M.png"], "badges": ["Delivery: Oct 20 - 25", "Extra 2% off with coins"], "sponsored": false, "searchQuery": "usb c cable", "searchPage": 1, "searchPosition": 1, "shipTo": "US", "error": null, "source": "aliexpress", "fetchedAt": "2026-10-15T06:31:22.607Z" } ``` ## Use it from code Actor ID: `cliqtomedia/aliexpress-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/aliexpress-scraper").call(run_input={ "mode": "search", "searchQueries": [ "usb c cable" ] }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~aliexpress-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"mode": "search", "searchQueries": ["usb c cable"]}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/aliexpress-scraper") result = tool.invoke({"run_input": {"mode": "search", "searchQueries": ["usb c cable"]}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [Track prices in shops and marketplaces](https://cliqtomedia.com/actors/use-cases/price-monitoring/): Track prices and offers in shops and marketplaces. See changes before your customers do. ## Similar tools - [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/) - [Historical Exchange Rates & Currency Converter](https://cliqtomedia.com/actors/historical-fx-rates-converter/) - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) - [Coles, Woolworths & Aldi Price Scraper - No Login](https://cliqtomedia.com/actors/au-supermarket-prices/) - [Idealo Price Scraper: All Shop Offers, 6 Countries, No Login](https://cliqtomedia.com/actors/idealo-price-scraper/) - [Naver Shopping Scraper: Korea Products & Prices](https://cliqtomedia.com/actors/naver-shopping-scraper/) --- # App Store Search, Rank and App Details > App Store rank tracker for many keywords and countries in one run. Or look up apps by ID or URL. Ratings, price and version. No login. URL: https://cliqtomedia.com/actors/app-store-apps-search/ Category: Reviews & app stores · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/app-store-apps-search?fpr=cliqto Search the Apple App Store for many keywords in many countries at once. Each app gets a rank per term. Or look up known apps by ID, link or bundle ID. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `pdf scanner` in Search terms. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Search the Apple App Store for many keywords in many countries in one run and get a ranked list of apps with rating, price, version and developer — or look up exact apps by App ID, App Store URL or bundle ID. The data comes from Apple's official iTunes Search & Lookup API. No login, no API key, no browser. - Search mode (`mode: search`). Each term is searched in each country. Every term × country pair becomes its own ranked list: `rank` 1, 2, 3… Every row also carries its `term` and `country`, so you can put many keywords and markets in one table. - Lookup mode (`mode: lookup`). You give App IDs, App Store URLs or bundle IDs. The Actor returns the app details for each ID in each country you choose. An ID that is not in a country's store gets a clear `not_found` row. It is never silently dropped. ### Good for - Check which apps rank for a keyword in several countries in one run. - Watch where your app and your competitors rank for your main keywords. - Get fresh details (rating, version, price, size) for a list of known apps. - Check in which countries an app is available. Missing countries get `not_found` rows. ### Not a good fit - No downloads, installs, revenue or keyword search volume. Apple does not publish them, and this Actor does not estimate them. - No reviews and no top charts. For reviews, use Apple App Store Reviews Scraper. - `rank` is the position in Apple's Search API results. It is close to the search order in the App Store app, but not always the same. - Up to 200 apps per term and country. This is Apple's maximum, and Apple often returns a few fewer. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.003 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | App Store query answered | $0.0003 | One search (term × country) or one lookup batch (up to 100 IDs × country) that Apple answered, even with no apps. Failed or skipped queries are free. | | App row | $0.0012 (from $0.00075 on paid Apify plans) | One app with full details stored in the dataset. not_found and error rows are free. | - One app: about $0.0042. - 1,000 apps: about $1.20. - Every day 100 apps, for 30 days: about $3.69 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/app-store-apps-search?fpr=cliqto ## Questions ### Why is the rank different on my iPhone? The App Store app can personalise results and show ads. The API order is close, but not the same. ### Can I get downloads or revenue? No. Apple does not publish those numbers. ### Do I need an Apple account? No. It uses Apple's public iTunes Search API. ### Am I charged for missing apps? No. Not-found and error rows are free. ### How fresh is the data? Each row is fetched live from Apple during the run (`fetchedAt`). Apple may cache its own answers for up to a day, so a rating or version can lag slightly behind the App Store page. ## Data fields - `status` (string): Row result: complete (app data), not_found (search with no apps, or ID/bundle ID not in that country's store) or error (see errorCode). Only complete rows are charged. - `mode` (string): search or lookup. - `queryType` (string): What the row answers: term (keyword search), appId or bundleId (lookup). - `query` (string): Your search term, App ID or bundle ID exactly as processed. A grouped status row lists all IDs or terms it covers, separated by commas (see queryIds). - `queryIds` (array): Only on grouped status rows: the IDs (or search terms) this one row covers. Used for lookup not_found/error rows (one row per batch of up to 100 IDs in one country) and for the one row that lists queries not sent to a country Apple rejected. null on app rows and normal search rows. - `term` (string): Search term (search mode); null for lookups. - `country` (string): Two-letter App Store country (storefront) code, e.g. us, de. - `entity` (string): App type searched: software (iPhone), iPadSoftware or macSoftware; null for lookups. - `rank` (integer): 1-based position in the iTunes Search API results for this term and country (deduplicated). Close to, but not guaranteed identical to, the App Store app's own search order. Null for lookups. - `isTracked` (boolean): True when this app is one of your trackAppIds; null when no apps are tracked. - `trackId` (integer): Apple App ID (the number in the App Store URL after 'id'). - `bundleId` (string): Bundle identifier, e.g. com.adobe.scan.ios. - `name` (string): App name in this country's store. - `kind` (string): Apple kind: software or mac-software. - `sellerName` (string): Legal seller name shown on the App Store. - `developerName` (string): Developer (artist) name. - `developerId` (integer): Apple developer ID. - `developerUrl` (string): Developer page on the App Store. - `sellerUrl` (string): Developer website, when the app lists one. - `price` (number): Upfront price in the store currency; 0 for free apps. In-app purchases are not included. - `formattedPrice` (string): Price as Apple displays it, e.g. Free or $4.99. - `currency` (string): ISO currency of the price, e.g. USD. - `primaryGenre` (string): Primary category, e.g. Productivity. - `primaryGenreId` (integer): Apple genre ID of the primary category. - `genres` (array): All categories listed for the app. - `averageUserRating` (number): Average star rating (0–5) in this country across all versions. Null when the app has no ratings yet (userRatingCount 0) or Apple returns none. - `userRatingCount` (integer): Number of ratings in this country across all versions. - `averageUserRatingCurrentVersion` (number): Average rating for the current version, as Apple reports it; null when the current version has no ratings. - `userRatingCountCurrentVersion` (integer): Number of ratings for the current version, as Apple reports it. - `version` (string): Current version string. - `releaseDate` (string): Original release date (ISO 8601). - `currentVersionReleaseDate` (string): Release date of the current version (ISO 8601). - `fileSizeBytes` (integer): Download size in bytes. - `contentRating` (string): Age rating, e.g. 4+ or 12+. - `minimumOsVersion` (string): Minimum OS version required. - `languages` (array): Supported languages as Apple lists them (ISO 639-1, upper case; Apple sometimes repeats a code, e.g. ZH for both Chinese variants). - `supportedDevicesCount` (integer): Number of supported device models Apple lists. - `url` (string): App Store page URL. - `iconUrl` (string): App icon (512 px when available). - `screenshotUrls` (array): iPhone (or Mac) screenshot URLs. ## Input settings - `mode` (string): search: keyword search, one ranked list per term and country. lookup: exact app details by App ID, App Store URL or bundle ID. - `terms` (array): Keywords to search, e.g. pdf scanner. Up to 50 terms; terms × countries must be at most 100 searches per run. Each term is searched separately and gets its own rank 1, 2, 3… - `countries` (array): Two-letter App Store country codes, e.g. us, gb, de, jp. Up to 50. Every term (or ID) is processed in every country. A code Apple does not support returns an error row for that country instead of failing the run. - `limit` (integer): How many apps to return per search (1–200). Apple sometimes returns fewer apps than asked; the run never pads results. - `entity` (string): Which apps to search: iPhone apps (software), iPad-only apps (iPadSoftware) or Mac apps (macSoftware). - `trackAppIds` (array): Optional App IDs or App Store URLs to track. Their rows get isTracked = true, and RUN_SUMMARY reports each tracked app's rank per term and country, or not_in_results when it is outside the returned list. - `appIds` (array): Numeric App IDs (e.g. 284882215), id284882215, or App Store URLs such as https://apps.apple.com/us/app/facebook/id284882215. Up to 500 IDs and bundle IDs together. An app missing in a country returns a not_found row (not charged). - `bundleIds` (array): Bundle identifiers such as com.adobe.scan.ios. Matching is case-insensitive. - `includeDescription` (boolean): Adds the full App Store description and What's New text. Makes rows much larger. ## Step by step on Apify 1. Open the Input tab. It is prefilled with `terms: ["pdf scanner"]`, `countries: ["us"]` and `limit: 20`. 2. Add more terms or countries if you want, for example `de` and `jp`. 3. Click Start. 4. Open the Output tab, choose the Search results view, and sort by `term`, `country` and `rank`. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Keyword research in many markets | `terms` + `countries` | Ranked app per term and country | `term`, `country`, `rank`, `name`, `userRatingCount` | Export CSV or Google Sheets | | Track your app's keyword rank | `terms` + `countries` + `trackAppIds` | Rank tracking in `RUN_SUMMARY` | `rankTracking[].rank`, `status` | Schedule daily, compare runs | | Competitor app monitoring | `mode: lookup` + `appIds` | App details per country | `version`, `currentVersionReleaseDate`, `averageUserRating`, `price` | Schedule weekly, alert on change | | Availability check by country | `mode: lookup` + `bundleIds` + `countries` | App row or `not_found` row | `status`, `country`, `queryIds` | Filter `status = not_found` | | AI agent app search | `terms` (MCP) | Ranked app | `name`, `trackId`, `url`, `averageUserRating` | Agent answer or next tool call | ## Tips - Put many terms and countries in one run to save time. - Schedule a daily run and compare ranks over time. - Filter not_found rows to see where an app is missing. ## Limits - Up to 50 terms and 50 countries, and at most 100 term × country searches per run. - Up to 500 App IDs and bundle IDs together. At most 100 lookup batches per run (up to 100 IDs per batch, per country). - Up to 200 apps per search. Apple often returns a few fewer, and the Actor never pads results. - Give the run a timeout of at least 60 seconds (the default is 300). - The Actor waits at least half a second between requests to Apple, with at most 3 requests at a time. A run stops calling Apple after about 4 minutes, even with a longer timeout. Unfinished queries are listed as `NOT_PROCESSED` rows. - If Apple slows the Actor down (HTTP 429 or 403), it waits and slows its pace. After 8 such answers in one run it stops calling Apple. It also stops after 2 failed requests in a row or 4 failed requests in total. The rows already stored stay, and the rest are listed as `NOT_PROCESSED`. - If Apple rejects a country code, the Actor does not send other queries for that country. They are listed together in one error row per country, with the terms or IDs in `queryIds`. - Data comes from Apple's public iTunes Search API. Apple's terms apply to its use. App names, icons and screenshots belong to their owners. ## Sample result ```json { "status": "complete", "mode": "search", "queryType": "term", "query": "pdf scanner", "queryIds": null, "term": "pdf scanner", "country": "us", "entity": "software", "rank": 1, "isTracked": null, "trackId": 1199564834, "bundleId": "com.adobe.scan.ios", "name": "Adobe Scan: PDF & Doc Scanner", "kind": "software", "sellerName": "Adobe Inc.", "developerName": "Adobe Inc.", "developerId": 331646274, "developerUrl": "https://apps.apple.com/us/developer/adobe-inc/id331646274", "sellerUrl": null, "price": 0, "formattedPrice": "Free", "currency": "USD", "primaryGenre": "Business", "primaryGenreId": 6000, "genres": ["Business", "Productivity"], "averageUserRating": 4.87591, "userRatingCount": 1598867, "averageUserRatingCurrentVersion": 4.87591, "userRatingCountCurrentVersion": 1598867, "version": "26.09.29", "releaseDate": "2017-05-31T14:12:55Z", "currentVersionReleaseDate": "2026-09-29T18:04:04Z", "fileSizeBytes": 418327552, "contentRating": "4+", "minimumOsVersion": "18.0", "languages": ["EN", "DE", "FR", "JA"], "supportedDevicesCount": 130, "url": "https://apps.apple.com/us/app/adobe-scan-pdf-doc-scanner/id1199564834", "iconUrl": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/33/ce/2e/33ce2ed1-047b-9bf5-452b-f1a2f54e4d39/AppIcon-0-0-1x_U007emarketing-0-7-0-85-220.png/512x512bb.jpg", "screenshotUrls": ["https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/30/ec/ab/30ecab7d-94c6-d7f6-7e0e-084b2b443837/01_Scan_iOS_6.7_1284x2778_en-US.jpg/320x480bb.jpg"], "ipadScreenshotUrls": ["https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/84/93/92/8493921b-bd41-eee2-f782-7ce6425545e2/01_Scan_iOS_iPad_2048x2732_en-US.jpg/360x480bb.jpg"], "description": null, "releaseNotes": null, "errorCode": null, "errorMessage": null, "source": "apple-itunes-search-api", "sourceUrl": "https://itunes.apple.com/search?term=pdf+scanner&country=us&media=software&entity=software&limit=20", "fetchedAt": "2026-10-13T04:59:45.285Z" } ``` ## Use it from code Actor ID: `cliqtomedia/app-store-apps-search` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/app-store-apps-search").call(run_input={ "mode": "search", "terms": [ "pdf scanner" ] }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~app-store-apps-search/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"mode": "search", "terms": ["pdf scanner"]}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/app-store-apps-search") result = tool.invoke({"run_input": {"mode": "search", "terms": ["pdf scanner"]}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [Read new reviews, yours and theirs](https://cliqtomedia.com/actors/use-cases/review-monitoring/): Collect reviews from the App Store, Google Play and more. Find what people love and what they hate. ## Similar tools - [Apple App Store Reviews Scraper](https://cliqtomedia.com/actors/apple-app-store-reviews-scraper/) - [Google Play Reviews Scraper](https://cliqtomedia.com/actors/google-play-reviews-scraper/) - [TrustRadius Reviews Scraper](https://cliqtomedia.com/actors/trustradius-reviews-scraper/) - [Google Play Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/google-play-apps-search/) - [OpenTable Reviews & Restaurants Scraper, No Login](https://cliqtomedia.com/actors/opentable-reviews-scraper/) - [Trustpilot Reviews Scraper - Ratings & Replies, No Login](https://cliqtomedia.com/actors/trustpilot-reviews-scraper/) --- # Apple App Store Reviews Scraper > App Store reviews scraper for public Apple reviews by app and country. Get ratings, text and dates. Export to CSV or Excel. No Apple account. URL: https://cliqtomedia.com/actors/apple-app-store-reviews-scraper/ Category: Reviews & app stores · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/apple-app-store-reviews-scraper?fpr=cliqto Export public App Store reviews for your apps and countries. Each review has a stable ID, so you can merge runs later. A run report explains any stop. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `324684580` in Apple app IDs. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Apple App Store Reviews Scraper exports public reviews by app and country. Save the results as JSON, CSV, Excel, XML, or read them through the Apify API. - Up to 2,000 reviews for each app and country. - Up to 10,000 reviews in one run. - One Dataset row for each unique review. - Stable IDs for updates and later comparisons. - Review data for several apps and countries in one run. - A run report that explains every stop or error (`RUN_SUMMARY`). - No Apple account, API key, proxy, or browser setup. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Apple App Store review | $0.0001 | One unique review stored in the default Dataset. | | Start fee | $0.036 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | - One review: about $0.04. - 1,000 reviews: about $0.14. - Every day 100 reviews, for 30 days: about $1.38 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/apple-app-store-reviews-scraper?fpr=cliqto ## Questions ### Can I get every old review? No. Apple shows a changing window of public reviews. ### Are the newest reviews first? Not always. Apple controls the order. ### Can I get developer replies? No. Replies are not in the output. ### Do I need an Apple account? No. No account, API key or proxy is needed. ### Can I get all historical reviews? No. The Actor returns up to 100 current source pages. This is not a complete history. ### How do I remove repeated reviews across runs? Use `recordId` as the update key. It combines the app ID, country, and Apple review ID. ### What happens after a late error? Reviews already saved remain available. Open `RUN_SUMMARY` to see the stop reason and affected app-country pair. ### Can I filter by date, rating, or keyword? There are no such input filters. Export the reviews and filter the saved rows in your own tool. The Actor does not monitor only new reviews. Repeated runs collect a fresh bounded snapshot; use `recordId` to merge them. ## Data fields - `schemaVersion` (string) - `recordId` (string) - `reviewId` (string) - `appId` (string) - `appName` (string) - `appUrl` (string) - `country` (string) - `sort` (string) - `authorName` (string) - `title` (string) - `text` (string) - `rating` (integer) - `appVersion` (string) - `reviewedAt` (string) - `helpfulVotes` (integer) - `totalVotes` (integer) - `isEdited` (boolean) - `sourcePage` (integer) - `sourceTransport` (string) - `sourceUrl` (string) - `scrapedAt` (string) ## Input settings - `appIds` (array): Add numeric Apple app IDs. You can add up to 50 IDs and URLs in total. - `startUrls` (array): Add App Store product URLs. The Actor reads the app ID from each URL. - `countries` (array): Add two-letter country codes, such as us, gb, or de. Each country is a separate App Store market. - `sort` (string): Apple chooses the review order. The order may change between runs. - `maxReviewsPerAppCountry` (integer): Save up to this many reviews for each app and country. The maximum is 2,000. - `maxReviewsTotal` (integer): Stop after saving this many unique reviews across the whole run. ## Use cases | Task | Input choice | Key fields | Next step | |---|---|---|---| | Compare feedback by market | One app, `countries: ["us", "gb"]` | `country`, `rating`, `text` | Export to CSV and compare groups | | Study common product issues | App IDs and a small cap | `title`, `text`, `reviewedAt` | Filter the exported rows | | Merge repeated snapshots | The same app and country | `recordId`, `scrapedAt`, `isEdited` | Update your own database by `recordId` | ## Tips - You can get up to 2,000 reviews per app and country. - Use the record ID as the key when you merge runs. - Run it regularly. Apple shows a changing set of reviews. ## Limits Apple provides a changing window of public reviews. This Actor does not promise a complete review history. - Each source page can contain up to 20 reviews. - The Actor requests up to 100 pages for each app and country. - The maximum is 2,000 reviews for each app and country. - The whole run stops at 10,000 saved reviews. - Apple controls the order shown as `appleDefault`. - Different countries can return different reviews. - A run can return fewer reviews than you request. ## Sample result ```json { "appIds": ["324684580"], "countries": ["us"], "maxReviewsPerAppCountry": 1, "maxReviewsTotal": 1 } ``` ## Use it from code Actor ID: `cliqtomedia/apple-app-store-reviews-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/apple-app-store-reviews-scraper").call(run_input={ "appIds": [ "324684580" ], "countries": [ "us" ] }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~apple-app-store-reviews-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"appIds": ["324684580"], "countries": ["us"]}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/apple-app-store-reviews-scraper") result = tool.invoke({"run_input": {"appIds": ["324684580"], "countries": ["us"]}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [Read new reviews, yours and theirs](https://cliqtomedia.com/actors/use-cases/review-monitoring/): Collect reviews from the App Store, Google Play and more. Find what people love and what they hate. ## Similar tools - [Google Play Reviews Scraper](https://cliqtomedia.com/actors/google-play-reviews-scraper/) - [TrustRadius Reviews Scraper](https://cliqtomedia.com/actors/trustradius-reviews-scraper/) - [App Store Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/app-store-apps-search/) - [Google Play Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/google-play-apps-search/) - [OpenTable Reviews & Restaurants Scraper, No Login](https://cliqtomedia.com/actors/opentable-reviews-scraper/) - [Trustpilot Reviews Scraper - Ratings & Replies, No Login](https://cliqtomedia.com/actors/trustpilot-reviews-scraper/) --- # arXiv Papers Search and Version Monitor > arXiv API tool to search papers by query, category and dates. Export authors, abstracts and DOI. Compare runs to find new papers and versions. URL: https://cliqtomedia.com/actors/arxiv-papers-monitor/ Category: Science & research data · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto Search arXiv papers by words, category and dates. Save authors, abstracts and links as JSON or CSV. Pass your last snapshot to see new papers and new versions. ## How to use it: 3 steps 1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `cs.AI` in Categories. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Search arXiv paper metadata by query, categories and dates. Get authors, abstracts, DOI links and version changes for your research feed, without an API key. ## Price Prices will be shown after release. ## Questions ### Do I need an arXiv API key? No. The tool uses the public arXiv metadata API. ### Does it download PDFs? No. It saves metadata and article links. ### How do I get only new papers? Paste your last snapshot and turn on onlyNew. ### Does it schedule itself? No. Set a schedule in Apify if you want regular runs. ## Data fields - `id` (string): Unversioned arXiv ID, such as 2610.13948 or hep-th/9711200. - `versionedId` (string): arXiv ID with version suffix, such as 2610.13948v1. - `title` (string): Paper title with line breaks and repeated spaces normalized. - `published` (string): ISO timestamp of the first submission (v1). - `updated` (string): ISO timestamp of the received version. - `absUrl` (string): HTTPS arXiv abstract page for this version. - `provider` (string): Data provider name: arXiv. - `sourceUrl` (string): HTTPS source article URL on arXiv. - `fetchedAt` (string): ISO time when the Actor parsed this source response. - `sourceUpdatedAt` (string): Source timestamp of the record, same as updated. - `licenseStatus` (string): source_provided when a paper license was in the feed, otherwise not_in_atom_feed. - `metadataLicense` (string): License of the descriptive metadata (CC0-1.0); it does not cover the PDF. - `changeType` (string): Change against previousSnapshot: new, new_version, withdrawn, metadata_updated, unchanged or older_version. - `abstract` (string): Metadata abstract with TeX and Unicode preserved. Null if missing or includeAbstract is false. - `primaryCategory` (string): Main arXiv category, such as cs.AI. Null if absent. - `doi` (string): DOI supplied by arXiv. Null if absent. - `journalRef` (string): Journal reference supplied by arXiv. Null if absent. - `comment` (string): Author comment from arXiv, such as page counts or a withdrawal notice. Null if absent. - `pdfUrl` (string): arXiv PDF link when the feed provides one. The PDF is not downloaded. Null if absent. - `license` (string): Full-paper license when the Atom feed provides it. Normally null, meaning unknown, not a reuse permission. - `withdrawalEvidence` (string): explicit_notice_in_comment_or_abstract when a withdrawal notice was found, otherwise null. - `version` (integer): Source version number of the received record, such as 1. - `authors` (array): Author names in source order. - `categories` (array): All arXiv category codes of the paper, such as cs.AI and cs.LG. - `withdrawn` (boolean): True for an explicit withdrawal text notice; null when no notice is known. Not an authoritative status check. ## Input settings - `query` (string): arXiv API query, such as ti:transformer. Combined with categories using AND. Empty uses categories. - `categories` (array): Match any of these arXiv category codes. Combined with query using AND. Use [] for query-only search. - `dateFrom` (string): Inclusive YYYY-MM-DD. Overrides lastDays; omit for the rolling start. - `dateTo` (string): Inclusive YYYY-MM-DD. Omit for no upper bound. - `lastDays` (integer): Rolling UTC date start if dateFrom is absent. 0 removes the start date. Seven days covers regular weekend gaps. - `dateField` (string): submitted uses original submission date. updated filters received records locally, sorts newest updated first, and scans at most 500. - `maxResults` (integer): Maximum output rows, not a promise of complete query coverage. Source scan is also capped at 500. - `sortBy` (string): arXiv sort field. In updated-date mode this is always lastUpdatedDate. - `sortOrder` (string): Source order. In updated-date mode this is always descending. - `previousSnapshot` (array): Paste OUTPUT.snapshot from a previous run. Each record needs unversioned id and version; updated and withdrawn are optional. Up to 5,000 unique records. - `onlyNew` (boolean): Requires a nonempty previousSnapshot. Excludes unchanged and older versions; includes first-seen papers, new versions, metadata updates and withdrawal notices. - `includeAbstract` (boolean): Include metadata abstracts. False sets abstract to null. No PDFs or full texts are downloaded. ## Step by step on Apify 1. Open Input. 2. Keep the example: `categories: ["cs.AI"]`, `lastDays: 7`, `maxResults: 25`. 3. Click Start. 4. Open Papers in the output. Check `id`, `title`, `authors` and `updated`. 5. Export JSON or CSV. Open Snapshot and summary to copy the snapshot for another run. ## Use cases | Task | Useful settings | Key fields | |---|---|---| | A team research feed | Categories and recent days | Title, authors, abstract, links | | A literature search | Query plus subject codes | ID, abstract, DOI, journal reference | | Watch paper revisions | Previous snapshot and `onlyNew` | Version, updated, changeType | | Review withdrawal notices | Query or categories, then review text | Comment, withdrawalEvidence | | Prepare a metadata index | Export JSON or CSV | ID, categories, provenance | ## Tips - Use arXiv search rules, like ti: for title or au: for author. - Save the snapshot from each run and paste it into the next run. - A run can check up to 500 papers. Use short date windows for old topics. ## Limits - At most 500 saved papers and 500 scanned source records per run. Broad searches are not full-archive exports. - Updated-date filtering and `onlyNew` can scan many records without saving rows. Narrow the query or date scope and read the summary. - Source retries, response size and total work are bounded. Source work stops within an internal 180-second limit, even with a longer platform timeout. Use the default 300-second timeout and 256 MB memory. - arXiv may reject a query, delay an update or become unavailable. Source failure is reported as error or partial, not an empty successful search. - Withdrawal is a text-notice check, not a full registry of retractions. Absence never proves withdrawal. No notice means unknown, not confirmed active. - Article licenses are normally not provided by Atom. Review the article page and license before reusing full content. - No PDFs, full text, citation counts, peer-review checks or enrichment from other databases. ## Sample result ```json { "id": "2610.13948", "version": 1, "title": "Can Language Models Play the Wikipedia Game?", "authors": [ "Author One", "Author Two", "Author Three" ], "primaryCategory": "cs.AI", "published": "2026-10-09T17:59:56Z", "updated": "2026-10-09T17:59:56Z", "doi": null, "license": null, "changeType": "new", "absUrl": "https://arxiv.org/abs/2610.13948v1" } ``` ## Similar tools - [DOI Metadata & Bibliography Enrichment](https://cliqtomedia.com/actors/doi-bibliography-enrichment/) - [Google Patent Details Scraper](https://cliqtomedia.com/actors/google-patents-scraper/) - [ClinicalTrials.gov Studies Search & Monitor](https://cliqtomedia.com/actors/clinicaltrials-gov-studies-monitor/) - [DataCite Research Dataset Search](https://cliqtomedia.com/actors/datacite-dataset-search/) - [Europe PMC Literature Search & Monitor](https://cliqtomedia.com/actors/europe-pmc-literature-search/) - [GBIF Biodiversity Occurrence Search](https://cliqtomedia.com/actors/gbif-occurrence-search/) --- # Ashby Jobs Scraper: Export Public Ashby Job Boards > Ashby jobs scraper for known boards: job descriptions, locations, apply links and published pay as structured rows. JSON or CSV. No Ashby login. URL: https://cliqtomedia.com/actors/ashby-jobs-scraper/ Category: Jobs & hiring · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/ashby-jobs-scraper?fpr=cliqto Add a known Ashby board name, like ramp. You get each current job as one row with description, location and apply link. Pay is shown only when the employer posts it. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `ramp` in Ashby boards or job URLs. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Export current public jobs from Ashby job boards as one structured row per job. Get descriptions, locations, apply links and compensation published by the employer. Add a known board such as `ramp`. The new Input form saves up to 10 jobs for a first run. The applied price is $0.00085 per start at default memory plus $0.75 per 1,000 saved jobs, with platform usage included. Check `RUN_SUMMARY` for empty or partial results. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Useful job row | $0.00075 | One useful job row saved to the default Dataset. | | Start fee | $0.00085 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | - One job: about $0.0016. - 1,000 jobs: about $0.75. - Every day 100 jobs, for 30 days: about $2.28 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/ashby-jobs-scraper?fpr=cliqto ## Questions ### Can it find every company on Ashby? No. You need to know the board name. It does not search across companies. ### Does remote mean fully remote? Not always. A job can be marked remote and also hybrid. Check both fields. ### Does every job show pay? No. Pay appears only when the employer publishes it. ### Do I need an Ashby login? No. It reads the public job postings. ### Does it discover all companies or search all Ashby jobs? No. Supply the known boards you want. It reads a current snapshot of those boards. ### Does every job include pay and all locations? No. Only employer-published source values are available. Missing values remain null or empty according to the field reference. ### Can I monitor changes? You can compare scheduled snapshots in your own system. There is no built-in delta mode. The same input can return the same jobs on a repeat run; those new saved rows are charged again. ### Is an empty run free? It has no saved-job event charge. An enabled Actor-start event is still charged automatically, even with no matches. Check the current Pricing tab; future announced prices are separate. A partial run is charged for startup and its saved jobs. ## Data fields - `source` (string) - `boardSlug` (string) - `id` (string) - `title` (string) - `department` (string) - `team` (string) - `location` (string) - `workplaceType` (string) - `employmentType` (string) - `isRemote` (boolean) - `isListed` (boolean) - `publishedAt` (string) - `jobUrl` (string) - `applyUrl` (string) - `descriptionPlain` (string) - `compensation` (object) - `boardUrl` (string) - `descriptionHtml` (string) - `secondaryLocations` (array) - `address` (object) - `sourceApiVersion` (string) - `collectedAt` (string) ## Input settings - `mode` (string): Use all for board snapshots or exact for hosted job URLs. - `boards` (array): Add 1–50 board slugs or HTTPS jobs.ashbyhq.com board URLs in all mode. Use canonical job URLs in exact mode. Repeated boards are fetched once. - `includeCompensation` (boolean): Ask Ashby's public endpoint for compensation fields when the employer publishes them. - `includeUnlisted` (boolean): All mode defaults to listed postings only. Exact mode may return a matching direct-only row. - `filters` (object): The Actor fetches each board before filtering. Different fields use AND; values in one field use OR. Empty arrays do not restrict results. Each list accepts up to 20 non-empty strings of 1–120 characters. - `maxResultsPerBoard` (integer): Optional limit on rows from each board. Applied after filters. - `maxOutputItems` (integer): Maximum saved job rows for the whole run, after filters and duplicates. API default: 11446. New-form prefill: 10. Check RUN_SUMMARY for stopped or incomplete work. - `concurrency` (integer): Maximum number of board requests sent at the same time. ## Step by step on Apify 1. Open Input. Keep the board `ramp` and the new-form limit of 10 jobs. 2. Choose `all` for board slugs or board URLs. Use `exact` only with canonical hosted job URLs. 3. Click Start. 4. Open the default Dataset. Check `title`, `location`, `jobUrl` and `applyUrl`. 5. Open Key-value store → RUN_SUMMARY to see counts, limits and each input's status. ## Use cases | Task | Input | Key fields | Next step | |---|---|---|---| | Export a company job board | `boards`, `mode: "all"` | `id`, `title`, `department`, `jobUrl` | Export the Dataset or store it in your system. | | Study roles and locations | `filters.titleContains`, `filters.locationContains` | `location`, `secondaryLocations`, `workplaceType` | Compare matching jobs. | | Read one known posting | `mode: "exact"`, a canonical job URL | `id`, descriptions, `applyUrl` | Check the current source posting. | | Compare published pay | `includeCompensation: true` | `compensation`, `employmentType` | Use only values the employer publishes. | ## Tips - Use the board name from the jobs.ashbyhq.com address. - Check workplace type and the remote flag together. They can differ. - Read RUN_SUMMARY when the result looks empty. ## Limits - Up to 50 input values and 11,446 saved jobs per run. - Default memory is 512 MB after the resource validation matrix; increase it for larger boards or high concurrency. Data caps and source deadlines do not change. - Each source response is limited to 64 MiB. - Each source request has a 30-second timeout and up to three attempts for transient failures. - Total source work has a 240-second deadline. A longer platform timeout does not extend it. - A shorter platform timeout reduces source time, with a 15-second reserve for the run summary. - There is no pagination: the documented endpoint returns a board feed in one response. - Source order is kept. This Actor does not sort jobs by publication date. ## Sample result ```json { "source": "ashby", "boardSlug": "ramp", "id": "34413f8d-26bf-4bbc-8ade-eb309a0e2245", "title": "Security Engineer, Cloud", "department": "Engineering", "team": "Backend", "location": "New York, NY (HQ)", "isRemote": true, "workplaceType": "Hybrid", "employmentType": "FullTime", "isListed": true, "publishedAt": "2026-04-07T17:12:35.753Z", "jobUrl": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245", "applyUrl": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application" } ``` ## Use it from code Actor ID: `cliqtomedia/ashby-jobs-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/ashby-jobs-scraper").call(run_input={ "mode": "all", "boards": [ "ramp" ] }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~ashby-jobs-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"mode": "all", "boards": ["ramp"]}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/ashby-jobs-scraper") result = tool.invoke({"run_input": {"mode": "all", "boards": ["ramp"]}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [Reach out when the company is ready](https://cliqtomedia.com/actors/use-cases/buying-signals/): Know when a company hires, raises money or wins a contract. Reach out at the right moment. ## Similar tools - [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/) - [Greenhouse Jobs Monitor & Scraper](https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/) - [Wellfound Jobs Scraper](https://cliqtomedia.com/actors/wellfound-jobs-scraper/) - [Recruitee Job Snapshots & Changes](https://cliqtomedia.com/actors/recruitee-jobs-monitor-scraper/) - [SmartRecruiters Jobs Monitor & Scraper](https://cliqtomedia.com/actors/smartrecruiters-jobs-monitor-scraper/) - [BambooHR Jobs Monitor & Scraper](https://cliqtomedia.com/actors/bamboohr-jobs-monitor-scraper/) --- # Coles, Woolworths and Aldi Price Scraper for Australia > Coles Woolworths price scraper with Aldi too: current and was price, unit price, specials, stock and barcode in one table. Search by keyword. No login. URL: https://cliqtomedia.com/actors/au-supermarket-prices/ Category: E-commerce & prices · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/au-supermarket-prices?fpr=cliqto Search Coles, Woolworths and Aldi Australia at once and get one price table. Each row has the price, was price, unit price and specials. No store account needed. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `milk` in Search terms. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Get Coles, Woolworths and Aldi Australia prices in one table. Search by keyword, or paste category or product links. Each row has the price, was price, unit price, special and promo text, stock, brand, size and link. No login or API key. A 20-product Woolworths search costs $0.014 on the Free plan. - Search terms: each term is searched in every store you pick. - Category links: a category page from a store website, for example Coles milk. - Product links: one product page per link. ### Good for - Compare the price of the same product type in Coles, Woolworths and Aldi. - Watch specials and was prices for a list of products or a category. - Get unit prices (per litre, per kg, per 100 g) for fair comparison. - Build price history: schedule the same input and keep each run's rows. ### Not a good fit - Prices for one store branch or postcode, or delivery prices. - Nutrition facts, ingredients or product descriptions. They are not collected. - Other stores, such as IGA, or stores outside Australia. - Login, loyalty prices (Flybuys, Everyday Rewards) or carts. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.002 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Product saved | $0.00045 (from $0.00038 on paid Apify plans) | One product row saved to the dataset. | | Store page read | $0.003 | One search, category or product page read from Woolworths, Coles or Aldi, including a product link the store reports as not found. Blocked or failed requests are not charged. | - One product: about $0.0024. - 1,000 products: about $0.45. - Every day 100 products, for 30 days: about $1.41 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/au-supermarket-prices?fpr=cliqto ## Questions ### Are these my local store prices? No. Prices for one branch or postcode are not collected. ### Does it include loyalty prices? No. Flybuys and Everyday Rewards prices are not included. ### Does it cover IGA? No. Only Coles, Woolworths and Aldi Australia. ### Can I get nutrition facts? No. Nutrition, ingredients and descriptions are not collected. ### Do I need a store account or API key? No. The Actor reads public pages. You only need an Apify account. ### Can I get price history? Each run gives the current prices. Schedule the same input and keep the datasets to build your own history. ### Why is the same product in two rows? You searched for two terms and the product matched both. Each search keeps its own rows. Remove duplicates by `store` + `productId` if you need one row per product. ## Data fields - `store` (string): woolworths, coles or aldi. - `productId` (string): The store's own product ID (stockcode or SKU). - `name` (string): Product name as the store shows it. - `brand` (string): Brand, such as Big M. - `size` (string): Pack size, such as 3L or 800g. - `price` (number): Current price in AUD. - `wasPrice` (number): Price before the discount. Only when the product is on special. - `savings` (number): wasPrice minus price. - `unitPrice` (number): Price per comparison unit. - `unitOfMeasure` (string): Comparison unit, such as 1L, 1kg or 100g. - `unitPriceText` (string): Unit price as the store shows it, such as $1.65 / 1L. - `onSpecial` (boolean): true when the product is discounted or on a multi-buy offer. - `promoText` (string): Offer text, such as Save $0.45 or Pick any 3 for $7.50. - `category` (string): Store category, such as Dairy, Eggs & Fridge > Milk. - `inStock` (boolean): Online availability. Always null for Aldi, because Aldi does not sell online. - `isSponsored` (boolean): true for a paid (sponsored) position in search results. - `barcode` (string): GTIN barcode. Woolworths shows it; Coles and Aldi usually do not. - `url` (string): Product page link. - `image` (string): Product image link. - `currency` (string): Always AUD. - `sourceType` (string): search, category or product: the input that gave this row. - `query` (string): The search term, for search rows. - `sourceUrl` (string): The category or product link, for those rows. - `position` (integer): Place in the store's results (before the specials filter). - `fetchedAt` (string): Time the row was read, ISO UTC. ## Input settings - `searchTerms` (array): Products to search for, e.g. milk, coffee pods or Tim Tam. Each term is searched in every store picked below. Up to 50 terms. - `stores` (array): Supermarkets to search. Category and product URLs always go to the store they belong to. Default: all three. - `maxItems` (integer): How many products to save for each search term in each store, and for each category URL. Product URLs always return one product each. - `onlyOnSpecial` (boolean): Keep only products that are discounted or on a multi-buy offer. Applies to searches and categories, not to product URLs. Reads up to 25 store pages per search or category to find specials; each page read is charged. - `categoryUrls` (array): Category pages copied from the store website, e.g. https://www.coles.com.au/browse/dairy-eggs-fridge/milk, https://www.woolworths.com.au/shop/browse/dairy-eggs-fridge/milk or https://www.aldi.com.au/products/dairy-eggs-fridge/milk/k/1111111160. Coles https://www.coles.com.au/on-special also works. Up to 50. - `productUrls` (array): Product pages copied from the store website, e.g. https://www.woolworths.com.au/shop/productdetails/888140/... or https://www.coles.com.au/product/coles-full-cream-milk-3l-8150288. Up to 500. ## Step by step on Apify 1. Open the Input tab. 2. Keep Search terms as `milk` and Stores as `Woolworths` (the prefill). 3. Keep Max products per search or category at `20`. 4. Click Start. 5. Open the Prices view of the dataset. Check `store`, `name`, `price` and `unitPriceText`. ## Use cases | Task | Input | Key fields | Next step | |---|---|---|---| | Compare three supermarkets | `searchTerms` + all three `stores` | `store`, `price`, `unitPrice`, `unitOfMeasure` | Sort by `unitPrice` in a spreadsheet | | Track specials in a category | `categoryUrls` + `onlyOnSpecial: true` | `price`, `wasPrice`, `savings`, `promoText` | Schedule a daily run | | Watch a fixed product list | `productUrls` | `productId`, `price`, `onSpecial`, `inStock` | Compare rows from each run by `store` + `productId` | | Feed a price app or dashboard | Any mode | `name`, `brand`, `size`, `image`, `url` | Read the dataset by API | ## Tips - Sort by unit price for a fair comparison between pack sizes. - Use search terms when you can. Product links are slower, about 1 second each. - Schedule the same input daily to build your own price history. ## Limits Data comes from the public websites of Woolworths, Coles and Aldi Australia. Their website terms limit automated access and commercial use of their content. You are responsible for checking that your use of the data is allowed. This Actor is an independent tool. It is not made by or endorsed by Woolworths, Coles or Aldi. - Online prices. Prices are the default online prices of each store. Local store and postcode prices can differ. - Aldi. Aldi does not sell online, so `inStock` is always `null`. Aldi shows few specials on its website, so `wasPrice` and `promoText` are usually `null` and `onlyOnSpecial` often returns no Aldi rows. - Names. Each store writes names its own way. Coles adds the size after a bar, for example `Coles Full Cream Milk | 3L`; the size is also in `size`. - Coles product links. Coles finds a product by the number at the end of the link. If the name part of the link is wrong but the number exists, you get that product. - Sponsored results. Store search results can include paid positions. They are kept and marked with `isSponsored: true`. - Not complete. Store search decides which products match a term. The Actor does not promise every product of a store. - Changes. If a store changes its website, a run can fail with `SOURCE_ERROR` until the Actor is updated. ## Sample result ```json { "store": "coles", "productId": "3034279", "name": "Big M Banana Flavoured Milk | 600mL", "brand": "Big M", "size": "600mL", "price": 3.45, "wasPrice": 3.9, "savings": 0.45, "unitPrice": 5.75, "unitOfMeasure": "1L", "unitPriceText": "$5.75 / 1L", "onSpecial": true, "promoText": "Save $0.45", "category": "Dairy, Eggs & Fridge > Milk", "inStock": false, "isSponsored": false, "barcode": null, "url": "https://www.coles.com.au/product/big-m-banana-flavoured-milk-600ml-3034279", "image": "https://cdn.productimages.coles.com.au/productimages/3/3034279.jpg", "currency": "AUD", "sourceType": "search", "query": "milk", "sourceUrl": null, "position": 15, "fetchedAt": "2026-10-14T11:29:52.330Z" } ``` ## Use it from code Actor ID: `cliqtomedia/au-supermarket-prices` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/au-supermarket-prices").call(run_input={ "searchTerms": [ "milk" ], "stores": [ "woolworths" ] }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~au-supermarket-prices/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"searchTerms": ["milk"], "stores": ["woolworths"]}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/au-supermarket-prices") result = tool.invoke({"run_input": {"searchTerms": ["milk"], "stores": ["woolworths"]}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [Track prices in shops and marketplaces](https://cliqtomedia.com/actors/use-cases/price-monitoring/): Track prices and offers in shops and marketplaces. See changes before your customers do. ## Similar tools - [AliExpress Scraper: Products, Prices & Reviews, No Login](https://cliqtomedia.com/actors/aliexpress-scraper/) - [Idealo Price Scraper: All Shop Offers, 6 Countries, No Login](https://cliqtomedia.com/actors/idealo-price-scraper/) - [Naver Shopping Scraper: Korea Products & Prices](https://cliqtomedia.com/actors/naver-shopping-scraper/) - [Trendyol Scraper: Products, Prices & Reviews (No login)](https://cliqtomedia.com/actors/trendyol-scraper/) - [eBay Sold Listings Scraper - Sold Prices & Dates](https://cliqtomedia.com/actors/ebay-sold-listings/) - [Etsy Listings & Shop Export (Etsy Open API v3)](https://cliqtomedia.com/actors/etsy-listings-api/) --- # Audio and Podcast Transcriber > Podcast transcriber: turn MP3, M4A, WAV or MP4 links or a podcast RSS feed into text with timestamps and SRT or VTT subtitles. No OpenAI key needed. URL: https://cliqtomedia.com/actors/audio-video-transcriber/ Category: Video, audio & streaming · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/audio-video-transcriber?fpr=cliqto Turn audio files or podcast episodes into text. You get timestamps and SRT or VTT subtitles if you want them. No OpenAI key is needed. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `["https://www.archive.org/download/aesop_fables_volume_three…` in Audio or video file URLs. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Podcast and audio transcription with timestamps. Add direct links to MP3, M4A, WAV, OGG, Opus or MP4 files, or a podcast RSS feed, and get the text, plus SRT or VTT subtitles if you want them. - Input: direct media links (`audioUrls`), or a podcast RSS feed or Apple Podcasts show link (`podcastRssUrl`). - Output: the transcript text, timed segments `{start, end, text}`, SRT or WebVTT subtitles, the detected language and the episode details from the feed. - Languages: Whisper detects the spoken language. You can also choose it, or translate the speech to English. - Privacy: the audio is processed inside the run and is not saved to storage. ### Good for - Transcribe the newest episodes of a podcast from its RSS feed. - Make SRT or VTT subtitles for a video file you host. - Turn interviews, lectures and voice notes into searchable text for notes, search or an AI pipeline. ### Not a good fit - No downloads from YouTube, TikTok, Spotify, Instagram or other page links. The link must point straight to a media file (the URL usually ends with `.mp3`, `.m4a`, `.wav`, `.ogg`, `.mp4` and so on). - No speaker labels (who said what). There is one text stream per file. - Live streams are not supported. - Whisper can misspell names and rare words. Check important quotes against the audio. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.01 | Charged once per run, one fee per GB of memory. This tool uses 2 GB by default, so $0.02 per run. | | Transcribed minute (tiny/base) | $0.0098 (from $0.0083 on paid Apify plans) | One started minute of audio transcribed with the tiny or base model, counted per file. Broken links, missing files, web pages and skipped files are not charged. | | Transcribed minute (small model) | $0.032 (from $0.028 on paid Apify plans) | One started minute of audio transcribed with the more accurate small model, counted per file. Broken links, missing files, web pages and skipped files are not charged. | - One minute of audio: about $0.03. - 1,000 minutes of audio: about $9.82. - Every day 100 minutes of audio, for 30 days: about $30.00 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/audio-video-transcriber?fpr=cliqto ## Questions ### Can I paste a YouTube or Spotify link? No. The link must point straight to a media file, like an .mp3 or .mp4. For page links, use our Video URL to Text tool. ### Does it know who is speaking? No. There are no speaker labels. ### Are my files stored? No. The file is transcribed and deleted. Only the text is saved. ### How long can a file be? Up to 180 minutes and 1.5 GB per file. ### Do I need an OpenAI or other API key? No. The Whisper model runs inside the Actor. You only pay the Apify events above. ### Which languages work? Whisper supports about 100 languages. We tested English and Spanish. Quality is best for English and other widely spoken languages; `small` helps for others. ## Data fields - `sourceUrl` (string): Media file URL (as given, or the RSS enclosure URL). - `sourceType` (string): url (from audioUrls), rss_episode (feed episode) or rss_feed (feed-level error row). - `podcastTitle` (string): Podcast name from the RSS feed. - `title` (string): Episode title from the RSS feed. - `publishedAt` (string): Episode publish date from the feed, ISO 8601 UTC. - `episodeGuid` (string): Episode GUID from the feed. - `episodeUrl` (string): Episode web page link from the feed. - `status` (string): complete (whole file), partial (only the first part was transcribed: duration limit, spending cap, time budget or an interrupted download), not_found (HTTP 404/410, feed without audio episodes) or error (see the error field). - `durationSec` (number): Media duration in seconds when known. - `transcribedSec` (number): Seconds of audio transcribed; charged minutes are this value rounded up to whole minutes. - `truncated` (boolean): true when only the first part of the file was transcribed. - `language` (string): Language code used (detected or chosen). - `languageProbability` (number): Confidence of language detection, 0–1. - `task` (string): transcribe or translate. - `model` (string): Whisper model used: tiny, base or small. - `text` (string): Full transcript text. - `wordCount` (integer): Words in text. - `segments` (array): Timed segments {start, end, text} in seconds; null when outputFormat is text. - `subtitles` (string): SRT or WebVTT file content when outputFormat is srt or vtt. - `chargedMinutes` (integer): Minutes charged for this file (0 on errors). - `processingSec` (number): Download, decode and transcription time in seconds. - `error` (object): {code, message}: e.g. NOT_FOUND, UNSUPPORTED_SOURCE, NOT_MEDIA, NO_AUDIO, FILE_TOO_LARGE, DOWNLOAD_TIMEOUT, TOO_SLOW, INVALID_FEED, TRUNCATED (partial), CHARGE_LIMIT, RUN_TIME_LIMIT, ABORTED and SKIPPED_SLOW_SOURCES (file skipped, not charged); null when none. - `fetchedAt` (string): When the row was produced, ISO 8601 UTC. ## Input settings - `audioUrls` (array): Up to 100 public http(s) links straight to a media file: MP3, M4A, WAV, OGG, Opus, MP4 and other common audio and video formats. Page links from YouTube, TikTok, Spotify, Instagram and similar sites are not supported. No login, cookies or private networks; duplicates are processed once. - `podcastRssUrl` (string): Optional. A podcast RSS feed URL, or an Apple Podcasts show link (podcasts.apple.com/.../id123). The newest episodes are transcribed, up to Max episodes. - `maxEpisodes` (integer): How many of the newest feed episodes to transcribe. Used only with a podcast RSS feed. - `model` (string): Whisper model size. tiny and base share one price per minute; small is charged at a higher price per minute. - `language` (string): Spoken language. Detect automatically uses the first 30 seconds; pick the language when you know it for better results. - `outputFormat` (string): Every row has the full text. segments adds a list of {start, end, text}; srt or vtt adds a ready subtitle file in the subtitles field. - `translateToEnglish` (boolean): Return an English translation instead of a transcript in the original language (Whisper translate task). - `maxDurationMinutes` (integer): Only the first N minutes of each file are transcribed and charged; longer files return status partial. Up to 180. ## Step by step on Apify 1. Open the Input tab. 2. In Audio or video URLs (`audioUrls`), keep the example LibriVox file or paste your own direct media link. 3. Keep the defaults: model `base` and output `segments`. 4. Click Start. 5. Open the Transcripts view in the Output tab and read the `text` column. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Podcast show notes and search | `podcastRssUrl` + `maxEpisodes` | one row per episode | `title`, `publishedAt`, `text`, `segments` | send `text` to a summary or search tool | | Subtitles for your video | `audioUrls` + `outputFormat: srt` | one row per file | `subtitles`, `language` | save `subtitles` as a `.srt` file | | Meeting or interview notes | `audioUrls` | one row per file | `text`, `wordCount`, `durationSec` | paste `text` into notes or an AI agent | | English version of foreign audio | `audioUrls` + `translateToEnglish` | one row per file | `text`, `language`, `task` | read or index the English text | ## Tips - Use the podcast RSS feed to get the newest episodes in one go. - Put many files in one run to share the start fee. - Turn on translate to get English text from other languages. ## Limits - Up to 180 minutes per file (`maxDurationMinutes`), up to 100 links and 50 feed episodes per run. - Files up to 1.5 GB. - The default run timeout is 3600 seconds. A 3-hour file with `base` at 2048 MB takes about 38 minutes. For several long files, raise the timeout or the memory. - When the run timeout comes near, the current file is saved as `partial` and the remaining files get `RUN_TIME_LIMIT`. - Partial and failed rows are never charged for audio that was not transcribed. A `partial` row is charged only for the minutes in its `text`. ## Sample result ```json { "sourceUrl": "https://www.archive.org/download/aesop_fables_volume_three_librivox/fables_03_01_aesop_64kb.mp3", "sourceType": "url", "podcastTitle": null, "title": null, "publishedAt": null, "episodeGuid": null, "episodeUrl": null, "status": "complete", "durationSec": 77.95, "transcribedSec": 77.95, "truncated": false, "language": "en", "languageProbability": 0.991, "task": "transcribe", "model": "base", "text": "This is a LibraVox recording. All LibraVox recordings are in the public domain. …", "wordCount": 161, "segments": [ {"start": 0.75, "end": 3.65, "text": "This is a LibraVox recording."}, {"start": 3.65, "end": 6.97, "text": "All LibraVox recordings are in the public domain."} ], "subtitles": null, "chargedMinutes": 2, "processingSec": 7.9, "error": null, "fetchedAt": "2026-10-13T14:43:36Z" } ``` ## Use it from code Actor ID: `cliqtomedia/audio-video-transcriber` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/audio-video-transcriber").call(run_input={ "audioUrls": "[\"https://www.archive.org/download/aesop_fables_volume_three_librivox/fables_03_01_aeso…", "maxEpisodes": 3 }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~audio-video-transcriber/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"audioUrls": "[\"https://www.archive.org/download/aesop_fables_volume_three_librivox/fables_03_01_aeso…", "maxEpisodes": 3}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/audio-video-transcriber") result = tool.invoke({"run_input": {"audioUrls": "[\"https://www.archive.org/download/aesop_fables_volume_three_librivox/fables_03_01_aeso…", "maxEpisodes": 3}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [One piece of content, ten new posts](https://cliqtomedia.com/actors/use-cases/content-repurposing/): Turn videos, podcasts, PDFs and articles into clean text. Make posts, notes and AI drafts from it. ## Similar tools - [YouTube Subtitles & Transcript Scraper API](https://cliqtomedia.com/actors/youtube-transcript-scraper/) - [Apple Podcast Directory & RSS Contacts Scraper](https://cliqtomedia.com/actors/podcast-directory-rss-contacts-scraper/) - [YouTube Comments Scraper](https://cliqtomedia.com/actors/youtube-comments-scraper/) - [Social Video Downloader: TikTok, Instagram, X - No Login](https://cliqtomedia.com/actors/social-video-downloader/) - [YouTube Search Results Scraper — No Login](https://cliqtomedia.com/actors/youtube-search-scraper/) - [Kick Live Streams & Viewer Count (Official API), No Login](https://cliqtomedia.com/actors/kick-channels/) --- # BambooHR Jobs Monitor and Scraper > BambooHR jobs scraper for public career boards: job text, pay, location and apply links. Compare snapshots to find new, changed and removed jobs. URL: https://cliqtomedia.com/actors/bamboohr-jobs-monitor-scraper/ Category: Jobs & hiring · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/bamboohr-jobs-monitor-scraper?fpr=cliqto Add a BambooHR board name. You get its public jobs with text, pay and apply links. Give a past snapshot to see new, changed and removed jobs. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `nycballet` in BambooHR boards. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Read public BambooHR vacancies from company career boards. Get job text, pay, locations and application links. Use a previous complete snapshot to see new, changed and removed jobs. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.06 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Job or change saved | $0.0016 | One unique job or change saved in the default Dataset. Unchanged jobs are not saved in monitor mode. | - One job: about $0.06. - 1,000 jobs: about $1.66. - Every day 100 jobs, for 30 days: about $6.60 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/bamboohr-jobs-monitor-scraper?fpr=cliqto ## Questions ### Do I need a BambooHR login? No. It reads public vacancies only. ### Can I get salary as numbers? No. Pay text is kept as the employer wrote it. ### Do custom career domains work? No. Only boards on bamboohr.com are supported. ### How many boards per run? Up to 3 boards per run. ### Can I get numeric salary ranges? This version preserves the compensation text. Numeric salary fields are null because the source returns free text. ### Can I paste a full job URL? Yes, a supported HTTPS BambooHR URL selects that whole board. It is not a single-job input. Add a title filter if needed. ### Can I use a snapshot from another scraper? No. Use a complete SNAPSHOT from this Actor and the same scope. The ID contains the board to avoid job ID collisions across employers. ## Data fields - `schemaVersion` (string) - `id` (string) - `source` (string) - `market` (string) - `sourceJobId` (string) - `url` (string) - `title` (string) - `company` (object) - `advertiser` (object) - `location` (object) - `workArrangement` (string) - `employmentTypes` (array) - `salary` (object) - `classifications` (array) - `teaser` (string) - `bulletPoints` (array) - `postedAt` (string) - `updatedAt` (string) - `expiresAt` (string) - `isPromoted` (boolean) - `description` (object) - `changeType` (string) - `firstSeenAt` (string) - `board` (string) - `department` (string) - `employmentStatus` (string) - `compensation` (string) - `datePosted` (string) - `minimumExperience` (string) - `status` (string) - `detailStatus` (string) - `contentHash` (string) - `scrapedAt` (string) ## Input settings - `boards` (array, required): Add 1–3 company slugs or public HTTPS BambooHR URLs. Duplicate boards are read once. Start with nycballet. - `maxResults` (integer): Save 1–44 rows. Default 44. A smaller value limits output after scanning and makes a truncated run partial. Keep 44 for a complete monitor snapshot. - `includeDescription` (boolean): Default on. Details are always read for country, pay and posted date. Off returns null description text and HTML; it does not reduce requests. - `previousSnapshot` (object): Optional: paste the full SNAPSHOT object from the last complete run with the same boards and filters. Then only NEW, CHANGED and REMOVED jobs are saved. No default. Do not use a partial snapshot. - `keywords` (array): Optional text contained in title, ignoring case. Any entry can match. All filter groups must match. Default empty, max 10 entries of 1–80 characters. Filters do not reduce full scan cost. - `locations` (array): Optional text contained in city, region, country or remote/hybrid/on_site, ignoring case. Any entry can match. All filter groups must match. Default empty, max 10 entries of 1–80 characters. Filters do not reduce full scan cost. - `departments` (array): Optional text contained in department, ignoring case. Any entry can match. All filter groups must match. Default empty, max 10 entries of 1–80 characters. Filters do not reduce full scan cost. ## Step by step on Apify 1. Open Input. 2. Add `nycballet` to BambooHR boards (`boards`). 3. Keep `maxResults: 44` and `includeDescription: true`. 4. Use 256 MB memory and a 150-second timeout. Click Start. 5. Open the Dataset. Check `title`, `compensation`, `location.country` and `url`. 6. Open `RUN_SUMMARY` in the Key-value store. Check `status: complete`. ## Use cases | Goal | Input | Key fields | |---|---|---| | Keep a company job feed | boards | id, title, department, url | | Review hiring by location | boards, locations | location, employmentStatus, compensation | | Track hiring changes | boards, previousSnapshot | changeType, id, contentHash, firstSeenAt | ## Tips - Use the company.bamboohr.com name. A main website URL is not enough. - Save a complete snapshot. Removed jobs are shown only after a complete scan. - Check RUN_SUMMARY even when the run says succeeded. ## Limits - Public BambooHR company boards only. Custom domains and private jobs are not supported. - Up to 3 board inputs, 44 jobs with details, and 44 saved rows per run. The checked maximum was 44 current jobs from 3 boards. This is not a claim of 1000-row capacity. - Use 256 or 512 MB and a finite positive timeout. A 300-second Store test or larger outer timeout is supported without extending the internal source deadline. Defaults are 256 MB and 150 seconds. Restarts and resurrected runs are rejected. - Source work has a 120-second deadline, 150 request attempts, a 2 MiB response limit and a 16 MiB total response-body limit. Requests are sequential, at least one second apart. Temporary failures have up to two retries. - The source is a public web endpoint, not a guaranteed official API. Source changes, access blocks and temporary errors can stop a scan. - `complete`: full valid scan, including a valid zero-job board. `partial`: some data exists but a board, detail, output cap or source limit prevented completeness. `not_found`: all requested boards were confirmed missing. `error`: invalid input or technical failure without a successful board. - A detail failure keeps the list fields in a partial row; country, pay, date and text may be missing. A source error never means a successful zero-job scan. - Check RUN_SUMMARY even when the platform reports SUCCEEDED. Partial runs may finish with that platform status. An error outcome exits with a failure code. ## Sample result ```json { "schemaVersion": "bamboohr.job.v1", "id": "bamboohr:nycballet:160", "source": "bamboohr", "market": "global", "sourceJobId": "160", "url": "https://nycballet.bamboohr.com/careers/160", "title": "Chief Technology Officer (CTO)", "company": { "name": "nycballet", "sourceCompanyId": "nycballet", "url": "https://nycballet.bamboohr.com/careers" }, "advertiser": { "name": "nycballet", "sourceAdvertiserId": "nycballet" }, "location": { "raw": "New York, New York", "suburb": null, "city": "New York", "region": "New York", "postcode": "10023", "country": "US" }, "workArrangement": "hybrid", "employmentTypes": [ "full_time" ], "salary": { "raw": "$220K - $240K", "min": null, "max": null, "currency": null, "period": null, "includesSuper": null }, "classifications": [ { "category": "Information Technology", "subcategory": null } ], "teaser": null, "bulletPoints": [], "postedAt": "2026-03-30T00:00:00.000Z", "updatedAt": null, "expiresAt": null, "isPromoted": false, "description": { "text": "New York City Ballet is one of the foremost dance companies in the world, with a roster of spectacular dancers and an unparalleled repertory. Founded in 1948 by George Balanchine and Lincoln Kirstein, New York City Ballet quickly became world-renowned for its athletic and contemporary style. Widely acknowledged for its enduring contributions to dance, New York City Ballet is committed to promoting creative excellence and nurturing a new generation of dancers and choreographers. The School of American Ballet is the official training academy of the New York City Ballet.\n\n \n\nPosition Summary\n\nReporting to the Chief Financial Officer (CFO), the Chief Technology Officer (CTO) provides strategic leadership, vision, and management of all technology initiatives across the organization. The CTO ensures that technology systems, data practices, and digital infrastructure advance the institution’s mission, organizational efficiency, and long‑term sustainability. This role partners closely with all divisions of the organization to support key operational functions, including database management for fundraising, donor engagement, and ticket sales, in addition to audit and compliance reporting. The CTO leads a seven-person technology department, including supervision of the Director of Technology Infrastructure.\n\n\n\n\n\nKey Responsibilities:\n\nStrategic Leadership & Planning\n\n * Provide thought leadership on digital transformation, data governance, cybersecurity, and emerging technologies relevant to nonprofits and cultural institutions.\n * Work with the executive team to ensure technology supports growth and innovation.\n\nTechnology Operations & Infrastructure\n\n * Oversee the maintenance, security, and performance of all IT systems, networks, and hardware to ensure reliability across the entire organization.\n * Lead enterprise-wide upgrades, cloud migrations, and modernization efforts to improve efficiency and reduce technical debt.\n * Establish and enforce cybersecurity protocols, data protection policies, disaster recovery planning, and compliance with relevant regulations (e.g., PCI‑DSS for ticketing and donations, NY privacy laws).\n\nTeam Leadership & Project Management\n\n * Manage, mentor, and develop the IT department, building a strong service-oriented culture with clear priorities and accountability.\n * Create project management structures to ensure timely and successful delivery of technology initiatives.\n * Foster cross-departmental collaboration and build strong working relationships with internal stakeholders.\n\nFundraising & Ticketing Systems\n\n * Oversee technology platforms that support fundraising, ticket sales, membership, and donor stewardship (e.g., CRM, ticketing platforms, payment processing).\n * Ensure seamless integration and data flow between systems used by Development, Finance, and Marketing.\n * Partner with leadership to optimize donor data practices, reporting, segmentation, and digital fundraising capabilities.\n\nDigital Engagement & Innovation\n\n * Support digital initiatives such as online ticketing, web platforms, mobile experiences, virtual programming, and digital accessibility tools.\n * Identify opportunities to enhance patron engagement and improve the customer journey through technology.\n * Stay current with trends in digital user experience, cultural institution technology, and nonprofit enterprise tools.\n\nVendor & Budget Management\n\n * Manage relationships with external vendors, consultants, and managed service providers.\n * Develop and oversee the IT budget, ensuring cost‑effective decision‑making and transparency.\n * Negotiate contracts, service-level agreements, and technology purchases.\n\n\n\n\n\nQualifications:\n\n * Ten (10) years of progressive leadership experience in IT, including at least 8 years managing diverse teams.\n * Bachelor’s degree required, advanced degree in computer science, information systems, cybersecurity, or a related field preferred.\n * Strategic thinker with the ability to simplify complexity and make informed decisions.\n * Comfortable navigating change and leading teams through growth and transformation.\n * Excellent communication skills and a collaborative approach to leadership; with the ability to balance strategic vision with hands-on operational management.\n * Experience in nonprofit, cultural, or mission-driven organizations strongly preferred.\n * Demonstrated success overseeing enterprise systems in multi-department organizations of similar size.\n * Expertise in CRM and ticketing systems (e.g., Tessitura, Salesforce, Blackbaud, or equivalent).\n * Strong background in IT operations, cloud environments, data governance, cybersecurity, and digital transformation.\n * Deep understanding of cybersecurity frameworks, standards, and best practices; Demonstrated ability to design and implement cybersecurity policies, training programs, and risk‑mitigation strategies.\n * Experience with threat detection, vulnerability management, and incident response planning.\n * Knowledge of identity and access management (IAM), multi-factor authentication, and endpoint security.\n * Hands-on experience with security monitoring tools, SIEM solutions, encryption, and network security architecture.\n * Familiarity with compliance requirements including PCI‑DSS, data privacy laws, and safeguarding payment and donor information.\n * Empathetic leader who builds trust and fosters inclusivity.\n\n \n\nOther Duties:\n\nPlease note that this job description is not designed to cover or contain a comprehensive list of activities, duties or responsibilities that are required of the employee for this job. Duties, responsibilities and activities may change at any time with or without notice.\n\n \n\nEEO Statement\n\nNew York City Ballet is proud to be an equal opportunity employer committed to diversity and inclusion in all aspects of recruiting and employment. All qualified individuals are encouraged to apply and will receive consideration without regard to race, color, religion, age, national origin, sex, sexual orientation, gender identity or expression, marital status, citizenship status, disability, pregnancy, creed, genetic predisposition or carrier status, military status or veteran status, status as a victim of domestic violence, unemployment status, familial status, sexual violence or stalking victim status, caregiver status, arrest or conviction record to the extent required by applicable law, credit history or any other characteristic protected by law.\n\n \n\nOur Commitment to Diversity, Equity, and Inclusion\n\nNew York City Ballet, one of the foremost ballet companies in the world, pursues the highest levels of artistic excellence and innovation. Therefore, we seek to attract, retain, and cultivate the most talented dancers, musicians, designers, stage technicians, and arts administrators. To this end, we are deeply committed to creating and sustaining an organizational culture that values and reflects inclusion, equity and access for all. We are inspired by our founders, George Balanchine and Lincoln Kirstein, who envisioned an authentically American expression of ballet with a company that reflects the rich cultural diversity of this nation. In pursuit of their vision, we are committed to all by educating, developing, and supporting an organization that welcomes and amplifies the voices and lived experiences of everyone. ", "html": "
New York City Ballet is one of the foremost dance companies in the world, with a roster of spectacular dancers and an unparalleled repertory. Founded in 1948 by George Balanchine and Lincoln Kirstein, New York City Ballet quickly became world-renowned for its athletic and contemporary style. Widely acknowledged for its enduring contributions to dance, New York City Ballet is committed to promoting creative excellence and nurturing a new generation of dancers and choreographers. The School of American Ballet is the official training academy of the New York City Ballet.
\n\n
Position Summary
\nReporting to the Chief Financial Officer (CFO), the Chief Technology Officer (CTO) provides strategic leadership, vision, and management of all technology initiatives across the organization. The CTO ensures that technology systems, data practices, and digital infrastructure advance the institution’s mission, organizational efficiency, and long‑term sustainability. This role partners closely with all divisions of the organization to support key operational functions, including database management for fundraising, donor engagement, and ticket sales, in addition to audit and compliance reporting. The CTO leads a seven-person technology department, including supervision of the Director of Technology Infrastructure.
Key Responsibilities:
\nStrategic Leadership & Planning
\nTechnology Operations & Infrastructure
\nTeam Leadership & Project Management
\nFundraising & Ticketing Systems
\nDigital Engagement & Innovation
\nVendor & Budget Management
\nQualifications:
\n\n
Other Duties:
\nPlease note that this job description is not designed to cover or contain a comprehensive list of activities, duties or responsibilities that are required of the employee for this job. Duties, responsibilities and activities may change at any time with or without notice.
\n\n
EEO Statement
\nNew York City Ballet is proud to be an equal opportunity employer committed to diversity and inclusion in all aspects of recruiting and employment. All qualified individuals are encouraged to apply and will receive consideration without regard to race, color, religion, age, national origin, sex, sexual orientation, gender identity or expression, marital status, citizenship status, disability, pregnancy, creed, genetic predisposition or carrier status, military status or veteran status, status as a victim of domestic violence, unemployment status, familial status, sexual violence or stalking victim status, caregiver status, arrest or conviction record to the extent required by applicable law, credit history or any other characteristic protected by law.
\n\n
Our Commitment to Diversity, Equity, and Inclusion
\nNew York City Ballet, one of the foremost ballet companies in the world, pursues the highest levels of artistic excellence and innovation. Therefore, we seek to attract, retain, and cultivate the most talented dancers, musicians, designers, stage technicians, and arts administrators. To this end, we are deeply committed to creating and sustaining an organizational culture that values and reflects inclusion, equity and access for all. We are inspired by our founders, George Balanchine and Lincoln Kirstein, who envisioned an authentically American expression of ballet with a company that reflects the rich cultural diversity of this nation. In pursuit of their vision, we are committed to all by educating, developing, and supporting an organization that welcomes and amplifies the voices and lived experiences of everyone.
", "contactsRedacted": true }, "changeType": null, "firstSeenAt": "2026-10-03T16:40:54.050Z", "board": "nycballet", "department": "Information Technology", "employmentStatus": "Full-Time", "compensation": "$220K - $240K" } ``` ## Use it from code Actor ID: `cliqtomedia/bamboohr-jobs-monitor-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/bamboohr-jobs-monitor-scraper").call(run_input={ "boards": [ "nycballet" ], "maxResults": 44 }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~bamboohr-jobs-monitor-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"boards": ["nycballet"], "maxResults": 44}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/bamboohr-jobs-monitor-scraper") result = tool.invoke({"run_input": {"boards": ["nycballet"], "maxResults": 44}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Similar tools - [Greenhouse Jobs Monitor & Scraper](https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/) - [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/) - [Wellfound Jobs Scraper](https://cliqtomedia.com/actors/wellfound-jobs-scraper/) - [Ashby Jobs Scraper](https://cliqtomedia.com/actors/ashby-jobs-scraper/) - [Recruitee Job Snapshots & Changes](https://cliqtomedia.com/actors/recruitee-jobs-monitor-scraper/) - [SmartRecruiters Jobs Monitor & Scraper](https://cliqtomedia.com/actors/smartrecruiters-jobs-monitor-scraper/) --- # Bilibili Scraper: Videos, Comments and Creators > Bilibili scraper: get video stats, up to 2,000 comments per video and creator profiles. Views, likes, coins and danmaku count. No login needed. URL: https://cliqtomedia.com/actors/bilibili-scraper/ Category: Social media & communities · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/bilibili-scraper?fpr=cliqto Get public Bilibili data in clean rows. Search videos, read video stats, collect comments or check creators. No Bilibili account is needed. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `AI` in Search keywords. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Scrape public Bilibili data with no login. Search videos by keyword, get full stats for video links, collect up to 2,000 root comments per video, or read creator profiles and their latest videos. Each item is one clean row with views, likes, coins, favorites, danmaku, tags and more. A typical run with 20 rows takes about 5 seconds and costs $0.062 on the Free plan. ### Data you get - Videos: BV ID, av ID, title, URL, description, cover image, duration, publish time, author name and ID, views, likes, coins, favorites, shares, danmaku count, comment count, tags and category. - Comments: comment ID, text, likes, reply count, user name, user ID, user level, created time, pinned flag and the video it belongs to. - Creators: user ID, name, profile URL, public bio, level, followers, following, video count, total likes, official title and avatar URL. - Status: one free row that lists inputs that were not found, invalid, duplicate or failed, with a reason for each. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.006 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Data row | $0.0028 (from $0.0024 on paid Apify plans) | Charged for each saved video, comment or creator row. The status row is free. | - One row: about $0.0088. - 1,000 rows: about $2.81. - Every day 100 rows, for 30 days: about $8.58 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/bilibili-scraper?fpr=cliqto ## Questions ### Can I get replies to comments? No. You get root comments and the danmaku count only. ### Why do I get fewer search results than I asked for? Bilibili had fewer results, or it reached its limit of 1,000 results. ### Do I need to add my cookies? No. The tool uses public guest access. Please do not add cookies. ### Do I need a Bilibili account or cookies? No. The Actor uses public guest access. Do not add your cookies. ### Are BV and av IDs both supported? Yes. `BV1xx411c7mD`, `av2` and the full link point to the same video, and the Actor saves and charges it once. ### Why did a search return fewer rows than `maxItems`? Bilibili had fewer results for that keyword, or it reached its limit of 1,000 results. ### Is the data the same as on the website? Yes, it comes from the same public data. Counters change quickly, so values can differ a little minutes later. ## Input settings - `mode` (string, required): search: videos for keywords. video: details for video links. comments: root comments of videos. user: creator profiles and their latest videos. - `keywords` (array): Used in search mode. Up to 20 keywords, Chinese or English. Bilibili serves at most 1,000 results per keyword. - `videoUrls` (array): Used in video and comments modes. Up to 50 entries in video mode and 25 in comments mode: https://www.bilibili.com/video/BV…, BV1xx411c7mD, av170001 or 170001. Short b23.tv links are not supported. - `userIds` (array): Used in user mode. Up to 50 numeric user IDs (mid) or https://space.bilibili.com/apify actor, language:python stars:>1000, topic:scraper pushed:>2026-01-01, org:apify. Users: location:berlin language:rust, followers:>500 type:user, type:org location:paris. Max 256 characters.
- `sort` (string): best-match is GitHub's default relevance order. Repositories: stars, forks, updated, help-wanted-issues. Users: followers, repositories, joined. A sort that does not fit the mode is rejected.
- `order` (string): Direction for the chosen sort. Ignored for best match.
- `maxItems` (integer): How many results to save, 1–1,000. GitHub serves at most the first 1,000 matches of any query; split a larger search into narrower queries (for example by created: or stars: ranges).
- `includeUserDetails` (boolean): Users mode: add name, company, location, bio, followers and public repo counts to each user. Without a token, GitHub allows 60 profile lookups per hour per IP; after that the Actor uses github.com user search, which fills name, location, bio, followers and repo counts but not company (detailsStatus "partial"). Turn off for the fastest login-only list.
- `githubToken` (string): Optional personal access token with no scopes (read-only public data). Raises GitHub limits to 30 searches per minute and 5,000 profile lookups per hour, so every user gets full details. Stored encrypted, never logged or saved to output.
## Step by step on Apify
1. Open the Input tab.
2. Keep What to search (`mode`) as `repositories`.
3. Keep the prefilled Search query (`query`) `apify actor`, or type your own query.
4. Keep Max results (`maxItems`) at the prefilled `10`.
5. Click Start.
6. Open the Repositories view of the Dataset.
## Use cases
| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Find popular projects for a topic | `mode=repositories`, `query`, `sort=stars` | Repository | `fullName`, `stars`, `language`, `topics` | Export to CSV or Google Sheets |
| Watch recent activity in a niche | `query` with `pushed:>YYYY-MM-DD`, `sort=updated` | Repository | `fullName`, `pushedAt`, `isArchived` | Schedule the run and compare Datasets |
| Build a list of public developer profiles | `mode=users`, `query` with `location:` and `language:`, `sort=followers` | User | `login`, `name`, `location`, `company`, `followers` | Your CRM or spreadsheet |
## Tips
- Add a date like pushed:>2026-01-01 to find active repositories.
- GitHub gives up to 1,000 results per query. Split big topics by language or date.
- Add your own token if you search many users. It gives you your own quota.
## Limits
- A failed run (for example a broken query) costs only the start.
- Every saved user row is charged once, whatever its `detailsStatus`.
- Set Maximum cost per run in the run options to cap the cost. The Actor stops when the next row would go over it and saves what fits.
- The default run timeout is 300 seconds. The Actor stops searching and saving at about 240 seconds so that the run ends cleanly.
- `maxItems` is 1–1000. Users mode was tested up to 500 rows in one run without a token.
- GitHub sometimes asks the shared Apify IP to slow down (a "secondary rate limit"). The Actor then waits about a minute and continues. Your cost does not change: you pay per saved row, not per second.
- Without a token, GitHub allows about 10 searches per minute (100 results each) and about 60 full profile lookups per hour for the shared IP. GitHub documents higher limits for requests made with a token.
## Sample result
```json
{
"type": "repository",
"query": "apify actor",
"rank": 5,
"id": 117851913,
"fullName": "apify/apify-cli",
"name": "apify-cli",
"owner": "apify",
"ownerType": "Organization",
"url": "https://github.com/apify/apify-cli",
"description": "Apify command-line interface helps you create, develop, build and run Apify Actors, and manage the Apify cloud platform.",
"homepage": "https://docs.apify.com/cli",
"stars": 259,
"forks": 69,
"openIssues": 176,
"watchers": 259,
"language": "TypeScript",
"topics": ["apify", "command-line", "hacktoberfest", "headless-chrome", "puppeteer", "serveless"],
"license": "Apache-2.0",
"licenseName": "Apache License 2.0",
"isFork": false,
"isArchived": false,
"isTemplate": false,
"defaultBranch": "master",
"sizeKb": 20339,
"createdAt": "2018-01-17T15:05:58Z",
"updatedAt": "2026-10-14T22:40:34Z",
"pushedAt": "2026-10-16T20:23:39Z",
"source": "GitHub REST API (api.github.com)",
"fetchedAt": "2026-10-17T11:42:29.711Z"
}
```
## Similar tools
- [GitHub Releases Monitor & Scraper](https://cliqtomedia.com/actors/github-releases-monitor-scraper/)
- [Link Route Audit — Bulk HTTP Status & Redirects](https://cliqtomedia.com/actors/bulk-url-status-redirect-checker/)
- [Software End-of-Life Checker](https://cliqtomedia.com/actors/software-end-of-life-checker/)
- [Dependency Vulnerability Scanner (OSV)](https://cliqtomedia.com/actors/osv-dependency-vulnerability-scanner/)
- [OpenAPI Catalog & Breaking Change Detector](https://cliqtomedia.com/actors/openapi-spec-catalog-diff/)
- [SSL Certificate Checker: Expiry, Chain & CT, No Login](https://cliqtomedia.com/actors/ssl-certificate-inspector/)
---
# GoHire Jobs Monitor and Scraper
> GoHire jobs scraper for known companies: full job descriptions, locations, salary as shown and job links. Compare snapshots to see new and removed jobs.
URL: https://cliqtomedia.com/actors/gohire-jobs-monitor-scraper/
Category: Jobs & hiring · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/gohire-jobs-monitor-scraper?fpr=cliqto
Add up to 4 GoHire companies and get their public jobs with full descriptions. Compare with a past run to see new, updated and removed jobs. No GoHire login needed.
## How to use it: 3 steps
1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `dexerto-de5jlhjo` in Known GoHire companies. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.
## What it does
Read public GoHire jobs from companies you already know. Get job descriptions, locations, salaries as shown by the source, and job links. Compare full board snapshots to find new, updated and removed jobs.
## Price
Pay per event. Apify bills you, not us.
| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.042 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Current job saved | $0.0004 | One unique matching current job saved to the default Dataset. Snapshots and changes are included. |
- One job: about $0.04.
- 1,000 jobs: about $0.44.
- Every day 100 jobs, for 30 days: about $2.46 a month.
Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.
Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/gohire-jobs-monitor-scraper?fpr=cliqto
## Questions
### Do I need a GoHire account?
No. It reads public job boards without a login or key.
### Does a title filter change the snapshot?
No. The filter changes the dataset only. The snapshot keeps the full list.
### Can it find companies by name?
No. You give the company boards you already know.
### Does no output mean no cost?
No. Each run has a start fee, even with no jobs.
### Does an unchanged monitor return no rows?
No. It returns current matching jobs with `change: "unchanged"`. The comparison record contains no changes. Saved current rows still have their row charge.
### Is this a drop-in copy of a multi-ATS jobs API?
No. It provides a small set of source-backed GoHire fields. It does not provide inferred or enriched multi-ATS fields. Map your consumer to the fields listed above.
## Input settings
- `companies` (array, required): Add 1–4 hosted HTTPS board URLs, board slugs or public 8-character client hashes. Duplicate hashes are read once. No company discovery.
- `maxResults` (integer): Save up to 37 matching jobs. The full source scan still runs. A lower cap gives partial output if matching jobs remain.
- `titleIncludes` (array): Optional 1–80 character phrases. Case-insensitive substring OR. Filters apply after the full scan. Omit for all titles.
- `previousSnapshotRunId` (string): Optional 17-character run ID from this Actor and your account. Reads its SNAPSHOT. Compare only boards complete in both runs. First run creates a baseline.
## Step by step on Apify
1. Open Input.
2. Put `dexerto-de5jlhjo` in Known GoHire companies (`companies`).
3. Keep `maxResults` at 37. Leave the title filter and previous run ID empty.
4. Click Start with 256 MB and a 210-second timeout.
5. Open Dataset. Check `jobId`, `title`, `companyName`, `description` and `url`.
6. Open Key-value store → `RUN_SUMMARY`. Check `status` and the per-company `complete` flag.
## Use cases
| Task | Input | Result to use |
|---|---|---|
| Add known employers to a job board | `companies` | `jobKey`, `title`, `description`, `url` |
| Watch technical roles | `titleIncludes: ["engineer"]` | Matching current rows; keep the unfiltered snapshot |
| Track new or changed roles | `previousSnapshotRunId` | `CHANGES` with stable job keys and changed fields |
| Remove closed roles from your own list | Compare complete snapshots | `removed` records in `CHANGES`; do not treat skipped boards as removed |
## Tips
- Use the board name from the jobs.gohire.io address.
- Add a past run ID to compare. The first run makes the baseline.
- Keep the old run's storage. Deleted runs cannot be compared.
## Limits
- Only public hosted GoHire boards are supported. Custom domains, candidate data and registration are outside this Actor's scope.
- Provide known board URLs, slugs or client hashes. There is no company discovery or global keyword search.
- Details may be missing or change during a scan. The source is not frozen at one instant. Fetch time is not the employer's update time.
- Descriptions are limited to 60,000 HTML characters. A cut description is partial. Scripts, styles and unsafe HTML are removed.
- A title filter does not save requests. `maxResults` limits saved jobs, not the full scan.
- Only complete boards on both sides produce differences. A new board not present in the prior snapshot is `not_compared`; rerun it without a prior ID to make a baseline.
- A hard abort can stop before the terminal KVS records are written. Check run status and saved rows before you use a snapshot.
- No inferred remote status, coordinates, skills, contact details, normalized salary or applicant information is added.
## Sample result
```json
{
"rowType":"job",
"ats":"gohire",
"jobId":"303056",
"jobKey":"gohire:de5jlhjo:303056",
"clientHash":"de5jlhjo",
"companySlug":"dexerto-de5jlhjo",
"companyName":"Dexerto",
"title":"Publisher Success Manager (US)",
"location":"United States",
"city":null,
"region":null,
"country":"United States",
"countryCode":"US",
"employmentType":"Full-time",
"salary":"1 - 999999 USD Per annum",
"datePosted":"02 October, 2026",
"description":"Born from deep roots in gaming media, Omnidex (Part of Dexerto Media Group) was created to give advertisers access to a trusted network of premium publishers...",
"descriptionHtml":"Born from deep roots in gaming media...
", "url":"https://jobs.gohire.io/dexerto-de5jlhjo/publisher-success-manager-us-303056/", "applyUrl":"https://jobs.gohire.io/dexerto-de5jlhjo/publisher-success-manager-us-303056/", "boardUrl":"https://jobs.gohire.io/dexerto-de5jlhjo/", "fetchedAt":"2026-10-04T14:44:33.828Z", "status":"complete", "contentHash":"SHA256 value", "change":"baseline", "changedFields":[] } ``` ## Use it from code Actor ID: `cliqtomedia/gohire-jobs-monitor-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/gohire-jobs-monitor-scraper").call(run_input={ "companies": [ "dexerto-de5jlhjo" ], "maxResults": 37 }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~gohire-jobs-monitor-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"companies": ["dexerto-de5jlhjo"], "maxResults": 37}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/gohire-jobs-monitor-scraper") result = tool.invoke({"run_input": {"companies": ["dexerto-de5jlhjo"], "maxResults": 37}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Similar tools - [Greenhouse Jobs Monitor & Scraper](https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/) - [Wellfound Jobs Scraper](https://cliqtomedia.com/actors/wellfound-jobs-scraper/) - [Ashby Jobs Scraper](https://cliqtomedia.com/actors/ashby-jobs-scraper/) - [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/) - [Recruitee Job Snapshots & Changes](https://cliqtomedia.com/actors/recruitee-jobs-monitor-scraper/) - [SmartRecruiters Jobs Monitor & Scraper](https://cliqtomedia.com/actors/smartrecruiters-jobs-monitor-scraper/) --- # Google Ads Transparency Center Scraper > Google Ads Transparency Center scraper: see competitor ad text, images, YouTube ads, dates and countries. Search by domain or advertiser. No login. URL: https://cliqtomedia.com/actors/google-ads-transparency-scraper/ Category: Search, SEO & ads · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/google-ads-transparency-scraper?fpr=cliqto See which ads a brand runs on Google. Add a domain or advertiser name and get one row per ad. You get the ad text, dates and countries. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `apify.com` in Domains. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Google Ads Transparency Scraper gets the ads that a brand or website runs on Google. Add a domain, an advertiser name or an advertiser ID (AR…), and the Actor returns one row per ad from the public [Google Ads Transparency Center](https://adstransparency.google.com/): ad text, image or YouTube link, first and last shown dates, countries and impression ranges. - Who: advertiser name, advertiser ID (AR…), domain. - What: format (`text`, `image`, `video`), headline, description, display URL, call-to-action, image URL, YouTube link. - When: first shown, last shown, days shown, as reported by Google. - Where and how much: countries where the ad ran, with dates and impression ranges per country, plus a total impression range. - Links: the public Transparency Center page of the ad and the Google preview URL. ### Good for - See which ads a competitor runs on Google right now, and when Google first showed them. - Collect ad copy (headlines and descriptions) of a brand for PPC research. - Check in which countries a brand advertises and how big the reach is. - Save image ads and YouTube ads of a brand for creative research. ### Not a good fit - The Actor shows what Google publishes in the Transparency Center. It does not show clicks, spend, keywords or targeting. - Impressions are ranges from Google (for example 1,000–2,000), not exact numbers. Google does not show them for every ad. - Some text ads exist only as a picture. For them `headline` and `description` are `null`, and `imageUrl` has the picture. - Up to 500 ads per advertiser or domain, and about 600–800 ads per run in total. For more, split the job across several runs. - The Actor does not solve CAPTCHAs. If Google blocks all requests, the run stops with a clear error. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.004 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Ad | $0.0012 (from $0.001 on paid Apify plans) | Charged for each ad row saved to the dataset (complete or partial), with ad text, image/YouTube link, dates and per-country reach included. Not-found and error rows are free. | - One ad: about $0.0052. - 1,000 ads: about $1.40 (50 runs of up to 20). - Every day 100 ads, for 30 days: about $4.20 a month (5 runs a day). - 20 ads once a week (4 runs a month): about $0.11 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/google-ads-transparency-scraper?fpr=cliqto ## Questions ### Can I see how much a competitor spends? No. Google does not publish spend, clicks, keywords or targeting. You get impression ranges where Google shows them. ### Why is the text empty for some ads? Google stores some text ads only as a picture. Then you get the image link instead. ### How many brands can I check at once? Up to 20 domains and advertisers per run, with up to 500 ads each. ### Do I need a Google Ads account? No. The tool reads the public Transparency Center without login or an API key. ### Do I need a Google account or an API key? No. The Actor reads the public Ads Transparency Center pages. No login, cookies or API key. ### Are impressions exact? No. Google shows ranges, for example 1,000–2,000. The Actor returns the lower and upper end. Google does not show impressions for every ad or country; then the values are `null`. ### How fresh is the data? Every run reads the Transparency Center live. `lastShown` tells you when Google last showed the ad. ### Which name match does the Actor use? For a name, it looks for an advertiser whose name has the same whole words (exact name first). It never guesses a different company. For an exact account, use the AR… ID from the advertiser page URL. ## Data fields - `status` (string): Row result: complete, partial (some details missing), not_found (no ads for this input) or error. Only complete and partial rows are charged. - `statusReason` (string): Plain-English reason for partial, not_found or error rows; null when complete. - `errorCode` (string): Machine code for error rows, e.g. SOURCE_BLOCKED, RATE_LIMITED, DEADLINE_REACHED; null otherwise. - `input` (string): Your input value as given (advertiser name, AR… ID or domain). - `inputType` (string): How the input was read: advertiserId, advertiserName or domain. - `advertiserId` (string): Google advertiser ID (AR…). - `advertiserName` (string): Verified advertiser name as shown in the Ads Transparency Center. - `advertiserCountry` (string): Advertiser country (two-letter code) when Google shows it. - `domain` (string): Domain the ad points to, when Google shows it. - `creativeId` (string): Google creative (ad) ID (CR…). - `format` (string): Ad format: text, image or video. - `firstShown` (string): When the ad was first shown (ISO timestamp, from Google). - `lastShown` (string): When the ad was last shown (ISO timestamp, from Google). - `daysShown` (integer): Days shown, as reported by Google. - `regions` (array): Countries where the ad ran: code, name, criteriaId, firstShown, lastShown, impressionsMin, impressionsMax. null when details are off or unavailable. - `impressionsMin` (integer): Lower bound of total impressions Google reports (range, not an exact count). - `impressionsMax` (integer): Upper bound of total impressions Google reports. - `variations` (integer): Number of ad variations Google shows for this creative. - `headline` (string): Text ad headline from the Google ad preview. - `description` (string): Text ad description from the Google ad preview. - `displayUrl` (string): Display URL shown in the text ad. - `callToAction` (string): Call-to-action button text of display ads (e.g. Sign Up), when Google shows it. - `text` (string): Headline and description joined into one string; null when Google has no text for the ad (for example text ads shown only as an image). - `imageUrl` (string): Image URL of the ad: image ads, display ads (main image) and text ads Google renders as an image. - `videoUrl` (string): YouTube link of a video ad. - `creativeUrl` (string): Google preview URL of the creative. - `adUrl` (string): Public Ads Transparency Center page of this ad. - `regionFilter` (string): Region filter used for this row: anywhere or a country code. - `sourceUrl` (string): Ads Transparency Center page for your input. - `fetchedAt` (string): When the Actor read this row (ISO timestamp). ## Input settings - `domains` (array): Website domains whose ads you want, e.g. apify.com. Returns ads of every advertiser that points to the domain. URLs and www. are cleaned up automatically. Up to 20 domains and advertisers in total. - `advertisers` (array): Advertiser names (e.g. Apify Technologies) or advertiser IDs starting with AR (from the advertiser page URL, which you can also paste). A name must match whole words of a Transparency Center advertiser; if nothing matches, you get a free not_found row with the closest names and their AR… IDs. Use the AR… ID to pick an exact account. - `region` (string): Where the ads were shown: "anywhere" (default) or a two-letter country code such as US, GB, DE. - `format` (string): Only text, image or video ads. "all" keeps every format. - `dateFrom` (string): Only ads shown on or after this date (YYYY-MM-DD). Leave empty for no start limit. - `dateTo` (string): Only ads shown on or before this date (YYYY-MM-DD). Leave empty for today. - `maxAds` (integer): Maximum ads returned for each advertiser or domain, 1–500. One run collects about 600–800 ads in total within its ~4.5-minute working time; split bigger jobs across runs. Each ad row is charged; not-found and error rows are free. - `includeDetails` (boolean): Adds the countries where each ad ran, with first/last shown dates and impression ranges per country. Included in the price; turn off only for faster runs. - `includeAdText` (boolean): Reads the headline, description and display URL of text ads and the YouTube link of video ads from the Google ad preview. Included in the price; turn off only for faster runs. - `proxyConfiguration` (object): Apify datacenter proxy by default. If Google blocks it, the Actor switches to Apify residential proxy by itself. Choose your own proxy group or URLs to turn this off. The Actor never solves CAPTCHAs. ## Step by step on Apify 1. Open the Input tab. 2. Keep the prefilled domain `apify.com` in Domains, or add your own domain, for example `shopify.com`. 3. Keep Max ads per advertiser or domain at `20` and Region at `anywhere`. 4. Click Start. 5. Open the Output tab. The Ads view shows advertiser, format, dates, impressions and ad text. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Competitor ad monitoring | `domains` | one row per ad | `headline`, `firstShown`, `lastShown`, `daysShown` | schedule + Google Sheets | | PPC copy research | `domains` or `advertisers`, `format` = `text` | text ad | `headline`, `description`, `displayUrl` | export CSV | | Market and country check | `advertisers` + `region` | ad with regions | `regions`, `impressionsMin`, `impressionsMax` | BI tool via API | | Creative library | `format` = `image` or `video` | image or video ad | `imageUrl`, `videoUrl`, `callToAction` | download images | ## Tips - Use a domain when you do not know the exact advertiser name. - Filter by format to get only text, image or video ads. - Split big jobs into several runs; one run collects about 600 to 800 ads. ## Limits - Up to 20 domains and advertisers per run, up to 500 ads for each. - One run works for about 4.5 minutes and collects about 600–800 ads in total in our tests. If it has more to do, it stops with the ads it has and the summary shows `CAPPED` with `DEADLINE`. Split big jobs into several runs. - A larger run timeout does not make one run collect more. - A row with `status` `partial` is still charged: the ad is there, but some details (for example text or countries) could not be read. `statusReason` says what is missing. - Inputs that were not done when the run stopped get free `error` rows. ## Sample result ```json { "status": "complete", "statusReason": null, "errorCode": null, "input": "apify.com", "inputType": "domain", "advertiserId": "AR04545223091738902529", "advertiserName": "Apify Technologies s.r.o.", "advertiserCountry": null, "domain": "apify.com", "creativeId": "CR12249652250414153729", "format": "text", "firstShown": "2026-07-02T13:54:49.000Z", "lastShown": "2026-10-14T10:26:38.000Z", "daysShown": 105, "regions": [ { "code": "IE", "name": "Ireland", "criteriaId": 2372, "firstShown": "2026-07-03", "lastShown": "2026-10-13", "impressionsMin": 0, "impressionsMax": 1000 }, { "code": "IL", "name": "Israel", "criteriaId": 2376, "firstShown": null, "lastShown": "2026-10-14", "impressionsMin": null, "impressionsMax": null } ], "impressionsMin": 1000, "impressionsMax": 2000, "variations": 1, "headline": "Apify for your AI - Largest marketplace for AI", "description": "Connect Claude, ChatGPT, or Cursor to Apify Store via MCP and put tools to work today.", "displayUrl": "www.apify.com/", "callToAction": null, "text": "Apify for your AI - Largest marketplace for AI — Connect Claude, ChatGPT, or Cursor to Apify Store via MCP and put tools to work today.", "imageUrl": null, "videoUrl": null, "adUrl": "https://adstransparency.google.com/advertiser/AR04545223091738902529/creative/CR12249652250414153729?region=anywhere", "regionFilter": "anywhere", "sourceUrl": "https://adstransparency.google.com/?region=anywhere&domain=apify.com", "fetchedAt": "2026-10-14T11:15:51.596Z" } ``` ## Use it from code Actor ID: `cliqtomedia/google-ads-transparency-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/google-ads-transparency-scraper").call(run_input={ "domains": [ "apify.com" ], "region": "anywhere" }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-ads-transparency-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"domains": ["apify.com"], "region": "anywhere"}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/google-ads-transparency-scraper") result = tool.invoke({"run_input": {"domains": ["apify.com"], "region": "anywhere"}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [Know what your competitors do](https://cliqtomedia.com/actors/use-cases/competitor-monitoring/): See what your competitors launch, hire, change and advertise. Every week, without opening their sites. ## Similar tools - [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/) - [Website Metadata & Open Graph Scraper](https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/) - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) - [XML Sitemap URLs Extractor](https://cliqtomedia.com/actors/xml-sitemap-urls-extractor/) - [Google Images Scraper - Image URLs, Sizes & Source Pages](https://cliqtomedia.com/actors/google-images-scraper/) - [Google News Scraper - Real Article URLs, No Login](https://cliqtomedia.com/actors/google-news-scraper/) --- # Google Autocomplete Keyword Scraper > Google Autocomplete scraper: get live suggestions for your seed keywords by language and country. Add question prefixes. Only $0.05 per 1,000 rows. URL: https://cliqtomedia.com/actors/google-autocomplete-scraper/ Category: Search, SEO & ads · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/google-autocomplete-scraper?fpr=cliqto Get the phrases Google suggests when people start typing. Add seed keywords, pick a language and country, and export the list. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `coffee` in Seed keywords. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Collect live Google Autocomplete suggestions for your seed keywords. Choose a language and country preference. Each saved row shows the suggestion, the Google query that returned it and its position in that response. ### Good for - Find phrases to review when you plan an article or product page. - Compare suggestion lists for the same seed with different language and country preferences. - Export suggestions with their seed and query for your own search interface research. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Saved suggestion | $0.00005 | One unique useful Google Autocomplete suggestion saved to the default Dataset. | | Start fee | $0.001 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | - One suggestion: about $0.001. - 1,000 suggestions: about $0.05. - Every day 100 suggestions, for 30 days: about $0.18 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/google-autocomplete-scraper?fpr=cliqto ## Questions ### Does it show search volume? No. You get suggestions and their position in the list. Search volume, CPC and competition are not included. ### Does it work for non-English keywords? Yes. Cyrillic, accented and other Unicode text is kept. Google may still answer in another language. ### Are country results the same as a local user sees? Not exactly. The country setting is sent to Google, but the IP location does not change. ### Do I need a Google API key? No. You only need an Apify account to start the tool. ### Are these search volumes or Google Search rankings? No. `googleRank` is a position inside an Autocomplete response. Metadata does not provide verified search volume, CPC or competition. ### Are country results exact local results? No. `country` sends `gl`; it does not change IP location. Results can also depend on Google's current behavior. ### Will a repeat run have the same IDs and order? The same saved text and first query/context have the same synthetic ID. Query-plan grouping is deterministic. Google's suggestion text and order can change, and a different first expansion path can change an ID. ### Why did a low row limit still make several requests? The Actor fetches its bounded query plan before saving rows. Lower `maxGeneratedQueries` when you also need fewer source requests. ### Can it monitor changes or expand recursively? It can export repeated snapshots, but it has no built-in delta state, unchanged-result filter or recursive expansion. Compare exported snapshots in your own workflow. ## Data fields - `id` (string) - `suggestion` (string) - `normalizedSuggestion` (string) - `seed` (string) - `normalizedSeed` (string) - `generatedQuery` (string) - `expansionMode` (string) - `expansionToken` (string) - `language` (string) - `country` (string) - `client` (string) - `surface` (string) - `googleRank` (integer) - `sourceUrl` (string) - `sourceRequestId` (string) - `fetchedAt` (string) - `metadata` (object) - `duplicateOf` (string) ## Input settings - `keywords` (array, required): Add 1-100 seed keywords, each up to 120 characters. Spaces are trimmed and repeated spaces are joined. Unicode is kept. Duplicate seeds do not create duplicate saved rows. - `language` (string): Language preference sent as Google hl, such as en, fr, ru or pt-br. This is a preference, not a guarantee that every suggestion uses that language. - `country` (string): Two-letter country preference sent as Google gl, such as us, gb, fr or ru. This does not set the request IP location. - `client` (string): Choose chrome or firefox. They can return different suggestions and metadata. No browser is launched. - `expansionModes` (array): Choose one or more modes. exact sends the seed. alphabet adds a-z; numbers adds 0-9; questions adds your prefixes before the seed. Results are not expanded again. - `questionPrefixes` (array): Used for questions mode. Add 1-20 prefixes of up to 40 characters. Combined queries over 150 characters are skipped and reported. - `maxGeneratedQueries` (integer): Maximum planned Google queries, 1-500. Retries are counted separately. A small result limit does not reduce the query plan. - `maxResults` (integer): Maximum saved unique suggestions, 1-5000. Runtime default is 500; the new form prefill is 100. No result count is guaranteed. - `maxConcurrency` (integer): Maximum simultaneous Google requests, 1-8. Lower it if requests fail. Saved rows keep query plan order. - `requestTimeoutMillis` (integer): Timeout for one Google request in milliseconds. - `maxRetries` (integer): Retries for transient network or server errors. Blocks and bad requests are not retried. - `maxResponseBytes` (integer): Stops parsing if one Google response is larger than this byte limit. - `maxRunTimeSeconds` (integer): Internal source-work limit, 5-300 seconds. Default is 240. A shorter platform timeout also limits source work and reserves time to save results. - `includeRawMetadata` (boolean): Keep metadata returned by Google for each suggestion. Missing metadata is an empty object. Values are undocumented and are not search volume. - `maxChargeUsd` (number): Optional estimated suggestion-event cap in USD. It limits saved rows, not source requests or total platform usage. Also set a maximum cost per run in Apify. ## Step by step on Apify 1. Open Input in Apify Console. 2. For a new form, keep the small prefill: `keywords: ["coffee"]`, `language: "en"`, `country: "us"`, `client: "chrome"`, and `expansionModes: ["exact"]`. 3. Keep `maxResults: 100` for the demo. Set a maximum cost per run in Apify if you need a platform charge cap. 4. Click Start. 5. Open Output → Suggestions or the default Dataset. Check `suggestion`, `seed`, `generatedQuery` and `googleRank`. Open Run summary for empty responses, errors and limits. ## Use cases | Task | Settings | Fields to use | Next step | |---|---|---|---| | Content ideas | `keywords`, `expansionModes: ["exact", "questions"]` | `suggestion`, `generatedQuery`, `expansionToken` | Review phrases in your content plan. | | Locale comparison | Repeat the same `keywords` with different `language` / `country` | `seed`, `language`, `country`, `googleRank`, `fetchedAt` | Compare snapshots; differences are not search-volume measurements. | | Search interface research | `expansionModes: ["exact"]` | `suggestion`, `seed`, `googleRank` | Use the exported list in your own analysis or prototype. | ## Tips - Turn on question prefixes to get what, how and why phrases. - Run the same seeds with two countries to compare lists. - Set a maximum charge if you use many expansion modes. ## Limits ## Sample result ```json { "id": "sug_ea5550cf9d7b9437389da039680feb79", "suggestion": "coffee near me", "normalizedSuggestion": "coffee near me", "seed": "coffee", "normalizedSeed": "coffee", "generatedQuery": "coffee", "expansionMode": "exact", "expansionToken": null, "language": "en", "country": "us", "client": "firefox", "surface": "web", "googleRank": 1, "sourceUrl": "https://suggestqueries.google.com/complete/search?client=firefox&q=%3Credacted%3E&hl=en&gl=us", "sourceRequestId": "req_a11bd8afbabbaa481657418166b901ac", "fetchedAt": "2026-10-08T16:49:44.091Z", "metadata": { "suggestsubtypes": [ 512, 433 ] }, "duplicateOf": null } ``` ## Use it from code Actor ID: `cliqtomedia/google-autocomplete-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/google-autocomplete-scraper").call(run_input={ "keywords": [ "coffee" ], "language": "en" }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-autocomplete-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"keywords": ["coffee"], "language": "en"}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/google-autocomplete-scraper") result = tool.invoke({"run_input": {"keywords": ["coffee"], "language": "en"}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [SEO data without a big suite](https://cliqtomedia.com/actors/use-cases/seo-research/): Collect keyword ideas and check your pages and your rivals' pages. Search results and trends coming soon. ## Similar tools - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) - [XML Sitemap URLs Extractor](https://cliqtomedia.com/actors/xml-sitemap-urls-extractor/) - [Website Metadata & Open Graph Scraper](https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/) - [Google Ads Transparency Scraper - Ad Text, No Login](https://cliqtomedia.com/actors/google-ads-transparency-scraper/) - [Google Images Scraper - Image URLs, Sizes & Source Pages](https://cliqtomedia.com/actors/google-images-scraper/) - [Google News Scraper - Real Article URLs, No Login](https://cliqtomedia.com/actors/google-news-scraper/) --- # Google Flights Scraper for Prices and Times > Google Flights scraper for your route and dates. Get airlines, times, stops, CO2 and exact prices in your currency. One-way or round trip. No login. URL: https://cliqtomedia.com/actors/google-flights-scraper/ Category: Real estate, travel & cars · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/google-flights-scraper?fpr=cliqto Get Google Flights results for a route and dates as a table. Each row is one flight, with price, times and stops. Run it often to see how prices move. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `BKK` in From (airport code). Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Google Flights Scraper searches Google Flights for your route and dates and returns one row per flight: airline, flight numbers, departure and arrival time, duration, stops, layovers, CO₂ and the exact price in your currency. ### Good for - Compare fares and flight times for one route on one or more dates. - Find the cheapest departure day in a short date range. - Collect flight prices on a schedule to see how they change over time. ### Not a good fit - No booking, no booking links and no airline-site prices: the Actor only reads what Google Flights shows on its results page. - No price insights (price level, price history graph) and no multi-city trips. - Round trip: each row is an outbound flight with the round-trip total price, as Google shows it on the first step. Return flights are not listed. - Searches with children or lap infants: on some routes Google does not put the flights into the page and loads them later in the browser. Such a date gets a free `error` row with `SOURCE_INCOMPLETE`. With children, Google can also show fewer flights than for adults only. - Prices change often and can differ from the price on the airline website. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Flight search with results | $0.025 (from $0.014 on paid Apify plans) | One route and date searched on Google Flights that listed flights. Includes every flight row up to maxResults. | | Flight search without results | $0.001 | One route and date searched on Google Flights that listed no flights. Saves one not_found row. Searches that fail are free. | - One result: about $0.03. - 1,000 results: about $25.00. - Every day 100 results, for 30 days: about $75.00 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/google-flights-scraper?fpr=cliqto ## Questions ### Is there an official Google Flights API? No public one. This tool gives you the flight list as data. ### Can I book flights with it? No. It only reads the results page. There are no booking links. ### Is the price the same as the airline price? Not always. It is the price Google Flights shows at that time. ### Does it show return flights? For round trips, each row is an outbound flight with the round-trip total. ### Do I need a Google account, login or API key? No. The Actor reads the public Google Flights results page, without login or cookies. ### Why do I get fewer flights than in my browser? The Actor returns the flights Google puts on the first results page, up to `maxResults`. With children, Google can put fewer flights into the page. Booking options for each flight are not part of the output. ## Data fields - `status` (string): complete (a flight), not_found (Google shows no flights; one row per search) or error. Charges are per search, not per row: a date with flights is one flight-search event, a not_found row is one empty-search event, error rows are free. - `statusReason` (string): Plain-English reason for not_found and error rows; null for flights. - `errorCode` (string): Machine code for error rows, e.g. SOURCE_BLOCKED, DEADLINE_REACHED; null otherwise. - `route` (string): Route as ORIGIN-DESTINATION, e.g. BKK-SIN. - `origin` (string): Departure airport you searched (IATA). - `destination` (string): Arrival airport you searched (IATA). - `tripType` (string): one_way or round_trip. - `departureDate` (string): Searched departure date (YYYY-MM-DD). - `returnDate` (string): Searched return date for round trips; null for one-way. - `cabinClass` (string): Searched cabin class. - `adults` (integer): Adults in the search. - `children` (integer): Children in the search. - `infantsOnLap` (integer): Infants on lap in the search. - `rank` (integer): Position in Google's list for this date, 1 = first. - `isBest` (boolean): True when Google lists the flight among its "best" options. - `airline` (string): Airline name(s) as Google shows them, comma-separated. - `airlines` (array): Airline names. - `airlineCodes` (array): IATA codes of the marketing carriers. - `flightNumbers` (array): Flight numbers of every segment, e.g. ["SQ709"]. - `departureAirport` (string): Departure airport of this flight (IATA). - `arrivalAirport` (string): Arrival airport of this flight (IATA). - `departure` (string): Local departure date and time, YYYY-MM-DDTHH:MM (airport time zone). - `arrival` (string): Local arrival date and time, YYYY-MM-DDTHH:MM (airport time zone). - `durationMin` (integer): Total travel time in minutes, layovers included. - `stops` (integer): Number of stops (0 = nonstop). - `layovers` (array): Layovers: airport, city and duration in minutes. - `segments` (array): Each flown segment: flight number, airports, times, duration, aircraft, legroom. - `price` (number): Total price for all passengers in the given currency (round trip: total for both directions). null when Google shows no price. - `currency` (string): Currency of price (ISO code) as Google returned it. - `emissionsKg` (integer): Google's CO2 estimate for this flight per passenger, kg. - `typicalEmissionsKg` (integer): Google's typical CO2 for this route, kg. - `sourceUrl` (string): Google Flights URL of this search. - `fetchedAt` (string): When the row was fetched (ISO timestamp, UTC). ## Input settings - `origin` (string, required): Departure airport as a 3-letter IATA code, e.g. BKK, JFK, LHR. - `destination` (string, required): Arrival airport as a 3-letter IATA code, e.g. SIN, CDG. - `departureDate` (string, required): YYYY-MM-DD, or +N for N days from today (e.g. +30). Up to about 330 days ahead. - `returnDate` (string): Leave empty for one-way. YYYY-MM-DD or +N. For a round trip, each row is an outbound flight with the round-trip total price, as Google Flights shows it on the first step. - `additionalDepartureDays` (integer): Also search the next N days (0–14) to find the cheapest day. Each day is one search; the return date moves with it. - `adults` (integer): Adults (12+), 1–9. Prices are the total for all passengers. - `children` (integer): Children aged 2–11. On some routes Google does not return flights for searches with children or infants; such dates get a free SOURCE_INCOMPLETE row. - `infantsOnLap` (integer): At most one per adult; 9 passengers in total. - `cabinClass` (string): Cabin class to search. - `maxStops` (string): Only flights with at most this many stops. - `currency` (string): 3-letter ISO code such as USD, EUR, THB. The currency field of each row shows the currency Google really used. - `country` (string): 2-letter country code Google uses as the point of sale (prices can differ by country). - `maxResults` (integer): Maximum flight options returned for each departure date, in Google's order (best flights first). One charge per departure date that lists flights, however many rows it returns; a date with no flights costs $0.001 and error rows are free. - `proxyConfiguration` (object): Leave on "No proxy": the run connects directly and, only if Google refuses, moves to Apify datacenter and then residential proxy automatically (included in the price). Pick a datacenter group only if you need a specific one; the RESIDENTIAL group cannot be chosen by hand. ## Step by step on Apify 1. Open the Input tab. 2. Keep the prefilled route `BKK` → `SIN` and `departureDate` `+30` (30 days from today), or add your own airport codes and date. 3. Click Start. 4. Open the Flights view of the Dataset and check `airline`, `departure`, `price` and `currency`. ## Use cases | Task | Input | Key fields | Next step | |---|---|---|---| | Compare fares for a trip | `origin`, `destination`, `departureDate`, `returnDate` | `airline`, `departure`, `arrival`, `stops`, `price` | Export to CSV or a spreadsheet | | Find the cheapest day | `additionalDepartureDays` | `departureDate`, `price` (or `cheapestPrice` in `RUN_SUMMARY`) | Sort by `price` | | Track a route over time | Same input on a schedule | `flightNumbers`, `departure`, `price`, `fetchedAt` | Compare runs by flight number and departure time | | Travel CO₂ reports | Route and dates | `emissionsKg`, `typicalEmissionsKg`, `durationMin` | Join with your trip list | ## Tips - Search a date range to find the cheapest day to fly. - Set the country and currency to match where you buy. - Schedule the same search to build your own price history. ## Limits - Up to 15 departure dates per run (`additionalDepartureDays` 0–14) and up to 300 rows per date. This is a limit, not a typical count: in our tests Google listed 10–60 flights per date. - In our tests a search took about 1–3 seconds; 15 dates with 260 flights took 4.3 seconds. - Dates can be up to about 330 days ahead, as on Google Flights. ## Sample result ```json { "status": "complete", "statusReason": null, "errorCode": null, "route": "BKK-SIN", "tripType": "one_way", "departureDate": "2026-11-14", "returnDate": null, "cabinClass": "economy", "adults": 1, "rank": 1, "isBest": true, "airline": "Scoot", "airlineCodes": ["TR"], "flightNumbers": ["TR625"], "departureAirport": "BKK", "arrivalAirport": "SIN", "departure": "2026-11-14T11:50", "arrival": "2026-11-14T15:25", "durationMin": 155, "stops": 0, "layovers": [], "segments": [ { "flightNumber": "TR625", "airline": "Scoot", "operatedBy": null, "departureAirport": "BKK", "arrivalAirport": "SIN", "aircraft": "Boeing 787", "legroom": "31 in" } ], "price": 129.05, "currency": "USD", "emissionsKg": 96, "typicalEmissionsKg": 103, "sourceUrl": "https://www.google.com/travel/flights?tfs=GhoSCjIwMjYtMTEtMTRqBRIDQktLcgUSA1NJTkABSAGYAQI&hl=en&gl=US&curr=USD", "fetchedAt": "2026-10-15T04:36:08.068Z" } ``` ## Use it from code Actor ID: `cliqtomedia/google-flights-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/google-flights-scraper").call(run_input={ "origin": "BKK", "destination": "SIN" }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-flights-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"origin": "BKK", "destination": "SIN"}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/google-flights-scraper") result = tool.invoke({"run_input": {"origin": "BKK", "destination": "SIN"}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Similar tools - [99acres & MagicBricks India Property Scraper - No Login](https://cliqtomedia.com/actors/india-property-listings/) - [Events Scraper: Eventbrite, Meetup & Luma — No Login](https://cliqtomedia.com/actors/events-aggregator/) - [Redfin & Realtor Listings Scraper (US): Sale, Sold & Rent](https://cliqtomedia.com/actors/us-property-listings/) --- # Google Images Scraper > Google Images scraper: get full-size image URLs, width, height, title and source page for your keywords. Up to 300 images per query. No login or API key. URL: https://cliqtomedia.com/actors/google-images-scraper/ Category: Search, SEO & ads · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/google-images-scraper?fpr=cliqto Type a search phrase and get Google Images results as a table. You get image links, sizes, titles and source pages. No login and no API key. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `red bicycle` in Search queries. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Type a search phrase and get the Google Images results as a table: direct image URL, width and height, thumbnail, title, source page and domain, in Google's order. No login and no API key. A run with the prefilled query `red bicycle` and 20 images takes about a minute and costs about $0.06 on the Free plan. - Searches Google Images for each phrase in `queries`, in the country and language you choose. - Applies the Google filters you set: SafeSearch, size, type, color, time period and usage rights. - Reads up to 3 Google result pages per phrase. One page has about 100 images, so Google gives about 300 images per phrase at most. - Removes repeated images (the same image URL) inside one phrase and numbers the rest 1, 2, 3… in Google's order. - Saves one Dataset row per image and stops a phrase when it has `maxImages` images or when Google has no more. ### Good for - Build an image dataset for machine learning: many phrases, up to about 300 image links each, with sizes to filter small images. - SEO: see which pages and domains show up in Google Images for your keywords, and at which position. - Design and e-commerce: collect visual references, or check where your product photos appear. ### Not a good fit - It does not download or store images. You get links; the image files stay on the source sites and can disappear. - It does not give image licences. The `usageRights` filter is Google's label, not a licence. Check the rights on the source page before you use an image. - About 300 images per phrase at most, because Google shows no more. For more images, use more phrases (for example `red bicycle vintage`, `red bicycle kids`). - No reverse image search (search by picture) and no Google Lens. - Google results change over time and between runs. Two runs of the same phrase can differ by about 10% of images. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.005 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Google result page | $0.01 | One Google Images result page read (about 100 images), also when Google has no images for the query. Pages that could not be read are free. | | Image | $0.002 (from $0.0014 on paid Apify plans) | One saved image row with the image URL, size and source page. | - One result: about $0.007. - 1,000 results: about $2.00. - Every day 100 results, for 30 days: about $6.15 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/google-images-scraper?fpr=cliqto ## Questions ### Does it download the image files? No. It saves image links. You can download them later with your own tool. ### Can I use the images for free? Not always. The tool gives links, not a licence. Check the rights on the source page. ### Why do two runs give different images? Google changes results over time. In tests about 10% of images changed between runs. ### How many phrases can I search at once? From 1 to 100 phrases per run, with up to 300 images each. ### Do I need a Google account or an API key? No. The Actor reads public Google Images results. No login and no key. ### Can I get more than 300 images for one phrase? No, Google does not show more. Use several similar phrases; repeated images are removed only inside one phrase, so check `imageUrl` across phrases yourself. ## Data fields - `query` (string): The search query. - `position` (integer): 1-based position in Google Images results for the query, after removing duplicate images. - `title` (string): Title of the page the image comes from. - `imageUrl` (string): Direct URL of the full-size image on the source site. - `width` (integer): Full-size image width in pixels. - `height` (integer): Full-size image height in pixels. - `thumbnailUrl` (string): Google thumbnail URL (encrypted-tbn*.gstatic.com). - `thumbnailWidth` (integer): Thumbnail width in pixels. - `thumbnailHeight` (integer): Thumbnail height in pixels. - `sourcePageUrl` (string): URL of the page that shows the image. - `sourceDomain` (string): Domain of the source page, e.g. www.walmart.com. - `sourceName` (string): Site name as Google shows it, e.g. Walmart. - `fileSize` (string): File size as Google shows it, e.g. 80KB (text, not a number). - `dominantColor` (string): Main color of the image as rgb(r,g,b). - `countryCode` (string): Google country used for the search. - `languageCode` (string): Google language used for the search. - `fetchedAt` (string): When the Google results page was loaded (ISO 8601, UTC). ## Input settings - `queries` (array, required): What to search on Google Images, one phrase per line, e.g. 'red bicycle'. Up to 100 queries per run; duplicates are skipped. Google operators work (site:, quotes, -word). - `maxImages` (integer): How many images to return for each query (1–300). Google Images shows about 300 images per query at most; if it has fewer, you get all of them. - `countryCode` (string): Google country (gl). Results are ranked for searchers in this country. - `languageCode` (string): Google interface language (hl). It affects ranking and the language of page titles. - `safeSearch` (boolean): On: Google filters explicit images. Off: unfiltered results. - `size` (string): Google Images size filter. - `type` (string): Google Images type filter. - `color` (string): Google Images color filter. - `timePeriod` (string): Only images Google indexed within this period. - `usageRights` (string): Google's usage-rights filter. It is Google's label, not a licence: check the rights on the source page before using an image. ## Step by step on Apify 1. Open the Input tab. 2. Keep the prefilled phrase `red bicycle` in Search queries (`queries`), or type your own, one per line. 3. Keep Images per query (`maxImages`) at 20, or choose 1–300. 4. Click Start. 5. Open the Output tab and look at the Images view: a preview, the title, the image URL, the size and the source page for each image. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | ML image dataset | many `queries`, `maxImages` 300, `size` `large` | image row | `imageUrl`, `width`, `height`, `query` | download the URLs with your own tool, export CSV/JSON | | SEO in Google Images | your keywords, `countryCode` | image row | `position`, `sourceDomain`, `sourcePageUrl` | schedule weekly, compare positions in a sheet | | Visual references | a few phrases, `type`, `color` | image row | `thumbnailUrl`, `imageUrl`, `sourcePageUrl` | open the Images view, export to Google Sheets | ## Tips - Use the size filter to skip small images. - Use several similar phrases if you need more than 300 images. - Check the usage rights on the source page before you reuse an image. ## Limits - 1–100 search phrases per run, 1–300 images per phrase. Google shows about 280–295 unique images per phrase, so a phrase can end with fewer than you asked for (status `exhausted`). - Measured on the cloud (256 MB): 20 images ≈ 45–70 s; 10 phrases × 100 images ≈ 2–3 min; 30 phrases × 300 ≈ 11 min; 100 phrases × 300 (28,568 images) ≈ 34 min. - The default timeout is 1 hour, which fits the largest input. Memory is fixed at 256 MB; peak use was about 80 MB. - Each Google page gets up to 3 attempts and up to 120 seconds. A phrase whose pages keep failing gets status `error`; you are not charged for failed pages. - If Google cannot be read on the first phrase, the run stops there and does not start the other phrases (status `skipped`). Later in a run, 3 failed pages in a row also stop new phrases. - The Actor saves image links, not image files. ## Sample result ```json { "query": "red bicycle", "position": 1, "title": "24 in. Red 21-Speed Mechanical Disc Brake Mountain Bike for Teenagers outwyadironch43 - The Home Depot", "imageUrl": "https://images.thdstatic.com/productImages/ee2aa086-bc34-4653-8fda-ab7879d28920/svn/reds-pinks-bikes-outwyadironch43-64_600.jpg", "width": 600, "height": 600, "thumbnailUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT5OkkXYwisrBprY_ohTFjwk4QbVwfWv62tA9h93MKQGg&s=10", "thumbnailWidth": 554, "thumbnailHeight": 554, "sourcePageUrl": "https://www.homedepot.com/p/24-in-Red-21-Speed-Mechanical-Disc-Brake-Mountain-Bike-for-Teenagers-outwyadironch43/325010151", "sourceDomain": "www.homedepot.com", "sourceName": "The Home Depot", "fileSize": "39KB", "dominantColor": "rgb(216,66,69)", "countryCode": "us", "languageCode": "en", "fetchedAt": "2026-10-15T04:51:03.022Z" } ``` ## Use it from code Actor ID: `cliqtomedia/google-images-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/google-images-scraper").call(run_input={ "queries": [ "red bicycle" ], "maxImages": 20 }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-images-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"queries": ["red bicycle"], "maxImages": 20}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/google-images-scraper") result = tool.invoke({"run_input": {"queries": ["red bicycle"], "maxImages": 20}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [SEO data without a big suite](https://cliqtomedia.com/actors/use-cases/seo-research/): Collect keyword ideas and check your pages and your rivals' pages. Search results and trends coming soon. ## Similar tools - [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/) - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) - [XML Sitemap URLs Extractor](https://cliqtomedia.com/actors/xml-sitemap-urls-extractor/) - [Website Metadata & Open Graph Scraper](https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/) - [Google Ads Transparency Scraper - Ad Text, No Login](https://cliqtomedia.com/actors/google-ads-transparency-scraper/) - [Google News Scraper - Real Article URLs, No Login](https://cliqtomedia.com/actors/google-news-scraper/) --- # Google Jobs Scraper for job lists with salary and apply links > Google Jobs scraper for job titles, companies, salary text, dates and apply links. Pick a city and country. No Google login or API key. Export to CSV. URL: https://cliqtomedia.com/actors/google-jobs-scraper/ Category: Jobs & hiring · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/google-jobs-scraper?fpr=cliqto Type a job title and a city. You get the jobs Google shows, one row per job. Each row has the company, salary text, posting age and the links to apply. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `python developer` in Job searches. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Google Jobs Scraper searches Google Jobs for your job titles and a location and returns one row per job: title, company, location, salary, job type, posting age, full description and the apply links to LinkedIn, Indeed or the employer site. It reads the public Google Jobs results page, so you need no Google login and no API key. The default input (`python developer` in Berlin, 10 jobs) usually takes 10–60 seconds and costs $0.033. - You add one or more job searches, for example `python developer` or `registered nurse`, and a location. - The Actor opens the Google Jobs results page for each search in the right Google country. - It reads every job card: title, company, location, the site Google found the job on (`via`), posting age, salary and job type. - It reads the job panel too: the full description, Google's highlights and all apply links, without tracking parameters. - It removes duplicate jobs (same Google job id) and saves one Dataset row per job. - Fast mode reads one Google page per search, about 10 jobs. Deep mode repeats each search with Google's date and job-type filters and removes duplicates, so you get several times more jobs. ### Good for - Job market research: who hires for a role in a city, and on which job boards. - Lead lists for recruiters and staffing agencies: companies with open roles, with the link to each job. - Salary checks: Google's salary text where the job has one. - A daily job feed for a niche job board, a Slack channel or a spreadsheet. ### Not a good fit - 8 countries only: United States, United Kingdom, Canada, India, Germany, France, Spain and Brazil (`countryCode`). Google shows the texts in the language of that country, for example `vor 1 Tag` and `Vollzeit` in Germany. - Google shows about 10 jobs per search page. Fast mode gives about 10 jobs per search; deep mode about 20–70 (our tests). For more jobs, add more searches (up to 50) or more specific titles. - `salary` is often `null`: Google shows a salary only for some jobs (0–40 % in our tests). - `highlights` is often `null` in fast mode: Google does not send this block on many pages. The full `description` is still there. - No recruiter names, emails or phone numbers. The Actor saves only the public job post. - Google decides which jobs it shows. Two runs a few minutes apart can return a slightly different set or order. - Google's terms do not allow automated access to Google Search. You are responsible for how you use the data. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.01 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Google Jobs search page | $0.013 | One Google Jobs results page that Google answered (up to 10 jobs), including pages with no jobs. Pages that failed are not charged. | | Job listing | $0.001 (from $0.00085 on paid Apify plans) | One unique job saved to the Dataset. Duplicates, not_found and error rows are free. | - One result: about $0.01. - 1,000 results: about $1.01. - Every day 100 results, for 30 days: about $3.30 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/google-jobs-scraper?fpr=cliqto ## Questions ### Can I scrape Google Jobs without a Google account? Yes. The tool reads the public Google Jobs page. You need no login, cookies or API key. ### Which countries can I search? Eight countries: the US, UK, Canada, India, Germany, France, Spain and Brazil. ### How many jobs do I get per search? Fast mode gives about 10 jobs per search. Deep mode gave about 20 to 70 in tests. ### Why do many jobs have no salary? Google shows a salary only when the job post has one. The tool never guesses a salary. ### Do I need a Google account or API key? No. The Actor reads the public Google Jobs results page without login, cookies or keys. ### Is this the official Google Jobs API? No. Google has no public API for Google Jobs search results. This Actor is not made by or linked to Google. ### Why are some texts in German or French? Google shows jobs in the language of the country you search. Search in Germany, and `postedAt` says `vor 2 Tagen` and `employmentType` says `Vollzeit`. `postedAtApprox` gives a date that is the same in every language. ### Why is salary empty for most jobs? Google shows a salary only when the job post or job board gives one. The Actor does not guess: no salary on Google means `salary: null`. ### Can I get the recruiter's email or phone? No. The Actor saves only the public job post and does not collect personal contact data. ## Data fields - `status` (string): complete: a job; partial: a deep search where some Google pages did not answer (jobs of the other pages are in their own rows); not_found: Google has no jobs for this search; error: Google did not answer. - `title` (string): Job title as the employer wrote it. - `company` (string): Employer name. - `location` (string): Job location as Google shows it, e.g. "Berlin, Germany" or "Anywhere". - `via` (string): Site Google found the job on, e.g. "LinkedIn" or "via Indeed". - `postedAt` (string): Posting age as Google shows it, e.g. "2 days ago" or "vor 1 Tag"; null when Google does not show it. - `postedAtApprox` (string): Approximate posting date (YYYY-MM-DD) = fetchedAt minus postedAt; null for open ranges such as "30+ days ago". - `salary` (string): Salary as Google shows it, e.g. "$104K–$156K a year"; null when the job has no salary (not 0). - `employmentType` (string): Job type as Google shows it, e.g. "Full-time" or "Vollzeit". - `workFromHome` (boolean): true when Google tags the job as work from home; null when it does not say. - `description` (string): Full job description as plain text; null when includeDescription is off. - `highlights` (array): Google's job highlights (Qualifications, Responsibilities, Benefits); null when Google shows none or includeDescription is off. - `applyLinks` (array): Where to apply: the employer site and job boards, with tracking parameters removed. - `jobId` (string): Google's job id; the same job has the same id across searches and runs. - `googleJobsUrl` (string): Google Jobs page that opens this job. - `position` (integer): Order of the job in this search's results (1 = first, after removing duplicates); null on status rows. - `query` (string): Your job search. - `searchLocation` (string): Location from your input; null when empty. - `countryCode` (string): Google country searched (us, gb, ca, in, de, fr, es, br). - `searchVariant` (string): Deep mode: which search found the job (base, datePosted:week, employmentType:parttime…); null in fast mode. - `source` (string): Always google_jobs. - `sourceUrl` (string): Google search URL that was fetched. - `fetchedAt` (string): When the page was fetched (ISO 8601, UTC). - `statusReason` (string): Why the row is partial, not_found or error; null on complete rows. - `errorCode` (string): Machine-readable error code on error rows, e.g. SOURCE_TIMEOUT; null otherwise. ## Input settings - `queries` (array, required): What to search on Google Jobs, one per line, e.g. "python developer" or "registered nurse". Up to 50 searches; duplicates are removed. - `location` (string): City, region or "remote", added to every search, e.g. "Berlin", "Austin, TX" or "London". Leave empty to search the whole country: Google Jobs needs a place, so the country name is added ("nurse" → "nurse USA"). - `countryCode` (string): Google country and language to search in. Auto picks it from the location ("Berlin" → Germany, "Austin, TX" → United States); unknown places use the United States. - `datePosted` (string): Only jobs posted in this period. Uses Google's own date filter, then drops jobs whose shown posting date is older (they are not written or charged). - `employmentType` (string): Only jobs of this type. Uses Google's own job-type filter, then drops jobs whose shown job type is a different one (not written or charged). - `mode` (string): Google Jobs shows about 10 jobs per search. Deep mode repeats each search with Google's date and job-type filters and removes duplicates, so you get several times more jobs. - `maxJobs` (integer): Stop after this many jobs in total for the run. You pay only for jobs written to the Dataset. - `includeDescription` (boolean): Add the full job description and Google's highlights (qualifications, responsibilities, benefits). Turn off for smaller rows. ## Step by step on Apify 1. Open the Input tab. 2. In Job searches (`queries`), keep `python developer` or add your own job title. 3. Keep Location `Berlin` and Max jobs `10`, or change them. Country `auto` picks the country from the location. 4. Click Start. 5. Open the Output tab. The Jobs table shows `title`, `company`, `location`, `salary` and the apply links. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Job market research | `queries` + `location`, `mode: "deep"` | Job | `title`, `company`, `via`, `postedAt` | CSV or Excel export | | Recruiting lead list | `queries` like `"sales manager"` + `datePosted: "week"` | Job | `company`, `title`, `location`, `applyLinks` | Google Sheets or CRM through Apify integrations | | Salary check | `queries` + `location` | Job | `salary`, `employmentType`, `title` | Spreadsheet | | Daily job feed | `queries` + `datePosted: "today"` on a schedule | Job | `jobId`, `title`, `googleJobsUrl` | Slack, email or a website through webhooks | ## Tips - Use deep mode when one search gives too few jobs. It finds several times more. - Add more specific titles, like "junior python developer", to get more unique jobs. - Use postedAtApprox to sort by date. It works the same in every language. ## Sample result ```json { "status": "complete", "title": "Python Team Lead, Integration team", "company": "Fliff Inc", "location": "Beliebiger Ort", "via": "LinkedIn", "postedAt": "vor 1 Tag", "postedAtApprox": "2026-10-14", "salary": null, "employmentType": "Vollzeit", "workFromHome": true, "description": "We’re looking for a Python Team Lead to join our Integration team, which owns a broad set of critical integrations across the product…", "highlights": null, "applyLinks": [ { "title": "LinkedIn", "url": "https://de.linkedin.com/jobs/view/python-team-lead-integration-team-at-fliff-inc-4479228357" }, { "title": "Startup Jobs", "url": "https://startup.jobs/python-team-lead-integration-team-fliff-inc-10437417" } ], "jobId": "eAHxzL0ATotpbjXSAAAAAA==", "googleJobsUrl": "https://www.google.de/search?ibp=htl;jobs&q=python+developer+Berlin&htidocid=eAHxzL0ATotpbjXSAAAAAA%3D%3D&hl=de-DE#…", "position": 2, "query": "python developer", "searchLocation": "Berlin", "countryCode": "de", "searchVariant": null, "source": "google_jobs", "sourceUrl": "https://www.google.de/search?q=python+developer+Berlin&udm=8&hl=de&gl=de", "fetchedAt": "2026-10-15T06:20:55.335Z", "statusReason": null, "errorCode": null } ``` ## Use it from code Actor ID: `cliqtomedia/google-jobs-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/google-jobs-scraper").call(run_input={ "queries": [ "python developer" ], "location": "Berlin" }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-jobs-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"queries": ["python developer"], "location": "Berlin"}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/google-jobs-scraper") result = tool.invoke({"run_input": {"queries": ["python developer"], "location": "Berlin"}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Similar tools - [Remote Jobs Aggregator - RemoteOK, WWR & Himalayas, No login](https://cliqtomedia.com/actors/remote-jobs-aggregator/) - [Greenhouse Jobs Monitor & Scraper](https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/) - [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/) - [Wellfound Jobs Scraper](https://cliqtomedia.com/actors/wellfound-jobs-scraper/) - [Ashby Jobs Scraper](https://cliqtomedia.com/actors/ashby-jobs-scraper/) - [Recruitee Job Snapshots & Changes](https://cliqtomedia.com/actors/recruitee-jobs-monitor-scraper/) --- # Google News Scraper > Google News scraper: get title, publisher, date and the real article URL by keyword or topic, for any country and language. No login or API key. URL: https://cliqtomedia.com/actors/google-news-scraper/ Category: Search, SEO & ads · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/google-news-scraper?fpr=cliqto Search Google News by keyword, topic or Top stories. Each row has the title, publisher, date and the real article link. You need no Google account. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `apify` in Search queries. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Google News Scraper searches Google News by keyword, topic or Top stories and returns one row per article: title, publisher, publish date and the real article URL on the publisher's site, not the Google News redirect. It reads the public Google News RSS feeds, so you need no Google login and no API key. A run with the default input (`apify`, 20 articles) usually takes 5–20 seconds and costs about $0.075. - You add keywords, topics or both, and choose a language and a country (a Google News "edition"). - The Actor reads the matching Google News RSS feeds: search, topic sections or the Top stories front page. - For each article it decodes the Google News link (`news.google.com/rss/articles/…`) into the original publisher URL. - It saves one Dataset row per article. Topic and Top stories rows also list other outlets that cover the same story (`relatedArticles`). - Google returns at most 100 articles per feed. When you ask for more, the Actor searches one day at a time (Google's `after:` and `before:` operators) and removes duplicates. ### Good for - Daily or hourly news monitoring for brands, people, companies or topics. - Media lists for PR: who wrote about a subject, when, and the link to the story. - News in many languages: `de` for Germany, `pt-BR` for Brazil, `ja` for Japan, `zh-TW` for Taiwan. - A clean news list for an AI agent, a spreadsheet or a BI tool. ### Not a good fit - No full article text, images or summaries. Google News RSS gives only the title and publisher. For article text, send `articleUrl` to an article extractor. - Up to 1,000 articles per query, and up to 20 queries and topics per run. Our largest test run saved 5,000 articles (5 queries × 1,000) in about 34 minutes. A run stops after about 50 minutes and keeps what it saved (`RUN_SUMMARY.status: "CAPPED"`), so split bigger jobs into several runs. Topics and Top stories read one feed each, so they return only what Google shows in that section (at most about 100 articles). - Google decides which articles it shows. Two runs a few minutes apart can return a slightly different set or order. - Google News RSS is for personal, non-commercial use under Google's terms. You are responsible for how you use the data. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.0025 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | News article | $0.0036 (from $0.0009 on paid Apify plans) | One complete or partial article row saved in the Dataset, with the decoded publisher URL included. Not-found and error rows are free. | - One result: about $0.0061. - 1,000 results: about $3.60. - Every day 100 results, for 30 days: about $10.88 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/google-news-scraper?fpr=cliqto ## Questions ### Is there an official Google News API? No. Google has no public Google News API. This tool reads the public RSS feeds. ### Do I get the article text? No. Google News RSS has no snippet. Send the article link to an article text tool. ### Can I get more than 100 articles for a keyword? Yes, up to 1,000. The tool searches one day at a time and removes duplicates. ### Why are the links not news.google.com links? The tool decodes Google's redirect links into the publisher's own URL. ### Do I need a Google account or API key? No. The Actor reads public Google News RSS feeds without login, cookies or keys. ### Why are the titles shorter than in Google News? Google adds " - Publisher" to each title in the feed. The Actor removes it and puts the publisher into `sourceName`. ### Why is the order or set of articles different between runs? Google decides which articles each feed shows, and this changes during the day. Rows keep Google's order in `position`. Use `articleId` to compare runs. ## Data fields - `status` (string): Row result: complete, partial (article found but the publisher URL could not be decoded), not_found (no articles for this query or topic) or error. Only complete and partial rows are charged. - `statusReason` (string): Plain-English reason for partial, not_found or error rows; null when complete. - `errorCode` (string): Machine code for error rows, e.g. SOURCE_BLOCKED, RATE_LIMITED, DEADLINE_REACHED; null otherwise. - `feedType` (string): Where the row came from: a search query, a topic section or Top stories. - `query` (string): Your search query as given; null for topic rows. - `topic` (string): Topic section (BUSINESS, TECHNOLOGY…); null for search rows. - `position` (integer): 1-based order of the article within its query or topic (newest first for deep search). - `title` (string): Article headline, without the publisher suffix Google adds. - `sourceName` (string): Publisher name, e.g. Reuters. - `sourceUrl` (string): Publisher home page as Google News lists it, e.g. https://www.reuters.com. - `articleUrl` (string): Original article URL on the publisher's site, decoded from the Google News link. null when resolveSourceUrl is off (the row stays complete) or decoding failed (the row is partial). - `googleNewsUrl` (string): Google News link to the article (news.google.com/rss/articles/…). - `articleId` (string): Google News article ID. - `publishedAt` (string): Publish time, ISO 8601 UTC, as Google News reports it. - `relatedArticles` (array): Other outlets covering the same story (topic and Top stories rows): title, sourceName, googleNewsUrl. Empty for most search rows. - `language` (string): Edition language code used for this run, e.g. en. - `country` (string): Edition country code used for this run, e.g. US. - `feedUrl` (string): The Google News RSS feed this row came from (provenance). - `fetchedAt` (string): When the Actor fetched this row, ISO 8601 UTC. ## Input settings - `queries` (array): Keywords or phrases to search on Google News, one per line, e.g. apify or "electric cars". Google News search operators work: "exact phrase", OR, -exclude, site:reuters.com, intitle:word. Up to 20 queries and topics in total. - `topics` (array): Google News sections for the chosen country: TOP_STORIES (the front page), WORLD, NATION (national news), BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, HEALTH. Topic rows also list other outlets covering the same story. - `country` (string): Google News edition country as a two-letter code, e.g. US, GB, DE, FR, IN, BR, JP. Changes which outlets and stories Google shows. - `language` (string): Edition language as a two-letter code, e.g. en, de, fr, es, pt, ja, zh. Use the language people read in that country (de for DE, pt for BR). A locale such as zh-TW, pt-BR or en-GB also works and sets the country. - `maxArticles` (integer): Maximum articles for each query and topic, 1–1,000. Google returns at most 100 per feed; for more, the Actor searches day by day, back to the "since" date (or 30 days). Topics return up to about 100. Each article row is charged; not-found and error rows are free. - `since` (string): Only articles published after this point: a date (2026-10-01) or a period back from now (1h, 24h, 7d, 2w, 3m, 1y). Leave empty for no date filter. - `resolveSourceUrl` (boolean): Decodes each Google News link (news.google.com/rss/articles/…) into the original article URL on the publisher's site. Included in the price; turn off only for faster runs when the Google link is enough. - `proxyConfiguration` (object): Apify datacenter proxy by default. If Google blocks it, the Actor switches to Apify residential proxy by itself. Choose your own proxy group or URLs to turn this off. The Actor never solves CAPTCHAs. ## Step by step on Apify 1. Open the Input tab. 2. In Search queries (`queries`), keep `apify` or add your own keyword, for example `electric cars`. 3. Keep Language `en`, Country `US` and Max articles per query or topic `20`, or change them. 4. Click Start. 5. Open the Output tab. The Articles table shows `title`, `sourceName`, `publishedAt` and `articleUrl`. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Brand and competitor monitoring | `queries` + `since: "24h"` on a schedule | Article | `query`, `title`, `sourceName`, `articleUrl`, `publishedAt` | Slack, email or Google Sheets through Apify integrations | | PR media list | `queries` like `"your company"` + `since: "30d"` | Article | `sourceName`, `sourceUrl`, `articleUrl` | CSV or Excel export | | Country news overview | `topics: ["BUSINESS"]`, `country: "DE"`, `language: "de"` | Article with related coverage | `title`, `sourceName`, `relatedArticles` | Dashboard or newsletter | | News context for an AI agent | `queries` + small `maxArticles` | Article | `title`, `articleUrl`, `publishedAt` | Apify MCP server | ## Tips - Use the published-since filter for daily or hourly checks. - Pick a country and language to get local news editions. - Use the article ID to compare results between runs. ## Sample result ```json { "status": "complete", "statusReason": null, "errorCode": null, "feedType": "topic", "query": null, "topic": "BUSINESS", "position": 1, "title": "Waren bei Galeria in Regensburg plötzlich hinter Absperrband – Ein Hersteller spricht Klartext", "sourceName": "Mittelbayerische Zeitung", "sourceUrl": "https://www.mittelbayerische.de/", "articleUrl": "https://www.mittelbayerische.de/lokales/stadt-regensburg/waren-bei-galeria-in-regensburg-ploetzlich-hinter-absperrband-ein-hersteller-spricht-klartext-22206179", "googleNewsUrl": "https://news.google.com/rss/articles/CBMi8AFBVV95cUxPWnVHaWd…?oc=5", "articleId": "CBMi8AFBVV95cUxPWnVHaWd…", "publishedAt": "2026-10-14T17:01:36.000Z", "relatedArticles": [ { "title": "Flatterband im Kaufhaus: Was hinter den gesperrten Galeria-Regalen steckt", "sourceName": "WDR", "googleNewsUrl": "https://news.google.com/rss/articles/CBMifkFVX3lx…?oc=5" } ], "language": "de", "country": "DE", "feedUrl": "https://news.google.com/rss/headlines/section/topic/BUSINESS?hl=de&gl=DE&ceid=DE%3Ade", "fetchedAt": "2026-10-15T04:22:36.577Z" } ``` ## Use it from code Actor ID: `cliqtomedia/google-news-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/google-news-scraper").call(run_input={ "queries": [ "apify" ], "country": "US" }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-news-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"queries": ["apify"], "country": "US"}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/google-news-scraper") result = tool.invoke({"run_input": {"queries": ["apify"], "country": "US"}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [SEO data without a big suite](https://cliqtomedia.com/actors/use-cases/seo-research/): Collect keyword ideas and check your pages and your rivals' pages. Search results and trends coming soon. ## Similar tools - [RSS & Atom Feed Reader / Monitor](https://cliqtomedia.com/actors/rss-atom-feed-reader-monitor/) - [Substack Newsletter Scraper](https://cliqtomedia.com/actors/substack-newsletter-scraper/) - [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/) - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) - [XML Sitemap URLs Extractor](https://cliqtomedia.com/actors/xml-sitemap-urls-extractor/) - [Website Metadata & Open Graph Scraper](https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/) --- # Google Patent Details Scraper > Google Patents scraper for patent numbers you know. Get title, dates, abstract, and in full mode claims, description and family links. URL: https://cliqtomedia.com/actors/google-patents-scraper/ Category: Science & research data · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/google-patents-scraper?fpr=cliqto Add patent numbers or Google Patents links you already have. Get the title, dates and abstract for each one. Choose full detail to add claims and description. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `US9014905B1` in Publication numbers. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Fetch **Google patent details** for publication numbers you already know. Get a title, dates, an abstract and source names. Choose full detail to add claims, description, citations and family links from the same public page. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Saved patent row | $0.00199 | One verified patent row saved to the Dataset. | | Start fee | $0.0007 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | - One patent: about $0.0027. - 1,000 patents: about $1.99. - Every day 100 patents, for 30 days: about $5.99 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/google-patents-scraper?fpr=cliqto ## Questions ### Can I search patents by keyword? No. You need known publication numbers or exact patent links. ### Do I need a Google account? No. It reads public patent pages. ### Does full detail cost more? No. Both modes cost the same per saved patent. ### Will I get every family member? Only the ones shown on that patent page. ### Does it search Google Patents? No. Add known publication numbers or exact patent detail URLs. Keyword queries, application-number lookup and search filters are not supported. ### Do I need Google credentials? No. Only public detail pages are read. The Actor does not log in or solve access challenges. ### Is full text copied exactly? The Actor extracts plain page text and joins whitespace. It preserves Unicode and source content within the stated caps. HTML tags are removed; claim arrays keep page order. It does not fetch PDFs, translate text itself or generate a summary. ### Can I use legal status as a decision? Treat it as a source field. It is not legal advice, a validity judgment, an expiration guarantee or complete prior-art analysis. ## Input settings - `patentUrls` (array): HTTPS Google Patents /patent/ detail URLs only. - `publicationNumbers` (array): Known public publication identifiers for direct detail extraction. - `language` (string): Two-letter lower-case language code used for the public detail page. - `detailLevel` (string): Metadata or full detail from the same public patent page. - `maxItems` (integer): Global hard cap for saved unique publications in one run. Up to 100. - `includePdfLink` (boolean): Returns a source link only; PDF and image assets are never downloaded. ## Step by step on Apify 1. Open Input. A new form suggests `US9014905B1` in `publicationNumbers`. 2. Keep this number for a small first run. The form suggestion is not an API default. 3. Click Start. 4. Open Dataset and check `publicationNumber`, `title` and `canonicalUrl`. 5. Open RUN_SUMMARY to check every input outcome. ## Use cases | Your task | Input | Key fields | Next step | |---|---|---|---| | Build a table from a known patent list | `publicationNumbers` | `title`, `dates`, `assignees` | Export the Dataset | | Read claims and description | `detailLevel: "full"` | `claims`, `description`, `truncation` | Check the source page and text limits | | Compare source family links | `detailLevel: "full"` | `family`, `relatedApplications` | Open each source link yourself | ## Tips - Use publication numbers like US9014905B1 or EP1000000A1. - One run saves up to 100 patents. - Check the truncation field. Long text can be cut. ## Sample result ```json { "schemaVersion": "1", "status": "PATENT_SAVED", "publicationNumber": "US9014905B1", "canonicalUrl": "https://patents.google.com/patent/US9014905B1/en", "applicationNumber": "US14/166,502", "title": "Cyclist hand signal detection by an autonomous vehicle", "dates": { "priority": "2014-01-28", "filing": "2014-01-28", "publication": "2015-04-21", "grant": null }, "family": { "simpleFamilyId": "52822648", "members": [{ "publicationNumber": "US9014905B1", "countryCode": "US", "kindCode": "B1", "title": "Cyclist hand signal detection by an autonomous vehicle", "date": "2014-01-28", "sourceUrl": "https://patents.google.com/patent/US9014905B1/en" }] }, "detailLevel": "full", "truncation": [], "search": null } ``` ## Use it from code Actor ID: `cliqtomedia/google-patents-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/google-patents-scraper").call(run_input={ "publicationNumbers": [ "US9014905B1" ], "language": "en" }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-patents-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"publicationNumbers": ["US9014905B1"], "language": "en"}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/google-patents-scraper") result = tool.invoke({"run_input": {"publicationNumbers": ["US9014905B1"], "language": "en"}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Similar tools - [DOI Metadata & Bibliography Enrichment](https://cliqtomedia.com/actors/doi-bibliography-enrichment/) - [ClinicalTrials.gov Studies Search & Monitor](https://cliqtomedia.com/actors/clinicaltrials-gov-studies-monitor/) - [DataCite Research Dataset Search](https://cliqtomedia.com/actors/datacite-dataset-search/) - [Europe PMC Literature Search & Monitor](https://cliqtomedia.com/actors/europe-pmc-literature-search/) - [GBIF Biodiversity Occurrence Search](https://cliqtomedia.com/actors/gbif-occurrence-search/) - [Google Scholar Search Scraper - Citations & PDFs, No Login](https://cliqtomedia.com/actors/google-scholar-scraper/) --- # Google Play Search, Rank and App Details > Google Play rank tracker for many keywords and countries. Or get app details by package name: rating, installs range, price and version. URL: https://cliqtomedia.com/actors/google-play-apps-search/ Category: Reviews & app stores · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/google-play-apps-search?fpr=cliqto Search Google Play for many keywords in many countries in one run. Each app gets a rank. Or add package names and get app details. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `pdf scanner` in Search terms. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Search [Google Play](https://play.google.com/store/apps) by keyword in one or many countries and get the ranked list of apps for every term, with rating, ratings count, install range, price, genre, age rating, version and last update. Or add package names or Google Play URLs and get the same app details. - `search` — for each keyword (term) and country, it runs one Google Play search and returns the apps in the same order as Google shows them. Every row has `rank` (1, 2, 3…), `term` and `country`. By default it also opens each app page and adds installs, ratings count, genre, age rating, version and last update. - `details` — for each package name (for example `com.whatsapp`) or Google Play URL, it opens the app page in every country you choose and returns one row per app and country. ### Good for - App store optimization (ASO): check which apps rank for your keywords in each country. - Rank tracking: see where your own apps stand for 10–30 keywords, run after run. - Competitor research: compare install range, rating, price, in-app purchases and last update of rival apps. - App catalog enrichment: turn a list of package names into rows with title, developer, genre and age rating. ### Not a good fit - No exact install numbers. Google shows a public range such as `10,000,000+`. The Actor returns this text in `installs` and its lower bound in `minInstalls`. It never estimates an exact count. - About 30 apps per search. Google's search page shows about 30 apps for a term and has no next page. `maxItems` is 1–30. - No reviews, screenshots, permissions, data safety or developer contact details (email, phone, address). - No top charts, categories or "similar apps" lists. - Results are what Google shows to a signed-out visitor in that country and language. Personal results on a phone can differ. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.003 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Google Play query answered | $0.0001 | One keyword search (term × country) or one app ID lookup (app ID × country) that Google Play answered, even when it had no apps or the app does not exist. Failed or skipped queries are free. | | App row | $0.00045 (from $0.00038 on paid Apify plans) | One app stored in the dataset (with app page details when they are on). Partial, not_found and error rows are free. | - One app: about $0.0034. - 1,000 apps: about $0.46 (3 runs of up to 400). - Every day 100 apps, for 30 days: about $1.44 a month. - 400 apps once a week (4 runs a month): about $0.73 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/google-play-apps-search?fpr=cliqto ## Questions ### Why no exact install numbers? Google Play shows only a range, like 10,000,000+. The tool returns that range. ### Are results the same as on my phone? Not always. The tool sees what a signed-out visitor sees. ### Why is the version empty? Many big apps show Varies with device instead of a number. ### Do I need a Google account? No. It reads public pages without login. ### Why don't I get the exact number of installs? Google Play shows only a range, such as `10,000,000+`. Other numbers you may see elsewhere are estimates. This Actor returns only what Google shows: `installs` and its lower bound `minInstalls`. ### Why is `score` null for some apps? Nobody has rated the app yet. In that case `ratings` is 0 and `score` is null, not 0. ### Why is `version` null? Many large apps show "Varies with device" instead of a version number. The Actor returns `null` instead of a wrong value. ### How fresh is the data? Every run reads Google Play live. `fetchedAt` shows when each row was read. ## Data fields - `status` (string): Row result: complete (app data, charged), partial (search row whose app page failed to load or answered 404; search fields only, not charged), not_found (search with no apps, or app ID not on Google Play in that country) or error (see errorCode, not charged). - `mode` (string): search or details, as in the input. - `queryType` (string): term for search rows, appId for details rows. - `query` (string): The search term or app ID this row answers. Grouped status rows list several IDs, comma-separated. - `queryIds` (array): Only on grouped details status rows: the app IDs this one not_found or error row covers (one row per batch of up to 10 IDs in one country). null on app rows and search rows. - `term` (string): Search term (search mode). null in details mode. - `country` (string): Two-letter Google Play country code used for the request (gl). null only on the INVALID_IDENTIFIER error row, whose identifiers were never sent to Google Play. - `language` (string): Language code used for the request (hl); texts such as genre and content rating come in this language. - `rank` (integer): 1-based position of the app in Google Play search results for this term and country, as shown to a signed-out user. null in details mode. - `isTracked` (boolean): true when the app is in trackAppIds; null when no apps are tracked or in details mode. - `appId` (string): Google Play package name, e.g. com.whatsapp. - `title` (string): App name. - `summary` (string): Short promo text from the app page. null without app details. - `developer` (string): Developer name as shown on Google Play. - `developerId` (string): Google Play developer ID: numeric, or a name-style ID such as WhatsApp+LLC. - `developerUrl` (string): Developer page on Google Play, built from developerId. - `score` (number): Average star rating (1–5), rounded to 3 decimals. null when the app has no ratings. - `ratings` (integer): Number of ratings shown by Google; 0 for an app nobody has rated yet. null without app details. - `reviews` (integer): Number of written reviews shown by Google; 0 for an app nobody has rated yet. null without app details. - `ratingHistogram` (object): Ratings per star: oneStar … fiveStars. null without app details. - `installs` (string): Google's public install range, e.g. 10,000,000+. Google does not publish exact install counts, and this Actor does not estimate them. null without app details. - `minInstalls` (integer): Lower bound of the install range as a number (10,000,000+ → 10000000), for sorting and filtering. Not an exact count. - `price` (number): Price in currency units; 0 for free apps. - `free` (boolean): true for free apps. - `currency` (string): ISO currency of price for this country, e.g. USD or EUR. - `priceText` (string): Price as Google shows it, e.g. Free or $4.99. null without app details. - `offersIAP` (boolean): true when the app has in-app purchases, false when it has none. null without app details. - `iapRange` (string): In-app purchase price range as shown by Google, e.g. $0.99 - $49.99 per item. - `adSupported` (boolean): true when Google marks the app as containing ads. null without app details. - `genre` (string): Main category name in the request language, e.g. Productivity. - `genreId` (string): Main category ID, e.g. PRODUCTIVITY or GAME_PUZZLE. - `contentRating` (string): Age rating for this country, e.g. Everyone, Teen, USK: Ages 12+. - `released` (string): Release date as Google shows it (text in the request language, e.g. May 31, 2017). null when Google hides it. - `updatedAt` (string): Last update time of the app on Google Play, ISO 8601 UTC. - `version` (string): Current version. null when Google shows Varies with device. - `androidVersion` (string): Minimum Android version, e.g. 8.0. null when it varies with device. - `url` (string): App page on Google Play. - `icon` (string): App icon URL. - `description` (string): Full description (only with includeDescription). - `recentChanges` (string): What's new text (only with includeDescription). ## Input settings - `mode` (string): search: keyword search, one ranked list per term and country. details: app details by package name or Google Play URL. - `terms` (array): Keywords to search, e.g. pdf scanner. Up to 30 terms; terms × countries must be at most 60 searches per run. Each term is searched separately and gets its own rank 1, 2, 3… - `countries` (array): Two-letter Google Play country codes, e.g. us, gb, de, br. Up to 30. Every term (or app ID) is processed in every country; prices, currency, age rating and rank are country-specific. - `language` (string): Language code for texts such as genre, age rating and description, e.g. en, de, pt-BR. Search results also depend on it. - `maxItems` (integer): How many apps to return per search (1–30). Google's search page shows about 30 apps for a term; the run never pads results. - `includeDetails` (boolean): On (default): every search row also gets installs range, ratings count, genre, age rating, version and last update from the app page. Off: faster, search fields only (title, developer, score, price, icon). With details on, terms × countries × results must be at most 400 per run. - `trackAppIds` (array): Optional package names or Google Play URLs to track. Their rows get isTracked = true, and RUN_SUMMARY reports each tracked app's rank per term and country within Google's first ~30 results, or not_in_results. - `appIds` (array): Package names such as com.whatsapp, or URLs such as https://play.google.com/store/apps/details?id=com.whatsapp. Up to 300; app IDs × countries at most 400. An app missing in a country returns a not_found row (not charged). - `includeDescription` (boolean): Adds the full description and What's New text from the app page. Makes rows much larger. ## Step by step on Apify 1. Open the Input tab. 2. Keep Mode = `Search by keywords` (the default). 3. Keep the prefilled Search terms `pdf scanner` and Countries `us`, or add your own. 4. Keep Results per term and country = 20 and click Start. 5. Open the Output tab and the Search results view. Check `rank`, `title`, `installs` and `score`. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Keyword rank research | `terms` + `countries` | App row per rank | `term`, `country`, `rank`, `appId`, `title` | Export CSV, compare countries | | Track my app's rank | `terms` + `trackAppIds` | Run summary `rankTracking` | `rank`, `status` (`ranked` / `not_in_results`) | Schedule a daily run | | Competitor snapshot | `mode: details` + `appIds` | App row per app and country | `installs`, `score`, `ratings`, `price`, `updatedAt`, `version` | Google Sheets or API | | Fast keyword scan | `includeDetails: false` | Search row | `rank`, `title`, `developer`, `score`, `price` | Pick apps for a details run | ## Tips - Turn off app page details for a fast keyword scan. - Use package names like com.whatsapp in details mode. - Schedule a daily run to see rank changes. ## Limits - Up to 60 searches (terms × countries) and up to 30 apps per search. - With app page details: up to 400 app pages per run (for example 20 terms × 2 countries × 10 apps). Such a run takes about 3.5 minutes. - Without details: up to 60 × 30 = 1,800 rows, in under a minute. - Details mode: up to 300 app IDs and 400 lookups (app IDs × countries). ## Sample result ```json { "status": "complete", "mode": "search", "term": "pdf scanner", "country": "us", "rank": 2, "appId": "imagetopdf.pdfconverter.jpgtopdf.pdfeditor", "title": "Image to PDF - PDF Maker", "developer": "Simple Design Ltd.", "score": 4.877, "ratings": 2426697, "installs": "50,000,000+", "minInstalls": 50000000, "free": true, "offersIAP": true, "genre": "Productivity", "contentRating": "Everyone", "updatedAt": "2026-09-28T13:34:21.000Z", "version": "1.7.8", "description": null, "detailsIncluded": true, "errorCode": null } ``` ## Use it from code Actor ID: `cliqtomedia/google-play-apps-search` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/google-play-apps-search").call(run_input={ "mode": "search", "terms": [ "pdf scanner" ] }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-play-apps-search/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"mode": "search", "terms": ["pdf scanner"]}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/google-play-apps-search") result = tool.invoke({"run_input": {"mode": "search", "terms": ["pdf scanner"]}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [Read new reviews, yours and theirs](https://cliqtomedia.com/actors/use-cases/review-monitoring/): Collect reviews from the App Store, Google Play and more. Find what people love and what they hate. ## Similar tools - [App Store Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/app-store-apps-search/) - [Apple App Store Reviews Scraper](https://cliqtomedia.com/actors/apple-app-store-reviews-scraper/) - [Google Play Reviews Scraper](https://cliqtomedia.com/actors/google-play-reviews-scraper/) - [TrustRadius Reviews Scraper](https://cliqtomedia.com/actors/trustradius-reviews-scraper/) - [OpenTable Reviews & Restaurants Scraper, No Login](https://cliqtomedia.com/actors/opentable-reviews-scraper/) - [Trustpilot Reviews Scraper - Ratings & Replies, No Login](https://cliqtomedia.com/actors/trustpilot-reviews-scraper/) --- # Google Play Reviews Scraper > Google Play reviews scraper for written app reviews. Get scores, dates, app versions and developer replies. Choose language and sort. Export CSV. URL: https://cliqtomedia.com/actors/google-play-reviews-scraper/ Category: Reviews & app stores · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/google-play-reviews-scraper?fpr=cliqto Export written Google Play reviews for your apps. Choose language, country, sort order and how many you want. Stable review IDs help you match reviews later. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `com.google.android.apps.translate` in Apps. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Get public written reviews from Google Play. Add an app link or Android package ID. Then choose the review language, Google Play country, sort order, and number of reviews you want. - review text and score; - last update time and app version; - helpful vote count; - developer reply and reply time, when available; - the language, Google Play country, and sort order you chose; - stable review IDs that help you match the same review in later runs. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Saved review | $0.0001 | One saved unique review in the default dataset | | Start fee | $0.0035 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | - One review: about $0.0036. - 1,000 reviews: about $0.10. - Every day 100 reviews, for 30 days: about $0.40 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/google-play-reviews-scraper?fpr=cliqto ## Questions ### Can I export reviews to Excel? Yes. Open the dataset and export to CSV, Excel or JSON. ### Does the country show where the reviewer lives? No. It only changes the store view used. ### Can I get every old review? No. You get the set Google Play returns for your settings. ### Why is a developer reply empty? Not every review has a reply. ### Can I download the results as CSV or Excel? Yes. Open the Dataset, click Export results, and choose JSON, CSV, Excel, or another format supported by Apify. ### Can I get reviews from a specific reviewer country? No. Google Play country changes the store view used for the request. It does not tell you where a reviewer lives. ### Does the Actor get all old reviews? No. It gets the current set that Google Play returns for your language and sort order. Google Play does not provide a public total that proves full history. ### Where can I see why the Actor stopped? Open Run report in the Output tab. The exact record name is `RUN_SUMMARY`. ## Data fields - `schemaVersion` (string) - `itemId` (string) - `reviewId` (string) - `packageId` (string) - `appUrl` (string) - `requestedLanguage` (string) - `requestedCountry` (string) - `sortMode` (string) - `score` (integer) - `text` (string) - `lastModifiedAt` (string) - `thumbsUpCount` (integer) - `appVersion` (string) - `criteria` (array) - `developerReply` (object) - `reviewer` (object) - `observedAt` (string) ## Input settings - `appIds` (array, required): Add 1–20 Android package IDs or Google Play app links. Example: com.spotify.music. The Actor skips repeated apps. - `language` (string): Choose the language of reviews Google Play should return. Use a code such as en, de, or pt-BR. The Actor does not check the language of each review. - `country` (string): Choose the Google Play store view with a two-letter code such as US or DE. This is not the reviewer's country, location, or nationality. - `sort` (string): Choose newest reviews, highest ratings first, or Google Play relevance. Google Play controls relevance order, so it can change. - `maxReviewsPerApp` (integer): Choose how many unique reviews to save for each app. The form starts at 10. The API default is 100. Repeated reviews do not use the limit. - `maxTotalReviews` (integer): Choose how many unique reviews to save across all apps. The form starts at 10. The API default is 1,000. - `includeReviewerProfile` (boolean): Leave this off to exclude reviewer names and profile images. It is off by default and only works when the publisher has enabled it. ## Step by step on Apify 1. Add a Google Play app link or package ID to Apps. 2. Choose the review language and sort order. 3. Set how many reviews you want. 4. Click Start. 5. Open Your review results in the Output tab. 6. Click Export results to download JSON, CSV, or Excel. 7. Google Play can change. Check the run report when an app returns no rows. The required `appIds` field has a UI prefill, but no API default. An API request with `{}` is invalid; it never starts a hidden demo. ## Use cases - Product teams: compare `score`, `text` and `appVersion` after a release. - Support teams: check `developerReply` and its update time. - Analysts: group exported reviews by app and requested language. - Data teams: update records by `itemId` when review content changes. ## Tips - A run can take up to 20 apps and 5,000 reviews per app. - Use the item ID to update reviews that change. - Open the run report to see why a run stopped. ## Limits Maximum scope is 20 apps, 5,000 reviews per app and 20,000 per run. The source returns pages of up to 150 reviews. The Actor uses one request stream, at most two request starts per second, up to three attempts per request, and at most 2 MiB per reviews response. An attempt timeout covers headers and body. Source work ends within 10 minutes even if the platform timeout is larger. A shorter platform timeout reserves 30 seconds for the run report. The standard 300-second demo keeps source work within the remaining 270 seconds. - every review from the full history of an app; - reviews from every language or country setting; - a stable relevance order between runs; - that Google Play will always keep the same data source available; - that the app's public review count will match the number of written reviews this Actor can get. ## Sample result ```json { "itemId": "com.google.android.apps.translate:0d19bfba-aa69-408e-8547-674e0572db26", "reviewId": "0d19bfba-aa69-408e-8547-674e0572db26", "packageId": "com.google.android.apps.translate", "score": 5, "text": "very nicer app", "lastModifiedAt": "2026-10-08T22:41:54.701Z", "appVersion": "10.38.67.991942559.4-release", "developerReply": null, "reviewer": null, "requestedLanguage": "en", "requestedCountry": "US", "sortMode": "newest", "observedAt": "2026-10-10T00:50:15.763Z" } ``` ## Use it from code Actor ID: `cliqtomedia/google-play-reviews-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/google-play-reviews-scraper").call(run_input={ "appIds": [ "com.google.android.apps.translate" ], "language": "en" }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-play-reviews-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"appIds": ["com.google.android.apps.translate"], "language": "en"}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/google-play-reviews-scraper") result = tool.invoke({"run_input": {"appIds": ["com.google.android.apps.translate"], "language": "en"}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [Read new reviews, yours and theirs](https://cliqtomedia.com/actors/use-cases/review-monitoring/): Collect reviews from the App Store, Google Play and more. Find what people love and what they hate. ## Similar tools - [Apple App Store Reviews Scraper](https://cliqtomedia.com/actors/apple-app-store-reviews-scraper/) - [TrustRadius Reviews Scraper](https://cliqtomedia.com/actors/trustradius-reviews-scraper/) - [App Store Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/app-store-apps-search/) - [Google Play Search, Rank & App Details — No Login](https://cliqtomedia.com/actors/google-play-apps-search/) - [OpenTable Reviews & Restaurants Scraper, No Login](https://cliqtomedia.com/actors/opentable-reviews-scraper/) - [Trustpilot Reviews Scraper - Ratings & Replies, No Login](https://cliqtomedia.com/actors/trustpilot-reviews-scraper/) --- # Google Scholar Search Scraper > Google Scholar scraper: get title, authors, venue, year, cited-by count and PDF link for your queries. Filter by year. No login or API key. URL: https://cliqtomedia.com/actors/google-scholar-scraper/ Category: Science & research data · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto Search Google Scholar and get one row per article. Each row has title, authors, year, snippet and cited-by count. It adds a PDF link when shown. You need no Google login. ## How to use it: 3 steps 1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `web scraping` in Search queries. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Search Google Scholar with your own queries and get one Dataset row per article: title, link, authors, venue, year, snippet, cited-by count and a direct PDF or HTML link when Scholar shows one. Add a year range, skip [CITATION] entries or sort by date. No Google login, account or API key is needed. ### Good for - Literature review: the top articles on a topic, with authors, venue, year and citation counts in one spreadsheet. - Finding open full texts: `pdfUrl` gives the direct [PDF] or [HTML] link from the right column of Scholar. - Comparing topics or periods: several queries in one run, each with the same year range. - Feeding papers to an AI agent or a RAG pipeline: titles, snippets and links as clean JSON. ### Not a good fit - More than 100 articles per query. Scholar cuts deeper pages for automated traffic; split a big topic into narrower queries or year ranges. - Author profile pages, "Cited by" lists, BibTeX/citation export or full abstracts. The Actor returns the snippet Scholar shows, not the abstract. - Downloading PDFs. The Actor returns links; it does not fetch or store files. - Pages behind a CAPTCHA. The Actor never solves CAPTCHAs. When Scholar blocks every proxy IP, the query gets an `error` row and is not charged. ## Price Prices will be shown after release. ## Questions ### Do I need a Google account or an API key? No. It reads public Scholar pages. You only need an Apify account. ### Why is citedBy or year empty for some rows? Scholar does not show them for every result. Empty means not shown, not zero. ### Can I get every article on a topic? No. It returns up to 100 articles per query. Use narrower queries or year ranges to get more. ### Does it download PDFs? No. It gives you the links only. It does not save files. ### Are the results the same as in my browser? Not always. Scholar answers different IPs and sessions differently: when we ran the same query several times, the order and some of the articles changed between runs. `position` is Scholar's order at the time of the run, so compare by `title` or `url`, not by position. ## Data fields - `query` (string): Your search query. - `position` (integer): Place of the article among the articles returned for this query, continuing across pages (page 2 normally starts at 11). Articles Scholar repeats from earlier pages are skipped, so later positions can move up. Null on not_found/error rows. - `page` (integer): Scholar result page (1 = first page). - `resultId` (string): Scholar's own id of the result (data-cid), stable across runs; useful for de-duplication. - `type` (string): Kind Scholar marks before the title: article (no label), pdf, html, book or citation (known only from reference lists). - `title` (string): Article title. - `url` (string): Link of the title (publisher page or repository). Null for [CITATION] entries without a link. - `authors` (array): Author names as Scholar prints them (initials and surname). Scholar may shorten long lists, see authorsTruncated. - `authorsTruncated` (boolean): True when Scholar cut the author list with "…". - `authorProfiles` (array): Authors with a Google Scholar profile: [{name, profileId, profileUrl}]. - `venue` (string): Journal, conference or book as Scholar prints it; may be shortened with "…". Null when Scholar shows none. - `year` (integer): Publication year from the result line. Null when Scholar shows no year (not 0). - `source` (string): Domain or publisher Scholar shows at the end of the result line, e.g. "nature.com". - `snippet` (string): Text excerpt Scholar shows under the title. - `addedAgo` (string): Only with sortByDate: how long ago Scholar added the article, as Scholar prints it (e.g. "2 days ago"); removed from the snippet. Null otherwise. - `citedBy` (integer): Number from "Cited by N". 0 when Scholar shows the result's link bar without a "Cited by" link (no known citations); null when the link bar is missing. - `citedByUrl` (string): Scholar page listing the citing articles. - `versions` (integer): Number from "All N versions"; 1 when the link bar has no versions link; null when the link bar is missing. - `versionsUrl` (string): Scholar page listing all versions. - `relatedUrl` (string): Scholar "Related articles" search. - `pdfUrl` (string): Direct full-text link from the right column ([PDF] or [HTML]); null when Scholar shows none. - `fullTextType` (string): Label Scholar shows for that link: usually PDF or HTML, sometimes another file type such as PS or DOC. - `searchUrl` (string): Scholar results page this row came from. - `status` (string): complete: an article row. not_found: Scholar found nothing for the query and filters (no article charge; the query event applies). error: the query or a later page failed (free), see statusReason. - `statusReason` (string): Why the row is not_found or error. - `errorCode` (string): Machine-readable error code on error rows, e.g. SOURCE_BLOCKED, DEADLINE_REACHED. - `fetchedAt` (string): When the page was fetched (ISO 8601, UTC). ## Input settings - `queries` (array, required): What to search on Google Scholar, one query per line, e.g. "web scraping". Scholar operators such as author:"J Smith", source:Nature or "exact phrase" work. Up to 200 queries; duplicates are removed. - `maxResults` (integer): How many articles to return for each query, up to 100 (Scholar shows 10 per page). You pay per article returned plus a small fee per answered query. Stops earlier when Scholar has no more results. Need more on one topic? Add narrower queries or split by year range. - `yearFrom` (integer): Only articles published in this year or later (Scholar's "Since" / custom range filter). Leave empty for any year. - `yearTo` (integer): Only articles published in this year or earlier. Leave empty for any year. - `includeCitations` (boolean): Keep [CITATION] entries (works Scholar knows only from other papers' reference lists, without an online copy). Turn off to get only results with a link. - `sortByDate` (boolean): Newest first, as Scholar's "Sort by date" does: Scholar then shows only articles added in the last year, so year filters and totals differ. Default: sort by relevance. - `proxyConfiguration` (object): Apify datacenter proxy by default. A page Scholar refuses or shortens on datacenter IPs is retried through Apify residential proxy (US). Choose your own proxy group or URLs to turn this off. The Actor never solves CAPTCHAs. ## Step by step on Apify 1. Open the Input tab. The form is prefilled with the query `web scraping` and Max results per query = 10. 2. Click Start. 3. Open the Results view in the Dataset. Check `title`, `authors`, `year`, `citedBy` and `pdfUrl`. 4. Open the `RUN_SUMMARY` record in the Key-value store to see the run status and counts. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Top papers on a topic | `queries` + `maxResults` | Article | `title`, `authors`, `year`, `citedBy` | Export CSV or Excel | | Papers from a fixed period | `yearFrom` + `yearTo` | Article | `year`, `venue`, `url` | Screening spreadsheet | | Open full texts | `includeCitations: false` | Article | `pdfUrl`, `fullTextType`, `source` | Download with your own tool | | Newest papers | `sortByDate: true` | Article | `addedAgo`, `title`, `url` | Read via API | | Papers by one author or journal | `queries` with `author:` or `source:` | Article | `authorProfiles`, `venue`, `citedBy` | Join on `resultId` | ## Tips - Use a year range to focus on new papers. - Use narrow queries or year ranges to get more than 100 articles. - Use the pdfUrl field to find open full texts fast. ## Limits This Actor is independent of Google. It reads public Google Scholar results pages, the same pages you see in a browser without login. Articles belong to their authors and publishers; check their terms before you reuse texts or PDFs. - Up to 200 queries per run and 100 articles per query. In our tests 200 queries × 1 article took about 9 minutes with a 600-second timeout, so raise the timeout for big lists. - Speed: a 10-article run usually takes under 10 seconds. In our tests 3 queries × 50 articles took about 30 seconds, and 5 queries × 100 articles took 2–3 minutes at 256 MB. - Deep pages: Scholar often repeats or empties pages after about 70 articles of one query. In our tests 1–2 of 5 queries × 100 ended with a free `error` row after 72–92 articles; the other queries reached 100. - The default run timeout is 300 seconds. The Actor stops source work 15 seconds before the timeout and keeps what it has: the run ends SUCCEEDED with status `CAPPED` and reason `DEADLINE`. For many queries, raise the timeout in the run options. - Default memory is 256 MB; more memory does not add results. - Results are in English Scholar (`hl=en`) with Scholar's default search scope (articles, no patents). ## Sample result ```json { "query": "web scraping", "position": 1, "page": 1, "resultId": "vzUZDE4wNWMJ", "type": "pdf", "title": "Web scraping or web crawling: State of art, techniques, approaches and application.", "url": "http://i-csrs.org/Volumes/ijasca/2021.3.11.pdf", "authors": ["Author One"], "authorsTruncated": false, "authorProfiles": [ { "name": "Author One", "profileId": "AUTHOR_ID_1", "profileUrl": "https://scholar.google.com/citations?user=AUTHOR_ID_1&hl=en" } ], "venue": "International Journal of Advances in Soft Computing & …", "year": 2021, "source": "i-csrs.org", "snippet": "… are required to implement web scrapping properly such as … into what web scraping is, how it works, web scraping stages, …", "addedAgo": null, "citedBy": 679, "versions": 4, "pdfUrl": "http://i-csrs.org/Volumes/ijasca/2021.3.11.pdf", "fullTextType": "PDF", "searchUrl": "https://scholar.google.com/scholar?q=web+scraping&hl=en&as_sdt=0%2C5", "status": "complete", "statusReason": null, "errorCode": null, "fetchedAt": "2026-10-17T12:32:46.110Z" } ``` ## Similar tools - [DOI Metadata & Bibliography Enrichment](https://cliqtomedia.com/actors/doi-bibliography-enrichment/) - [Google Patent Details Scraper](https://cliqtomedia.com/actors/google-patents-scraper/) - [ClinicalTrials.gov Studies Search & Monitor](https://cliqtomedia.com/actors/clinicaltrials-gov-studies-monitor/) - [DataCite Research Dataset Search](https://cliqtomedia.com/actors/datacite-dataset-search/) - [Europe PMC Literature Search & Monitor](https://cliqtomedia.com/actors/europe-pmc-literature-search/) - [GBIF Biodiversity Occurrence Search](https://cliqtomedia.com/actors/gbif-occurrence-search/) --- # Google Search Results Scraper (SERP) > Google search results scraper: get organic positions, titles, URLs, snippets, dates and related searches by country and language. No login, pay per page. URL: https://cliqtomedia.com/actors/google-search-scraper/ Category: Search, SEO & ads · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/google-search-scraper?fpr=cliqto Add keywords and get Google results as rows. You get organic results with their positions and related searches. You pay per loaded results page. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `apify web scraping` in Search queries. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Add search queries, pick a Google country and language, and get the public Google search results (SERP) as one row per result: organic results and related searches, each with its position. No Google login, no API key; you pay per loaded results page, about $0.006 for the first page of one query. - organic results: position, title, URL, displayed URL, snippet, date and sitelinks (when Google shows them); - related searches: the "People also search for" list, once per query. ### Good for - Track where a site ranks for a list of keywords in one country. - Collect top 10–100 URLs for a topic for SEO or content research. - See which shops and brands rank for product queries. - Find related searches to grow a keyword list. ### Not a good fit - The Actor reads Google's simple HTML results page. It does not return ads, shopping prices, People Also Ask, AI Overviews, featured snippets, maps or image packs. - Results are not personalised and not tied to a city. A Google Ads account, Search Console data or search volume are not included. - Google sometimes blocks automated traffic. The Actor changes IP addresses and retries, but it never solves CAPTCHAs (see Troubleshooting). ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.004 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Results page | $0.002 (from $0.0015 on paid Apify plans) | Charged once for each Google results page loaded for a query (about 10 organic results plus ads and related searches). A query with no results costs one page. Error rows are free. | - One result: about $0.006. - 1,000 results: about $2.00. - Every day 100 results, for 30 days: about $6.12 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/google-search-scraper?fpr=cliqto ## Questions ### Does it return People Also Ask or AI Overviews? No. It reads the simple Google results page. It gives organic results and related searches. Ads, sitelinks and shopping prices are not included. ### How deep can it go? Up to 10 result pages per query and up to 500 queries per run. ### Are results personalised or local to a city? No. Results are for the chosen country and language only. ### Do I need a Google account or API key? No. The Actor reads public results pages without login or cookies of any account. ### How many results do I get per page? Usually 9–10 organic results and 8–10 related searches, depending on the query. ### Is the order the same as on google.com? `position` follows the order on the simple Google results page for the chosen country and language. It can differ a little from a personalised desktop page. ### What does `null` mean? Google did not show that value, for example no date. It is not zero and not an error. ## Data fields - `query` (string): Your search query. - `page` (integer): Google result page (1 = first page). - `type` (string): organic result or related search (ad is reserved and not written today); null on not_found/error rows. - `position` (integer): Place among rows of the same type for this query; organic positions continue across pages (page 2 starts at 11 when page 1 had 10). - `title` (string): Result title or the related search text. - `url` (string): Result URL. For related: Google search URL. Null when Google hid an organic link and did not reveal it (see statusReason). - `displayedUrl` (string): Site as Google shows it (domain and breadcrumb). - `description` (string): Snippet text. - `date` (string): Date shown before the snippet, as Google prints it (e.g. "Oct 2, 2026", "3 days ago"). - `sitelinks` (array): Links Google shows under a result, as [{title, url}]. They are not separate rows and do not change position. An empty list when Google shows none. - `price` (string): Always null: the simple Google results page shows no prices. - `countryCode` (string): Google country used (gl). - `languageCode` (string): Google language used (hl). - `searchUrl` (string): Google results page that was scraped. - `status` (string): complete = a result; not_found = Google returned no results for the query; error = the query could not be scraped. A not_found row is one charged page (Google was queried); error rows are free. - `statusReason` (string): Plain-English reason for not_found/error rows, or a note on a result (e.g. hidden URL). - `errorCode` (string): Machine code for error rows, e.g. SOURCE_BLOCKED, DEADLINE_REACHED. - `fetchedAt` (string): When the page was scraped (ISO 8601). ## Input settings - `queries` (array, required): What to search on Google, one query per line, e.g. "best running shoes". Google operators such as site:example.com or "exact phrase" work. Up to 500 queries; duplicates are removed. - `countryCode` (string): Google country (gl parameter): results are ranked for this country. Default: United States. - `languageCode` (string): Google interface language (hl parameter). It changes labels and slightly the ranking; results in other languages can still appear. Default: English. - `maxPagesPerQuery` (integer): How many Google result pages to scrape for each query (usually 9–10 organic results per page). Each loaded page is one charged page (a query with no results costs one page). Stops earlier when Google has no next page. - `includeAds` (boolean): Kept for compatibility. Google's simple results page shows no ads, so this option adds no rows today. Only loaded pages are charged. - `includeRelated` (boolean): Add rows for "People also search for" / related searches, once per query. - `proxyConfiguration` (object): Apify datacenter proxy by default. A page that Google refuses on several datacenter IPs is retried through Apify residential proxy in the chosen country. Choose your own proxy group or URLs to turn this off. The Actor never solves CAPTCHAs. ## Step by step on Apify 1. Open the Input tab. 2. In Search queries (`queries`), keep the prefilled `apify web scraping` or add your own queries, one per line. 3. Keep Country `us` and Language `en` (defaults), or choose others. 4. Keep Pages per query (`maxPagesPerQuery`) at `1` (prefill), or set up to `10`. 5. Click Start. 6. Open the Output tab (Dataset) and check `type`, `position`, `title` and `url`. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Rank tracking | `queries`, `countryCode`, `maxPagesPerQuery` | organic row | `query`, `position`, `url`, `page` | Schedule + Google Sheets or API | | SEO content research | `queries`, `languageCode` | organic row | `title`, `description`, `displayedUrl`, `date` | Export CSV / JSON | | Shop and brand check | `queries`, `countryCode` | organic row | `title`, `url`, `displayedUrl`, `description` | Export to spreadsheet | | Keyword ideas | `queries`, `includeRelated` | related row | `title`, `url` | Feed back into `queries` | ## Tips - Use related searches as new keywords for your next run. - Ask for fewer pages if you only need the top 10. - Set a maximum charge per run to control cost. ## Limits - A query with no results costs one page: Google was asked and answered. - `error` rows (Google refused the page) are free. - If you set a maximum charge for the run, the Actor stops before it, keeps the rows and ends with status CAPPED. - Up to 500 queries and 10 pages per query in one run. - Run time depends on Google's answers: in the latest test, 40 pages took about 7 seconds without blocks. Very large runs were not measured on the current route, so start with a smaller list. After 3,600 seconds the run stops with status CAPPED and keeps all rows; split bigger lists across runs. - Google decides how many pages a query has; some queries end before page 10. ## Sample result ```json { "query": "coffee machine", "page": 1, "type": "organic", "position": 1, "title": "Coffee & Espresso Makers | Macy's", "url": "https://www.macys.com/shop/home/kitchen-dining/kitchen/coffee-espresso-makers?id=24732", "displayedUrl": "www.macys.com › Home › Kitchen & Dining › All Kitchen", "description": "Shop coffee makers at Macy's with stylish, high-quality ...", "date": "Oct 9, 2026", "sitelinks": [], "price": null, "countryCode": "us", "languageCode": "en", "searchUrl": "https://www.google.com/search?q=coffee+machine&hl=en&gl=us", "status": "complete", "statusReason": null, "errorCode": null, "fetchedAt": "2026-10-22T04:06:02.872Z" } ``` ## Use it from code Actor ID: `cliqtomedia/google-search-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/google-search-scraper").call(run_input={ "queries": [ "apify web scraping" ], "countryCode": "us" }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-search-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"queries": ["apify web scraping"], "countryCode": "us"}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/google-search-scraper") result = tool.invoke({"run_input": {"queries": ["apify web scraping"], "countryCode": "us"}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [Know what your competitors do](https://cliqtomedia.com/actors/use-cases/competitor-monitoring/): See what your competitors launch, hire, change and advertise. Every week, without opening their sites. - [SEO data without a big suite](https://cliqtomedia.com/actors/use-cases/seo-research/): Collect keyword ideas and check your pages and your rivals' pages. Search results and trends coming soon. ## Similar tools - [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/) - [Website Metadata & Open Graph Scraper](https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/) - [Domain WHOIS (RDAP) & DNS Lookup, No Login](https://cliqtomedia.com/actors/domain-whois-dns-lookup/) - [Website Screenshot & PDF Generator: Full Page & Mobile](https://cliqtomedia.com/actors/website-screenshot-pdf/) - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) - [XML Sitemap URLs Extractor](https://cliqtomedia.com/actors/xml-sitemap-urls-extractor/) --- # Google Shopping Scraper: Prices, Stores and Offers > Google Shopping scraper: product title, price, store, rating and reviews for your searches. Add offers to see each store's price. Pick a country. URL: https://cliqtomedia.com/actors/google-shopping-scraper/ Category: E-commerce & prices · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto Add product searches and pick a country. You get Google Shopping results as one row per product. Turn on offers to see the price of each store. ## How to use it: 3 steps 1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `wireless earbuds` in Product searches. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Add product searches, pick a country, and get Google Shopping results as one row per product: title, price as a number with currency, store, rating, reviews and the Google product link. Turn on offers to get the price of every store that sells the product. - product card: position, title, price (number), price text, old price, currency (ISO code), store, "& more stores" flag, rating, number of reviews, delivery and returns notes, condition, Google product IDs and the Google product page link; - offers (optional): for each product, the list of stores from the Google product page, with price, currency, availability, store rating, delivery, returns and a link. ### Good for - Check prices of your products and competitors in one country. - See which stores sell a product and for how much. - Collect product lists for a category or keyword with ratings and reviews. - Watch price changes with a daily or weekly schedule. ### Not a good fit - One Google Shopping page per search: up to 60 products. Google does not give more pages in this format. - No sorting or price filters: Google ignores them for this kind of request. - No product images: Google puts small images inside the page code, not as links. - Rating and reviews are as shown on the Google product card. For some products Google shows the rating of one store listing, so it can differ from other sites. - The local-currency check covers 61 countries. In other countries results are saved as Google shows them. - Store links in offers are Google redirect links (`google.com/goto?...`), not direct store URLs. - In the EU (for example France), Google often does not open the product page. Products are still saved, but their offers are `null` and the row status is `partial` (see Troubleshooting). ## Price Prices will be shown after release. ## Questions ### Do I need a Google account? No. No Google login or API key is needed. ### How many products per search? Up to 60, the size of one Google Shopping page. ### Can I sort or filter by price? No. Google ignores these for this kind of request. ### Are store links direct? No. Store links in offers are Google redirect links. ### Which countries work? You can choose any country from the list, but Google Shopping does not work in every country. Tests used the US, UK, Germany, Canada, France and Australia. In 61 countries (for example the US, UK, Canada, Australia, the euro area, Japan, India and Brazil) the Actor checks that prices are in the local currency; if Google answers for another country, it tries again from a new IP address. In other countries it saves the results as Google shows them and writes `COUNTRY_NOT_CHECKED` in the `RUN_SUMMARY` warnings. ### Why is `price` a number? So you can sort and compare. The price as shown is in `priceText`, and the currency code is in `currency`. ### What does `null` mean? Google did not show that value, for example no rating or no old price. It is not zero and not an error. ## Data fields - `query` (string): Your product search. - `position` (integer): Place of the product on the Google Shopping page (1 = first); null on not_found/error rows. - `title` (string): Product name as Google shows it. - `price` (number): Price as a number in the listed currency, e.g. 299. Null when Google shows no price. - `priceText` (string): Price exactly as shown, e.g. "$299.00" or "24,90 €". - `oldPrice` (number): Earlier price when Google shows a discount ("was $90"); null otherwise. - `currency` (string): ISO currency code from the price symbol and country, e.g. USD, EUR; null when it is not clear. - `condition` (string): Condition label when Google shows one ("Used", "Refurbished"); null for new items. - `merchant` (string): Store that Google shows on the card. - `moreMerchants` (boolean): True when the card says "& more": other stores also sell this product. - `rating` (number): Product rating 0–5; null when Google shows none. - `reviewsCount` (integer): Number of product reviews (as rounded as Google shows it, e.g. "3K" = 3000); null when none. - `delivery` (string): Delivery text, e.g. "Free delivery by Mon". - `returns` (string): Returns text, e.g. "30-day returns". - `productUrl` (string): Google Shopping product page with the stores that sell it. - `offers` (array): Stores selling the product (only with "Include offers"): merchant, price, availability, delivery, returns, store rating, Google link to the store page. Null when not requested or not loaded; [] when Google lists no offers. - `offersCount` (integer): Number of offers loaded; null when offers were not loaded. - `ids` (object): Google product ids: catalogId, gpcId, offerDocId, productDocId (any may be null). - `countryCode` (string): Google country used (gl). - `languageCode` (string): Google language used (hl). - `searchUrl` (string): Google Shopping page that was scraped. - `status` (string): complete = a product; partial = a product whose store offers could not be loaded (no offers charge); not_found = Google Shopping returned no products for the search; error = the search could not be scraped. not_found and error rows add no product charge; a not_found search still counts as one loaded search page. - `statusReason` (string): Plain-English reason for partial/not_found/error rows, or a note on a product. - `errorCode` (string): Machine code, e.g. SOURCE_BLOCKED, DEADLINE_REACHED. - `fetchedAt` (string): When the page was scraped (ISO 8601). ## Input settings - `queries` (array, required): What to search on Google Shopping, one per line, e.g. "wireless earbuds" or "iphone 17 pro 256gb". Up to 200 searches; duplicates are removed. - `countryCode` (string): Google Shopping country (gl parameter): products, stores and prices for buyers in this country. In 61 countries (for example the US, UK, Canada, Australia, the euro area, Japan, India, Brazil) prices are checked against the local currency and a page answered for another country is asked again; in other countries results are saved as Google shows them. Google Shopping is not available in every country; then the query returns a not_found row. Default: United States. - `languageCode` (string): Google interface language (hl parameter). It changes labels such as delivery and returns texts; prices stay in the local currency. Default: English. - `maxItems` (integer): How many products to save for each search, in Google's order. Google Shopping shows one page of about 40–60 products per search and has no further pages, so a search can return fewer. - `includeOffers` (boolean): Open each product and add the stores that sell it (store, price, availability, delivery, returns, store rating, link). Adds one event per product with at least one store. Slower: about 5 seconds per product on average (product pages open 5 at a time). ## Step by step on Apify 1. Open the Input tab. 2. In Product searches (`queries`), keep the prefilled `wireless earbuds` or add your own phrases, one per line. 3. Keep Country `us` (default) or choose another country. 4. Keep Products per search (`maxItems`) at `10` (prefill), or set up to `60`. 5. Click Start. 6. Open the Output tab and check `title`, `price`, `currency`, `merchant` and `rating`. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Price monitoring | `queries` (product names or models), `countryCode` | product row | `price`, `currency`, `merchant`, `oldPrice` | Schedule + Google Sheets or API | | Store comparison | `queries`, `includeOffers: true` | product row with `offers` | `offers[].merchant`, `offers[].price`, `offers[].availability` | Export JSON / Excel | | Category research | `queries` (category words), `maxItems: 60` | product row | `title`, `rating`, `reviewsCount`, `position` | Export CSV | | Country check | same `queries`, different `countryCode` | product row | `price`, `currency`, `countryCode` | Compare in a spreadsheet | ## Tips - Turn on offers only when you need store prices. It adds about 5 seconds per product. - Run the same searches on a schedule to track price changes. - Raise the timeout for big runs. For 200 searches, set about 1,200 seconds. ## Limits - A phrase with no products costs one search page: Google was asked and answered. - `error` rows are free. Products with `partial` status (offers not loaded) are charged as a product, not as offers. - If you set a maximum charge for the run, the Actor stops before it, keeps the rows and ends with status CAPPED. - Up to 200 phrases and 60 products per phrase in one run. A test with 200 phrases and 60 products each (about 10,000 rows) took about 14 minutes. - The default timeout is 300 seconds: enough for about 30 phrases without offers (in tests, 10 US phrases took about 60 seconds and 50 German phrases about 160 seconds), or about 50 products with offers. For bigger runs set a longer timeout (for 200 phrases, 1,200 seconds). At the time limit the run stops with status CAPPED and keeps all rows. - With offers on, each product needs one more Google page, about 5 seconds per product. ## Sample result ```json { "query": "wireless earbuds", "position": 1, "title": "JLab Go Air Pop True Wireless Earbuds", "price": 17.99, "priceText": "$17.99", "oldPrice": 27, "currency": "USD", "condition": null, "merchant": "Best Buy", "moreMerchants": true, "rating": 4.3, "reviewsCount": 33000, "delivery": "Free delivery", "returns": null, "productUrl": "https://www.google.com/search?q=JLab+Go+Air+Pop+True+Wireless+Earbuds&udm=28&ibp=oshop&prds=catalogid%3A8372463217625314514%2Cgpcid%3A9146411353573113826%2CheadlineOfferDocid%3A452194635528668653%2CproductDocid%3A10114522055954158630&gl=us&hl=en&uule=w+CAIQICINVW5pdGVkIFN0YXRlcw", "offers": null, "offersCount": null, "ids": { "catalogId": "8372463217625314514", "gpcId": "9146411353573113826", "offerDocId": "452194635528668653", "productDocId": "10114522055954158630" }, "countryCode": "us", "languageCode": "en", "searchUrl": "https://www.google.com/search?q=wireless+earbuds&tbm=shop&hl=en&gl=us&uule=w+CAIQICINVW5pdGVkIFN0YXRlcw", "status": "complete", "statusReason": null, "errorCode": null, "fetchedAt": "2026-10-15T05:53:19.024Z" } ``` ## Use cases with this tool - [Track prices in shops and marketplaces](https://cliqtomedia.com/actors/use-cases/price-monitoring/): Track prices and offers in shops and marketplaces. See changes before your customers do. ## Similar tools - [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/) - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) - [Website Metadata & Open Graph Scraper](https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/) - [Website Screenshot & PDF Generator: Full Page & Mobile](https://cliqtomedia.com/actors/website-screenshot-pdf/) - [AliExpress Scraper: Products, Prices & Reviews, No Login](https://cliqtomedia.com/actors/aliexpress-scraper/) - [Coles, Woolworths & Aldi Price Scraper - No Login](https://cliqtomedia.com/actors/au-supermarket-prices/) --- # Google Trends Scraper > Google Trends scraper: get interest over time, interest by region and related queries for up to 50 keywords. Compare 5 terms. Export to CSV or Excel. URL: https://cliqtomedia.com/actors/google-trends-scraper/ Category: Search, SEO & ads · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/google-trends-scraper?fpr=cliqto Get Google Trends data for many keywords in one run. You get interest over time, by region and related queries. Open it as a table or export it. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `web scraping` in Search terms. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Google Trends Scraper gets [Google Trends](https://trends.google.com/trends/) data for your keywords: interest over time, interest by country, region, metro or city, and related queries and topics. Add one or more search terms, pick a location and a time range, and the Actor returns clean rows that you can open as a table, export to CSV or Excel, or read with the API. - Interest over time: one row per time point with a value from 0 to 100 (100 = the highest interest in the chosen period and place). - Interest by region: one row per country, region, US metro area or city that has data. - Related queries: top and rising searches that people also made. - Related topics: top and rising topics, only when Google sends them. - Summary: one row per term with its status, average interest and row counts. ### Good for - Check how interest in a product, brand or topic changes over months or years. - Find the countries or US states where a term is most popular. - Collect rising queries for content and SEO ideas. - Compare up to 5 brands or keywords on one scale. ### Not a good fit - Google Trends shows relative interest (0–100), not the number of searches. It is not a keyword volume tool. - It does not collect "Trending now" daily trends or real-time trending stories. - Google gives no region data for some terms and filters (for example many terms at city level). The Actor then returns the other sections and explains it in a warning. - Related topics: in our tests in October 2026, Google sent empty topic lists for most terms. The Actor returns topics only when Google sends them. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.01 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Data row | $0.00005 (from $0.000043 on paid Apify plans) | Charged for each data row of a keyword with data: one point of interest over time, one region, or one related query or topic. The same count applies in grouped output. Per-keyword summary rows and keywords without enough search data or with an error are free. | - One result: about $0.01. - 1,000 results: about $0.06. - Every day 100 results, for 30 days: about $0.45 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/google-trends-scraper?fpr=cliqto ## Questions ### Does Google Trends show the number of searches? No. It shows interest from 0 to 100. 100 is the top point for that term, place and time. ### Why are numbers a bit different each day? Google Trends uses a sample of searches. Small changes between runs are normal. ### Does it get daily trending searches? No. It does not collect Trending now lists or trending stories. ### How many keywords can I check? Up to 50 terms per run. 50 terms took about 110 seconds in tests. ### Do I need a Google account or an API key? No. The Actor reads public Google Trends data without login. ### Is this the number of searches? No. Google Trends gives relative interest from 0 to 100. 100 is the highest point for the chosen term, place and period. It does not show search volume. ### Why are the numbers a little different from yesterday? Google Trends uses a sample of searches and rescales each query. Small changes between runs are normal, mostly for small terms and short periods. ### Why are there no related topics? Google sends related topics only for single terms (not for comparisons), and in our tests in October 2026 the topic lists were often empty. The Actor returns topics only when Google sends them. ### Why does a small country have 100? Region values are the share of all searches in that place, not the number of searches. A small country with few searches can get 100. This is how Google Trends shows it; the Actor does not change values. Rising values like `23350` (+23,350%) and "Breakout" also come from Google. ### How fresh is the data? Each run asks Google Trends at the time of the run. The latest time point is often not finished yet (`isPartial` `true`). ## Data fields - `recordType` (string): What the row holds: a time point, a region, a related query or topic, the per-term summary (rows format) or one whole term (grouped format). - `searchTerm` (string): The search term the row belongs to. - `comparisonGroup` (string): All compared terms joined by " | " when "Compare terms" is on; otherwise null. - `geo` (string): Location code, or WORLDWIDE. - `timeRange` (string): Time range sent to Google, e.g. "today 12-m" or "2024-01-01 2024-06-30". - `categoryId` (integer): Google Trends category id (0 = all categories). - `searchType` (string): web, images, news, shopping or youtube. - `exploreUrl` (string): The same query in the Google Trends UI. - `sourceUrl` (string): Google Trends API endpoint the data came from. - `fetchedAt` (string): When the data was fetched (ISO 8601, UTC). - `date` (string): Start of the time point (ISO 8601, UTC). - `formattedTime` (string): Time point label as Google shows it. - `value` (integer): Interest 0–100 (time point or region) or related-item score; null when Google has no data — never 0 in place of missing. - `hasData` (boolean): False when Google has no data for this time point. - `isPartial` (boolean): True for the latest, still incomplete time point. - `geoCode` (string): Region code (e.g. US-CA, or the metro number). - `geoName` (string): Region name. - `formattedValue` (string): Value as Google shows it, e.g. "<1", "+250%" or "Breakout". - `comparisonShare` (integer): Comparison only: the term's share (%) of searches among the compared terms in this region. - `latitude` (number): City level only: latitude. - `longitude` (number): City level only: longitude. - `regionResolution` (string): Region level of the region rows: COUNTRY, REGION, DMA or CITY. - `rankType` (string): top = most searched with the term; rising = biggest growth. - `query` (string): Related query text. - `topicTitle` (string): Related topic name. - `topicType` (string): Related topic type, e.g. "Programming language". - `topicMid` (string): Google Knowledge Graph id of the topic. - `isBreakout` (boolean): True when Google marks the rising item as Breakout (growth over 5000%). - `link` (string): Google Trends link for the related item. - `status` (string): Term result: complete, partial (some sections missing), not_found (not enough search data) or error. Only data rows of complete and partial terms are charged. - `statusReason` (string): Why a term is partial, not_found or error. - `errorCode` (string): Machine-readable error code for partial and error terms. - `average` (integer): Average interest over the period (null when unknown). - `timelinePoints` (integer): Number of time points received for the term. - `regionRows` (integer): Region rows written for the term. - `relatedQueryRows` (integer): Related query rows written for the term. - `relatedTopicRows` (integer): Related topic rows written for the term. - `interestOverTime` (array): Grouped format: time points. - `interestByRegion` (array): Grouped format: regions with data. - `relatedQueriesTop` (array): Grouped format: top related queries. ## Input settings - `searchTerms` (array, required): Keywords or phrases to look up, e.g. web scraping. Each term is a separate Google Trends query unless "Compare terms" is on. Up to 50 terms per run; duplicates are removed. - `compareTerms` (boolean): Put all terms (2–5) into one Google Trends comparison, like typing them side by side in the Google Trends UI. Values are then relative to the most popular term, and regions get each term's share of searches. - `geo` (string): Google Trends location code: a country (US, GB, DE), a region (US-CA, DE-BY) or a US metro (US-NY-501). Leave empty for worldwide. - `timeRange` (string): Period of the data. Short periods have hourly or minute points, long ones weekly or monthly points. Ignored when a custom time range is set. - `customTimeRange` (string): Exact dates instead of the time range above: start and end date separated by a space, e.g. 2024-01-01 2024-06-30. Data starts on 2004-01-01. - `category` (string): Limit the data to searches in one Google Trends category. - `categoryId` (integer): Any Google Trends category id, including subcategories (e.g. 1227 for Android OS). Overrides "Category" when set. - `searchType` (string): Which Google search to measure, as in the Google Trends UI. - `includeTimeline` (boolean): One row per time point with the 0–100 interest value. - `includeRegions` (boolean): One row per country, region, metro or city with data. - `regionResolution` (string): Auto = countries for worldwide, subregions for a country (Google default). Metro (DMA) works for US locations only; country level only worldwide. - `includeLowVolumeRegions` (boolean): Off (default) hides regions with too few searches, which otherwise often show a misleading 100. Same switch as in the Google Trends UI. - `includeRelated` (boolean): Top and rising related queries, plus related topics (Google gives topics only for single terms, not for comparisons). - `outputFormat` (string): Rows: one flat row per data point (best for spreadsheets). Grouped: one item per term with nested lists. - `proxyConfiguration` (object): Apify Proxy is used by default and switches to residential IPs on its own if Google starts refusing requests. Change only if you know you need to. ## Step by step on Apify 1. Open the Input tab. 2. Keep the prefilled term `web scraping` in Search terms, or add your own terms (up to 50). 3. Keep Time range at Past 12 months, or choose another period. Leave Location empty for worldwide data. 4. Click Start. 5. Open the Output tab. Every row has a `recordType` column: `interest_over_time`, `interest_by_region`, `related_query`, `related_topic` or `term_summary`. Sort or filter by this column, or export and filter in a spreadsheet. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Seasonality of a product | `searchTerms`, `timeRange` `today 5-y` | time rows | `date`, `value`, `isPartial` | chart in Google Sheets or BI | | Where to launch | `searchTerms`, `regionResolution` | region rows | `geoName`, `geoCode`, `value` | map or market list | | Content and SEO ideas | `searchTerms`, `includeRelated` | related query rows | `query`, `rankType`, `value`, `isBreakout` | keyword list | | Brand comparison | `searchTerms` (2–5) + `compareTerms` | time and region rows | `value`, `comparisonShare`, `comparisonGroup` | dashboard | | News and YouTube interest | `searchType` `news` or `youtube` | time rows | `date`, `value` | report | ## Tips - Use the compare option to put up to 5 terms on one scale. - Do not compare values from separate queries; they use different scales. - Use a long time range for small terms; short ones jump more. ## Limits - Up to 50 terms per run. 50 terms took about 110 seconds in our tests. - Up to 5 terms in one comparison (Google Trends limit). - Values are relative (0–100) inside one query. Values of terms from separate queries are not on the same scale; use `compareTerms` for that. - A run works for up to about 4.5 minutes with the default 300-second timeout. If it has more terms, it stops with the rows it has and `RUN_SUMMARY` shows `CAPPED` with `DEADLINE`. - A `partial` term is charged for the rows it has. `statusReason` tells you which section is missing. - If Google refuses many requests, the Actor first switches to new connections and then to residential proxies. If Google still refuses, the run stops; terms that were not done get free `error` rows. ## Sample result ```json [ { "recordType": "interest_over_time", "searchTerm": "web scraping", "date": "2025-10-12T00:00:00.000Z", "formattedTime": "Oct 12 – 18, 2025", "value": 56, "hasData": true, "isPartial": false }, { "recordType": "interest_by_region", "searchTerm": "web scraping", "geoCode": "US", "geoName": "United States", "value": 50, "formattedValue": "50", "comparisonShare": null, "latitude": null, "longitude": null, "regionResolution": "COUNTRY" }, { "recordType": "related_query", "searchTerm": "web scraping", "rankType": "top", "query": "web data scraping", "value": 100, "formattedValue": "100", "isBreakout": false, "link": "https://trends.google.com/trends/explore?q=web+data+scraping&date=today+12-m" }, { "recordType": "term_summary", "searchTerm": "web scraping", "exploreUrl": "https://trends.google.com/trends/explore?date=today+12-m&q=web+scraping&hl=en-US", "status": "complete", "statusReason": null, "errorCode": null, "average": 58, "timelinePoints": 53, "regionRows": 65, "relatedQueryRows": 45, "relatedTopicRows": 0 } ] ``` ## Use it from code Actor ID: `cliqtomedia/google-trends-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/google-trends-scraper").call(run_input={ "searchTerms": [ "web scraping" ], "compareTerms": False }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~google-trends-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"searchTerms": ["web scraping"], "compareTerms": false}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/google-trends-scraper") result = tool.invoke({"run_input": {"searchTerms": ["web scraping"], "compareTerms": False}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [SEO data without a big suite](https://cliqtomedia.com/actors/use-cases/seo-research/): Collect keyword ideas and check your pages and your rivals' pages. Search results and trends coming soon. ## Similar tools - [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/) - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) - [XML Sitemap URLs Extractor](https://cliqtomedia.com/actors/xml-sitemap-urls-extractor/) - [Website Metadata & Open Graph Scraper](https://cliqtomedia.com/actors/website-metadata-open-graph-scraper/) - [Google Ads Transparency Scraper - Ad Text, No Login](https://cliqtomedia.com/actors/google-ads-transparency-scraper/) - [Google Images Scraper - Image URLs, Sizes & Source Pages](https://cliqtomedia.com/actors/google-images-scraper/) --- # Greenhouse jobs scraper and job change monitor > Greenhouse jobs scraper for boards you know. Export open jobs, get one job's details, or compare snapshots to see new, updated and removed jobs. URL: https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/ Category: Jobs & hiring · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/greenhouse-jobs-monitor-scraper?fpr=cliqto Add the Greenhouse boards of companies you follow. Get their open jobs as clean rows. Run it again later and see which jobs are new, updated or gone. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `snapshot` in Mode. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Scrape public jobs from Greenhouse boards you already know. Export a current snapshot, fetch exact job details, or compare two snapshots to find changes. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Greenhouse job result | $0.00024 (from $0.00019 on paid Apify plans) | One useful Greenhouse job or verified monitoring change saved to Dataset. | | Start fee | $0.0014 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | - One job: about $0.0016. - 1,000 jobs: about $0.24. - Every day 100 jobs, for 30 days: about $0.76 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/greenhouse-jobs-monitor-scraper?fpr=cliqto ## Questions ### Do I need a Greenhouse account or API key? No. The tool uses the public Greenhouse job board endpoints. It never sends job applications. ### Can it find every company that uses Greenhouse? No. You must know the board token or board URL of each company. ### How do I see only new or removed jobs? Use monitor mode. Give it the snapshot store ID from an earlier run. ### Does it work with EU Greenhouse boards? Yes. It accepts US and EU Greenhouse board URLs and plain board tokens. ## Data fields - `schemaVersion` (integer) - `recordType` (string) - `stableId` (string) - `boardToken` (string) - `boardRegion` (string) - `jobId` (string) - `internalJobId` (string) - `requisitionId` (string) - `title` (string) - `location` (object) - `departments` (array) - `offices` (array) - `metadata` (array) - `language` (string) - `absoluteUrl` (string) - `greenhouseUrl` (string) - `firstPublishedAt` (string) - `updatedAt` (string) - `contentHtml` (string) - `contentText` (string) - `questions` (object) - `payRanges` (array) - `retrievedAt` (string) - `changeStatus` (string) - `matchTransition` (string) - `changedFields` (array) - `previousHash` (string) - `currentHash` (string) - `observedRemovedAt` (string) - `sourceEvidence` (object) ## Input settings - `mode` (string, required): Snapshot lists current jobs; details fetches exact board/job pairs; monitor compares an explicit prior KVS snapshot. - `boards` (array): For snapshot/monitor. Accepts up to 100 tokens or current/legacy US/EU Greenhouse board URLs. - `jobs` (array): For details mode. Use token/numeric-ID or an allowed Greenhouse job URL. - `baselineKeyValueStoreId` (string): Monitor only. Read SNAPSHOT from a prior run; the prior store is never modified. - `monitorOutput` (string): Emit only changes by default, or include unchanged comparable jobs as well. - `includeContent` (boolean): Adds HTML and normalized text and increases response size. - `includeQuestions` (boolean): Adds one detail request per job; no answers or applications are submitted. - `includePayTransparency` (boolean): Adds one detail request per job; values exist only when the employer exposes them. - `titleKeywords` (array): Keep jobs whose title contains at least one case-insensitive keyword. - `contentKeywords` (array): Keep jobs whose description contains at least one case-insensitive keyword. - `locations` (array): Keep jobs matching at least one case-insensitive location substring. - `departments` (array): Keep jobs matching at least one case-insensitive department substring. - `offices` (array): Keep jobs matching at least one case-insensitive office substring. - `firstPublishedAfter` (string): ISO date or instant, inclusive. - `updatedAfter` (string): ISO date or instant, inclusive. - `maxJobsPerBoard` (integer): Stop output after this many matching jobs per board and report the board as partial. - `maxJobsTotal` (integer): Stop output after this many matching jobs across the run and report omitted work. ## Tips - Find the board token in the career page link, for example job-boards.greenhouse.io/figma. - Leave job descriptions off on your first run. The output stays small and fast. - Check RUN_SUMMARY after each run. It shows if a board was read in full. ## Limits These bounds keep runs predictable. The Actor marks omitted work instead of claiming more coverage than it observed. - Up to 100 boards per snapshot or monitor run. - Up to 5,000 matching jobs per board. - Up to 10,000 matching jobs per run. - Up to 500 exact jobs in details mode. - Four boards and eight detail requests can run concurrently. - Description responses are capped at 64 MiB per board. - Detail responses are capped at 2 MiB each. ## Sample result ```json { "schemaVersion": 1, "recordType": "job", "stableId": "exampleco:1234567", "boardToken": "exampleco", "jobId": "1234567", "title": "Software Engineer", "location": { "name": "Remote" }, "changeStatus": null, "changedFields": [], "updatedAt": "2026-09-10T09:30:00.000Z", "absoluteUrl": "https://example.invalid/jobs/1234567" } ``` ## Use it from code Actor ID: `cliqtomedia/greenhouse-jobs-monitor-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/greenhouse-jobs-monitor-scraper").call(run_input={ "mode": "snapshot", "monitorOutput": "changes_only" }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~greenhouse-jobs-monitor-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"mode": "snapshot", "monitorOutput": "changes_only"}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/greenhouse-jobs-monitor-scraper") result = tool.invoke({"run_input": {"mode": "snapshot", "monitorOutput": "changes_only"}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [Reach out when the company is ready](https://cliqtomedia.com/actors/use-cases/buying-signals/): Know when a company hires, raises money or wins a contract. Reach out at the right moment. - [Know what your competitors do](https://cliqtomedia.com/actors/use-cases/competitor-monitoring/): See what your competitors launch, hire, change and advertise. Every week, without opening their sites. ## Similar tools - [Wellfound Jobs Scraper](https://cliqtomedia.com/actors/wellfound-jobs-scraper/) - [Ashby Jobs Scraper](https://cliqtomedia.com/actors/ashby-jobs-scraper/) - [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/) - [Recruitee Job Snapshots & Changes](https://cliqtomedia.com/actors/recruitee-jobs-monitor-scraper/) - [SmartRecruiters Jobs Monitor & Scraper](https://cliqtomedia.com/actors/smartrecruiters-jobs-monitor-scraper/) - [BambooHR Jobs Monitor & Scraper](https://cliqtomedia.com/actors/bamboohr-jobs-monitor-scraper/) --- # Hacker News Stories and Comments Scraper > Hacker News scraper: export Top, New, Best, Ask HN, Show HN or Jobs with comment trees and parent IDs. Plain text and HTML. No API key needed. URL: https://cliqtomedia.com/actors/hacker-news-stories-comments-scraper/ Category: Social media & communities · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/hacker-news-stories-comments-scraper?fpr=cliqto Export Hacker News stories and comments as rows. Each comment keeps its parent ID, so you can rebuild the thread. No API key is needed. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `[]` in Exact item IDs. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Export Hacker News stories and comments as rows with stable IDs and parent links. Choose Top, New, Best, Ask HN, Show HN or Jobs, or add exact item IDs. No Hacker News API key is needed. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.05 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Useful HN entity saved | $0.00027 | One live story, job or comment saved to the Dataset. Deleted, dead, unavailable and error rows have no entity fee. | - One story or comment: about $0.05. - 1,000 stories and comments: about $0.32. - Every day 100 stories and comments, for 30 days: about $2.31 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/hacker-news-stories-comments-scraper?fpr=cliqto ## Questions ### Does it get every comment of a big thread? Not always. There are caps per root and per run. The tree status tells you if a tree is complete. ### Does it open the linked article? No. You get the link from Hacker News, not the article text. ### Which lists can I use? Top, New, Best, Ask HN, Show HN and Jobs. ### Do I need an API key? No HN API key, cookie or login is needed. You need your Apify account to run the Actor. API clients use an Apify token in an authorization header, never in this Actor's input. ### Does it return every comment? Only when every reachable child is observed within the caps and `treeStatus` is complete. The new form intentionally uses small limits. Check the summary for each root. `descendants` is the source count, not a completeness check. ### Why are HTML and plain text different? `textHtml` keeps the source. `text` removes tags, adds block boundaries and decodes entities once. `<` becomes `<`, not an HTML tag. Deleted items can have neither value. ### What do deleted, dead and null mean? Deleted and dead are source flags. A null response means the item was unavailable at fetch time. It does not prove why. These observations are kept; they are not silently dropped and do not have an entity fee. ### Why is there a start fee? The scan still makes requests and saves a summary when there are no useful entities. The start fee covers this bounded work. Each fresh run has its own start fee. ### Is it a replacement for another HN scraper? Use a field mapping before switching. This Actor uses numeric IDs, `url` for the external link and `hnUrl` for HN. Comments are flat rows with stable IDs, not nested message arrays. ## Data fields - `entityType` (string) - `id` (integer) - `type` (string) - `status` (string) - `reason` (string) - `rootId` (integer) - `storyId` (integer) - `parentId` (integer) - `depth` (integer) - `title` (string) - `hnUrl` (string) - `url` (string) - `author` (string) - `time` (integer) - `createdAt` (string) - `score` (integer) - `descendants` (integer) - `kids` (array) - `textHtml` (string) - `text` (string) - `deleted` (boolean) - `dead` (boolean) - `retrievedAt` (string) - `treeStatus` (string) - `treeReasons` (array) - `collectedComments` (integer) ## Input settings - `listMode` (string): Choose an official HN list. Non-empty itemIds take precedence. No source API key is needed. - `itemIds` (array): Optional positive integer HN IDs, at most 100. Non-empty array replaces the list; [] uses listMode. Duplicates are fetched once. - `maxStories` (integer): Read the first N distinct IDs in list or input order. Maximum 100. Start with 3. - `includeComments` (boolean): Return bounded replies as separate rows. Source descendants is not the number collected. Turn off for stories only. - `maxCommentsPerStory` (integer): Limit all descendant observations per root, including deleted, unavailable and error nodes. Zero means zero comments, never unlimited. - `maxDepth` (integer): Root is depth 0, direct reply is 1. Zero fetches roots only. A limit marks the tree partial when children remain. - `maxNodes` (integer): Total distinct roots and descendants reserved for fetch. At most 1000. Other request, time and byte caps may stop sooner. ## Step by step on Apify 1. Open Input in Apify Console. 2. Keep the new form as it is: Top stories, 3 roots, up to 5 comments per root and depth 2. 3. Keep memory at 256 MB and timeout at 300 seconds. Set a maximum cost of $0.15 for this small example. 4. Click Start. 5. Open Dataset. Look for a `story` row and `comment` rows linked by `rootId` and `parentId`. 6. Open Key-value store → RUN_SUMMARY. A current busy story can be `partial` because the example uses small caps. ## Use cases | Goal | Input choice | Fields to use | |---|---|---| | Track current tech discussions | `top`, `new` or `best` | `id`, `title`, `score`, `descendants`, `retrievedAt` | | Study project feedback | `show` or exact `itemIds` | `rootId`, `parentId`, `depth`, `text`, `treeStatus` | | Build a public discussion corpus | Exact IDs, bounded comments | `id`, `textHtml`, `text`, `deleted`, `dead`, summary | | Export HN jobs | `job`, comments off | `title`, `url`, `author`, `createdAt` | ## Tips - Add exact item IDs to export one known discussion. - Check the tree status to see if a comment tree is complete. - Use the plain text field for AI tools and the HTML field for display. ## Limits - At most 100 roots, 200 descendant observations per root, depth 10 and 1,000 total reserved nodes. A live Cloud export reached 1,000 observed nodes within the configured limits; this is a cap, not a guaranteed amount. - Only the six official lists are supported. Lists can be smaller than `maxStories` and can include jobs. Their order can change while the run is active. - Source work has a 90-second deadline, at most 1,300 HTTP attempts, concurrency 4, an 8-second request timeout, a 2 MiB response cap and an 8 MiB total response cap. Temporary transport, 429 and 5xx errors are retried up to three attempts within these caps. - Set platform timeout to 300 seconds. A longer finite timeout also works but does not increase the 90-second source deadline. A smaller timeout reduces the source window to leave time for saved output. - `comment_cap`, `depth_cap`, `node_cap`, `request_cap`, `byte_cap`, `response_byte_cap`, `deadline` and `charge_cap` show a limit. `unavailable_child`, `missing_parent`, `parent_mismatch`, `unexpected_child_type` and `duplicate_or_cycle` show an observed source/graph issue. - `treeStatus` describes what was fetched. If the charge cap stops saving rows, use run-level `status=partial` to see that the export is incomplete. - Original HTML is data. Do not render `textHtml`, titles or external URLs as trusted HTML in your own app. Use escaped text for display. The Dataset table displays plain text. - Scores and comments are live. The API is not an atomic snapshot. Dead/deleted/null states may change after a run. A hard platform kill can prevent final KVS writes; rows already saved remain in the Dataset. ## Sample result ```json [ { "entityType": "story", "id": 8863, "type": "story", "rootId": 8863, "storyId": 8863, "parentId": null, "depth": 0, "title": "My YC app: Dropbox - Throw away your USB drive", "hnUrl": "https://news.ycombinator.com/item?id=8863", "url": "http://www.getdropbox.com/u/2/screencast.html", "author": "example_user", "time": 1175714200, "score": 104, "descendants": 71, "status": "complete", "treeStatus": "complete", "collectedComments": 72 }, { "entityType": "comment", "id": 8917, "rootId": 8863, "storyId": 8863, "parentId": 8863, "depth": 1, "status": "complete" } ] ``` ## Use it from code Actor ID: `cliqtomedia/hacker-news-stories-comments-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/hacker-news-stories-comments-scraper").call(run_input={ "listMode": "top", "itemIds": [] }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~hacker-news-stories-comments-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"listMode": "top", "itemIds": []}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/hacker-news-stories-comments-scraper") result = tool.invoke({"run_input": {"listMode": "top", "itemIds": []}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [Hear what people say about you](https://cliqtomedia.com/actors/use-cases/social-listening/): Find what people say about your brand and your topic on Bluesky, Hacker News, YouTube and more. ## Similar tools - [RSS & Atom Feed Reader / Monitor](https://cliqtomedia.com/actors/rss-atom-feed-reader-monitor/) - [Link Route Audit — Bulk HTTP Status & Redirects](https://cliqtomedia.com/actors/bulk-url-status-redirect-checker/) - [Substack Newsletter Scraper](https://cliqtomedia.com/actors/substack-newsletter-scraper/) - [Bilibili Scraper: Videos, Comments & Creators, No Login](https://cliqtomedia.com/actors/bilibili-scraper/) - [Bluesky Scraper — Posts, Profiles, Feeds & Threads, No Login](https://cliqtomedia.com/actors/bluesky-scraper/) - [Medium Article Scraper: Tags, Authors & Publications](https://cliqtomedia.com/actors/medium-articles-scraper/) --- # HireHive jobs scraper with new and closed job tracking > HireHive jobs scraper for public company boards. Get role text, dates and links. Compare runs to see new, updated and closed jobs. JSON or CSV. URL: https://cliqtomedia.com/actors/hirehive-jobs-monitor-scraper/ Category: Jobs & hiring · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/hirehive-jobs-monitor-scraper?fpr=cliqto Add the HireHive boards of companies you know. Get each open job with its text, dates and link. Turn on change mode to see only new, updated and closed jobs. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `ksn` in HireHive boards. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Read jobs from known public HireHive company boards. Get role text, dates and links, then compare full snapshots to see new, updated and closed jobs. Add a board such as `ksn` and press **Start**. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.027 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Saved job or change | $0.0036 | One saved public job row, including closed jobs in change mode. | - One job: about $0.03. - 1,000 jobs: about $3.63. - Every day 100 jobs, for 30 days: about $11.61 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/hirehive-jobs-monitor-scraper?fpr=cliqto ## Questions ### Do I need a HireHive login? No. The tool reads public board content only. It does not use the private dashboard. ### How many boards can I check at once? Up to four known company boards in one run. ### Does a closed job mean someone was hired? Not always. It only means the job left the public board between two full checks. ### Do I pay if nothing changed? Yes, the start fee. Rows are paid only when they are saved. ### Do I need a HireHive API key? No. The Actor reads public board content. It does not use the private HireHive dashboard API. ### Does an empty scan cost money? Yes. Every started scan has the start fee. A filter or no-change result still reads the full source. ### Does a closed row prove that a job was filled? No. It means the ID left the public board between two complete checks. The company may have closed or replaced it for another reason. ### Can it detect a description change when I hide descriptions? Yes. includeDescription controls Dataset only. The complete description stays in the snapshot and its hash. ### Is it a replacement for every multi-ATS scraper? No. It supports public HireHive boards and their source fields. It does not add multi-ATS discovery, candidate records, salary estimates or contact enrichment. ## Data fields - `ats` (string) - `org` (string) - `company` (string) - `jobId` (string) - `globalId` (string) - `title` (string) - `contentHash` (string) - `scrapedAt` (string) - `status` (string) - `jobUrl` (string) - `schemaVersion` (integer) - `companyTotalJobs` (integer) - `locations` (array) - `address` (object) - `department` (string) - `employmentType` (string) - `language` (string) - `languageLabel` (string) - `location` (string) - `salaryText` (string) - `descriptionText` (string) - `publishedAt` (string) - `changeType` (string) ## Input settings - `boards` (array): Add 1–4 known company slugs or HTTPS HireHive root links. Duplicate boards are read once. Custom domains and job links are not supported. - `keywords` (array): Keep titles with any phrase, ignoring case. Empty keeps all. Up to 20 phrases, each 1–100 characters. This does not reduce the full scan. - `maxResults` (integer): Save 1–53 rows, including closed jobs. An output cap makes the snapshot partial; it cannot be used as a monitoring baseline. - `includeDescription` (boolean): Add public job descriptions as plain text. False hides this field. The full text still helps detect changes. It does not add a detail request. - `incremental` (boolean): Return new, updated and closed jobs. The first check returns all as new. Later checks need previousRunId from a complete run with the same boards. - `previousRunId` (string): Used with incremental=true. Use a successful complete run of this Actor, with the same boards. Empty starts a new baseline. Missing or partial snapshots stop the run. ## Step by step on Apify 1. Open Input. 2. Add `ksn` to HireHive boards. Leave the other values at their defaults. 3. Press Start. 4. Open Dataset. Look for `Contact Centre Agent`, a Dublin location and its HireHive link. On the check date, KSN had six jobs. The live count can change. 5. Open `RUN_SUMMARY` in Key-value store. Check that `status` is `complete` and `counts.delivered` equals the Dataset count. ## Use cases - Keep a job feed up to date: use `globalId`, `title`, `location` and `jobUrl`. - Watch hiring changes at companies you know: compare full snapshots and read `changeType`. - Find role text for research: keep `descriptionText` and the source link. - Send a clean table to a spreadsheet: export Dataset and use jobId to avoid duplicates. ## Tips - The board name is the first part of the HireHive web address, like ksn. - Do not set a low row limit for monitoring. A capped run cannot be a baseline. - Use jobId to avoid duplicate rows when you add jobs to a sheet. ## Limits The tested maximum is four boards and 53 saved rows. Limits are 200 scanned jobs, 16 source requests including retries, 90 seconds of source work, 2 MiB per response and 4 MiB of total response data. A job description above 60,000 characters makes that scan partial. Runs use 256 MB; the recommended platform timeout is 120 seconds. A 300-second Store test or larger finite positive timeout is supported without extending the 90-second source deadline; source requests retry temporary failures at most twice. Larger memory or an unbounded timeout is refused before source work. - `complete`: all source pages were checked and all selected rows were saved. Zero rows can be valid. - `partial`: some data was read, but a source, output, charge or runtime limit stopped the full result. Keep your last complete baseline. - `not_found`: all requested boards returned HTTP 404. No job rows; snapshot unsafe. - `error`: invalid input, invalid previous snapshot, no readable source, or a runtime failure. Check the summary; a platform failed run may have incomplete storage. ## Sample result ```json { "schemaVersion": 1, "ats": "hirehive", "org": "addo", "company": "ADDO", "companyTotalJobs": 1, "jobId": "79402", "globalId": "hirehive:addo:79402", "title": "Business Analyst", "department": null, "employmentType": "FullTime", "language": "en", "languageLabel": "English", "location": "12/2 A, Sector XX, Phase 3, DHA, Lahore, Pakistan", "locations": ["12/2 A, Sector XX, Phase 3, DHA, Lahore, Pakistan"], "address": { "city": "12/2 A, Sector XX, Phase 3, DHA, Lahore", "country": "Pakistan", "countryCode": "PK" }, "salaryText": null, "descriptionText": "Responsibilities We are looking for a business analyst (BA) who will primarily serve as a liaison between our clients and project resources.", "publishedAt": "2021-05-19T10:09:46.000Z", "jobUrl": "https://addo.hirehive.com/business-analyst-122-a-sector-xx-phase-3-dha-lahore-L0BpOZ", "status": "complete", "changeType": null, "scrapedAt": "2026-10-04T09:01:55.579Z", "contentHash": "1ad053a5ca09de25dafa201a36482edcb382bd814de520dea590fff94a4324b4" } ``` ## Use it from code Actor ID: `cliqtomedia/hirehive-jobs-monitor-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/hirehive-jobs-monitor-scraper").call(run_input={ "boards": [ "ksn" ], "keywords": [] }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~hirehive-jobs-monitor-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"boards": ["ksn"], "keywords": []}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/hirehive-jobs-monitor-scraper") result = tool.invoke({"run_input": {"boards": ["ksn"], "keywords": []}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Similar tools - [Recruitee Job Snapshots & Changes](https://cliqtomedia.com/actors/recruitee-jobs-monitor-scraper/) - [Wellfound Jobs Scraper](https://cliqtomedia.com/actors/wellfound-jobs-scraper/) - [Ashby Jobs Scraper](https://cliqtomedia.com/actors/ashby-jobs-scraper/) - [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/) - [Greenhouse Jobs Monitor & Scraper](https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/) - [SmartRecruiters Jobs Monitor & Scraper](https://cliqtomedia.com/actors/smartrecruiters-jobs-monitor-scraper/) --- # Hireology jobs scraper for career pages you follow > Hireology jobs scraper for known career pages. Get descriptions, locations, pay when listed and apply links. Track new, changed and removed jobs. URL: https://cliqtomedia.com/actors/hireology-jobs-monitor-scraper/ Category: Jobs & hiring · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/hireology-jobs-monitor-scraper?fpr=cliqto Paste a Hireology career page link. You get each current job with its place, pay when shown and apply link. Save snapshots to see what changed later. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `https://careers.hireology.com/hyattneward` in Hireology company career URLs. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Get current job listings from known public Hireology career pages. This Hireology jobs scraper returns descriptions, locations, pay when shown, and links to apply. Save full snapshots to track new, changed and removed jobs. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.06 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Current job saved | $0.0036 | One unique matching current job saved to Dataset. Snapshot and change reports have no extra event. | - One job: about $0.06. - 1,000 jobs: about $3.66. - Every day 100 jobs, for 30 days: about $12.60 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/hireology-jobs-monitor-scraper?fpr=cliqto ## Questions ### How many career pages can I add? Up to 10 company boards and 200 jobs in one run. ### Do I always get the pay? No. Pay appears only when the employer lists it on the job. ### Can I use a company's own careers domain? No. Use the careers.hireology.com link of the company. ### Do I need a proxy or account? No. The tool reads public pages and uses no proxy. ## Data fields - `ats` (string) - `org` (string) - `company` (string) - `jobId` (string) - `globalId` (string) - `title` (string) - `department` (string) - `employmentType` (string) - `isRemote` (boolean) - `location` (string) - `locations` (array) - `descriptionHtml` (string) - `descriptionText` (string) - `publishedAt` (string) - `jobUrl` (string) - `applyUrl` (string) - `compensation` (object) - `salaryText` (string) - `contentHash` (string) - `companyTotalJobs` (integer) - `jobsFound` (integer) - `inputIndex` (integer) - `scrapedAt` (string) - `sourceStatus` (string) ## Input settings - `startUrls` (array, required): Enter 1–10 known HTTPS company board URLs. Job URLs and custom domains are not accepted. Duplicate boards are read once. - `includeDescription` (boolean): Default true. Set false to omit HTML and text in Dataset rows. Full scan and snapshot fingerprints still use descriptions. - `titleKeyword` (string): Case-insensitive title filter, up to 100 characters. Applied after full scan; start charge still applies when no jobs match. - `maxResults` (integer): 1–200, default 200. Limits output only; does not limit full source scan or snapshot. - `maxJobsPerCompany` (integer): 1–200, default 200. Exceeding this or the global 200-job snapshot limit makes that board partial and skips its comparison. - `maxRequests` (integer): 1–100, default 100. Includes retries. Reaching the limit marks unfinished boards partial. - `previousSnapshot` (object): Paste the SNAPSHOT JSON from a previous run. At most 10 companies / 200 jobs / 2MB. Only complete matching boards are compared. Leave absent for first scan. ## Step by step on Apify 1. Open Input. 2. In `startUrls`, enter `https://careers.hireology.com/hyattneward`. 3. Keep descriptions on and use 256 MB of memory. 4. Set a maximum run charge, then click Start. 5. Open Dataset for current jobs and `OUTPUT` for scan status. ## Use cases | Task | Input | Useful result | |---|---|---| | Update a small job board | Known company URLs | Job ID, title, description and application link | | Watch hiring activity | Same URLs and previous full SNAPSHOT | New, changed and removed entries | | Review public hotel or dealership roles | URLs and optional title filter | Employer, city, employment type and listed pay | ## Tips - Use the company board link, like careers.hireology.com/hyattneward. Job links are not accepted. - Group boards can show jobs from child employers. Their links stay correct. - Use the title filter for one role. The full board is still read for the snapshot. ## Limits The first release was checked on 10 live boards and 182 jobs in one complete run. Hard limits are 10 input boards, 200 fetched jobs across the snapshot, 200 saved rows, 100 HTTP attempts and 180 seconds of application work. Responses have an 8 MB total limit, and each description has a 64 KB limit. Longer titles above 200 characters are rejected as source field errors. Requests run in sequence, with up to two retries for temporary failures. No proxy is used. ## Sample result ```json { "ats": "hireology", "org": "hyattneward", "company": "Hyatt Place Newark / Silicon Valley", "jobId": "2506809", "globalId": "hireology:hyattneward:2506809", "title": "Hotel Director of Sales", "location": "Newark, CA", "employmentType": "FullTime", "salaryText": "70000–100000 / year", "publishedAt": "2025-03-24T20:41:19.901Z", "jobUrl": "https://careers.hireology.com/hyattneward/2506809/description", "applyUrl": "https://careers.hireology.com/hyattneward/2506809/application", "sourceStatus": "complete" } ``` ## Use it from code Actor ID: `cliqtomedia/hireology-jobs-monitor-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/hireology-jobs-monitor-scraper").call(run_input={ "startUrls": [ "https://careers.hireology.com/hyattneward" ], "includeDescription": True }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~hireology-jobs-monitor-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"startUrls": ["https://careers.hireology.com/hyattneward"], "includeDescription": true}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/hireology-jobs-monitor-scraper") result = tool.invoke({"run_input": {"startUrls": ["https://careers.hireology.com/hyattneward"], "includeDescription": True}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Similar tools - [Wellfound Jobs Scraper](https://cliqtomedia.com/actors/wellfound-jobs-scraper/) - [Ashby Jobs Scraper](https://cliqtomedia.com/actors/ashby-jobs-scraper/) - [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/) - [Greenhouse Jobs Monitor & Scraper](https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/) - [Recruitee Job Snapshots & Changes](https://cliqtomedia.com/actors/recruitee-jobs-monitor-scraper/) - [SmartRecruiters Jobs Monitor & Scraper](https://cliqtomedia.com/actors/smartrecruiters-jobs-monitor-scraper/) --- # Historical Exchange Rates and Currency Converter > Historical exchange rates from the ECB for any pair and date since 1999. Cross rates, weekend and holiday notes, and amount conversion. No API key. URL: https://cliqtomedia.com/actors/historical-fx-rates-converter/ Category: Finance, markets & sports · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/historical-fx-rates-converter?fpr=cliqto Get official ECB exchange rates for any pair and date since 1999. Convert amounts with them. Days without a rate are marked with a clear reason. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `EUR/USD` in Currency pairs. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Get official European Central Bank (ECB) exchange rates for any currency pair and any date since 1999, and convert amounts with them. Add a pair like `USD/JPY` and a date, and you get one clear row per pair and day. Weekends, ECB holidays and days not published yet are marked, not hidden. No API key is needed, and a typical run (2 pairs, last 7 days) costs about $0.01. - Any pair. The ECB publishes rates against the euro. For pairs without the euro, like `USD/JPY`, the Actor computes the cross rate from the two euro rates and shows both of them (`eurToBase`, `eurToQuote`). You can check the math yourself. - Any date since 1999-01-04. You can use a list of dates, a date range or the last N days. - Every day explained. A day without a rate has `status: no_rate` and a reason in `note`: `weekend`, `ecb_holiday`, `not_yet_published` or `currency_not_quoted`. - Optional fill. With `missingDatePolicy: last_published`, a missing day gets the last published rate before it. `effectiveDate` always shows which day's rate was used. - Conversion. Add amounts and get `convertedAmount` = amount × rate, rounded the way you choose. ### Good for - Accounting and invoices: the official ECB rate for the invoice date. - Finance and audit: a full rate history for a pair, with holidays clearly marked. - Reports and BI: a clean daily table of rates for several pairs. ### Not a good fit - No live or intraday rates. The ECB publishes once a day; today's rate appears after about 16:00 CET. - About 30 currencies are quoted today (45 in the full history). No crypto, no exotic currencies outside the ECB list. - These are reference rates for information. They are not bank buy/sell rates. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.002 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Exchange rate row | $0.0009 (from $0.00075 on paid Apify plans) | One row with an official ECB rate (direct, inverse or cross) for one pair, date and amount, saved to the Dataset. | | Row without a rate | $0.00003 | One row that explains why there is no rate (weekend, holiday, not yet published, currency not quoted or not supported) or a same-currency pair. Dates the source failed for are not written or charged. | - One rate row: about $0.0029. - 1,000 rate rows: about $0.90. - Every day 100 rate rows, for 30 days: about $2.76 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/historical-fx-rates-converter?fpr=cliqto ## Questions ### Why is there no rate on Saturday? The ECB does not publish on weekends and its holidays. The row says why. ### Are these bank rates? No. They are reference rates for information, not buy or sell rates. ### Can I get USD to JPY? Yes. The tool computes the cross rate from two euro rates and shows both. ### Does it have crypto? No. Only about 30 currencies from the ECB list. ### Do I need an API key? No. The Actor reads public ECB data. ### How fresh is the data? The Actor reads the source on every run. `providerLastPublished` shows the latest ECB publication at that time. ## Data fields - `pair` (string): Pair as BASE/QUOTE, e.g. EUR/USD. - `base` (string): Base currency (ISO 4217). - `quote` (string): Quote currency (ISO 4217). - `requestedDate` (string): Date you asked for (YYYY-MM-DD). - `effectiveDate` (string): Publication date the rate comes from. Differs from requestedDate only with last_published; empty when there is no rate. - `status` (string): Row result: ok, no_rate or unsupported_currency. Dates the source failed for get no rows; they are listed in RUN_SUMMARY (sourceError). - `note` (string): Machine-readable reason: weekend, ecb_holiday, not_yet_published, currency_not_quoted, last_published_used, same_currency or unsupported_currency. Empty for a normal published rate. - `noteText` (string): The same reason in plain English. - `rate` (number): Units of QUOTE for 1 BASE on effectiveDate. ECB value as published for EUR/X; exact computation from the two ECB euro rates otherwise (10 significant digits). - `inverseRate` (number): Units of BASE for 1 QUOTE (1 / rate, 10 significant digits). - `rateType` (string): How the rate was obtained: direct (EUR/X as published), inverse (X/EUR), cross_via_EUR (X/Y from both euro rates) or identity (X/X). - `eurToBase` (number): ECB euro reference rate of the base currency on effectiveDate (1 for EUR). - `eurToQuote` (number): ECB euro reference rate of the quote currency on effectiveDate (1 for EUR). - `amount` (number): Amount in BASE you asked to convert; empty when no amounts were given. - `convertedAmount` (number): amount × rate in QUOTE, rounded to the chosen decimals. - `provider` (string): Rate provider key, e.g. ECB. - `providerName` (string): Rate provider name. - `providerLastPublished` (string): Latest publication date the provider had at run time. - `source` (string): Data access route (Frankfurter API v2). - `sourceUrl` (string): API request that returned the rates for this row (or the provider currency list for unsupported codes). - `fetchedAt` (string): When the run fetched the data (ISO 8601, UTC). ## Input settings - `pairs` (array, required): Up to 10 pairs as BASE/QUOTE with 3-letter ISO codes, e.g. EUR/USD, USD/JPY or GBP/PLN. Also accepted: EURUSD, eur-usd. The rate is how many QUOTE units one BASE unit buys. Any two ECB currencies can be combined; pairs without EUR are computed exactly from the two ECB euro rates. Codes the ECB does not publish get an unsupported_currency row. - `dates` (array): Up to 100 dates in YYYY-MM-DD format, e.g. 2024-12-31, from 1999-01-04 to today (UTC). Rows keep this order. When set, Date from/to and Last days are ignored. - `dateFrom` (string): Start of a date range (YYYY-MM-DD), used together with Date to. Every calendar day in the range gets a row, at most 366 days. Ignored when Specific dates is set. - `dateTo` (string): End of the date range (YYYY-MM-DD), not later than today (UTC). - `lastDays` (integer): Used only when no dates and no range are given: every calendar day from N−1 days ago to today (UTC). Default 7. Today usually shows not_yet_published until the ECB releases rates around 16:00 CET. - `provider` (string): Official source of the rates. ECB reference rates are published on TARGET business days around 16:00 CET for about 30 currencies (more historically). - `missingDatePolicy` (string): What to do on weekends, ECB holidays and days not published yet. last_published looks back at most 10 days and always shows effectiveDate; it never carries forward a currency the ECB stopped quoting. Default: none. - `amounts` (array): Optional, up to 10 amounts in the BASE currency, e.g. 100 or 2500.50. Each amount gets its own row with convertedAmount = amount × rate. Leave empty to get rates only. - `rounding` (integer): Decimal places for convertedAmount (0–8), rounded half away from zero. Rates are never rounded beyond what the ECB publishes (cross rates keep 10 significant digits). Default 2. ## Step by step on Apify 1. Open the Input tab. 2. In Currency pairs (`pairs`), keep the prefill `EUR/USD` and `EUR/GBP` or add your own, for example `USD/JPY`. 3. Keep Last days (`lastDays`) at 7, or add Specific dates (`dates`), for example `2024-12-31`. 4. Click Start. 5. Open the Output tab. Each row has `pair`, `requestedDate`, `status`, `rate` and `note`. ## Tips - Use the last published option to fill weekends with Friday's rate. - Check effectiveDate. It shows which day's rate was used. - Run after about 16:00 CET to get today's rate. ## Limits - Platform usage (compute, storage) is included. You do not pay it. - Rows from `missingDatePolicy: skip` are not written and not charged. - If the source fails, no rows are written for the failed dates, so they are not charged. - An invalid input costs only the Actor start. - If you set a maximum cost for the run, the Actor stops writing rows before it goes over it. The summary says `CAPPED`. - Up to 10 pairs, 100 dates or a 366-day range, 10 amounts and 10,000 rows per run. - The largest tested run (10,000 rows) took about 30 seconds. - Dates from 1999-01-04 to today (UTC). ## Sample result ```json { "pair": "USD/JPY", "base": "USD", "quote": "JPY", "requestedDate": "2024-12-31", "effectiveDate": "2024-12-31", "status": "ok", "note": null, "noteText": null, "rate": 156.9544711, "inverseRate": 0.006371274377, "rateType": "cross_via_EUR", "eurToBase": 1.0389, "eurToQuote": 163.06, "amount": 1000, "convertedAmount": 156954.47, "provider": "ECB", "providerName": "European Central Bank", "providerLastPublished": "2026-10-09", "source": "Frankfurter API v2 (frankfurter.dev)", "sourceUrl": "https://api.frankfurter.dev/v2/rates?base=EUR"es=GBP%2CJPY%2CUSD&providers=ECB&from=2024-12-21&to=2024-12-31", "fetchedAt": "2026-10-12T10:48:11.221Z" } ``` ## Use it from code Actor ID: `cliqtomedia/historical-fx-rates-converter` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/historical-fx-rates-converter").call(run_input={ "pairs": [ "EUR/USD", "EUR/GBP" ], "lastDays": 7 }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~historical-fx-rates-converter/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"pairs": ["EUR/USD", "EUR/GBP"], "lastDays": 7}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/historical-fx-rates-converter") result = tool.invoke({"run_input": {"pairs": ["EUR/USD", "EUR/GBP"], "lastDays": 7}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [Track prices in shops and marketplaces](https://cliqtomedia.com/actors/use-cases/price-monitoring/): Track prices and offers in shops and marketplaces. See changes before your customers do. ## Similar tools - [SEC Form D Filing Monitor](https://cliqtomedia.com/actors/sec-edgar-form-d-funding-monitor/) - [Crypto Prices & OHLC History Export - No Login](https://cliqtomedia.com/actors/crypto-market-data/) - [Polymarket & Kalshi Prediction Market Data, No Login](https://cliqtomedia.com/actors/prediction-markets-data/) - [Tennis Scraper: ATP & WTA Matches, Players & Rankings](https://cliqtomedia.com/actors/tennis-stats-scraper/) --- # Homerun jobs scraper for company career pages > Homerun jobs scraper for known career pages. Get job text, pay details and apply links. Compare full snapshots to see new, updated and removed roles. URL: https://cliqtomedia.com/actors/homerun-jobs-monitor-scraper/ Category: Jobs & hiring · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/homerun-jobs-monitor-scraper?fpr=cliqto Add the Homerun career pages of companies you know. You get each opening with its description, pay details and apply link. Monitor mode shows what changed since the last full scan. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `https://jobs.homerun.co/` in Homerun career pages. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Read open jobs from known public Homerun career pages. Get each job description, pay details and apply link. Compare complete snapshots to see new, updated and removed roles. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.06 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Job saved | $0.0018 | One matching current job saved to the default Dataset. | - One job: about $0.06. - 1,000 jobs: about $1.86. - Every day 100 jobs, for 30 days: about $7.20 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/homerun-jobs-monitor-scraper?fpr=cliqto ## Questions ### Do I need a Homerun API key? No. The tool reads public career and job pages only. ### How many companies fit in one run? One to four Homerun career pages, and up to 40 jobs. ### Are talent pools included? Yes, when the company lists them as openings. They can have fewer fields. ### Will a failed page mark jobs as removed? No. Removed jobs need a complete scan. A failed run keeps the last good baseline. ### Does a failed board mean all its jobs were removed? No. Removed events require a complete full scan. Partial, missing and failed pages keep the last complete baseline. ### Can I use a custom career domain? This version accepts company subdomains on homerun.co only. Custom domains and redirects fail explicitly. ## Data fields - `jobId` (string) - `boardJobId` (string) - `jobKey` (string) - `title` (string) - `url` (string) - `applyUrl` (string) - `detailSource` (string) - `rowStatus` (string) - `careerSiteUrl` (string) - `source` (string) - `fetchedAt` (string) - `change` (string) - `companyName` (string) - `department` (string) - `location` (string) - `city` (string) - `region` (string) - `countryCode` (string) - `employmentType` (string) - `datePosted` (string) - `validThrough` (string) - `salaryCurrency` (string) - `salaryPeriod` (string) - `description` (string) - `firstSeenAt` (string) - `salaryMin` (number) - `salaryMax` (number) - `remote` (boolean) - `descriptionTruncated` (boolean) ## Input settings - `careerUrls` (array, required): Add 1–4 HTTPS root URLs on a single company subdomain of homerun.co. No custom domains, language query or detail URLs. Duplicate boards are read once. - `query` (string): All words must occur in title, company, department or description, ignoring case. Empty keeps all jobs. Filtering still reads full boards. - `location` (string): Case-insensitive text in location, city, region or country code. Empty keeps all locations. - `maxResults` (integer): Dataset limit 1–40. All scans stop after 40 unique jobs. Output limits mark the run partial and prevent snapshot updates. - `monitor` (boolean): Track new, updated and removed jobs. Only complete scans save a new baseline. Read CHANGES for removals; first complete scan marks all jobs new. - `monitorKey` (string): Use 1–64 letters, digits, _ or -. The name and sorted boards define a separate watchlist. Filters do not change the full-board baseline. Do not run the same watchlist concurrently. - `onlyChanges` (boolean): Requires monitor=true. Unchanged jobs stay in the full snapshot but are not output. Removals appear in CHANGES. Same scan cost applies. ## Step by step on Apify 1. Open Input. 2. In `careerUrls`, add `https://jobs.homerun.co/`. 3. Keep `maxResults=40` and `monitor=false`. Use 256 MB and a 180-second timeout. 4. Click Start. 5. Open Dataset. Check `title`, `description`, `url` and `rowStatus`. 6. Open Key-value store → OUTPUT. Check that `status` is `complete`. ## Use cases | Task | Input | Result to use | |---|---|---| | Fill a job board | Known company URLs | title, description, location, url and applyUrl | | Follow hiring activity | monitor=true | CHANGES.new, CHANGES.changed and CHANGES.removed | | Find matching roles | query and location | Matching Dataset rows; full scan status in OUTPUT | ## Tips - Use the company subdomain on homerun.co. Custom domains are not supported. - Give each watchlist its own name. Then two lists do not mix. - Use the location filter with a city or country code to narrow results. ## Limits - One run accepts 1–4 known Homerun company root URLs. Custom domains, language queries, login pages and redirects are not supported. - Live Cloud acceptance covered 14 complete jobs across four companies. The runtime cap is 40 scanned jobs and 40 saved rows. The 40-job limit was checked on offline fixtures, not a 40-job live board. - The source work has a 150-second deadline, 100 request attempts, 2 MiB per page and 12 MiB of streamed source bodies. Cloud defaults are 256 MB and 180 seconds; 512 MB is also supported. - `complete` means all pages were read and the requested output was saved. `partial` means some work was missing or capped. It does not save a new monitoring baseline. - `not_found` means all source boards returned HTTP 404/410. Other failures are `error` or `partial` in a mixed run. A wildcard redirect is an error, not an empty board. - Dates, salary, department and remote metadata can be missing. Open applications and talent pools can use plain HTML and have fewer fields. - Descriptions are plain text and can include list markers. Source HTML and company openings can change between runs. The tool is not an official Homerun product. - Resume/restart is not supported. Start a new run after a failed run. Partial Dataset results remain visible. ## Sample result ```json { "jobId": "job_mlVLWyEWw1l6EyqLE3LX", "boardJobId": "382587", "title": "Head of Sales", "companyName": "Homerun", "location": "Amsterdam", "salaryMin": 75000, "salaryCurrency": "EUR", "salaryPeriod": "year", "url": "https://jobs.homerun.co/head-of-sales", "applyUrl": "https://jobs.homerun.co/head-of-sales/apply", "rowStatus": "complete", "change": "untracked" } ``` ## Use it from code Actor ID: `cliqtomedia/homerun-jobs-monitor-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/homerun-jobs-monitor-scraper").call(run_input={ "careerUrls": [ "https://jobs.homerun.co/" ], "query": "" }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~homerun-jobs-monitor-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"careerUrls": ["https://jobs.homerun.co/"], "query": ""}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/homerun-jobs-monitor-scraper") result = tool.invoke({"run_input": {"careerUrls": ["https://jobs.homerun.co/"], "query": ""}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Similar tools - [Wellfound Jobs Scraper](https://cliqtomedia.com/actors/wellfound-jobs-scraper/) - [Ashby Jobs Scraper](https://cliqtomedia.com/actors/ashby-jobs-scraper/) - [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/) - [Greenhouse Jobs Monitor & Scraper](https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/) - [Recruitee Job Snapshots & Changes](https://cliqtomedia.com/actors/recruitee-jobs-monitor-scraper/) - [SmartRecruiters Jobs Monitor & Scraper](https://cliqtomedia.com/actors/smartrecruiters-jobs-monitor-scraper/) --- # Idealo Price Scraper: Shop Offers in 6 Countries > Idealo scraper for 6 countries: shop offers with price, shipping, total price, delivery time and shop rating, plus GTIN and brand. No login. URL: https://cliqtomedia.com/actors/idealo-price-scraper/ Category: E-commerce & prices · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/idealo-price-scraper?fpr=cliqto Type a product name or paste idealo links. You get the price of every shop for that product. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `airpods pro` in Search queries. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Idealo Price Scraper reads idealo price comparison pages and returns every shop offer for a product: shop, price, shipping, total price, delivery time, shop rating and shop link. It works on idealo.de, idealo.at, idealo.fr, idealo.it, idealo.es and idealo.co.uk. - Search mode: you type keywords. The Actor takes the products from the first results page of each search, in idealo's order, and reads each product page. - Products mode: you paste idealo product URLs or product IDs. The Actor reads exactly those products. URLs can come from different countries in one run. ### Good for - Watch the price of your products in several countries every day. - See all shops that sell a product, with shipping and total price, not only the cheapest one. - Find a product's GTIN/EAN, brand and category from a keyword. ### Not a good fit - Only the 6 idealo sites above. Other countries and other price comparison sites are not supported. - Search mode reads only the first results page of each search. Single-shop offers without an idealo price comparison page are skipped. - Up to 200 products and up to 200 offers per product in one run (20 offers per product by default). - Prices are what idealo shows at the time of the run. Shops can change prices at any time. - Used and refurbished offers are not in the offer list (idealo shows them separately). ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Product with offers | $0.0045 (from $0.0038 on paid Apify plans) | One idealo product saved to the dataset with its first page of shop offers (up to 20). not_found and error rows are not charged as products. | | Extra offer page | $0.0015 | One more page of up to 20 shop offers for a product (offers 21-40, 41-60, ...). Only when maxOffersPerProduct is above 20 and the page added offers. | | Search query | $0.002 | One idealo search results page read, also when it lists no products. | | Product not found | $0.002 | One product ID or URL checked that idealo does not have (not_found row). Invalid inputs and source errors are free. | | Country site opened | $0.0045 | One idealo country site (idealo.de, .at, .fr, .it, .es or .co.uk) opened in the run, charged once per site after its first successful page read. Opening a site needs a real browser warm-up. | | Start fee | $0.009 | Charged once per run, one fee per GB of memory. This tool uses 2 GB by default, so $0.018 per run. | - One product: about $0.03. - 1,000 products: about $4.61 (5 runs of up to 200). - Every day 100 products, for 30 days: about $14.17 a month. - 200 products once a week (4 runs a month): about $3.69 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/idealo-price-scraper?fpr=cliqto ## Questions ### Is this an official idealo tool? No. It reads the public idealo pages. ### Are used offers included? No. Used and refurbished offers are not in the list. ### Why do I get fewer offers than offerCount? The tool saves 20 offers per product by default. You can raise it to 200. ### Are prices up to date? They are what idealo shows at run time. Shops can change prices at any time. ### Do I need an idealo account or an API key? No. The Actor reads the public idealo pages. No login, no API key. ### Is the output the same as other idealo scrapers? The prices, shops and product IDs are the same as on idealo, but field names are different (for example `title`, `gtin` and a nested `offers` list). If you move from another Actor, map the fields once. ### Why are the rows not in the same order as my URLs? In products mode the Actor reads all products of one idealo site, then the next site. This keeps the run fast and cheap. Use `input` to match rows with your list. ## Data fields - `status` (string): complete: product and requested offers read; partial: product read but some offers or fields missing (see error); not_found: no such product; error: invalid input entry. complete and partial rows are charged as products; a not_found row is charged as a cheaper product-not-found check; error rows are free. - `productId` (string): idealo product ID, the same across countries. - `title` (string): Product name. - `url` (string): Product comparison page on idealo (or the input text for invalid entries). - `domain` (string): idealo site the product was read from. - `category` (string): Product category as named on that site. - `categoryId` (string): idealo category ID. - `brand` (string): Brand. - `gtin` (string): GTIN/EAN when idealo lists one. - `imageUrl` (string): Product image. - `currency` (string): EUR or GBP. - `bestPrice` (number): Lowest offer price on idealo (without shipping). - `highestPrice` (number): Highest offer price on idealo. - `offerCount` (integer): Total number of offers idealo lists for the product. - `offersReturned` (integer): Number of offers in this row (up to maxOffersPerProduct). - `rating` (number): Product rating on idealo (1–5 scale as shown); null when unrated. - `ratingCount` (integer): Number of product ratings. - `offers` (array): Shop offers in idealo default order. - `searchQuery` (string): Search query that found the product (search mode). - `searchPosition` (integer): Position among products on the first results page (search mode). - `input` (string): Product URL or ID as given (products mode). - `error` (string): Why the row is partial, not_found or error; null otherwise. - `source` (string): Always "idealo". - `fetchedAt` (string): When the product page was read (ISO 8601). ## Input settings - `mode` (string): Search: find products by keyword on the chosen idealo site. Products: read the idealo product pages you paste below. - `queries` (array): Keywords as you would type them on idealo, e.g. "airpods pro" or "samsung galaxy s25". Up to 20 queries; products from the first results page of each query are returned in idealo's order. Used when "What to scrape" is Search. - `productUrls` (array): idealo product comparison pages from any supported country, e.g. https://www.idealo.de/preisvergleich/OffersOfProduct/207671730_-airpods-pro-3-apple.html or https://www.idealo.fr/prix/207671730/apple-airpods-pro-3.html, or bare numeric product IDs (read on the site chosen below). Up to 200. Used when "What to scrape" is Products. - `domain` (string): Country site for searches and for bare product IDs. Product URLs always use their own site. Each country site opened in a run is one country-site event. - `maxItems` (integer): Most products to return in this run (1–200). Each returned product is one product event; a product ID that idealo does not have is a cheaper not-found event; invalid entries are free. Empty: 10 for searches, all pasted products in Products mode. - `maxOffersPerProduct` (integer): Shop offers to return per product, cheapest first in idealo's default order (0–200). 20 offers come with the product page; more are loaded 20 at a time, which takes a little longer and is charged as one extra offer page per 20 offers. 0 returns product data and best price only. - `proxyConfiguration` (object): Not needed in most cases. Turn on Apify Proxy only if runs report that idealo blocked the requests. ## Step by step on Apify 1. Open the Input tab. 2. Keep What to scrape = `Search` and the prefilled query `airpods pro`. 3. Keep idealo site = `idealo.de (Germany)` and Max products = `10`. 4. Click Start. 5. Open the Output tab. The `Products` view shows one row per product; the `All offers` view shows one row per shop offer. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Track prices of my product list | `mode: products`, `productUrls` | product row | `bestPrice`, `offerCount`, `offers[].totalPrice` | Schedule + Google Sheets or webhook | | Compare shops for one product | `productUrls`, `maxOffersPerProduct: 100` | offers | `offers[].shop`, `price`, `shipping`, `availability` | CSV / Excel export | | Find products and EANs by keyword | `mode: search`, `queries` | product row | `title`, `gtin`, `brand`, `category` | API / JSON | | Compare one product across countries | the same product ID as URLs on several idealo sites | product row per site | `domain`, `currency`, `bestPrice` | API / JSON | ## Tips - Paste product URLs for exact products. Search reads only the first results page. - Raise the offers per product from 20 if you need more shops. - Mix URLs from different countries in one run to compare markets. ## Limits - Up to 20 search queries and 200 product URLs or IDs per run; at most 200 products saved. - Up to 200 offers per product. - Default timeout is 900 seconds; 200 products with 20 offers take about 5 minutes. With many offers per product (100+), raise the timeout in run options. - Memory is fixed at 2 GB (a real Chrome browser is used). ## Sample result ```json { "status": "complete", "productId": "207671730", "title": "Apple AirPods Pro 3", "url": "https://www.idealo.de/preisvergleich/OffersOfProduct/207671730_-airpods-pro-3-apple.html", "domain": "de", "category": "Kopfhörer", "categoryId": "2520", "brand": "Apple", "gtin": "0195950543650", "currency": "EUR", "bestPrice": 193, "highestPrice": 281.95, "offerCount": 57, "offersReturned": 20, "rating": 4.6, "ratingCount": 10, "offers": [ { "position": 1, "shop": "kaufland.de", "shopId": "26895", "marketplaceSeller": "pricerush", "price": 193, "shipping": 9.99, "totalPrice": 202.99, "currency": "EUR", "availability": "Lieferung: bis Sa. 17.10.", "shopRating": 4.5, "shopRatingCount": 56444 } ], "searchQuery": "airpods pro", "searchPosition": 1, "input": null, "error": null, "source": "idealo" } ``` ## Use it from code Actor ID: `cliqtomedia/idealo-price-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/idealo-price-scraper").call(run_input={ "mode": "search", "queries": [ "airpods pro" ] }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~idealo-price-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"mode": "search", "queries": ["airpods pro"]}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/idealo-price-scraper") result = tool.invoke({"run_input": {"mode": "search", "queries": ["airpods pro"]}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Use cases with this tool - [Track prices in shops and marketplaces](https://cliqtomedia.com/actors/use-cases/price-monitoring/): Track prices and offers in shops and marketplaces. See changes before your customers do. ## Similar tools - [AliExpress Scraper: Products, Prices & Reviews, No Login](https://cliqtomedia.com/actors/aliexpress-scraper/) - [Coles, Woolworths & Aldi Price Scraper - No Login](https://cliqtomedia.com/actors/au-supermarket-prices/) - [Naver Shopping Scraper: Korea Products & Prices](https://cliqtomedia.com/actors/naver-shopping-scraper/) - [Trendyol Scraper: Products, Prices & Reviews (No login)](https://cliqtomedia.com/actors/trendyol-scraper/) - [eBay Sold Listings Scraper - Sold Prices & Dates](https://cliqtomedia.com/actors/ebay-sold-listings/) - [Etsy Listings & Shop Export (Etsy Open API v3)](https://cliqtomedia.com/actors/etsy-listings-api/) --- # 99acres and MagicBricks Property Scraper > 99acres scraper and MagicBricks scraper in one table. Get rent and sale price, price per sq ft, BHK, locality and builder. Filter by city. No login. URL: https://cliqtomedia.com/actors/india-property-listings/ Category: Real estate, travel & cars · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/india-property-listings?fpr=cliqto Get rent and sale homes from MagicBricks and 99acres in one table. Pick a city, type, BHK and budget. Compare prices across both portals. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `Bangalore` in City. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does India Property Listings Scraper reads public rent and sale listings from [MagicBricks](https://www.magicbricks.com/) and [99acres](https://www.99acres.com/) for one Indian city and returns one row per listing with price, area, BHK, locality, project, builder, amenities, photos and who listed it. - City (`city`): for example Bangalore, Mumbai, Pune, New Delhi, Gurgaon, Noida, Hyderabad, Chennai, Kolkata or Ahmedabad. Bengaluru and Gurugram work too. - Rent or buy (`listingType`): rental listings (price per month) or homes for sale (full price). - Portal (`site`): both portals (default), only MagicBricks or only 99acres. - Filters: property type, BHK and budget in INR. ### Good for - Compare rents or sale prices in one city across MagicBricks and 99acres. - Build a list of 2–3 BHK flats under a budget with area, locality and amenities. - Track new projects and builders in a city with RERA numbers and price per sq ft. ### Not a good fit - Residential homes only: apartments, builder floors, houses, villas, penthouses and studios. No plots, offices, shops or PG. - No phone numbers, e-mails or names of private owners. The Actor does not log in and does not open single listing pages. - One city per run and at most 1,000 listings per run. For more, run the Actor again with another city, BHK or budget. - Other portals (Housing.com, NoBroker, Square Yards) are not supported. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.001 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Page read | $0.005 | One portal page read: a search results page or the 99acres city page. Retries after a block are not charged. | | Saved listing | $0.0018 (from $0.0012 on paid Apify plans) | One listing saved to the Dataset. Filtered-out and repeated listings are not charged. | - One result: about $0.0028. - 1,000 results: about $1.80. - Every day 100 results, for 30 days: about $5.43 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/india-property-listings?fpr=cliqto ## Questions ### Do I need a portal account or proxy? No. It reads public results. An Indian proxy is in the price. ### Does it get plots or offices? No. It covers homes only, like flats, houses and villas. ### Can I get owner phone numbers? No. Phones, emails and owner names are not collected. ### Can I pick only one portal? Yes. Choose both, only MagicBricks or only 99acres. ### Do I need a MagicBricks or 99acres account? No. The Actor reads public search results without login. Indian residential proxy is included in the price. ### Why are some fields null? The portal did not show this value on the search result. For example, MagicBricks often gives only the carpet area, and 99acres does not give the builder name. The Actor does not guess missing values. ### Are the results complete and fresh? Each row is what the portal showed at `fetchedAt`. The portals order and limit their own results; `RUN_SUMMARY.sites[].totalOnSite` shows how many listings the portal reported. Each listing is saved once per run. ### Can I search several cities in one run? No, one city per run. Start one run per city, or call the Actor from a schedule or the API for each city. ## Data fields - `id` (string): Unique row ID: site plus the portal listing ID, e.g. magicbricks:79283231. - `site` (string): Portal the listing comes from: magicbricks or 99acres. - `listingId` (string): The portal's own listing ID. - `url` (string): Link to the listing page on the portal. - `title` (string): Listing headline as the portal shows it. - `listingType` (string): rent or buy. - `price` (number): Price in INR. For rent: per month. null when the portal shows "Price on request". - `priceText` (string): Price as the portal writes it, e.g. 1.25 Cr or 35,000. - `pricePerSqft` (number): INR per square foot, as the portal reports it. - `areaSqft` (number): The area the portal shows on the card, in sq ft. - `areaType` (string): Which area areaSqft is (e.g. Carpet Area), when the portal says so. On MagicBricks only set when the card has nothing but the carpet area. - `carpetAreaSqft` (number): Carpet area in sq ft. - `builtUpAreaSqft` (number): Built-up area in sq ft. - `superAreaSqft` (number): Super built-up area in sq ft. - `bhk` (integer): Bedrooms (BHK). null for studios when the portal gives no number. - `bathrooms` (integer): Bathrooms. - `balconies` (integer): Balconies. - `propertyType` (string): Property type as the portal names it, e.g. Apartment, Independent House, Builder Floor. - `furnishing` (string): Furnished, Semi-Furnished or Unfurnished. - `floor` (string): Floor of the unit as the portal writes it, e.g. 3, Ground or Lower Basement. - `totalFloors` (integer): Floors in the building. - `facing` (string): Direction the property faces, e.g. East. - `locality` (string): Locality or neighbourhood, e.g. Whitefield. - `city` (string): City. - `latitude` (number): Latitude, when the portal publishes it. - `longitude` (number): Longitude, when the portal publishes it. - `projectName` (string): Housing project or society name. - `builderName` (string): Builder or developer of the project (MagicBricks only). - `amenities` (array): Amenity names, e.g. Lift, Power Back Up, Swimming Pool. Empty list when none are listed. - `images` (array): Photo URLs from the search result (https). Empty list when the listing has no photos. - `listedBy` (string): Who posted the listing: owner, agent or builder. - `agencyName` (string): Agency or builder company name. Null for owners and when the portal shows what looks like a person's name: no private names. - `availability` (string): Possession or availability, e.g. Ready to Move or Immediately. - `tenantPreference` (string): Rent only: preferred tenants, e.g. Family, Single Women. - `deposit` (number): Rent only: security deposit in INR. - `maintenance` (number): Maintenance charge in INR (MagicBricks only). - `maintenancePeriod` (string): Period of the maintenance charge, e.g. Monthly. - `reraId` (string): RERA registration number, when the listing shows one. - `description` (string): Listing text, up to 2000 characters. Phone numbers and e-mails are hidden. - `postedAt` (string): When the listing was posted (ISO 8601). ## Input settings - `city` (string, required): City to search, e.g. Bangalore, Mumbai, Pune, New Delhi, Gurgaon, Noida, Hyderabad, Chennai, Kolkata or Ahmedabad. Bengaluru and Gurugram work too. - `listingType` (string): Rental listings (price per month) or properties for sale (full price). - `site` (string): Which portal to read. With both, the listings limit is split between them, and one portal fills in what the other lacks. - `maxItems` (integer): Maximum listings to save in total (across both portals). Each listing and each portal page read is charged. - `propertyType` (array): Leave empty for all homes. 99acres has no separate penthouse type: penthouses there come with apartments. - `bhk` (array): Leave empty for any. 5 means 5 BHK or more. Listings without a BHK number (some studios) are left out when this is set. - `budgetMin` (integer): Lowest price in rupees. For rent: per month (e.g. 20000). For buy: full price (e.g. 5000000 = 50 lakh). Listings without a price are left out when a budget is set. - `budgetMax` (integer): Highest price in rupees. For rent: per month (e.g. 60000). For buy: full price (e.g. 15000000 = 1.5 crore). ## Step by step on Apify 1. Open the Input tab. 2. Keep City = `Bangalore` (prefill) or type your city. 3. Keep Rent or buy = `rent` and Max listings = `20` (prefill) for a first test. 4. Click Start. 5. Open the Output tab → Listings and check `title`, `price`, `areaSqft` and `locality`. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Rent price check by locality | `city`, `listingType: rent`, `bhk` | listing | `price`, `locality`, `areaSqft`, `furnishing` | Google Sheets or CSV | | Sale price per sq ft in a city | `listingType: buy` | listing | `price`, `pricePerSqft`, `carpetAreaSqft`, `locality` | BI tool via API | | New projects and builders | `listingType: buy`, `site: magicbricks` | listing | `projectName`, `builderName`, `reraId`, `availability` | CRM or spreadsheet | | Compare portals | `site: both` | listing | `site`, `price`, `locality`, `listedBy` | Dataset export | | Owner vs agent listings | any | listing | `listedBy`, `agencyName`, `deposit` | filter in a spreadsheet | ## Tips - One run covers one city. Make one task per city. - Bengaluru and Gurugram work as city names too. - Some fields are empty when the portal does not show them. The tool does not guess. ## Limits - At most 1,000 listings per run and 60 pages per portal. The test run with 1,000 listings finished in 142 s. - The default timeout is 300 s. Before the timeout the Actor stops new requests and keeps saved rows (`partial`, `TIME_LIMIT`). For 1,000 listings with narrow filters or with `site: 99acres` only (about 40 pages at a slower pace), give the run more time, for example 600 s. - With very narrow filters, a portal stops after 5 pages in a row with no matching listing, so a small number of matches can be missed deep in the results. - Values come from the search result cards. Fields that appear only on the listing page (full description, phone numbers) are not collected. - 99acres sometimes shows a check page to fast visitors. The Actor slows down and retries through another Indian IP; if a portal still does not answer, its status is `error` and the other portal's rows stay. ## Sample result ```json { "id": "99acres:93377100", "site": "99acres", "listingId": "93377100", "url": "https://www.99acres.com/2-bhk-bedroom-apartment-flat-for-rent-in-eden-park-at-the-prestige-city-sarjapur-bangalore-east-979-sqft-spid-B93377100", "title": "2 BHK Flat for rent in Sarjapur, Bangalore", "listingType": "rent", "price": 40000, "priceText": "40,000", "pricePerSqft": 40, "areaSqft": 979, "areaType": "Super Built-up Area", "carpetAreaSqft": 645, "builtUpAreaSqft": null, "superAreaSqft": 979, "bhk": 2, "bathrooms": 2, "balconies": 1, "propertyType": "Residential Apartment", "furnishing": "Semi-Furnished", "floor": "10", "totalFloors": 28, "facing": "East", "locality": "Sarjapur", "city": "Bangalore", "latitude": 12.877670671473693, "longitude": 77.7737927936145, "projectName": "Eden Park at The Prestige City", "builderName": null, "amenities": ["Corner Property", "Power Backup", "Gated Society", "Gas Pipeline", "CCTV Surveillance", "Pet Friendly"], "images": ["https://imagecdn.99acres.com/media1/40671/14/813434867M-1786265241016.jpg"], "listedBy": "agent", "agencyName": "G R Enterprises", "availability": "2026-08-09", "tenantPreference": "Single Women, Single Men, Family", "deposit": 150000, "maintenance": null, "maintenancePeriod": null, "reraId": null, "description": "Additionally, this property is in vicinity to important points of interest and is close to school, close to hospital…", "postedAt": "2026-08-09T08:40:01.000Z", "updatedAt": "2026-08-09T09:34:23.000Z", "position": 1, "searchUrl": "https://www.99acres.com/search/property/rent/residential/bangalore?city=20&preference=R&area_unit=1&res_com=R&property_type=1,2,4,90", "fetchedAt": "2026-10-14T15:01:56.707Z" } ``` ## Use it from code Actor ID: `cliqtomedia/india-property-listings` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/india-property-listings").call(run_input={ "city": "Bangalore", "listingType": "rent" }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~india-property-listings/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"city": "Bangalore", "listingType": "rent"}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/india-property-listings") result = tool.invoke({"run_input": {"city": "Bangalore", "listingType": "rent"}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Similar tools - [Events Scraper: Eventbrite, Meetup & Luma — No Login](https://cliqtomedia.com/actors/events-aggregator/) - [Google Flights Scraper - Prices & Times, No Login](https://cliqtomedia.com/actors/google-flights-scraper/) - [Redfin & Realtor Listings Scraper (US): Sale, Sold & Rent](https://cliqtomedia.com/actors/us-property-listings/) --- # JazzHR jobs scraper for applytojob.com career pages > JazzHR jobs scraper for public applytojob.com pages. Get job text, pay and apply links. Compare snapshots to find new, changed and removed jobs. URL: https://cliqtomedia.com/actors/jazzhr-jobs-monitor-scraper/ Category: Jobs & hiring · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/jazzhr-jobs-monitor-scraper?fpr=cliqto Paste a JazzHR career page or job link. You get current jobs with text, pay details and apply links. Save a snapshot and compare it next time. ## How to use it: 3 steps 1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `https://ecosystems.applytojob.com/apply/jobs/` in JazzHR board or job URLs. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Read public JazzHR career pages and return current jobs with descriptions, pay details and apply links. Compare full snapshots to find new, changed and removed jobs. ## Price Pay per event. Apify bills you, not us. | What you pay for | Price | When | |---|---|---| | Start fee | $0.08 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. | | Saved job or change | $0.00198 | One current job or initial/new/changed/removed job event saved in the Dataset. | - One job: about $0.08. - 1,000 jobs: about $2.06. - Every day 100 jobs, for 30 days: about $8.34 a month. Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/jazzhr-jobs-monitor-scraper?fpr=cliqto ## Questions ### Do I need a JazzHR account? No. The tool reads public career pages, not recruiter accounts. ### How many links can I add? Up to 5 links and 100 saved jobs or changes per run. ### Can I get only new jobs? Yes. Use monitor mode with your last full snapshot. Keep rows marked new. ### Why is the posting date empty? Some old page themes show no date or pay. The tool leaves them empty. ### Why do the two location fields differ? `locations` uses structured data when present. `location` uses the visible page summary. A job may show a city in structured data and Remote in visible text. ### Can I replace another JazzHR scraper without changing my code? The fields `title`, `description`, `locations`, `url`, `date_posted` and `input_url` keep the common meaning. Input keys, canonical input URLs, safe HTML formatting and extra status fields can differ. Check your mapping before switching. ## Data fields - `title` (string): Public job title. - `description` (string): Safe HTML; null when disabled or missing. - `locations` (array): Structured location strings, or visible location fallback; [] when unknown. - `url` (string): Public application page URL. - `date_posted` (string): Source posting date, or null. - `input_url` (string): Canonical input URL that found the job. - `job_id` (string): Stable tenant:public-job-code identifier. - `company` (string): Public employer name, or null. - `location` (string): Visible location summary, or null. - `employment_type` (string): Source employment type; JSON-LD or visible fallback. - `description_text` (string): Plain description text; null when disabled or missing. - `salary` (object): Source pay currency/unit/min/max/value; no conversion. - `remote` (boolean): True when source marks remote, otherwise null. - `change_type` (string): Current snapshot row or initial/new/changed/removed monitor event. - `status` (string): Detail completeness; also check run-level status. - `scraped_at` (string): ISO fetch or removal-detection timestamp. - `source` (string): jazzhr platform marker. ## Input settings - `startUrls` (array, required): Add 1–5 public HTTPS tenant.applytojob.com board or job URLs. Duplicate URLs and job IDs are removed. - `maxResults` (integer): Save 1–100 jobs or change events. Default 20. A full scan can cost time even with no filter matches. A result limit can make the run partial. - `query` (string): All words must appear in title, company, locations or included description text. Empty means all jobs. Maximum 200 characters. - `includeDescription` (boolean): Return safe HTML and plain text descriptions. Default true. False reduces output size and removes description text from keyword matching. - `mode` (string): Snapshot returns current jobs. Monitor compares with previousSnapshot. Without a previous snapshot, monitor returns initial jobs. - `previousSnapshot` (object): In monitor mode, paste the complete SNAPSHOT record from the previous run. It must have the same URLs and description setting, version 1 and at most 100 complete jobs. Omit for the first run. Never use a partial run as the baseline. ## Step by step on Apify 1. Open Input. 2. Add `https://ecosystems.applytojob.com/apply/jobs/` to JazzHR board or job URLs (`startUrls`). 3. Keep `maxResults: 20`, `includeDescription: true` and `mode: "snapshot"`. 4. Use 256 MB, a 160-second timeout and a $0.30 maximum charge. Click Start. 5. Open the Dataset and check `title`, `job_id` and `url`. Open `RUN_SUMMARY` and check `status`. ## Use cases | Task | Settings | Key fields | |---|---|---| | Add public JazzHR jobs to a niche job board | `mode: "snapshot"` | `job_id`, `title`, `url`, `description_text` | | Compare a company's hiring activity | `mode: "monitor"` with a previous full snapshot | `job_id`, `change_type`, `company` | | Review roles by location or words | `query`, with descriptions enabled when needed | `locations`, `location`, `title` | ## Tips - JazzHR pages look like company.applytojob.com. Paste the board or one job link. - Keep the SNAPSHOT from a full run. Paste it into the next monitor run. - Turn off descriptions for a small, quick list of titles and links. ## Limits Employers can remove or change pages. Some old themes have no posting date or pay values. This Actor does not fill missing values with guesses. - Up to 5 input URLs and 100 saved jobs or changes per run. - A complete 78-job board was checked. A 100-row multi-board run reached result and time limits and was partial. Five single-job inputs were also checked with a complete result. - Source work is bounded by 120 scanned jobs, 150 request attempts, 100 seconds, 1 MiB per response and 20 MiB of response bodies in total. Storage and reporting can add time after the scan. The recommended timeout is 160 seconds. A 300-second Store test or larger finite positive timeout is supported without extending the 100-second source deadline. - Use 256–512 MB. Larger memory, longer timeouts and restart-on-error are rejected before source work. - Enabled descriptions are limited to 40,000 HTML characters and 30,000 plain-text characters. Clipping is marked partial. - Complete snapshots can hold up to 100 jobs. A partial run returns `SNAPSHOT: null`; keep your earlier good baseline. - Closed detail links can return `not_found`. An unknown page layout, access block or network error is reported as an error, not a successful empty board. - Partial source scans do not infer removals. Output or charge caps may limit delivery after a full scan. Read both source and run status. ## Sample result ```json { "title": "Energy Auditor", "locations": ["Remote"], "url": "https://ecosystems.applytojob.com/apply/jobs/details/0GZ4T5FOYL", "date_posted": null, "input_url": "https://ecosystems.applytojob.com/apply/jobs/", "job_id": "ecosystems:0GZ4T5FOYL", "company": "ecofi", "location": "Remote", "employment_type": "Full Time", "salary": null, "remote": true, "change_type": "current", "status": "complete", "source": "jazzhr" } ``` ## Use it from code Actor ID: `cliqtomedia/jazzhr-jobs-monitor-scraper` ```python from apify_client import ApifyClient client = ApifyClient("YOUR_APIFY_TOKEN") run = client.actor("cliqtomedia/jazzhr-jobs-monitor-scraper").call(run_input={ "startUrls": [ "https://ecosystems.applytojob.com/apply/jobs/" ], "maxResults": 20 }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ``` ```bash curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~jazzhr-jobs-monitor-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"startUrls": ["https://ecosystems.applytojob.com/apply/jobs/"], "maxResults": 20}' ``` ```python # pip install langchain-apify # set APIFY_TOKEN in your environment from langchain_apify import ApifyActorsTool tool = ApifyActorsTool("cliqtomedia/jazzhr-jobs-monitor-scraper") result = tool.invoke({"run_input": {"startUrls": ["https://ecosystems.applytojob.com/apply/jobs/"], "maxResults": 20}}) print(result) ``` run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/ ## Similar tools - [Greenhouse Jobs Monitor & Scraper](https://cliqtomedia.com/actors/greenhouse-jobs-monitor-scraper/) - [Lever Job Scraper](https://cliqtomedia.com/actors/lever-jobs-scraper/) - [Wellfound Jobs Scraper](https://cliqtomedia.com/actors/wellfound-jobs-scraper/) - [Ashby Jobs Scraper](https://cliqtomedia.com/actors/ashby-jobs-scraper/) - [Recruitee Job Snapshots & Changes](https://cliqtomedia.com/actors/recruitee-jobs-monitor-scraper/) - [SmartRecruiters Jobs Monitor & Scraper](https://cliqtomedia.com/actors/smartrecruiters-jobs-monitor-scraper/) --- # JD.com Products Scraper: Prices, Shops and Ratings > JD.com scraper: search by Chinese keyword or SKU and get price in CNY, shop, self-operated flag, review count and good rate. No login or cookies. URL: https://cliqtomedia.com/actors/jd-com-scraper/ Category: E-commerce & prices · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto Type Chinese keywords or paste JD.com links and get products as rows. Each row has price in CNY, shop and review numbers. No JD login or cookies needed. ## How to use it: 3 steps 1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `手机` in Keywords. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Type keywords or paste JD.com (京东) product links, and get JD products as one row each: price in CNY, shop, 自营 (JD self-operated) flag, number of reviews, good rate in percent, images, categories and links. No JD login, no cookies, no API key. - Search — for each keyword, it reads JD's public search results (京东热卖, re.jd.com) page by page. One row per product: price, shop, self-operated flag, review count (`5万+`) and the same as a number (50000), good rate (`99` = 99% positive), main image, category IDs and the position in the results. - Product — for each JD product link or SKU number, it reads the public mobile product page: title, brand, shop, all images, categories and stock. Then it looks for the same SKU in JD search to add the price, review count and good rate. In our tests on real products the price was found for about 80–90% of them. JD Worldwide (京东国际, jd.hk) products work too. ### Good for - Find products by Chinese keyword and compare price, shop and review numbers. - Track prices of the same keywords over time (run on a schedule and compare by `skuId`). - Check how popular a product is: `commentsCountMin` and `goodRate` for each SKU. ### Not a good fit - About 150–200 products per keyword. JD's public search stops there; later pages repeat. For more products, add more specific keywords (`华为手机`, `小米手机`). - No review texts, no variant or specification lists, no seller ratings. These JD pages need a login. - In Product mode the price is best-effort: JD hides prices on product pages without a login, so the Actor finds the price only when the same SKU appears in JD search for its title. When it does not, the row is `partial` with title, shop and images, and `price: null`. - The order of results can differ from the JD app or search.jd.com. Prices are the ones JD shows to a visitor without an account (no member or coupon prices). ## Price Prices will be shown after release. ## Questions ### Can I get review texts? No. Review texts, specs and variants need a JD login, so they are not included. ### Why is the price empty for some links? JD hides prices on product pages. The tool finds the price only when the SKU is in search. ### Why are prices different from the JD app? The tool sees the price for a visitor without an account. Member prices, coupons and app offers are not included. ### Does it work with JD Worldwide? Yes. jd.hk products work in product mode. ### Do I need a JD account, cookies or API key? No. The Actor reads public JD pages without a login. It does not solve captchas or log in. ### Are the results complete and fresh? The rows show what JD's public search shows at `fetchedAt`. JD changes order and prices often. The Actor does not promise every product for a keyword. ## Input settings - `mode` (string): Search: products for keywords. Product: details for a list of JD product URLs or SKU numbers. - `keywords` (array): Search words, Chinese works best (for example 手机, 笔记本电脑, 耳机). Up to 20 per run. Used in Search mode. - `productUrls` (array): JD product links (https://item.jd.com/100292929859.html, item.m.jd.com links) or bare SKU numbers. Up to 50 per run. Used in Product mode. - `maxItems` (integer): How many products to save for each keyword (Search mode). JD public search lists about 150-200 products per keyword, so for more results add more specific keywords. Each saved product is one billable result. - `proxyConfiguration` (object): Apify datacenter proxy works for JD's public pages. Leave the default unless you see blocks. ## Step by step on Apify 1. Open the Input tab. 2. Keep Mode = `Search by keyword` and the prefilled keyword `手机` in Keywords, or type your own (Chinese works best). 3. Keep Max products per keyword = 10 (prefill) or raise it. 4. Click Start. 5. Open the Output tab, view Products, and check `price`, `commentsCount` and `goodRate`. ## Use cases | Task | Input | You get | Key fields | Next step | |---|---|---|---|---| | Price research on JD | `keywords` | product | `price`, `shop`, `selfOperated` | Google Sheets, CSV | | Popularity and rating check | `keywords` or `productUrls` | product | `commentsCountMin`, `goodRate` | spreadsheet, BI | | Price tracking | `keywords` + schedule | product | `skuId`, `price`, `fetchedAt` | Dataset API, webhooks | | Enrich a list of SKUs | `productUrls` (mode `product`) | product | `title`, `brand`, `shop`, `images`, `inStock` | your catalog | ## Tips - Use more specific keywords for more products. JD stops at about 150 to 200 per keyword. - Compare runs by skuId to track price changes. - Split long link lists into runs of 50. ## Limits - product — each saved `complete` or `partial` product row. - Up to 20 keywords per run, up to 1,000 products per keyword (JD gives about 150–200); up to 50 product links per run. - Measured: 20 keywords × 1,000 → 3,686 rows in 200 seconds; 3 keywords → 461 rows in 27 seconds; 50 real product links → 74–89 seconds; 100 product links that do not exist → 31 seconds. For more products, split the list into runs of 50. - The default run timeout is 300 seconds. The Actor stops on its own at about 240 seconds and keeps saved rows (`reason: DEADLINE`). ## Sample result ```json { "skuId": "100298246508", "title": "一加Ace 6T 12GB+256GB 黑色 oppo 第五代骁龙 8 165Hz 超高刷电竞屏 学生游戏电竞智能手机 国家补贴", "price": 3389, "currency": "CNY", "shop": "一加手机京东自营旗舰店", "shopId": "1000001947", "selfOperated": true, "brand": null, "commentsCount": "5万+", "commentsCountMin": 50000, "goodRate": 99, "url": "https://item.jd.com/100298246508.html", "mobileUrl": "https://item.m.jd.com/product/100298246508.html", "image": "https://img14.360buyimg.com/n0/jfs/t1/426075/25/1266/29522/69ead4abF0cc818dc/0083320320f82202.jpg", "images": ["https://img14.360buyimg.com/n0/jfs/t1/426075/25/1266/29522/69ead4abF0cc818dc/0083320320f82202.jpg"], "categoryIds": ["9987", "653", "655"], "inStock": null, "keyword": "手机", "position": 1, "totalResults": 7680, "input": null, "mode": "search", "status": "complete", "error": null, "fetchedAt": "2026-10-15T09:51:01.331Z" } ``` ## Use cases with this tool - [Track prices in shops and marketplaces](https://cliqtomedia.com/actors/use-cases/price-monitoring/): Track prices and offers in shops and marketplaces. See changes before your customers do. ## Similar tools - [Historical Exchange Rates & Currency Converter](https://cliqtomedia.com/actors/historical-fx-rates-converter/) - [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/) - [Website JSON-LD Structured Data Scraper](https://cliqtomedia.com/actors/website-jsonld-structured-data-scraper/) - [AliExpress Scraper: Products, Prices & Reviews, No Login](https://cliqtomedia.com/actors/aliexpress-scraper/) - [Coles, Woolworths & Aldi Price Scraper - No Login](https://cliqtomedia.com/actors/au-supermarket-prices/) - [Idealo Price Scraper: All Shop Offers, 6 Countries, No Login](https://cliqtomedia.com/actors/idealo-price-scraper/) --- # Kick Live Streams & Viewer Count > Check live status, viewers, title, category and paid subscribers for up to 1,000 Kick channels, or top streams of a category. Your own free Kick key. URL: https://cliqtomedia.com/actors/kick-channels/ Category: Video, audio & streaming · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto Paste Kick channel names or links. Get live status, viewers, title, category and paid subscribers. You can also list the top live streams of a category. You use your own free Kick key. ## How to use it: 3 steps 1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run. 2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `xqc` in Channels. Each start is one run. 3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too. ## What it does Kick Live Streams & Viewer Count gets live status, viewer count, stream title, category, language and paid subscriber count for a list of Kick channels, or the top live streams of any Kick category. You paste channel names or kick.com links, or type a category such as *Just Chatting*, and add your own free Kick Client ID and Client Secret. You get one clean table row per channel, with numbers as numbers. - Accepts channel names (`xqc`), handles (`@adinross`) and links (`https://kick.com/xqc`). Upper and lower case do not matter. - Channel rows come in the order of your list. A channel that appears twice is looked up once. - For a category, the Actor saves the channels live in it right now, most viewers first, up to `maxItems`. A channel that is already in your list is not saved twice. - A channel that Kick does not have gets a `not_found` row with your original line. A line that is not a Kick channel name gets an `invalid_input` row. - An offline channel has `isLive: false` and `null` viewers, title and category. `null` is never written as `0`. - E-mail addresses in a channel description are replaced with `[email removed]`. The Actor does not collect contacts. ### Good for - You track a list of streamers and need to know who is live, with how many viewers, right now. - You want the biggest live streams of a category (for example *Slots & Casino* or *Just Chatting*) as a table. - You want an official, stable data source instead of page scraping. ### Not a good fit - You need follower counts. The official Kick API does not give followers, so this Actor does not have them. It gives the paid subscriber count instead. - You need clips, past broadcasts (VODs), chat messages or viewer lists. - You need e-mails or other contacts of streamers. This Actor does not collect them. - You have no Kick account with two-factor authentication. You need it to make the free key. ## Price Prices will be shown after release. ## Questions ### Do I need a Kick key? Yes. You make a free Client ID and Client Secret in your Kick account. Two-factor login must be on. ### Does it give follower counts? No. The official Kick API does not give followers. You get paid subscribers instead. ### What if a channel is offline? The row shows isLive false. Viewers, title and category are empty, not zero. ### How many channels can I check? Up to 1,000 channels and 20 categories per run. Kick gives up to 100 live streams per category. ### Do I need a Kick account? Yes, to make the free key, with two-factor authentication on. The Actor does not log in to your account and does not use cookies. ### Does it cost Kick money? No. The Kick API is free. You pay only the Apify price above. ### Can I switch from another Kick scraper without changes? Not without changes. Field names differ (for example `viewerCount`, `channelSlug`, `title`), and there are no followers. In return you get one row format for channels and categories, clear `not_found` / `invalid_input` rows and ISO UTC times. ### Is personal data included? Only public channel and stream data that Kick shows on the channel page. E-mail addresses in descriptions are removed. No viewer or chat data. ## Data fields - `status` (string): complete = all fields found; partial = saved, but Kick did not return some fields (see message); not_found = no Kick channel or category with this name (small empty-result fee); invalid_input = not a Kick channel name (small empty-result fee); api_key_required = free notice when the Client ID or Secret is missing. - `input` (string): Your channels or categories entry as typed. - `matchedBy` (string): channel = from your channels list; category = a live stream from one of your categories. - `rank` (integer): 1-based position among the category's live streams by viewers (category rows only). - `channelSlug` (string): Channel name as in kick.com/