fecklesspleb Apify Actors

io.github.fecklesspleb由 GitHub 帳號 fecklesspleb 發布v0.1.0更新於 Nov 5, 2026

14 tools for fecklesspleb's Apify Actors: SEO, metadata, sitemaps, HN, jobs; 4 web tools opt-in.

發布方自己的服務:Apify MCP Server

概覽

AI 產生的概覽

執行 fecklesspleb 的 Apify Actors,提供 SEO 稽核、頁面中介資料、網站地圖、Hacker News 與職缺資訊,費用計入你自己的 Apify 帳戶。

可以做什麼
  • 逐頁稽核網站的頁面 SEO 問題,或批次取得網址的標題、meta 描述、Open Graph、JSON-LD 與 hreflang
  • 列出網站地圖中的所有網址及 lastmod、changefreq、priority,並支援正規表示式與日期篩選
  • 搜尋 Hacker News 的文章與留言,或把每月 Who is hiring 討論串整理成職缺紀錄
  • 彙整 Remote OK、We Work Remotely 與 Jobicy 的遠端職缺,去重後統一列出
  • 從 Greenhouse、Lever、Ashby、Workday 招募看板或混合 ATS 徵才頁取得開放職缺
  • 選用網頁工具:將頁面擷取為 Markdown、下載圖片、截圖、檢查失效連結
適用情境
適合需要 SEO 與中介資料檢查、網站地圖清單、Hacker News 調查,或從公開來源蒐集職缺資料而不必自行撰寫爬蟲的情境。啟用選用網頁工具後還可進行擷取、截圖與連結檢查。
執行需求
透過 npx 以 stdio 在本機執行,需要 Node.js 20 或更新版本。呼叫需要 Apify 帳戶及 APIFY_TOKEN 環境變數,缺少時工具仍會列出但呼叫會失敗。選用變數可設定工具集、單次呼叫費用上限、費用總上限、執行逾時與輸出長度。需要能連線至 Apify 的網路。
安裝前請注意
每次呼叫都會依 Actors 商店價格從你自己的 Apify 帳戶扣款,其中一部分歸 Actor 開發者;maxCostUsd 與 APIFY_MAX_COST_CEILING_USD 只能限制、無法消除花費。APIFY_TOKEN 是可計費的憑證。截圖與下載檔案會存放在你的 Apify 儲存空間並以連結回傳。執行過久可能逾時,但工作仍可能在 Apify 主控台繼續,結果過大時會被截斷。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 fecklesspleb Apify Actors,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

fecklesspleb-actors-mcp

An MCP server that gives AI agents 14 tools: 10 on by default for SEO audits, page metadata, sitemaps, Hacker News search and job listings, plus 4 opt-in web tools for Markdown crawling, image downloads, screenshots and broken-link checks. Each tool runs one of my public Apify Actors and returns the results in the tool response.

Disclosure: I (fecklesspleb) wrote and maintain this server and every Actor it calls. Runs are billed per result to your own Apify account at the Actors' Store prices, and some of that money comes to me as the Actor developer. This project is not affiliated with or endorsed by Apify, Greenhouse, Lever, Ashby, Workday, Remote OK, We Work Remotely, Jobicy, Hacker News, Y Combinator or Algolia.

Why use this instead of Apify's own MCP server

You don't have to. Apify's official server can run these Actors too:

  • Hosted: https://mcp.apify.com?tools=fecklesspleb/website-seo-audit,fecklesspleb/sitemap-extractor (OAuth, or an Authorization: Bearer <APIFY_TOKEN> header)
  • Local: npx -y @apify/actors-mcp-server --tools fecklesspleb/website-seo-audit,fecklesspleb/sitemap-extractor with APIFY_TOKEN set

This server is a smaller, focused option:

  • The results come back in the tool call. Each call uses Apify's synchronous run-sync-get-dataset-items endpoint, so the agent gets the dataset items directly instead of a run ID to poll.
  • Every call has a dollar cap. maxCostUsd (default $0.25) is sent to Apify as maxTotalChargeUsd. A server-side ceiling (default $5) caps what an agent can ask for.
  • Small defaults. When the agent leaves them out, the server sets limits such as 25 jobs, 50 Hacker News items or 10 pages per site. Job descriptions are left out unless the agent asks for them, which keeps responses short.
  • Input schemas stay current. At startup the server reads each Actor's input schema from its live Apify build, so the tools accept exactly what the Actors accept. If Apify can't be reached, it uses a bundled snapshot.

