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.
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.
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.
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.
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.
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.
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.
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.
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.
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 Scraperquaking_pail/ai-website-content-markdown-scraper
Input
Input fields of AI Website Content Markdown Scraper
Name
Type
Required
Default
Description
start_urls
array
yes
[{"url": "https://apify.com"}]
List of URLs to start scraping from
max_depth
integer
no
1
Depth to which to scrape
max_urls
integer
no
10
Maximum number of URLs to retrieve
search_engine
string
no
"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.
Output fields of AI Website Content Markdown Scraper
Field
Type
Description
url
string or null
URL of the scraped page, as it was requested
title
string or null
Page title as shown in the browser tab
content
string or null
Cleaned 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.
Number 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.
proxyConfiguration
object
no
-
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.
Job title (falls back to the company name when the card has no title)
Company
string or null
Company offering the job
Location
string or null
Job location as shown on LinkedIn
Link
string or null
Public URL of the job posting
Description
string or null
Full 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.
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.
Real 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.
displayedUrl
string or null
Breadcrumb Google shows under the title (site and path), or the hostname of the URL when Google shows none
description
string or null
Snippet text Google shows under the result
emphasizedKeywords
array or null
Tracked keywords (agence, marketing) found in the title or snippet
type
string or null
Result type. Always organic.
urlType
string or null
exact: 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.
HTTP request and response details from a separate plain HTTP fetch
seoAudit
object or null
On-page SEO checks
content
string or null
Main page content (main, else a single article, else body) converted to Markdown
timestamp
string or null
UTC time the page was scraped
search_engine
string or null
Informational 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.
Not published by Apify for this actor: example input, dataset title.
Google Serp Scraper Lead Finderquaking_pail/google-serp-scraper-lead-finder
Input
Input fields of Google Serp Scraper Lead Finder
Name
Type
Required
Default
Description
profile_description
string
yes
-
Description of the profile you're looking for (e.g., 'marketing manager startup')
location
string
no
-
Optional location to target (e.g., 'Paris, France')
exclude_keywords
array
no
-
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_results
integer
no
10
Maximum number of leads to extract (one dataset row per lead). Values above 1000 are capped to 1000. Allowed: min 1; max 10000.
scrape_profiles
boolean
no
true
Visit 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_strategy
string
no
"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_linkedin
boolean
no
false
Whether to use direct LinkedIn URLs instead of search
linkedin_urls
array
no
-
Direct LinkedIn profile URLs to scrape (if use_direct_linkedin is true)
Apify Proxy groups for Bing search pages and LinkedIn profile pages
google_proxy_groups
array
no
-
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).
timezone
string
no
"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_retries
integer
no
3
Retries 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.
Search result title (or profile name for direct LinkedIn URLs)
profileUrl
string or null
Normalized LinkedIn profile URL
description
string or null
Search result snippet (or profile headline for direct LinkedIn URLs)
displayedUrl
string or null
Host name of the profile URL
name
string or null
Name from the public LinkedIn profile when it was scraped, otherwise parsed from the search result title (null if not parsable)
headline
string or null
Headline from the public LinkedIn profile when it was scraped, otherwise the search result title after the name (null if not parsable)
location
string or null
Location from the public LinkedIn profile, when the profile was scraped
profileScraped
boolean or null
True when public profile data (name, headline, location) was extracted
source
string or null
Where the lead came from: google_search, bing_search, linkedin_profile or direct_url
sourceSearchEngine
string or null
Search engine that returned the lead (null for direct LinkedIn URLs)
note
string or null
Processing note, e.g. whether the profile visit was skipped or hit a login wall
scrapedAt
string or null
ISO 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.
LinkedIn profile URLs linked from the site (max 30)
pages_crawled
integer or null
Number of pages successfully crawled
pages_failed
integer or null
Number 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.
Not published by Apify for this actor: example input, dataset title.
AI Company URL Lead Qualifyquaking_pail/ai-company-url-lead-qualify
Input
Input fields of AI Company URL Lead Qualify
Name
Type
Required
Default
Description
domains
array
yes
-
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.
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 Scraperquaking_pail/google-condensed-serp-scraper
Input
Input fields of Google Condensed SERP Scraper
Name
Type
Required
Default
Description
search_query_base
string
yes
"société de conseil"
The base query for the search, representing the market or type of company to target.
domain
string
yes
"IA"
The specific domain or industry to target in the search query.
location
string
yes
"Paris"
The location to target in the search query.
info_to_retrieve
string
yes
"email, website"
The specific information to retrieve, such as email or website. Added to the query in quotes.
max_results
integer
no
100
The 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.
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.
Google Search URL of the first results page for the generated query
resultsText
string or null
All collected results condensed into one text, each as 'Title: snippet', separated by ' /**/ '
resultsCount
integer or null
Number of results in resultsText (unique by URL, at most Maximum Results)
pagesUsed
integer or null
Number 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.
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.