For AI agents

Docs for AI agents

Epsimo follows the llms.txt convention (opens in a new tab): plain Markdown at fixed URLs that Claude, Cursor or any LLM agent can read before it runs the 8 Apify actors or calls the API Bridge.

Open llms-full.txt Get the agent skill

Actor data recorded from the public Apify API on 2026-10-18. Prices and inputs can change: the Apify Store page of each actor is authoritative.

Start here

Give your agent the index of each site. It links to everything else.

Apify actors

epsimo.org

Input schemas, output fields, pricing, a curl call and an Apify MCP setup for each actor.

API Bridge

tools.epsimo.org

Functions, credit costs, rate limits, errors and MCP setup of the company data API.

Apify actors

8 actors by quaking_pail on the Apify Store. Each has its own Markdown file for agents.

AI Website Content Markdown Scraper

Crawl a website and get clean Markdown of each page's main content, with URL and title. Ready for LLMs, RAG, vector databases and AI agents. Headless Chrome, same-domain crawl, API access.

  • AI
  • Automation
Pricing
Pay per event, USD at the Apify FREE tier:
  • result: $0.03
Scheduled change from 2026-10-31; see the Store page.
Input
4 fields, 1 required
Output
3 fields

Linkedin Job Scraping

Scrape LinkedIn job listings by keyword and location: title, company, location, link and full job description. No login or cookies. De-duplicated, export to CSV/JSON or use the API.

  • Jobs
  • Lead generation
  • Automation
Pricing
Pay per event, USD at the Apify FREE tier:
  • Actor Start (once per run): $0.00005
  • Job: $0.00165
Input
4 fields, 3 required
Output
5 fields

Google SERP Scraper

Scrape Google organic results: title, URL (exact page or site homepage, flagged by urlType), breadcrumb and snippet. Build the query from market, industry and location. Pay per result.

  • SEO tools
  • Lead generation
Pricing
Pay per event, USD at the Apify FREE tier:
  • Actor Start (once per run): $0.00005
  • Search result: $0.0011
Input
6 fields, 1 required
Output
7 fields

Ai SEO Content Curator

Audit every page of a website for SEO (title, meta description, headings, canonical, Open Graph, status code) and get its main content as clean Markdown for AI. Headless Chrome, API.

  • SEO tools
  • AI
Pricing
Pay per event, USD at the Apify FREE tier:
  • Actor Start (once per run): $0.00005
  • Page: $0.0066
Input
4 fields, 1 required
Output
7 fields

Google Serp Scraper Lead Finder

Find public LinkedIn profiles that match a plain-language description via Google search. Get profile URL, name, headline and snippet per lead, plus public location when shown. No login. Pay per lead.

  • Lead generation
  • AI
Pricing
Pay per event, USD at the Apify FREE tier:
  • Actor Start (once per run): $0.00005
  • Lead: $0.0033
Input
13 fields, 1 required
Output
12 fields

Website Contacts Crawler

Extract emails, phone numbers, team names and LinkedIn links from company websites. Finds contact, team and about pages for you. One row per company; the contact fee applies only when found.

  • Lead generation
  • Automation
Pricing
Pay per event, USD at the Apify FREE tier:
  • Actor Start (once per run): $0.00005
  • Website with contacts: $0.0055
Input
3 fields, 1 required
Output
8 fields

AI Company URL Lead Qualify

This actor will use a company URL and return : The Value Proposal of the company, the industry, the target market and target profile. It will help marketing team qualifying leads on the fly.

  • AI
  • Lead generation
Pricing
Pay per event, USD at the Apify FREE tier:
  • Actor Start (once per run): $0.00005
  • Qualified company: $0.011
Input
1 field, 1 required
Output
Not published by Apify

Google Condensed SERP Scraper

Get Google search results as one condensed text of titles and snippets, ready for LLM prompts, AI agents and market research. Build the query from market, industry and location.

  • AI
  • SEO tools
  • Lead generation
Pricing
Pay per event, USD at the Apify FREE tier:
  • Actor Start (once per run): $0.00005
  • Google results page: $0.0087
Input
6 fields, 4 required
Output
4 fields

Actor details

The input table, an example input, the output fields and the curl call of each actor, from the same data as the Markdown files. Replace $APIFY_TOKEN with your Apify API token (opens in a new tab).

AI Website Content Markdown Scraper quaking_pail/ai-website-content-markdown-scraper

Input

