Claude Automation Engineer: Build an AI Content Operations System for a LinkedIn Agency

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Gig

SALARY

TBD

HOURS PER WEEK

TBD

DATE UPDATED

Sep 26, 2026

JOB OVERVIEW

I run a LinkedIn growth agency with 30+ clients. We've already built the thinking side in Claude: a large library of custom Skills covering research, copywriting, graphics, QA and reporting. It works, but it all runs manually, one conversation at a time.

I need someone to turn it into a system that runs itself, with humans approving anything that goes public.

What you'd build, in stages:

☐ Scheduled runs: Skills that run on a timetable without anyone opening Claude (Claude Code, Agent SDK, Cowork scheduled tasks or similar)
☐ An approval queue: a simple interface where a client or account manager sees drafted posts and graphics and clicks approve, edit or reject
☐ Publishing: approved posts go out through a scheduling API. We have Blotato connected, and I'm open to alternatives that work within LinkedIn's rules
☐ Reporting: a daily one-page summary pulled from our outreach tool, LinkedIn exports and Google Sheets
☐ Attribution: UTM tracking and a CRM link so we can see which posts led to calls, not just likes
☐ Handover docs so my team can run and fix it without you

What I need you to have done before:

☐ Built with Claude Code or the Claude Agent SDK
☐ Worked with MCP connectors or built a custom MCP server
☐ Connected Claude to external APIs and handled auth, rate limits and failures
☐ Hosted something that runs unattended and tells you when it breaks
☐ Written or edited Claude Skills

In your proposal:

Which boxes you've ticked, with one real example
Something you built that failed in production, and how you found out
How you'd stop an automated system posting something a client hadn't approved

Upwork doesn't allow links in proposals, so put examples in an attached PDF or screenshots.

How we'll start: a paid discovery task (3 to 4 hours) where you review how we work now and propose the architecture. Build work follows in fixed-price stages.

example of the things we want to create ----------

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0010
Controller Execution Time ( Jobseekers / Job )  0.0610
Total Execution Time  0.0629
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,502,600 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Claude-Automation-Engineer-Build-an-AI-Content-Operations-System-for-a-LinkedIn-Agency-1738559
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0541 seconds)  (Hide)
0.0018   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1738559
 LIMIT 1 
0.0036   SELECT *
FROM `employers`
WHERE `employer_id` = 464794
 LIMIT 1 
0.0013   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1738559
AND `misc`.`id` IS NULL 
0.0005   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-09-27',ej.date_added) duration_days, DATEDIFF('2026-09-27',e.rebill_date) duration_rebill, ej.*, e.deactivate FROM employers e, employer_jobs ej WHERE e.employer_id = ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id = '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-09-27',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1738559' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1738559 
0.0006   UPDATE employer_jobs SET hit_counts = '***Sep-26-2026=2252***Sep-27-2026=3' WHERE job_id= '1738559'  
0.0007   UPDATE employer_jobs SET monthly_hits = '***Sep-2026=2254' WHERE job_id= '1738559'  
0.0003   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1738559' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1738559 
0.0432   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '464794'
AND `date_added` >= '2022-06-08' 
0.0003   select * from teasers 
0.0008   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)