Tools

Prices are the Apify Store prices when this was written. The live price is on each Actor's page.

core (5 tools, on by default)

ToolActorWhat it returnsPrice
seo_audit_websitewebsite-seo-auditCrawls a site from startUrls (same host) and returns one record per page: status, score 0-100, issues (title, meta description, H1, canonical, noindex, alt text, thin content, Open Graph, JSON-LD, slow pages)$0.003 per page + $0.00005 per run start
extract_website_metadatawebsite-metadata-extractorFor each of urls: title, meta description, canonical, language, Open Graph, Twitter card, JSON-LD, favicon, RSS feeds, hreflang. Rows for URLs that could not be read are free$0.001 per URL + $0.00005 per run start
extract_sitemap_urlssitemap-extractorEvery URL in a site's sitemaps (found through robots.txt, or from a sitemap URL you pass) with lastmod, changefreq, priority. Regex and date filters$0.0002 per URL
search_hacker_newshacker-news-scrapermode: "search": HN stories and comments by keyword, points, comments and date (HN Search API by Algolia). mode: "whoIsHiring": job records from the monthly "Ask HN: Who is hiring?" thread$0.00015 per item
search_remote_jobsremote-jobs-aggregatorOne deduplicated list of remote jobs from the Remote OK, We Work Remotely and Jobicy feeds, with the source on every job. Keyword, location, salary and date filters$0.001 per job

jobs (5 tools, on by default)

Open jobs from company career sites. Each job has the company, title, location, remote flag, department, employment type, salary (when the posting gives one), posting date and URL.

ToolActorPass companies asPrice
greenhouse_jobsgreenhouse-jobs-scraperGreenhouse slugs (airbnb), board URLs or careers pages. Or set searchDirectory: true$0.001 per job
lever_jobslever-jobs-scraperLever slugs (palantir), board URLs or careers pages. Or set searchDirectory: true$0.001 per job
ashby_jobsashby-jobs-scraperAshby slugs (ramp), board URLs or careers pages. Or set searchDirectory: true$0.001 per job
workday_jobsworkday-jobs-scraperFull Workday career site URLs, e.g. https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite$0.002 per job
ats_jobsats-jobs-scraperBoard URLs or careers pages on Greenhouse, Lever, Ashby, Workday, Workable, Recruitee or Teamtailor (Polymer and HireHive by URL). Use it when you don't know which ATS a company uses$0.002 per job

web (4 tools, opt-in: FECKLESSPLEB_TOOLSETS=core,jobs,web or all)

ToolActorWhat it returnsPrice
crawl_website_to_markdownwebsite-to-markdown-crawlerPages of a site as Markdown or text$0.0008 per page + $0.00005 per run start
download_imagesbulk-image-downloaderLinks to images and files saved in your Apify storage, with size, dimensions, alt text, SHA-256$0.001 per file + $0.00005 per run start
screenshot_websitewebsite-screenshotLinks to PNG/JPEG screenshots (and optional PDFs) saved in your Apify storage$0.0008 per screenshot + $0.00005 per run start
check_broken_linksbroken-link-checkerBroken links and images with the page, link text and status code$0.003 per broken link ($0.0005 per checked link when onlyBroken is off) + $0.00005 per run start

The "run start" charge is per GB of run memory, once per run.

Every tool also takes maxCostUsd. All other arguments are the Actor's own input fields, described in the tool's input schema.

Setup

You need Node.js 20 or newer and an Apify account. Copy your API token from Apify Console > Settings > API & Integrations.

Claude Desktop, Cursor and other clients that use an mcpServers config:

json
{  "mcpServers": {    "fecklesspleb-actors": {      "command": "npx",      "args": ["-y", "fecklesspleb-actors-mcp"],      "env": { "APIFY_TOKEN": "<your Apify API token>" }    }  }}

Claude Code:

sh
claude mcp add fecklesspleb-actors --env APIFY_TOKEN=<your Apify API token> -- npx -y fecklesspleb-actors-mcp

From source:

sh
git clone https://github.com/fecklesspleb/actors-mcp.gitcd actors-mcpnpm ci && npm run buildAPIFY_TOKEN=<your Apify API token> node dist/index.js

