Automation: Monthly Multi-Client SEO + AI Ranking Reports (DataForSEO, GSC, GA4, claude code)
Worldwide
Overview We run a local-SEO agency and produce a monthly SEO report per client by hand. We want it fully automated: pull every data source, generate AI-ranking checks, assemble a styled per-client report, and drop it in a folder with a draft cover email ready for us to review and send. This is a paid test project scoped to one sample client. If it's clean, the follow-on rolls it out to all ~10 clients on a monthly schedule, at a proper budget. Required skills - DataForSEO API (this is central - rank tracking, SERP, on-page/crawl, and backlinks all pull from here; must be comfortable with its Labs, SERP, On-Page, and Backlinks endpoints) - Google Search Console API and GA4 Data API (OAuth or service account) - Perplexity API and Google AI Overviews for AI-ranking checks - Automation/orchestration (n8n, Make, or Python/Node) with scheduling - API cost, rate-limit, caching, and error handling - Report templating/rendering (HTML or PDF/Google Doc) What the finished system does (per client, config-driven) 1. Search Console - last-month vs prior-month clicks, impressions, CTR, avg position; top queries and top pages with deltas. 2. GA4 - organic sessions, engaged sessions, conversions/events, landing-page performance, month-over-month deltas. 3. Rank tracking (DataForSEO) - keyword positions and movement via DataForSEO Labs/SERP, including local map-pack where relevant. 4. Technical / on-page (DataForSEO On-Page) - crawl summary: indexation, broken links, Core Web Vitals, title/meta issues, schema presence. 5. Backlinks (DataForSEO Backlinks) - new/lost referring domains and anchor summary for the month. 6. AI ranking - run a niche query bank through the Perplexity API and Google AI Overviews and record whether the client is cited/mentioned, and which competitors are. (We provide the query bank and report logic direction.) 7. Assembly - merge all of the above into a single styled report per client (HTML we can host, or a clean PDF/Google Doc) using a template we provide. Every number must trace to a source; no invented metrics. 8. Delivery - write the report to a per-client folder and generate a draft cover email (do NOT auto-send anything - drafts only, we send manually). Engineering requirements (this is where we're testing you) - Config-driven, not hardcoded - one config entry per client (domain, GSC property, GA4 property ID, DataForSEO keyword set/location/language, competitors). Adding client #11 is a config edit, not a code change. - Idempotent re-runs - re-running for the same month must not duplicate or corrupt output. - Coverage gate - if any data source fails or returns empty, the run flags it explicitly (PASS/WARN/FAIL per source). Silent skipping is an automatic fail of this project. - API cost + rate-limit handling - respect DataForSEO and Google/Perplexity quotas, back off/retry on limits, cache expensive calls (DataForSEO SERP/backlink pulls especially). Print an estimated/actual API cost summary per run. - Dry-run mode - a flag that runs the whole pipeline against sample data with zero paid API calls. - Logging + error handling - a run log showing what ran, what it cost, and what failed, readable by a non-engineer. - Scheduling - built to run on a monthly cron/n8n schedule (demonstrate one triggered run; full scheduling is the follow-on). - Handover - a Loom walkthrough plus a README: how to add a client, run it, read the coverage report, and rotate credentials. Stack (your call, justify it) - n8n, Make, or plain Python/Node are all fine. Tell us what you'd use and why. DataForSEO for rank/on-page/backlinks/SERP. GSC + GA4 via Google APIs. Perplexity API + Google AI Overviews for AI ranking. Out of scope for this test (these are the paid follow-on): rolling out to all 10 clients, live production scheduling, and connecting to our live client accounts. This test runs against one sample property we provide with scoped, read-only, revocable credentials. Acceptance criteria - One full report generated for the sample client with every section populated from real (or clearly-labelled sample) data, DataForSEO sections included. - Coverage gate output present and correct (deliberately break one source and show it flags WARN/FAIL, not silence). - Idempotent: two runs for the same month produce one clean result. - Dry-run mode works with zero paid API calls. - Draft cover email produced; nothing sent automatically. - README + Loom delivered; a non-engineer can add a second client from the docs alone. Timeline: 7-10 days. Budget: $700 fixed (test project; larger follow-on for the full 10-client rollout if this lands well). To apply, answer these three (generic proposals are skipped): Which DataForSEO endpoints have you used, and how did you handle its task-post/task-get async pattern and pricing? Have you pulled GSC and GA4 data programmatically? Which auth method (OAuth vs service account) and why?
$700.00
Fixed-price- Entry levelExperience Level
- Remote Job
- Ongoing projectProject Type
Skills and Expertise
Activity on this job
- Proposals:15 to 20
- Interviewing:0
- Invites sent:0
- Unanswered invites:0
About the client
- IrelandCastleisland8:31 AM
- $1.1K total spent3 hires, 1 active
- Sales & MarketingSmall company (2-9 people)
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by