Input fields of AI Website Content Markdown Scraper
NameTypeRequiredDefaultDescription
start_urlsarrayyes[{"url": "https://apify.com"}]List of URLs to start scraping from
max_depthintegerno1Depth to which to scrape
max_urlsintegerno10Maximum number of URLs to retrieve
search_enginestringno"Google"The search engine used to discover extra pages on the same domain before crawling. Choose None to skip this step and only crawl from the start URLs (faster and cheaper). Allowed: "Google", "Bing", "DuckDuckGo", "None".

Example input: Not published by Apify. This one is built from the input schema prefill and default values.

Example input JSON

{
  "start_urls": [
    {
      "url": "https://apify.com"
    }
  ],
  "max_depth": 1,
  "max_urls": 10,
  "search_engine": "Google"
}

Output

Dataset: URLs and their titles. One item per row.

Output fields of AI Website Content Markdown Scraper
FieldTypeDescription
urlstring or nullURL of the scraped page, as it was requested
titlestring or nullPage title as shown in the browser tab
contentstring or nullCleaned Markdown of the page's main content (whitespace collapsed, images, inline SVGs and cookie banners removed)

Run with curl

Run-sync call that returns the dataset items. The token goes in the Authorization header, not in the URL. Runs longer than 300 seconds return HTTP 408; use the asynchronous Run Actor endpoint (opens in a new tab) instead.

curl

curl -X POST "https://api.apify.com/v2/acts/quaking_pail~ai-website-content-markdown-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "start_urls": [
    {
      "url": "https://apify.com"
    }
  ],
  "max_depth": 1,
  "max_urls": 10,
  "search_engine": "Google"
}'

Use cases and limits: in ai-website-content-markdown-scraper.md. Full Markdown: ai-website-content-markdown-scraper.md. Data fetched from the Apify API on 2026-10-18.

Not published by Apify for this actor: example input.

Linkedin Job Scraping quaking_pail/linkedin-job-scraping

Input

Input fields of Linkedin Job Scraping
NameTypeRequiredDefaultDescription
keywordsstringyes"SDR"Specific job titles or roles to search for
locationstringyes"Paris"Geographical location for the job search
max_pagesintegeryes1Number of search result pages to scrape. Each page returns about 10 jobs; the run stops early when LinkedIn has no more results. Allowed: min 1.
proxyConfigurationobjectno-Optional proxy for requests to LinkedIn. Off by default. Use it if you see many 429 or 999 responses in the log; Apify Proxy usage is billed to your account.

Example input: Not published by Apify. This one is built from the input schema prefill and default values.

Example input JSON

{
  "keywords": "SDR",
  "location": "Paris",
  "max_pages": 1
}

Output

Dataset title: Not published by Apify.

Output fields of Linkedin Job Scraping
FieldTypeDescription
Titlestring or nullJob title (falls back to the company name when the card has no title)
Companystring or nullCompany offering the job
Locationstring or nullJob location as shown on LinkedIn
Linkstring or nullPublic URL of the job posting
Descriptionstring or nullFull job description text, or 'No description available' when LinkedIn returned none

Run with curl

Run-sync call that returns the dataset items. The token goes in the Authorization header, not in the URL. Runs longer than 300 seconds return HTTP 408; use the asynchronous Run Actor endpoint (opens in a new tab) instead.

curl

curl -X POST "https://api.apify.com/v2/acts/quaking_pail~linkedin-job-scraping/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "keywords": "SDR",
  "location": "Paris",
  "max_pages": 1
}'

Use cases and limits: in linkedin-job-scraping.md. Full Markdown: linkedin-job-scraping.md. Data fetched from the Apify API on 2026-10-18.

Not published by Apify for this actor: example input, dataset title.

Google SERP Scraper quaking_pail/google-serp-scraper

Input

Input fields of Google SERP Scraper
NameTypeRequiredDefaultDescription
search_query_basestringyes-The base query for the search, representing the market or type of company to target. Example: marketing agency.
domainstringno""The specific domain or industry to add to the search query, for example AI or e-commerce. Leave blank to leave it out of the query.
locationstringno""The location to add to the search query, for example a city or country. Leave blank to search without a location.
info_to_retrievestringno""An exact phrase Google must match, such as email or website. It is added to the query in quotes. Leave blank to leave it out of the query.
max_resultsintegerno100The maximum number of search results to save. Google shows about 10 results per page, and the scraper reads at most 30 pages. Allowed: min 1; max 300.
proxyConfigurationobjectno{"useApifyProxy": true, "apifyProxyGroups": ["GOOGLE_SERP"]}Proxy used to load Google. GOOGLE_SERP is the recommended group: it is built for Google result pages and billed per request. Other groups may be rate-limited by Google with HTTP 429.