Docker:

sh
docker build -t fecklesspleb-actors-mcp .docker run -i --rm -e APIFY_TOKEN=<your Apify API token> fecklesspleb-actors-mcp

Configuration

VariableDefaultMeaning
APIFY_TOKEN(required for calls)Your Apify API token. Tools are still listed without one, but calls return an error.
FECKLESSPLEB_TOOLSETScore,jobsComma-separated: core, jobs, web, or all.
APIFY_MAX_COST_USD0.25Cap per call when the agent doesn't pass maxCostUsd. Must be a positive number; 0, negative values and non-numbers stop the server at startup. A value above the ceiling is lowered to the ceiling.
APIFY_MAX_COST_CEILING_USD5Highest maxCostUsd an agent can request. Bigger values are lowered to this. Must be a positive number.
APIFY_RUN_TIMEOUT_SECS280Run timeout sent to Apify. 0 uses the Actor's own timeout.
MAX_OUTPUT_CHARS60000Longest tool response. Longer results are cut short, and the response says how many items were left out.
FECKLESSPLEB_LIVE_SCHEMAS1Set to 0 to skip the live schema lookup and use the bundled snapshots.
APIFY_API_BASE_URLhttps://api.apify.com/v2API base URL. Only for testing against a mock API; leave unset. Must be https; plain http is accepted only for localhost, 127.0.0.1 and ::1.

What a call returns

json
{  "actor": "fecklesspleb/sitemap-extractor",  "itemCount": 2,  "maxCostUsd": 0.25,  "items": [    { "url": "https://example.com/blog/a", "lastmod": "2026-10-01", "sitemapUrl": "https://example.com/sitemap.xml" },    { "url": "https://example.com/blog/b", "lastmod": "2026-10-03", "sitemapUrl": "https://example.com/sitemap.xml" }  ]}

items are the Actor's dataset items, unchanged. The fields for each Actor are listed on its Apify Store page.

Limits

  • Apify's synchronous endpoint waits at most 300 seconds. A longer run returns an error, but the run may keep going in your Apify Console. Ask for fewer URLs, pages or companies.
  • Results larger than MAX_OUTPUT_CHARS are cut short. The full dataset stays in your Apify account.
  • Screenshots and downloaded files are returned as links to your Apify storage, not as image data.

Development

Building and running the tests needs Node.js 20.19 or newer (on Node 22, 22.12 or newer), because the test runner (Vitest, on Vite 8) requires it. Running the server still needs only Node.js 20 or newer.

sh
npm cinpm run buildnpm test                  # builds, then runs unit, protocol and token-leak tests against a mocked Apify API, no networkAPIFY_TOKEN=<your Apify API token> npm run e2e   # one real call (Hacker News, 5 items, about $0.00075, billed to that account)npm run snapshot-schemas  # refresh the bundled input schemas from the live Actor builds

License

MIT. Copyright (c) 2026 fecklesspleb.

來源:README.md,提交 77cfe1f

工具

10

seo_audit_website

SEO audit of a website

