OWN ENGINEERING SYSTEM / AI AGENTS · LLM · MCP · TELEGRAM · N8N

A personal AI assistant with a set of agents.

One Telegram bot backed by several agents: it finds and scores job openings every night, drafts applications, sorts the knowledge base, hands coding tasks to Codex and creates Telegram bots. Anything that leaves the system goes out only after I confirm it.

My role
Architecture, agents and workflows on top of a ready engine
What is inside
Job search, knowledge base, code delegation, bots
Result
Routine runs on a schedule; decisions stay with a person.

Task and my work.

I needed one entry point for my routine: job search, notes, coding tasks and utility bots. Five separate services for that is inconvenient, so it all lives in one Telegram bot on a server.

The pattern is the same one a business needs for requests or leads: collect, filter by rules, score with a model, draft, and hand it to a person to decide.

  • Job-search agent: 8 stages, 6 sources, runs every night. Collection, hard rules, LLM scoring with a threshold of 80 out of 100, company and public-contact research, resume and letter drafts, a Telegram digest with buttons.
  • Emails go out through Gmail only after the recipient, subject and body are confirmed. Edits and rejection reasons are stored.
  • Knowledge-base agent: sorts incoming notes in Obsidian following the base's own rules.
  • Code delegation: development and research tasks go to Codex through MCP.
  • Morning brief: a summary of the inbox, the knowledge base and server health.
  • Creating and managing Telegram bots through n8n and MTProto; images are read by a separate vision model.

Key decisions.

Why I used the ready Hermes engine.

Hermes by NousResearch is a ready open-source agent engine: the Telegram gateway, schedules, MCP, skills and memory are already there. Writing that from scratch means weeks of infrastructure instead of the actual tasks. My work is the agents, stages, checks and integrations on top of it.

The model response is validated before the next stage.

Required fields, the score range and allowed decisions are checked against a schema. Malformed JSON is requested again once. A partial stage failure is marked separately from success, and an empty run sends a short status.

No fallback models.

If the main model is unavailable, the system fails with a visible error. Silently swapping the model changes the quality of the scores without anyone noticing.

How it works.

  1. Collect and filter

    The agent pulls records from sources, removes duplicates and drops anything that fails the hard rules.

  2. Score and prepare

    The LLM gives a score with reasons and risks; the agent gathers context and prepares a draft.

  3. Human decision

    In Telegram: approve, edit or reject. Nothing is sent without confirmation.

Implementation and example.

System diagram: entry through Telegram, agents by task and a human decision at the end.

DIAGRAM OF THE IMPLEMENTED SYSTEM

  1. Telegram + Hermes

    One entry point, schedules, skills and tools connected through MCP.

  2. Agents

    Job search, knowledge base, Codex for code, bots through n8n, vision.

  3. Human decision

    Approve / edit / reject buttons; external actions only after confirmation.

Architecture diagram of the project. Live data and connections are not shown.

Project result.

Job search runs every night and sends a digest with scores, risks and ready drafts. The other agents are called from the same chat. Nothing leaves the system without confirmation.

Technologies and implementation details

Hermes (NousResearch), Python, MCP, Codex, PostgreSQL, Pydantic, n8n, Gmail API and Telegram. The engine is ready-made; the agents, stages, checks and integrations are mine.

Let's discuss your task.

Describe the agent's job, the tools and data it can use, and which actions need an employee's approval. We will set the boundaries of the agent and how its output is checked.

Discuss an AI agent ↗︎
PROJECT SCREEN