Example input: Not published by Apify. This one is built from the input schema prefill and default values.

Example input JSON

{
  "search_query_base": "marketing agency",
  "domain": "IA",
  "location": "Paris",
  "info_to_retrieve": "email, website",
  "max_results": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  }
}

Output

Dataset title: Not published by Apify.

Output fields of Google SERP Scraper
FieldTypeDescription
titlestring or nullTitle of the search result as shown on Google
urlstring or nullReal target URL of the result. Google /url and /goto wrappers are removed. When Google encrypts the link, this is the site origin (homepage); see urlType.
displayedUrlstring or nullBreadcrumb Google shows under the title (site and path), or the hostname of the URL when Google shows none
descriptionstring or nullSnippet text Google shows under the result
emphasizedKeywordsarray or nullTracked keywords (agence, marketing) found in the title or snippet
typestring or nullResult type. Always organic.
urlTypestring or nullexact: url is the deep link Google returned. origin: Google encrypted the link, so url is the site's homepage taken from the breadcrumb.

Run with curl

Run-sync call that returns the dataset items. The token goes in the Authorization header, not in the URL. Runs longer than 300 seconds return HTTP 408; use the asynchronous Run Actor endpoint (opens in a new tab) instead.

curl

curl -X POST "https://api.apify.com/v2/acts/quaking_pail~google-serp-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "search_query_base": "marketing agency",
  "domain": "IA",
  "location": "Paris",
  "info_to_retrieve": "email, website",
  "max_results": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  }
}'

Use cases and limits: in google-serp-scraper.md. Full Markdown: google-serp-scraper.md. Data fetched from the Apify API on 2026-10-18.

Not published by Apify for this actor: example input, dataset title.

Ai SEO Content Curator quaking_pail/ai-seo-content-markdown-scraper

Input

Input fields of Ai SEO Content Curator
NameTypeRequiredDefaultDescription
start_urlsarrayyes-Pages to start scraping from. Internal links on the start URL's domain (taken after the start URL's redirects) are followed up to Maximum depth.
max_depthintegerno1How deep to follow internal links. 0 scrapes only the start URLs, 1 also scrapes the pages they link to. Allowed: min 0.
max_urlsintegerno10Maximum number of pages to scrape. Each scraped page is one dataset item. Allowed: min 1.
search_enginestringno"Google"Informational label copied into each result's search_engine field. It does not change how pages are scraped. Allowed: "Google", "Bing", "DuckDuckGo".

Example input: Not published by Apify. This one is built from the input schema prefill and default values.

Example input JSON

{
  "start_urls": [
    {
      "url": "https://docs.apify.com/"
    }
  ],
  "max_depth": 1,
  "max_urls": 10,
  "search_engine": "Google"
}

Output

Dataset title: Not published by Apify.

Output fields of Ai SEO Content Curator
FieldTypeDescription
urlstring or nullURL that was requested for this page
infoobject or nullPage metadata and statistics
networkobject or nullHTTP request and response details from a separate plain HTTP fetch
seoAuditobject or nullOn-page SEO checks
contentstring or nullMain page content (main, else a single article, else body) converted to Markdown
timestampstring or nullUTC time the page was scraped
search_enginestring or nullInformational label from the input

Run with curl

Run-sync call that returns the dataset items. The token goes in the Authorization header, not in the URL. Runs longer than 300 seconds return HTTP 408; use the asynchronous Run Actor endpoint (opens in a new tab) instead.

curl

curl -X POST "https://api.apify.com/v2/acts/quaking_pail~ai-seo-content-markdown-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "start_urls": [
    {
      "url": "https://docs.apify.com/"
    }
  ],
  "max_depth": 1,
  "max_urls": 10,
  "search_engine": "Google"
}'

Use cases and limits: in ai-seo-content-markdown-scraper.md. Full Markdown: ai-seo-content-markdown-scraper.md. Data fetched from the Apify API on 2026-10-18.

Not published by Apify for this actor: example input, dataset title.

Google Serp Scraper Lead Finder quaking_pail/google-serp-scraper-lead-finder

Input