Crawl a site from one or more start pages (same host only) and audit every page for on-page SEO problems: missing or overlong titles and meta descriptions, H1s, canonicals, noindex, image alt text, thin content, Open Graph, JSON-LD and slow responses. Returns one record per page with a list of issues and a 0-100 score. Use it to find what to fix on a site; use extract_website_metadata instead when you only need the tags of known URLs. Cost, charged to your own Apify account: $0.003 per page audited; $0.00005 per Actor start (per GB of memory, once per run). Each call is capped at maxCostUsd (default $0.25). Defaults applied by this server when omitted: maxPagesPerSite=10. Runs Apify Actor fecklesspleb/website-seo-audit (https://apify.com/fecklesspleb/website-seo-audit).

輸入參數startUrls必填maxCostUsdmaxResultsincludeJsonLdexcludePatternsmaxPagesPerSiteonlyPagesWithIssues

extract_website_metadata

Extract page metadata and Open Graph tags

Fetch a list of URLs (plain HTTP, no browser) and return each page's title, meta description, canonical URL, language, Open Graph and Twitter card tags, schema.org JSON-LD, favicon, RSS feeds and hreflang links. Use it for link previews, enrichment or quick SEO checks of specific pages. Failed URLs come back as free error rows. Cost, charged to your own Apify account: $0.001 per URL processed; $0.00005 per Actor start (per GB of memory, once per run). Each call is capped at maxCostUsd (default $0.25). Runs Apify Actor fecklesspleb/website-metadata-extractor (https://apify.com/fecklesspleb/website-metadata-extractor).

輸入參數urls必填maxCostUsdmaxResultsincludeJsonLdmaxConcurrencyincludeFailedUrls

extract_sitemap_urls

List the URLs in a site's sitemaps

Give a site (sitemaps are discovered through robots.txt) or a direct sitemap.xml URL and get every listed URL with lastmod, changefreq and priority. Follows sitemap indexes and reads .gz files. Filter with includePatterns/excludePatterns (regular expressions) and lastmodAfter or lastmodWithinDays. Use it to map a site's pages or find recently changed ones before crawling. Cost, charged to your own Apify account: $0.0002 per URL returned. Each call is capped at maxCostUsd (default $0.25). Defaults applied by this server when omitted: maxTotalUrls=500. Runs Apify Actor fecklesspleb/sitemap-extractor (https://apify.com/fecklesspleb/sitemap-extractor).

輸入參數startUrlsmaxCostUsdonlyNewUrlslastmodAftermaxTotalUrlsmaxUrlsPerSitestateStoreNameexcludePatternsincludePatternskeepUndatedUrlssitemapPatternsincludeAlternates另有 2 個

search_hacker_news

Search Hacker News or its Who is hiring threads

mode 'search': search Hacker News stories and comments (including Ask HN and Show HN) by keyword, points, comment count and date through the public HN Search API by Algolia. mode 'whoIsHiring': turn the monthly 'Ask HN: Who is hiring?' thread into job records with company, role, location, remote flag and salary when stated. Emails and phone numbers in post text are redacted by default. Cost, charged to your own Apify account: $0.00015 per item returned. Each call is capped at maxCostUsd (default $0.25). Defaults applied by this server when omitted: maxItems=50. Runs Apify Actor fecklesspleb/hacker-news-scraper (https://apify.com/fecklesspleb/hacker-news-scraper).

輸入參數modetagsquerysinceuntilsortBythreadskeywordsmaxItemsminPointsmaxCostUsdremoteOnly另有 5 個

search_remote_jobs

Search remote jobs (Remote OK, We Work Remotely, Jobicy)

One deduplicated list of remote job postings from the official public feeds of Remote OK, We Work Remotely and Jobicy, with the source named on every job. Filter by keywords, excludeKeywords, locations (for example 'USA', 'Europe'), requireSalary, minSalaryUsd and postedWithinDays. Set includeDescription to true for full descriptions. Cost, charged to your own Apify account: $0.001 per job returned. Each call is capped at maxCostUsd (default $0.25). Defaults applied by this server when omitted: maxTotalJobs=25. Runs Apify Actor fecklesspleb/remote-jobs-aggregator (https://apify.com/fecklesspleb/remote-jobs-aggregator).

輸入參數dedupesourceskeywordsjobicyGeolocationsmaxCostUsdonlyNewJobsmaxTotalJobsminSalaryUsdrequireSalarywwrCategoriesjobicyIndustry另有 6 個

greenhouse_jobs

Open jobs from Greenhouse job boards

Open jobs from companies that hire through Greenhouse. Pass companies as Greenhouse slugs (e.g. 'airbnb'), boards.greenhouse.io URLs, or careers pages that embed a Greenhouse board; or set searchDirectory to true to search a built-in directory of boards. Filter with keywords, excludeKeywords, locations, remoteOnly and postedWithinDays. Full descriptions are off by default here to save tokens; set includeDescription to true to get them. Not affiliated with Greenhouse. Cost, charged to your own Apify account: $0.001 per job returned. Each call is capped at maxCostUsd (default $0.25). Defaults applied by this server when omitted: maxTotalJobs=25, includeDescription=false. Runs Apify Actor fecklesspleb/greenhouse-jobs-scraper (https://apify.com/fecklesspleb/greenhouse-jobs-scraper).

輸入參數keywordscompanieslocationsmaxCostUsdremoteOnlydepartmentsonlyNewJobsmaxTotalJobsmaxConcurrencystateStoreNameexcludeKeywordssearchDirectory另有 7 個

lever_jobs

Open jobs from Lever job boards

Open jobs from companies that hire through Lever (jobs.lever.co, EU boards included). Pass companies as Lever slugs (e.g. 'palantir'), board URLs or careers pages that embed a Lever board; or set searchDirectory to true to search a built-in directory of boards. Filter with keywords, excludeKeywords, locations, remoteOnly and postedWithinDays. Full descriptions are off by default here to save tokens; set includeDescription to true to get them. Not affiliated with Lever. Cost, charged to your own Apify account: $0.001 per job returned. Each call is capped at maxCostUsd (default $0.25). Defaults applied by this server when omitted: maxTotalJobs=25, includeDescription=false. Runs Apify Actor fecklesspleb/lever-jobs-scraper (https://apify.com/fecklesspleb/lever-jobs-scraper).

輸入參數keywordscompanieslocationsmaxCostUsdremoteOnlydepartmentsonlyNewJobsmaxTotalJobsmaxConcurrencystateStoreNameexcludeKeywordssearchDirectory另有 7 個

ashby_jobs

Open jobs from Ashby job boards

Open jobs from companies that hire through Ashby (jobs.ashbyhq.com). Pass companies as Ashby slugs (e.g. 'ramp'), board URLs or careers pages that embed an Ashby board; or set searchDirectory to true to search a built-in directory of boards. Filter with keywords, excludeKeywords, locations, remoteOnly and postedWithinDays. Full descriptions are off by default here to save tokens; set includeDescription to true to get them. Not affiliated with Ashby. Cost, charged to your own Apify account: $0.001 per job returned. Each call is capped at maxCostUsd (default $0.25). Defaults applied by this server when omitted: maxTotalJobs=25, includeDescription=false. Runs Apify Actor fecklesspleb/ashby-jobs-scraper (https://apify.com/fecklesspleb/ashby-jobs-scraper).

輸入參數keywordscompanieslocationsmaxCostUsdremoteOnlydepartmentsonlyNewJobsmaxTotalJobsmaxConcurrencystateStoreNameexcludeKeywordssearchDirectory另有 7 個

workday_jobs

Open jobs from Workday career sites

Open jobs from a Workday career site. Pass companies as full career site URLs as shown in the browser (for example https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite); bare company names are skipped. Also filters by salary, work arrangement, employment type, seniority and years of experience. Filter with keywords, excludeKeywords, locations, remoteOnly and postedWithinDays. Full descriptions are off by default here to save tokens; set includeDescription to true to get them. Not affiliated with Workday. Cost, charged to your own Apify account: $0.002 per job returned. Each call is capped at maxCostUsd (default $0.25). Defaults applied by this server when omitted: maxTotalJobs=25, includeDescription=false. Runs Apify Actor fecklesspleb/workday-jobs-scraper (https://apify.com/fecklesspleb/workday-jobs-scraper).

輸入參數dedupeBykeywordscompanieshasSalarylocationssenioritytimeRangemaxCostUsdremoteOnlyonlyNewJobsmaxTotalJobsincludeExpired另有 16 個

ats_jobs

Open jobs from any of 9 applicant tracking systems

Open jobs from company career pages on Greenhouse, Lever, Ashby, Workday, Workable, Recruitee and Teamtailor (Polymer and HireHive by URL), normalised into one schema. Use it when you have a mix of companies or do not know which ATS a company uses; pass board URLs or careers pages in companies. Also filters by salary, seniority, work arrangement and staffing agencies. Filter with keywords, excludeKeywords, locations, remoteOnly and postedWithinDays. Full descriptions are off by default here to save tokens; set includeDescription to true to get them. Not affiliated with any ATS vendor. Cost, charged to your own Apify account: $0.002 per job returned. Each call is capped at maxCostUsd (default $0.25). Defaults applied by this server when omitted: maxTotalJobs=25, includeDescription=false. Runs Apify Actor fecklesspleb/ats-jobs-scraper (https://apify.com/fecklesspleb/ats-jobs-scraper).

輸入參數dedupeBykeywordscompanieshasSalarylocationssenioritytimeRangemaxCostUsdremoteOnlydepartmentsonlyNewJobsmaxTotalJobs另有 22 個

版本歷史

1
  1. v0.1.0最新Nov 4, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Apify 整合