AI Agent Infrastructure Engineer (Python)

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

TYPE OF WORK

Full Time

WAGE / SALARY

Based on experience and knowledge

HOURS PER WEEK

TBD

DATE UPDATED

May 24, 2026

JOB OVERVIEW

We're building scalable, multi-tenant agentic infrastructure — autonomous AI agents that connect to external APIs, execute real actions, and serve multiple users with strict isolation. This is not a chatbot wrapper. This is production agent infrastructure with tool execution, credential management, sandboxed compute, and real-time streaming.

You'll own the full stack — from the Python backend and agent runtime to the Next.js frontend.

---

WHAT YOU'LL BUILD

- AI agent runtime — Multi-turn reasoning with tool-use via Anthropic Claude Python SDK. No LangChain. Raw agent loop.
- Custom MCP servers — Python tool servers wrapping external APIs (ad platforms, email, productivity tools) using the MCP protocol.
- Multi-tenant backend — FastAPI service with per-tenant OAuth credential management, encrypted storage, and strict data isolation.
- Sandboxed execution — Docker-based isolated Python environments for per-tenant code execution, data processing, and report generation.
- Real-time streaming — WebSocket-based token streaming with tool call interleaving (FastAPI ? Next.js).
- Automation engine — Celery-based trigger system for scheduled tasks, alerts, and webhook-driven agent actions.
- Billing & usage metering — Stripe integration with tiered plans and per-tenant usage tracking.

---

TECH STACK

Python 3.12 | FastAPI | SQLAlchemy | Celery | Pydantic | Next.js | TypeScript | Tailwind | Anthropic Claude | MCP Protocol | PostgreSQL | Redis | Docker | Railway | Stripe

---

MUST-HAVE REQUIREMENTS

AI Agents
Built and shipped AI agents with tool-use in production. Understands ReAct loop, tool routing, context management. No frameworks — raw SDK only.

Python
Expert-level: async/await, FastAPI, SQLAlchemy 2.0, Pydantic, Celery.

LLM API
Anthropic Claude Python SDK — Messages API, tool_use, streaming, multi-turn.

OAuth & Security
OAuth 2.0 implementation in Python. Credential encryption. Secure token lifecycle management.

Multi-Tenant Architecture
Built systems with strict per-tenant data isolation, scoped queries, and tenant-aware middleware.

API Integrations
Experience integrating complex external APIs (ad platforms, CRMs, or similar) with pagination, rate limits, and error handling.

Frontend
Next.js / React / TypeScript — can build a polished chat UI, dashboards, and onboarding flows.

Real-Time
WebSocket or SSE streaming between a Python backend and React frontend.

---

NICE TO HAVE

- MCP (Model Context Protocol) server development
- Docker container management and sandbox isolation
- Celery + Redis for distributed task queues and scheduling
- Stripe billing (subscriptions, usage-based metering)
- pandas / matplotlib for data processing and visualization
- Google Ads API or Meta Ads API experience
- Prior startup / 0?1 product experience

---

WHAT MAKES THIS DIFFERENT

You're not wiring up a chatbot or plugging into a pre-built framework. You're architecting the agent runtime itself — tool routing, MCP server registry, per-tenant credential injection, sandboxed execution, and real-time streaming. If you've wanted to build agent infrastructure from the ground up, this is it.

---

DO NOT APPLY IF:

- You plan to use LangChain or LlamaIndex — we need raw SDK understanding, not framework abstraction.
- You want to build the backend in Node/TypeScript — the backend is Python, non-negotiable.
- Your experience is chatbots only — chatbot ? agent. We need tool-use with real external actions.
- You have no async Python experience — the entire backend is async FastAPI.
- You have no OAuth experience — credential management is the critical path.
- Your Python is weak — this is 80% Python work.
```

---

---

**JOB TYPE**
```
Full-Time / Part-Time (select both if option available)
```
Python, FastAPI, PostgreSQL, Docker, Redis, Next.js, TypeScript, WebSockets, Stripe, AI/ML, REST API
```

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0273
Total Execution Time  0.0286
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,514,008 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/AI-Agent-Infrastructure-Engineer-Python-1654085
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0205 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1654085
 LIMIT 1 
0.0010   SELECT *
FROM `employers`
WHERE `employer_id` = 704621
 LIMIT 1 
0.0130   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1654085
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-20',ej.date_added) duration_daysDATEDIFF('2026-06-20',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_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-06-20',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1654085' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1654085 
0.0007   UPDATE employer_jobs SET hit_counts '***May-24-2026=159***May-25-2026=109***May-26-2026=50***May-27-2026=28***May-28-2026=21***May-29-2026=5***May-30-2026=8***May-31-2026=10***Jun-01-2026=14***Jun-02-2026=15***Jun-03-2026=3***Jun-04-2026=6***Jun-06-2026=6***Jun-08-2026=4***Jun-09-2026=6***Jun-10-2026=3***Jun-11-2026=1***Jun-12-2026=5***Jun-20-2026=1' WHERE job_id'1654085'  
0.0006   UPDATE employer_jobs SET monthly_hits '***May-2026=390***Jun-2026=64' WHERE job_id'1654085'  
0.0012   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1654085' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1654085 
0.0017   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '704621'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)