Input fields of Google Serp Scraper Lead Finder
NameTypeRequiredDefaultDescription
profile_descriptionstringyes-Description of the profile you're looking for (e.g., 'marketing manager startup')
locationstringno-Optional location to target (e.g., 'Paris, France')
exclude_keywordsarrayno-Optional keywords to exclude from search. Page 1 uses Google's -keyword operator. Google returns no later pages for such queries, so pages 2+ are fetched without the operators and results whose title, snippet or profile URL contains an excluded word or phrase (case-insensitive, whole words) are dropped and not charged. The operator-free list starts at the page that came back empty, so its own first page is skipped and runs with exclusions may return fewer leads.
max_resultsintegerno10Maximum number of leads to extract (one dataset row per lead). Values above 1000 are capped to 1000. Allowed: min 1; max 10000.
scrape_profilesbooleannotrueVisit each public LinkedIn profile to add name, headline and location. Each lead is still one row; if LinkedIn shows a login wall, the row keeps the search snippet only.
search_engine_strategystringno"google_with_fallback"Which search engine to use. Google (GOOGLE_SERP proxy) first, Bing as fallback: Bing is used automatically when Google blocks the run or finds no LinkedIn profiles. Bing is currently unreliable: it answers automated requests with results unrelated to the query. Bing Only is kept for compatibility but now runs like the default (Google first, Bing as fallback) and logs a warning. Since 0.20, Rotate also starts with Google and uses Bing only as a fallback. Allowed: "google_only" (Google Only), "bing_only" (Bing Only (unreliable, now uses Google first)), "rotation" (Rotate Between Google and Bing (Bing currently unreliable)), "google_with_fallback" (Start with Google, Fallback to Bing if Blocked).
use_direct_linkedinbooleannofalseWhether to use direct LinkedIn URLs instead of search
linkedin_urlsarrayno-Direct LinkedIn profile URLs to scrape (if use_direct_linkedin is true)
proxy_countrystringno"US"Country code for proxy location Allowed: "US" (United States), "UK" (United Kingdom), "FR" (France), "DE" (Germany), "CA" (Canada), "AU" (Australia), "JP" (Japan), "SG" (Singapore), "NL" (Netherlands), "BR" (Brazil), "IN" (India).
proxy_groupsarrayno-Apify Proxy groups for Bing search pages and LinkedIn profile pages
google_proxy_groupsarrayno-Optional Apify Proxy groups for Google search pages. Leave empty to use GOOGLE_SERP, the Apify Google SERP proxy built for Google result pages and billed per request (recommended). Other groups, such as datacenter proxies, are often rate-limited by Google (HTTP 429).
timezonestringno"America/New_York"Ignored since 0.20 (no browser). Kept so existing API calls keep working. Allowed: "America/New_York", "America/Los_Angeles", "America/Chicago", "Europe/London", "Europe/Paris", "Europe/Berlin", "Asia/Tokyo", "Asia/Singapore", "Australia/Sydney".
max_captcha_retriesintegerno3Retries per search page (with a new proxy IP each time) before it counts as blocked and the run switches search engines. Google pages through GOOGLE_SERP get at least 5 retries. Allowed: min 1; max 10.

Example input: Not published by Apify. This one is built from the input schema prefill and default values.

Example input JSON

{
  "profile_description": "marketing manager startup",
  "exclude_keywords": [
    "post",
    "jobs"
  ],
  "max_results": 10,
  "scrape_profiles": true,
  "search_engine_strategy": "google_with_fallback",
  "use_direct_linkedin": false,
  "linkedin_urls": [],
  "proxy_country": "US",
  "proxy_groups": [
    "BUYPROXIES94952",
    "StaticUS3"
  ],
  "timezone": "America/New_York",
  "max_captcha_retries": 3
}

Output

Dataset title: Not published by Apify.

Output fields of Google Serp Scraper Lead Finder
FieldTypeDescription
titlestring or nullSearch result title (or profile name for direct LinkedIn URLs)
profileUrlstring or nullNormalized LinkedIn profile URL
descriptionstring or nullSearch result snippet (or profile headline for direct LinkedIn URLs)
displayedUrlstring or nullHost name of the profile URL
namestring or nullName from the public LinkedIn profile when it was scraped, otherwise parsed from the search result title (null if not parsable)
headlinestring or nullHeadline from the public LinkedIn profile when it was scraped, otherwise the search result title after the name (null if not parsable)
locationstring or nullLocation from the public LinkedIn profile, when the profile was scraped
profileScrapedboolean or nullTrue when public profile data (name, headline, location) was extracted
sourcestring or nullWhere the lead came from: google_search, bing_search, linkedin_profile or direct_url
sourceSearchEnginestring or nullSearch engine that returned the lead (null for direct LinkedIn URLs)
notestring or nullProcessing note, e.g. whether the profile visit was skipped or hit a login wall
scrapedAtstring or nullISO timestamp when the lead was saved

