Link Building Prospects & Guest Post Finder (Google, AI) avatar

Link Building Prospects & Guest Post Finder (Google, AI)

Pricing

from $6.00 / 1,000 qualified prospect (rules only)s

Go to Apify Store
Link Building Prospects & Guest Post Finder (Google, AI)

Link Building Prospects & Guest Post Finder (Google, AI)

First 25 prospects free. Link building prospects from Google Search: guest-post, resource and listicle pages with contact route, fit score and AI opener. Pay per qualified prospect: junk and repeat domains never charged. Free demo on any plan; live search runs on your own Apify account.

Pricing

from $6.00 / 1,000 qualified prospect (rules only)s

Rating

0.0

(0)

Developer

Rich Minds

Rich Minds

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Share

Guest-post and resource-page sites for your keywords, with a checked e-mail and a first line.

⚡ First 25 prospects free · 💵 $0.006 per qualified prospect · 🤖 $0.018 with AI assessment (≈ $0.023 all-in) · 🔑 No API key needed — the AI uses the model access of your Apify plan, or your own key · ⏱️ demo in seconds; ≈ 4–6 min for 5 keywords with AI (estimate)

One row per qualified link building prospect — site, opportunity type, fit score, e-mail, contact page and the outreach opener

Try it in 30 seconds. Click Try it — the pre-filled free demo turns 8 Google results into 4 link building prospects, nothing charged. Then switch Where do the prospects come from? to the live Google search and paste the page you want links to. Your first 25 qualified prospects are free. → What a run costs · What the AI adds · Run it weekly

⚡ At a glance

What you getone row per site: opportunity type, checked best e-mail, authority, fit score, opener, dead links to pitch
You providethe page you want links to — keywords and a one-line pitch are optional (read from the page)
Never delivereddirectories, giants, PDFs, your own and ignored domains, sites you already received
OutputJSON / CSV / Excel, best-first, 6 views — or straight into your Lemlist / Instantly campaign
Typical run5 keywords → 30 Google searches → ≈ 300 results → ≈ 45 qualified (estimate)
Cost of that run$0.14 Google search on your account + 45 × $0.006 = $0.41; AI tier ≈ $0.023 per prospect all-in → $1.17
Free tierfirst 25 qualified prospects per account; the demo's sample rows never count
Keys / setupnone — the AI uses your Apify plan's model access, or your own key (llmProvider: byok)

It runs the searches link builders type by hand, then does the spreadsheet work. You pay only for prospects that pass your filters:

  • The kind of opportunity — guest post, resource page, listicle, review, forum, news, unlinked or competitor mention.
  • A way in you can trust — e-mails, contact and write-for-us pages from the site, MX-checked, the best address picked.
  • Authority on every row — a 0–100 authorityScore per site and a minAuthority filter.
  • The pitch that gets replies — dead links on resource pages and listicles, named in the opener.
  • Straight into your campaign — new prospects land in Lemlist or Instantly, no CSV step.

keywords × opportunityTypes become the searches you would type ("remote work" "write for us", intitle:resources), run by apify/google-search-scraper; add your own in footprints. Only have a URL? Leave keywords empty — 3–5 keywords and the pitch are read from your targetUrl (OUTPUT.derivedBrief).

✍️ Guest post finder: write-for-us pages and their rules

guidelinesUrl plus acceptsGuestPosts, sponsoredMentioned, linkPolicy and (AI) topicsAccepted per site.

Link pages and "best X tools" roundups add entries. checkBrokenLinks (free) finds their dead outbound links (404 / 410 / domain gone) → brokenLinks, and the opener becomes the broken-link pitch: "The link to estimatelab.example/ranges on it no longer works — my guide could replace it."

📬 Blogger outreach: contact route and checked e-mails

The page and one contact / write-for-us page (robots.txt honoured) give contactEmails, contactPageUrl, socialLinks; checkEmails MX-checks them and picks bestEmail — a named person (firstName) before info@.

📈 Domain authority for every prospect

authorityScore (0–100) from the Tranco top-1M rank, or Open PageRank with a free openPageRankApiKey; minAuthority drops weaker sites free, before the AI.

🏷️ Brand mentions, competitor mentions and exclusions

brandName pages are dropped or kept as unlinked_mention; competitorNames finds pages that cover a competitor but not you (competitor_mention). ownDomains, ignoredDomains and suppressionList narrow the list.

🏢 SEO outreach for agencies: every client in one run

