▸ Read atomeve.dev/start.md and set up Backlink Prospector agent in my project: install it, wire up and verify its credentials, and run it once.Turns your competitors' backlinks into a vetted outreach queue you can work from a spreadsheet.
Finds domains that link to your competitors but not to you, then checks each prospect for context, fit, contact paths, and obvious disqualifiers. You get a CSV with:
It verifies contact forms and email addresses but never submits forms or sends outreach.
Setup lives in SETUP.md.
DataForSEO provides the backlink facts: referring domains, backlinks, and domain intersection (domains that link to your competitors but not to you). Sign up at dataforseo.com (trial credit available), then copy the API login and password from the API Access page. The API credentials are separate from your dashboard sign-in, and the account needs Backlinks API access.
To verify: GET https://api.dataforseo.com/v3/appendix/user_data with HTTP Basic auth
(login:password). Free and read-only; expect status_code: 20000 in the response body.
Local runs read .env.local (gitignored). Deployed and scheduled runs read Vercel
project env: vercel env add NAME production takes the value from stdin, so pipe it in.
Fill in the <!-- project-config --> block at the top of agent/instructions.md with
your domain and competitor domains, plus the optional daily prospect target and
exclusion rules. Leaving the daily prospect target unset lets the agent pick a
reasonable bound per run; leaving exclusion rules unset applies only the default safety
filters (spam, link farms, adult/gambling/illegal content, and similar).
The exact source npx atom-eve add installs — instructions, tools, and skills. Read it here, or copy any file straight into your project.
connections/dataforseo.tsimport { defineMcpClientConnection } from "eve/connections";
// DataForSEO ships a hosted MCP server, so the agent talks to it through a
// connection instead of a hand-rolled HTTP client. Basic auth is read from the
// sandbox env and brokered by eve, so the model never sees the credentials.
export default defineMcpClientConnection({
url: "https://mcp.dataforseo.com/mcp",
description:
"DataForSEO backlinks data: referring domains, backlinks, and domain intersection (domains that link to one set of sites but not another).",
headers: {
Authorization: `Basic ${Buffer.from(
`${process.env.DATAFORSEO_LOGIN ?? ""}:${process.env.DATAFORSEO_PASSWORD ?? ""}`,
).toString("base64")}`,
},
// The hosted server exposes every DataForSEO module; this agent only reads
// backlink data. available_filters documents the filter fields the other
// tools accept.
tools: {
allow: [
"backlinks_domain_intersection",
"backlinks_referring_domains",
"backlinks_backlinks",
"backlinks_summary",
"backlinks_available_filters",
],
},
});