Run with curl

Run-sync call that returns the dataset items. The token goes in the Authorization header, not in the URL. Runs longer than 300 seconds return HTTP 408; use the asynchronous Run Actor endpoint (opens in a new tab) instead.

curl

curl -X POST "https://api.apify.com/v2/acts/quaking_pail~google-serp-scraper-lead-finder/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "profile_description": "marketing manager startup",
  "exclude_keywords": [
    "post",
    "jobs"
  ],
  "max_results": 10,
  "scrape_profiles": true,
  "search_engine_strategy": "google_with_fallback",
  "use_direct_linkedin": false,
  "linkedin_urls": [],
  "proxy_country": "US",
  "proxy_groups": [
    "BUYPROXIES94952",
    "StaticUS3"
  ],
  "timezone": "America/New_York",
  "max_captcha_retries": 3
}'

Use cases and limits: in google-serp-scraper-lead-finder.md. Full Markdown: google-serp-scraper-lead-finder.md. Data fetched from the Apify API on 2026-10-18.

Not published by Apify for this actor: example input, dataset title.

Website Contacts Crawler quaking_pail/contact-crawler

Input

Input fields of Website Contacts Crawler
NameTypeRequiredDefaultDescription
urlsarray of stringyes-List of company website URLs to crawl for contacts.
maxPagesPerSiteintegerno10Maximum number of pages to crawl per website (homepage + discovered contact/team/about/leadership pages). Allowed: min 1; max 50.
delayBetweenRequestsintegerno2Delay in seconds between HTTP requests to be respectful to servers. Allowed: min 0; max 30.

Example input: Not published by Apify. This one is built from the input schema prefill and default values.

Example input JSON

{
  "urls": [
    "https://apify.com"
  ],
  "maxPagesPerSite": 10,
  "delayBetweenRequests": 2
}

Output

Dataset title: Not published by Apify.

Output fields of Website Contacts Crawler
FieldTypeDescription
company_namestring or nullCompany name derived from the website domain
urlstring or nullWebsite URL that was crawled
emailsarray or nullUnique email addresses found (max 20)
phonesarray or nullUnique phone numbers found (max 10)
peoplearray or nullNames found next to a job title (max 30)
linkedinarray or nullLinkedIn profile URLs linked from the site (max 30)
pages_crawledinteger or nullNumber of pages successfully crawled
pages_failedinteger or nullNumber of pages that returned an HTTP error

Run with curl

Run-sync call that returns the dataset items. The token goes in the Authorization header, not in the URL. Runs longer than 300 seconds return HTTP 408; use the asynchronous Run Actor endpoint (opens in a new tab) instead.

curl

curl -X POST "https://api.apify.com/v2/acts/quaking_pail~contact-crawler/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "urls": [
    "https://apify.com"
  ],
  "maxPagesPerSite": 10,
  "delayBetweenRequests": 2
}'

Use cases and limits: in contact-crawler.md. Full Markdown: contact-crawler.md. Data fetched from the Apify API on 2026-10-18.

Not published by Apify for this actor: example input, dataset title.

AI Company URL Lead Qualify quaking_pail/ai-company-url-lead-qualify

Input

Input fields of AI Company URL Lead Qualify
NameTypeRequiredDefaultDescription
domainsarrayyes-List of company domain names (e.g., example.com) you want to scrape data from.

Example input: Not published by Apify. This one is built from the input schema prefill and default values.

Example input JSON

{
  "domains": [
    "danone.com",
    "epsimoai.com"
  ]
}

Output

Dataset title: Not published by Apify.

Output fields: Not published by Apify.

The dataset view Overview shows company_domain, value_proposition, industry, target_audience, market; their types and descriptions are not published.

Run with curl

Run-sync call that returns the dataset items. The token goes in the Authorization header, not in the URL. Runs longer than 300 seconds return HTTP 408; use the asynchronous Run Actor endpoint (opens in a new tab) instead.

curl

curl -X POST "https://api.apify.com/v2/acts/quaking_pail~ai-company-url-lead-qualify/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "domains": [
    "danone.com",
    "epsimoai.com"
  ]
}'

Use cases and limits: Not published by Apify. Full Markdown: ai-company-url-lead-qualify.md. Data fetched from the Apify API on 2026-10-18.