clients holds one brief per client (name, keywords, targetUrl, senderPitch, ownDomains, campaign IDs …); every other setting is shared. One schedule serves the agency: each client gets its own search, never-twice memory, client column (view By client), digest e-mail and campaign. maxQualified and maxDiscoveryChargeUsd apply per client; up to 25 clients per run (example: storage-example/tasks/agency-weekly-resource-pages.json).

🆚 Why this instead of Google Search Results Scraper?

Google Search Results Scraper (apify/google-search-scraper)Link Building Prospects & Guest Post Finder
Price$0.0045 per SERP page + $0.001 per run · 19,055 users / 30 days$0.006 per qualified prospect (+ the SERP pages of a live search), first 25 free
What you pay forevery SERP page, directories and giants includedonly qualified prospects — anything filtered out costs $0
Same 100 prospects, all in≈ $15.66: 67 SERP pages $0.30 + website content for 670 results $5.36 + 100 add-on leads $10.00≈ $2.60 with AI (67 SERP pages $0.30 + 100 × $0.018 + ≈ $0.50 tokens) — 83 % less; $0.90 basic
Link opportunity?its add-on only checks for your brandtyped, with dead links on resource pages
Contact$0.10 per leadMX-checked best e-mail, contact and guidelines page — free
Repeat runsthe same domains again next weekcross-run memory by root domain — only new sites are charged

💵 Pricing — what a run really costs

Pay per result: one event per qualified prospect, nothing else. No start fee.

EventWhen it is chargedPrice
free-tieryour first 25 qualified prospects on this Actor, in any mode$0.00
qualified-prospect-basicAI off — type, rule score, authority, checked contact route, dead links, flags, template opener$0.006
qualified-prospect-aiAI on — plus AI type, fit score with quotes, opener, pitch angle, submission rules (and the follow-ups with writeSequence)$0.018

You are never charged for: the demo's sample rows, giants, directories, files, own / ignored / already-seen domains, duplicates, anything below minScore / minAuthority, and the contact, e-mail, authority and dead-link checks.

How that compares — $0.006 is 1.5× one raw row at the $0.004 median of the Actors next to this one in Store search, but one qualified prospect replaces 7 raw Google results you would research by hand ($0.028 of raw rows), with a checked contact route and authority.

Worked example (estimate) — 5 keywords × 6 footprints = 30 Google pages ≈ 300 results → ≈ 110 unique sites → ≈ 45 qualified: Google Search Results Scraper $0.136 on your account + 45 × $0.006 = $0.41, $0.009 per prospect. AI on: $0.136 + 45 × $0.018 + ≈ $0.225 tokens = $1.17, $0.026 per prospect. On your first run 25 of them are free.

AI tier, all in: ≈ $0.023 per prospect, 3.8× basic ($0.018 + ≈ $0.005 tokens at anthropic/claude-haiku-4.5 rates for ≈ 1,600 input / 630 output tokens per prospect, measured in a local run — not yet measured on the platform). Tokens are billed through Apify's model access (or your own key), reported in OUTPUT.aiTokens; a paid AI run states both prices before the search starts.

🚀 How to use it

  1. Click Try it — the free demo is pre-filled and works as is.
  2. Switch the source (sourceMode) to the live Google search — or a dataset / pasted URLs.
  3. Paste your targetUrl — add keywords and senderPitch if you want to steer it — keep minScore 60, press Start.
  4. Open the dataset — prospects land best-first; add your Lemlist / Instantly key to have them land in your campaign.

📚 Learn more: Step-by-step tutorial — how to find link building prospects with this Actor

🤖 What the AI tier adds

The same demo prospect, AI off (qualified-prospect-basic):

{"rootDomain": "remotecrewjournal.example", "opportunityType": "guest_post", "ruleScore": 95, "fitScore": null,
"outreachOpener": "Hi — I read \"Write for Us\" while researching remote work. Could I pitch you a guest post on remote work, built around a free 2,500-word guide to async stand-ups for remote teams?",
"pitchAngle": null, "topicsAccepted": []}

AI on (qualified-prospect-ai; local run 2026-09-25 with groq:openai/gpt-oss-120b — the platform default is anthropic/claude-haiku-4.5):

