Link Building Prospects & Guest Post Finder (Google, AI) on the Apify Store →
Tutorial article (800–1500 words) for the Apify blog guest program, dev.to, Medium and Hashnode. Refreshed with the first real platform run by /actor-marketing; the owner publishes it and records the URL in brief.json → marketing.links.
Actor: https://apify.com/rich_minds/link-building-prospects-ai
Every link builder knows the routine. You type "your keyword" "write for us" into Google, then "your keyword" intitle:resources, then best your-keyword tools, and copy the results into a sheet. Then the real work starts: delete Wikipedia, YouTube, G2 and the other giants, delete the PDFs, merge the three pages of the same blog, delete the sites you pitched last month, open every remaining site to find out whether it takes guest posts, hunt for an e-mail or a contact form, and finally write a first line that shows you actually read the page.
For 5 keywords that is about 300 Google results and a lost afternoon — every week, for every client. A raw Google Search Results Scraper saves the typing but not the sorting: it charges $0.0045 for every SERP page, including all the junk, and its link-prospecting add-on sells a contact at $0.10.
hello [at] … [dot] …, a guest contributor page and a "best tools" listicle. Wikipedia, G2, the PDF report and the second page of the same blog were dropped for free. The real demo rows, best first:| Site | Type | Score | Contact | Why it is worth a pitch |
|---|---|---|---|---|
| remotecrewjournal.example | guest post | 95 | editor@remotecrewjournal.example | accepts guest posts, one dofollow link in the body |
| pmtoolkit.example | resource page | 88 | hello@pmtoolkit.example | links to a dead page (estimatelab.example/ranges) you can replace |
| focusflow.example | listicle | 81 | maya.lopez@focusflow.example | a named editor who updates the list every quarter |
| teamleadweekly.example | guest post | 75 | contact page | links are nofollow, sponsored posts available |
Each row carries an opener, e.g. "Hi — I read 'Project Management Resources: 40 Useful Links for PMs' while researching project management. The link to estimatelab.example/ranges on it no longer works — a free 2,500-word guide to async stand-ups for remote teams could replace it."
keywords (1–10 topics), the targetUrl you want links to and a one-line senderPitch. Keep the default opportunity types (guest posts, resource pages, listicles) and minScore 60.maxDiscoveryChargeUsd ($0.50 in the form). The first 25 qualified prospects are free.docs/img/shortlist.svg): site, type, fit score, e-mail, contact page and opener, best first. The Submission rules view (docs/img/submission-rules.svg) shows who accepts guest posts, who sells sponsored posts and what the link policy says.authorityScore (Tranco rank, or Open PageRank with a free key) — raise minAuthority to drop weak sites free — and a bestEmail whose domain was MX-checked, a named person before info@.lemlistApiKey + lemlistCampaignId (or the Instantly pair) and every new prospect lands in the campaign with its opener as the icebreaker — resource pages with a dead link get the broken-link pitch (brokenLinks). writeSequence adds an AI follow-up and break-up e-mail.A 5-keyword search runs 30 Google pages (≈ 300 results). After the free filters about 110 unique sites remain and about 45 qualify at minScore 60 (estimate until the first platform run):
The same 100 prospects through the raw scraper and its link-prospecting add-on cost ≈ $15.66 — six times the ≈ $2.60 of the AI tier here, without the opportunity type, the fit score or the opener.
The demo is free on any Apify plan and your first 25 qualified prospects are free: https://apify.com/rich_minds/link-building-prospects-ai
Schedule the run weekly (Actions → Schedule) with notifyEmail set: every week you get an e-mail with the new prospects and their contact route. dedupeAcrossRuns remembers every domain you already received, so a weekly run only delivers — and only charges — new sites. An agency puts every client into clients (name, targetUrl, ownDomains, campaign ID …): one schedule, and each client keeps its own memory, digest and campaign.
From code, the first call can be the free trial:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("rich_minds/link-building-prospects-ai").call(run_input={
"sourceMode": "actor",
"keywords": ["async standup", "remote team meetings"],
"targetUrl": "https://www.yoursite.com/guide",
"senderPitch": "A practical guide to async stand-ups with templates",
"maxQualified": 50,
"maxDiscoveryChargeUsd": 0.5,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["rootDomain"], row["opportunityType"], row["score"], row["contactEmails"], row["outreachOpener"])
Link Building Prospects & Guest Post Finder (Google, AI) on the Apify Store →