Not published by Apify for this actor: example input, dataset title, output field types and descriptions, README use cases and limits.

Google Condensed SERP Scraper quaking_pail/google-condensed-serp-scraper

Input

Input fields of Google Condensed SERP Scraper
NameTypeRequiredDefaultDescription
search_query_basestringyes"société de conseil"The base query for the search, representing the market or type of company to target.
domainstringyes"IA"The specific domain or industry to target in the search query.
locationstringyes"Paris"The location to target in the search query.
info_to_retrievestringyes"email, website"The specific information to retrieve, such as email or website. Added to the query in quotes.
max_resultsintegerno100The maximum number of search results to condense into the summary. Google returns 10 results per page, so the Actor fetches at most ceil(max_results / 10) pages (never more than 30 per run) and stops early when Google has no more results. Exclusions such as -jobs in your fields are honored on later pages too: if Google rejects them there, the Actor filters titles and snippets instead. Allowed: min 1.
proxyConfigurationobjectno{"useApifyProxy": true, "apifyProxyGroups": ["GOOGLE_SERP"]}Google SERP proxy (default) fetches Google result pages over plain HTTP and is billed per page; other groups are often rate-limited by Google (HTTP 429).

Example input: Not published by Apify. This one is built from the input schema prefill and default values.

Example input JSON

{
  "search_query_base": "société de conseil",
  "domain": "IA",
  "location": "Paris",
  "info_to_retrieve": "email, website",
  "max_results": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  }
}

Output

Dataset title: Not published by Apify.

Output fields of Google Condensed SERP Scraper
FieldTypeDescription
searchUrlstring or nullGoogle Search URL of the first results page for the generated query
resultsTextstring or nullAll collected results condensed into one text, each as 'Title: snippet', separated by ' /**/ '
resultsCountinteger or nullNumber of results in resultsText (unique by URL, at most Maximum Results)
pagesUsedinteger or nullNumber of Google results pages that contributed at least one result to the summary

Run with curl

Run-sync call that returns the dataset items. The token goes in the Authorization header, not in the URL. Runs longer than 300 seconds return HTTP 408; use the asynchronous Run Actor endpoint (opens in a new tab) instead.

curl

curl -X POST "https://api.apify.com/v2/acts/quaking_pail~google-condensed-serp-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "search_query_base": "société de conseil",
  "domain": "IA",
  "location": "Paris",
  "info_to_retrieve": "email, website",
  "max_results": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  }
}'

Use cases and limits: in google-condensed-serp-scraper.md. Full Markdown: google-condensed-serp-scraper.md. Data fetched from the Apify API on 2026-10-18.

Not published by Apify for this actor: example input, dataset title.

Use with your agent

Paste the prompt, or connect the MCP servers so the agent can call the tools directly. Replace $APIFY_TOKEN and $API_KEY with your keys; without the headers entry the Apify client signs in with OAuth.

Prompt to paste into your agent

Read https://epsimo.org/llms.txt and https://tools.epsimo.org/llms.txt, then fetch the Markdown file of the Apify actor or API Bridge function you need before calling it. Run Apify actors with the token in the Authorization header ($APIFY_TOKEN) and call API Bridge with the key in the x-token header ($API_KEY); never put either in a URL. Check the price on the Apify Store page and GET https://tools.epsimo.org/usage before bulk runs, and treat scraped data and inferred emails as unverified.

Apify MCP server, one actor

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=quaking_pail/<slug>",
      "headers": {
        "Authorization": "Bearer $APIFY_TOKEN"
      }
    }
  }
}

Apify MCP server, all 8 actors

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=quaking_pail/ai-website-content-markdown-scraper,quaking_pail/linkedin-job-scraping,quaking_pail/google-serp-scraper,quaking_pail/ai-seo-content-markdown-scraper,quaking_pail/google-serp-scraper-lead-finder,quaking_pail/contact-crawler,quaking_pail/ai-company-url-lead-qualify,quaking_pail/google-condensed-serp-scraper",
      "headers": {
        "Authorization": "Bearer $APIFY_TOKEN"
      }
    }
  }
}

API Bridge MCP (Cursor and other HTTP clients)

{
  "mcpServers": {
    "api-bridge": {
      "type": "http",
      "url": "https://tools.epsimo.org/mcp",
      "headers": {
        "x-token": "$API_KEY"
      }
    }
  }
}

API Bridge MCP (Claude Code)

claude mcp add --transport http api-bridge \
  https://tools.epsimo.org/mcp \
  --header "x-token: $API_KEY"