{
"rootDomain": "remotecrewjournal.example", "opportunityType": "guest_post", "ruleScore": 95, "fitScore": 92,
"fitReasons": ["We accept guest posts on remote work, async collaboration and distributed teams."],
"outreachOpener": "I saw your “Write for Us – Remote Work Guest Posts” page and think our 2,500‑word async stand‑ups guide with templates would be a perfect fit.",
"pitchAngle": "Provide a 2,500‑word guide on async stand‑ups with copy‑paste templates as a guest article.",
"topicsAccepted": ["remote work", "async collaboration", "meetings", "distributed hiring"]
}

What it saves: 3–5 minutes of reading guidelines and writing a first line per prospect, for ≈ $0.017 more, tokens included.

✉️ The whole outreach sequence (writeSequence)

writeSequence: true adds followUp (≤ 60 words, one new reason to reply) and breakUp (≤ 40 words) to every hot / warm prospect in the same AI call — same event price, a few more tokens, sent to Lemlist / Instantly as variables.

⚙️ Input

The Try-it form starts with the free demo (8 sample Google results, AI off); its first screen holds these 8 fields.

FieldTypeDefaultWhat it does
sourceModeactor | dataset | listactorLive Google search, a dataset, or pasted URLs. {} over the API runs the free demo: nothing charged, no search started
keywordsstring[]—Topics; each becomes the footprint searches. Empty = read from targetUrl
targetUrlstring—The page you want links to — enough on its own to start a search
senderPitchstring—One line on what you offer
minScore0–10060The field that decides what you pay: below this = not delivered, not charged
maxQualifiedinteger50Hard cap on output (and on spend) — per client in agency mode
maxDiscoveryChargeUsdnumber0.5Caps the Google search cost on your account — the same in the form and over the API
enableAibooleantrueOn = $0.018 per prospect + tokens; off = $0.006

📤 Output

One item per qualified prospect (one per site), best first.

Demo sites use the reserved .example domain: their authority, MX result and dead link are precomputed (authoritySource: "sample"); your own sites are checked live.

Upsert key: dedupeKey (domain:<root domain>, the cross-run memory's key) — one row per site; prospectId / itemId = a hash of the page URL.

Views: Overview, Outreach sheet, Outreach import (Lemlist / Instantly), Submission rules, Google & evidence, By client. A Slack / e-mail-ready DIGEST record sits next to OUTPUT (the funnel, outreachPush, timing).

Submission rules view — guest posts accepted, sponsored posts, link policy and guidelines page per site

⭐ Found it useful? A review on the Store helps others find it — it takes a minute on the Actor's page.

🔁 Run it weekly

  1. Actions → Schedule weekly, with your address in notifyEmail — every run with new prospects e-mails you the digest.
  2. Add lemlistApiKey + lemlistCampaignId (or the Instantly pair): the run pushes each new prospect into the campaign itself — email, firstName, website, the opener as icebreaker, pitch angle and dead link as variables. Nothing to export, ever; OUTPUT.outreachPush counts what landed.
  3. Leave dedupeAcrossRuns: true — next week only new sites are delivered, charged and pushed (memory per brief, per client in agency mode).

Weekly cost is the new prospects only: 8 keywords (40 Google searches ≈ $0.18) and ≈ 30 new prospects ≈ $0.18 + 30 × $0.023 ≈ $0.87 a week with AI, $0.36 basic (estimate) — per client, all in one agency run.

🎯 Try it for your niche

🔌 Integrations, automation and API

  • Lemlist / Instantly — direct push with lemlistApiKey / instantlyApiKey + campaign ID; a rejected key never fails the run.
  • Webhook — webhookUrl gets {"event": "prospect.qualified", "prospect": {…}, "runId": "…"} per prospect (or prospects.qualified batches with webhookBatchSize > 1); retried once on 429 / 5xx, a failed POST is counted in OUTPUT.webhook.failed, never a failed run.
  • Google Sheets — one cell keeps a Sheet current: =IMPORTDATA("https://api.apify.com/v2/acts/rich_minds~link-building-prospects-ai/runs/last/dataset/items?format=csv&view=outreachImport&token=<YOUR_API_TOKEN>").
  • Slack / HubSpot / n8n / Make / Zapier — the Integrations tab, or "Run Actor" → "Get dataset items".
  • AI agents / MCP — every input is a plain typed field. First call = the free trial:
    {"sourceMode": "list", "itemsList": [...]}
    processes the URLs you send, no search on your account. An empty {} runs the free demo.

The client waits for the run (no fixed timeout — a run with your own key takes longer, see the FAQ):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("rich_minds/link-building-prospects-ai").call(run_input={
"sourceMode": "list",
"itemsList": ["https://www.remotecrewjournal.example/write-for-us/"],
"maxQualified": 50,
"maxDiscoveryChargeUsd": 0.5, # spend cap on your account once you switch to "sourceMode": "actor"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["rootDomain"], item["opportunityType"], item["score"], item["bestEmail"])

Use it from Claude, ChatGPT or any MCP client — add Apify's MCP server with this Actor as a tool:

{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?actors=rich_minds/link-building-prospects-ai"}}}

Then ask: "Run link-building-prospects-ai in list mode on these URLs first (free), then search for my page targetUrl with maxDiscoveryChargeUsd: 0.5."

You are…You run it to…Start with
SEO / link-building agencynew sites for every client every week, one scheduleclients + minAuthority + your Lemlist key
In-house SEO / content marketerblogs ranking for your topic that would link to one articlethe article's targetUrl
Digital-PR teamroundups and reviews that cover your competitors but not youdigital-pr-listicles-and-mentions.json
Blogger outreach freelanceran Ahrefs / Semrush export → typed prospects with a checked e-mailsourceMode: list with the URLs
AI agent (MCP)"find 30 guest-post sites about X" as one tool callthe free list call, then actor with a cap

🧠 How the AI works

  • One call per prospect — type, fit score, opener, pitch angle, submission rules and (opt-in) the follow-ups, from your inputs, the title, snippet, the first ~1,500 characters of the page and its dead links.
  • Grounded, checked in code — reasons only as verbatim quotes; an opener that cites neither the page nor a dead link is replaced by the template. Default anthropic/claude-haiku-4.5 via Apify's model access, or your own key.

🔒 Data, compliance and limits

  • Public data only: Google results, ≤ 2 pages per site (robots.txt honoured), one HEAD request per checked link, public DNS and the Tranco ranking. Keep outreach within anti-spam law (GDPR, CAN-SPAM, CCPA).
  • Limits: JavaScript-only sites may show no e-mail; no mailbox probe; ≤ 15 outbound links checked per page.

❓ FAQ

How much will one run cost me? 5 keywords: ≈ $0.14 Google search on your account + $0.006 per qualified prospect (≈ $0.41 for 45), or ≈ $0.023 per prospect all-in with AI (≈ $1.17). The first 25 prospects are free.

What will my first real search cost? The form's 4 keywords × 3 default types = 24 Google searches ≈ 240 results ≈ $0.11 on your account (capped by maxDiscoveryChargeUsd) — ≈ 34 qualified prospects: 25 free, ≈ 9 at $0.006.

Do I have to think up keywords? No — paste the page you want links to (targetUrl) and leave keywords empty; 3–5 keywords and the pitch are read from its title and headings, and OUTPUT.derivedBrief shows them.

Is this a Google Search Scraper? It runs Google Search Results Scraper (apify/google-search-scraper) on your account, then does the link-building work on top.

Can I use it for SEO outreach at an agency with several clients? Yes — put them all in clients: one run, one schedule, a memory, digest and campaign per client, a client column on every row.

What does "qualified" mean? A picked type, fit score ≥ minScore, authority ≥ minAuthority, not excluded, and the contact route if you require it. Only those are pushed and charged.

Which Apify plan do I need? Any plan runs the free demo and dataset / list mode. The live search runs Google Search Results Scraper on your account and the AI uses your plan's model access — if your plan refuses either, the run says so and charges nothing; use list mode and llmProvider: "byok".

Is the data public / is this legal? Public pages, no login; outreach is your responsibility under anti-spam law.

🧩 More Actors from the same developer

For SEO teams and agencies — the same pay-per-qualified-result model:

  • Google Reviews Insights — local SEO clients: what their Google reviews praise and complain about, to resell as a reputation report
  • Local Business Lead — local SEO audit leads: businesses from Google Maps with the site problems an SEO agency sells the fix for

🆘 Support

Something missing or wrong? Open an issue on the Actor's page — requests from buyers are shipped first.

📝 Changelog

One line per published build, newest first — /actor-publish adds it with the commit subject.

  • 0.3 (2026-09-26) — agency mode (clients), direct push to Lemlist / Instantly, dead links on resource pages (brokenLinks, broken-link opener), opt-in AI follow-up / break-up (writeSequence), keywords read from targetUrl, API spend cap $2 → $0.50 (= the form), demo rows show sample authority / MX values, shorter first screen and form.
  • 0.2.2 (2026-09-26) — live AI price synced to $0.018, tutorial linked from the page, AI token figure labelled as a local measurement until the first platform AI run.