ๆƒฏๆ€ง่šๅˆ ้ซ˜ๆ•ˆ่ฟฝ่ธชๅ’Œ้˜…่ฏปไฝ ๆ„Ÿๅ…ด่ถฃ็š„ๅšๅฎขใ€ๆ–ฐ้—ปใ€็ง‘ๆŠ€่ต„่ฎฏ
้˜…่ฏปๅŽŸๆ–‡ ๅœจๆƒฏๆ€ง่šๅˆไธญๆ‰“ๅผ€

ๆŽจ่่ฎข้˜…ๆบ

้…ท ๅฃณ โ€“ CoolShell
้…ท ๅฃณ โ€“ CoolShell
GbyAI
GbyAI
N
Netflix TechBlog - Medium
Hugging Face - Blog
Hugging Face - Blog
ๅฅ‡ๅฎขSolidotโ€“ไผ ้€’ๆœ€ๆ–ฐ็ง‘ๆŠ€ๆƒ…ๆŠฅ
ๅฅ‡ๅฎขSolidotโ€“ไผ ้€’ๆœ€ๆ–ฐ็ง‘ๆŠ€ๆƒ…ๆŠฅ
Microsoft Security Blog
Microsoft Security Blog
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
็ฝ—
็ฝ—็ฃŠ็š„็‹ฌ็ซ‹ๅšๅฎข
ไบ‘้ฃŽ็š„ BLOG
ไบ‘้ฃŽ็š„ BLOG
Blog โ€” PlanetScale
Blog โ€” PlanetScale
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog
Simon Willison's Weblog
Simon Willison's Weblog
The Register - Security
The Register - Security
U
Unit 42
Stack Overflow Blog
Stack Overflow Blog
Recorded Future
Recorded Future
ๅš
ๅšๅฎขๅ›ญ - ไธ‰็”Ÿ็ŸณไธŠ(FineUIๆŽงไปถ)
F
Future of Privacy Forum
www.infosecurity-magazine.com
www.infosecurity-magazine.com
The Hacker News
The Hacker News
C
Cybersecurity and Infrastructure Security Agency CISA
V
Visual Studio Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
V
Vulnerabilities โ€“ Threatpost
L
Lohrmann on Cybersecurity
้˜ฎไธ€ๅณฐ็š„็ฝ‘็ปœๆ—ฅๅฟ—
้˜ฎไธ€ๅณฐ็š„็ฝ‘็ปœๆ—ฅๅฟ—
A
Arctic Wolf
C
CXSECURITY Database RSS Feed - CXSecurity.com
IntelliJ IDEA : IntelliJ IDEA โ€“ the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA โ€“ the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
ๆœˆๅ…‰ๅšๅฎข
ๆœˆๅ…‰ๅšๅฎข
C
Comments on: Blog
ๅš
ๅšๅฎขๅ›ญ - Franky
PCI Perspectives
PCI Perspectives
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Jina AI
Jina AI
S
Security Archives - TechRepublic
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
I
Intezer
C
CERT Recently Published Vulnerability Notes
T
True Tiger Recordings
F
Fox-IT International blog
MyScale Blog
MyScale Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
ThreatConnect
D
DataBreaches.Net
ๅš
ๅšๅฎขๅ›ญ - ่‚ๅพฎไธœ

DEV Community

I Built a WhatsApp OTP + AI Chatbot Platform for African Businesses MTP Explained โ€” And Why It Matters for Android on Mac Most Beginners Learn Full-Stack Development Backwards GitHub Glow-Up: Open Source, READMEs, Badges, Streaks, Git and gh CLI System Design Cheat Sheet: Concepts Every Developer Should Know Are Junior Developer Roles Actually Dying? A Fresher's Honest Take Using DigitalOcean Droplets as Ephemeral Sandboxes for AI Agents I built a VSCode extension that visualises your code navigation as a call tree โ€” made for legacy codebase pain Vite predev/prebuild: chaining scripts without losing your mind A website to save you from messy browser tabs Dear Web2 Developer... Solana is here calling Postgres JSONB indexes: GIN vs BTREE on the same column The $5 AI That Remembers Everything What are your goals for the week? #180 Zettelkasten for Developers: A Practical Method That Works OpenClaw vs Hermes Agent: Stars, Downloads & Usage 2026 `act` vs. `waitFor` Global Teams Donโ€™t Struggle With Time Zones. They Struggle With Context Python as a JavaScript Dev $5.4 Billion in Damage. 8.5 Million Machines Down. Three YAML Controls Would Have Prevented It. Here's the Structural Analysis. ๐Ÿšซ Stop Using PN532 V1 for Your NFC Projects (Real Debugging Experience) Probabilistic Graph Neural Inference for smart agriculture microgrid orchestration for extreme data sparsity scenarios Inference Is Becoming the New Steady-State Cost Center Why AI-Generated Code Is Always Good Enough โ€” And Never Great I built a dark admin dashboard template in HTML โ€” no React, no npm, just pure HTML What is the Difference Between Lattice-Based and Hash-Based Signatures? Next.js App Router caching: revalidate, dynamic, and no-store without the folklore Next.js App Router caching: revalidate, dynamic y no-store sin folklore I built Stashly โ€” a full-stack content manager with a rich text editor published: false tags: react, node, mongodb, typescript Why I Started Building React Projects Instead of Just Watching Tutorials ? Every Tool Eventually Becomes Tuesday Nobody Warns You That Real Software Engineering Feels Chaotic Tรญch hแปฃp VNPay, Stripe trong Odoo 19 BeautifulSoup and Requests for Web Scraping With Python: When Simple Still Works I Was Stuck Debugging React โ€” Then Developer Tools Changed It Buck Converter Ripple: Sizing the Inductor and Capacitor With Confidence AWS Just Made Its MCP Server Generally Available. Here's What It Actually Gives AI Agents. RAMPART Tests Your AI Agents in Dev. What Catches Malicious Tool Calls in Production? Vibe Team Software Engineering: What a Real AI Human Dev Team Workflow Actually Looks Like An npm Package for AI Agent Orchestration Just Shipped With Its Front Door Unlocked. Here's What the CVE Actually Reveals. Microsoft Foundry Just Added CI/CD for AI Agents. Here's What That Actually Changes. The Best Career Insurance Is a Tech Event You Don't Want to Attend Your GitHub Profile Already Tells Recruiters More Than Your Resume. Most Devs Just Don't Surface It. How to Add Execution Budgets to OpenAI Agents SDK Binary Tree Interview Problems: 6 Traversal Patterns, 15 Problems We trained a personal voice DoRA on Qwen3-8B for $1.50 โ€” beat stock model 100% in blind A/B Stop Leaking API Keys: Why I Built a Local-First Vault for Developers ๐Ÿ” RAG Explained: How Retrieval-Augmented Generation Actually Works I Built a Fast Async JioSaavn API Wrapper in Python ๐ŸŽง chown & chgrp Deploying Your First App on Kubernetes: A Beginner's Guide (Minikube & Kind) Logs in code It's called a PR "review" for a reason DePIN GPU Market: The Failed Job Receipt Developers Should Demand Why Your AI Agent Monitoring is Wrong (And How to Fix It) Lock Down Your Cloud Shares: A Beginnerโ€™s Guide to Azure Files Security. Building a Multi-Channel Content Syndication Pipeline with EmDash Plugins Turn Your Phone Into Voice Input for Any React Text Field Which package is bloating your Docker image? Putting Claude Code Under Version Control: Configs Since July, Memory Since April What I Thought DevRel Was vs. What It Actually Is (A Mentee's Honest Take) What I Thought DevRel Was vs. What It Actually Is (A Mentee's Honest Take) 400 Million Tokens Burned Overnight Reviving My Linux Mastery Game from a Merge Conflict โ€” A Finish-Up-A-Thon Comeback Donโ€™t let AI break your collective thinking: a practical guide for engineering teams First Gemma 4 ExecuTorch Deployment on Raspberry Pi 5 โ€” and Why It's 7.7 Slower Than llama.cpp Per-Turn Evaluation: Dynamic Governance for AI Agents The AI Triforce of seed4j: Power, Wisdom, and Courage for Your Dev Agent Your AI agent reports 80% task completion. It fabricated it. Pourquoi les overlays d'accessibilitรฉ ne tiennent pas leurs promesses (et ce que la FTC vient d'acter) AI May Break Product-Market Fit in Enterprise Software Iโ€™m Building Around the Gap Between AI Output and Repo Truth How to Build a Stripe Customer Portal in Next.js SaaS On-Demand Pricing Feels Safe - Until You See the Bill Building an Internal Developer Portal with Backstage A Production Deployment Guide After the Last Song Sudoers Configuration in Linux Terraform + Terragrunt + Ansible: A Hands-On Learning Journey Switching Users in Linux (su, sudo) AI ๆ™บ่ƒฝไฝ“็š„้ฒ่Žฝ้€Ÿๅบฆ Quick Win Card #01 โ€” Ton backlog.md t'a menti (la cure en 30 secondes) Quick Win Card #01 โ€” Your backlog.md lied to you (a 30-second cure) How to Manage an IT Team: Structure, Scaling, and Daily Workflows That Work Speccing Is the New Coding CAC 250๋งŒ ์›์„ ๋šซ๊ธฐ ์œ„ํ•ด ํผ๋„ ์„ธ ๊ณณ์„ ๋œฏ์–ด๊ณ ์นœ 3๊ฐœ์›” Creating My First Token on Solana Devnet as a Web2 Developer Five Salesforce Reports Every Nonprofit Leadership Team Should Have Beyond the West: What Eastern AI Models Mean for Enterprises, Developers, and Digital Sovereignty Class and Pseudo Class Git & GitLab Basics ๊ณ ๊ฐ์€ ์šฐ๋ฆฌ๋ฅผ ์‚ฌ๊ธฐ๊พผ์œผ๋กœ ๋ดค๋‹ค: ์•„๋ฌด๋„ ๋ฏฟ์ง€ ์•Š๋Š” ์‹ ์‚ฌ์—…์„ ๋‹จ ๋‘˜์ด์„œ ๊ฒ€์ฆํ•œ 3๊ฐœ์›” Cron Not Working on Mac? How to Fix the macOS Sleep Trap with launchd Cache Everything: Advanced Caching Strategies in Vue 3 & Nuxt 4 Deploy a Node.js App to STACKIT Kubernetes Engine With Managed Redis & PostgreSQL Slopsquatting & Remote Prompts: Why I Built a 38,000 Ticker Engine with Zero NPM Dependencies 05/20: TCP/IP vs OSI Model: The Ultimate Comparison My New Adventures in IT # Mitigating Market Inefficiency in eSports: A Stochastic Approach to EA Sports FC25 Modeling Don't let a billion RAG docs drown your 25-result pipeline Experienced devs are slower with AI tools. Nobody wants to admit it.
I Built an AI Agent That Tailors My Resume - Here's How Agents Actually Work
Sarvar Nadaf ยท 2026-05-25 ยท via DEV Community

๐Ÿ‘‹ Hey there, tech enthusiasts!

I'm Sarvar, a Cloud Architect who loves turning complex tech problems into simple solutions. I've worked with AWS, Azure, DevOps, Data, Analytics, Generative-AI and Agentic-AI building real systems for real companies. In this article series, I'll share what I've learned in a way that's easy to follow, whether you're experienced or just getting started.

Let's get into it! ๐Ÿš€


This article is for beginners who've heard about AI agents but haven't built one yet.


The Problem That Started It All

You're looking for a job. You open LinkedIn, Naukri, Indeed search "Senior Python Developer." Hundreds of results pop up. Every company wants something slightly different. One wants AWS + Django. Another wants FastAPI + Kubernetes. The third one wants Flask + microservices.

You have all these skills. That's not the problem.

The problem is time. To stand out, you need to customize your resume for each role. Read the job description carefully. Figure out what they care about. Rewrite your summary. Reorder skills. Tweak bullet points. Write a cover letter. Hit submit.

That's ONE application. Now do that 10 more times.

It's not a skill problem. It's a time problem. You're doing the same thing over and over read, match, rewrite, submit.

What if you could build something that handles all of this for you?

You give it your resume and say "Find Senior Python roles in Bangalore, 20-35 LPA (Lakhs Per Annum โ‚น20-35 lakh salary), remote-friendly" and it goes to work. It reads job descriptions, matches your skills, finds gaps, rewrites your resume for each role, writes cover letters, and ranks everything by how well you fit.

Same you. Same resume. Same job market. But the boring repetitive part? Done automatically.

That's what got me into agentic AI. Not the hype. The simple thought: "I can automate this annoying thing."


ChatGPT vs AI Agents What's the Difference?

People ask me this all the time. "Isn't ChatGPT already an agent?"

Not really. Here's the simple difference.

ChatGPT - you ask a question, you get text back. Yes, it can browse the web and run code now. But YOU are still driving. You ask, it responds. You ask again, it responds again. It waits for you at every step.

An AI Agent - you give it a goal and it goes and does the work. Multiple steps. Multiple tools. Without you guiding each step. It decides what to do next on its own.

Here's a simple comparison:

You ask: "Find me Senior Python jobs in Bangalore"
ChatGPT "Here are some tips: update your LinkedIn, use relevant keywords..." (gives advice, waits for your next question)
AI Agent Actually searches job boards, finds 47 matches, filters to 12 relevant ones, tailors your resume for each (does the work start to finish)

One waits for you. The other goes and does the work. That's the whole difference.


How Agents Think?

Every agent follows the same basic pattern:

Think โ†’ Do โ†’ Check โ†’ Repeat

Here's what that looks like:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  THINK  โ”‚โ”€โ”€โ”€โ–ถโ”‚   DO    โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚  CHECK  โ”‚
โ”‚ What's  โ”‚     โ”‚ Take    โ”‚     โ”‚ Did it  โ”‚
โ”‚ next?   โ”‚     โ”‚ action  โ”‚     โ”‚ work?   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜
     โ–ฒ                                โ”‚
     โ”‚          Not done yet          โ”‚
     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
              โœ… Done? โ†’ Stop

Enter fullscreen mode Exit fullscreen mode

That's it. The agent looks at the goal, figures out the next step, does it, checks if it worked, and keeps going until the job is done.

(You might hear people call this "ReAct" which stands for Reason + Act. It's a formal way of saying the agent thinks about what to do, then does it, then thinks again. But at its core, it's just the loop above.)

Let me show you how this works with the resume example:

Goal: "Tailor this resume for an Amazon SDE role."

  1. Agent reads the job description. Amazon wants Python, AWS, and distributed systems.
  2. Agent reads your resume. Python and AWS are there. But distributed systems? It's buried in one bullet point that nobody would notice.
  3. Agent rewrites that bullet point to make distributed systems stand out.
  4. Agent checks again are all the important keywords from the job description covered? Not yet. Kafka is missing.
  5. Agent looks at your experience. You actually used Kafka at your last job but never put it on the resume. (We all do this.)
  6. Agent adds Kafka to the relevant section.
  7. Final check. Everything important is covered. Done.

Seven steps. No human needed. The agent figured out what was missing, fixed it, checked its work, and moved on.

This is how every agent works whether it's tailoring resumes, monitoring servers, or analyzing data. Same loop, different tasks. (Okay, I'm oversimplifying a bit real agents sometimes have more complex decision trees. But this mental model will get you through 90% of what you'll build.)


The Autonomy Spectrum How Much Freedom Should an Agent Have?

Before we look at how to build an agent, let's understand how much freedom you can give one. "Agent" isn't all-or-nothing. It's a range.

Level What Happens Example Risk
Fully Manual Human does everything You tailor your resume by hand None
Assisted AI suggests, human does ChatGPT suggests bullet points, you copy-paste Low
Orchestrated Human defines steps, agent follows them You say "Step 1: read JD, Step 2: rewrite summary" agent does exactly that Low-Medium
Semi-Autonomous Agent decides steps, pauses for approval Agent figures out what to do, asks before submitting Medium
Fully Autonomous Agent does everything, no human involved Agent searches, tailors, submits you just get a report High

Most real-world agents today are in the middle some human control, some agent freedom.

My advice: Start with orchestrated you define the workflow, the agent executes it. Once you trust it, give it more freedom gradually. Add human checkpoints for important steps. Fully autonomous? Maybe someday. Not yet for anything that matters.

The resume tailor agent we're building in this series? Semi-autonomous. It figures out what to fix and does the work, but shows you the result before anything gets submitted.


The Building Blocks of Every Agent

Now that you know how much freedom an agent can have, let's look at what you actually configure to make one work. Most frameworks I've used have these same pieces. Let's group them by what they do.


The Core: Who does what?

LLM (The Brain) - The AI model that does the thinking. GPT-4, Claude, Amazon Nova, Llama. Don't always use the most expensive model. Use cheap models for easy tasks, powerful models for hard tasks.

Role (The Identity) - Tell the agent WHO it is. Example: "You are a Senior Tech Recruiter with 15 years of experience." The more specific the role, the better the output. Vague roles give vague results.

Goal (The Finish Line) - When should the agent stop?

  • โŒ Bad: "Help with job search"
  • โœ… Good: "Find 5 Senior Python roles in Bangalore, 20-35 LPA, remote-friendly, from companies older than 3 years"

Task (The Instruction) - The specific work to do right now. "Read this job description. Compare it against the resume. List the top 5 skill gaps." Be as specific as possible the more you leave unclear, the more the agent makes up.


The Context: What does the agent know?

Backstory (The Personality) - Shapes HOW the agent approaches work. Same task, different backstory, different style:

  • "Seasoned recruiter" โ†’ practical, beats resume-scanning software
  • "Career coach" โ†’ encouraging, focused on growth
  • "Brutally honest reviewer" โ†’ tears your resume apart (but you learn the most)

Knowledge Base (The Facts) - Information you hand the agent upfront. "The candidate is a Senior Python Developer. Based in Bangalore. Prefers remote. Salary: 20-35 LPA." Without this, the agent guesses. And it guesses wrong.

Memory (What It Remembers) - Two types:

  • Short-term: Remembers what happened earlier in the current task. "I already found Python listed in the resume."
  • Long-term: Remembers across sessions. Run it next week, it knows what worked last time.

The Safety Net: What keeps it under control?

Tools (The Hands) - What the agent can actually DO beyond generating text: search the web, read files, call APIs, run code. Without tools, it just writes. With tools, it takes action. Not every agent needs tools a resume rewriter just processes text, but a job searcher needs API access.

Guardrails (The Limits) - Rules that keep the agent in check:

  • Max attempts โ†’ stop after X tries (otherwise it loops forever and burns your budget)
  • Allowed actions โ†’ limit which tools it can use
  • Output checks โ†’ verify the result makes sense

I always set guardrails. Always. I learned this at 2 AM watching my bill climb because an agent got stuck in a loop.

Human-in-the-Loop (The Pause Button) - For important decisions, make the agent stop and ask. The agent tailored your resume and is about to submit it. Instead of auto-submitting, it shows you the final version. "Should I submit this?" You review, approve, it continues.

Automate the boring parts. Keep human judgment for the important decisions.


Quick Reference

Group Pieces One-line summary
The Core LLM, Role, Goal, Task Who is this agent and what's it doing?
The Context Backstory, Knowledge Base, Memory What does it know?
The Safety Net Tools, Guardrails, Human-in-the-Loop What can it do and what stops it?

Ten pieces, three groups. Now let's see how multiple agents work together.


Multiple Agents Working Together

One agent is useful. But what if the job is too big for one?

You split the work. Just like a real team each person handles what they're best at.

Think of it like a restaurant:

  • One chef doesn't do everything. There's someone who preps ingredients, someone who cooks, and someone who plates the dish.
  • Each person does one thing well. Together, they serve a full meal.

Agents work the same way.

Our resume example with 3 agents:

Agent Job Output
Job Analyzer Reads the job description, pulls out what matters most "They want Python, AWS, and distributed systems experience"
Resume Writer Takes that analysis and rewrites the resume to match A tailored resume highlighting the right skills
Cover Letter Writer Uses both outputs to write a personalized letter A cover letter that connects your experience to their needs

Each agent does one thing. Together, they handle the full workflow.


How Do They Pass Work to Each Other?

Three patterns. You only need to know the first one for now.

1. Sequential - Like a relay race Aโ†’Bโ†’C

Agent 1 finishes โ†’ hands output to Agent 2 โ†’ hands to Agent 3.

This is what we'll use. It's the simplest. Easy to understand, easy to fix when something breaks you know exactly which agent caused the problem.

2. Hierarchical - Like a manager assigning tasks

One "boss" agent gives work to others and collects results. Useful when you need coordination, but more complex to set up.

3. Parallel - Everyone works at the same time

Multiple agents work on independent tasks simultaneously. Faster, but the tasks can't depend on each other. Example: three agents searching three different job boards at the same time.

For this series, we're using sequential. Agent 1 passes to Agent 2 passes to Agent 3. Simple, predictable, easy to debug. You can explore the other patterns later once you're comfortable.

Here's how our 3 agents work together:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Job Analyzer โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ–ถโ”‚ Resume Writer โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ–ถโ”‚ Cover Letter Writer โ”‚
โ”‚              โ”‚       โ”‚               โ”‚       โ”‚                     โ”‚
โ”‚ "They want   โ”‚       โ”‚ Rewrites your โ”‚       โ”‚ Writes a letter     โ”‚
โ”‚  Python, AWS,โ”‚       โ”‚ resume to     โ”‚       โ”‚ connecting your     โ”‚
โ”‚  distributed โ”‚       โ”‚ highlight     โ”‚       โ”‚ experience to       โ”‚
โ”‚  systems"    โ”‚       โ”‚ those skills  โ”‚       โ”‚ their needs         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Enter fullscreen mode Exit fullscreen mode


CrewAI - The Framework We'll Use

I tried several agent frameworks. I picked CrewAI because it's simple and respects your time.

Why CrewAI?

  • Free and open source - active community, regular updates
  • Ready-made templates - gives you a working project structure immediately
  • Plain English configuration - define agents and tasks in YAML (simple text files), not complex code
  • Fast to start - first working agent in about 10 minutes once your environment is set up

Project Structure

When you create a CrewAI project, you get this folder structure:

my-agent-project/
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ my_agent_project/
โ”‚       โ”œโ”€โ”€ config/
โ”‚       โ”‚   โ”œโ”€โ”€ agents.yaml      โ† WHO: define your agents here
โ”‚       โ”‚   โ””โ”€โ”€ tasks.yaml       โ† WHAT: define tasks here
โ”‚       โ”œโ”€โ”€ tools/
โ”‚       โ”‚   โ””โ”€โ”€ custom_tool.py   โ† HOW: custom tools agents can use
โ”‚       โ”œโ”€โ”€ crew.py              โ† WIRING: connects agents to tasks
โ”‚       โ””โ”€โ”€ main.py              โ† START: entry point, kicks everything off
โ”œโ”€โ”€ knowledge/                   โ† FACTS: static files agents can read
โ”œโ”€โ”€ .env                         โ† SECRETS: API keys, model settings
โ””โ”€โ”€ pyproject.toml               โ† DEPENDENCIES: Python packages needed

Enter fullscreen mode Exit fullscreen mode

You only need to write three things: agent definitions, task definitions, and the wiring between them. Everything else is scaffolding that CrewAI handles.


CrewAI vs LangChain - When to Use Which

CrewAI LangChain/LangGraph
Approach Define agents in simple YAML files Build custom chains and graphs in code
Learning time A weekend A week or more
Setup time ~10 minutes 30+ minutes of boilerplate
Best for Clear roles, clear handoffs Complex branching, conditional logic
Feels like Writing job descriptions for a team Building a flowchart with many "if/else" paths

Use CrewAI when you know your agents and the flow is straightforward. Agent A does X, passes to Agent B which does Y. Done.

Use LangChain/LangGraph when you need complex logic like "if confidence is above 80% go to Agent A, otherwise retry with Agent B, and if that fails ask a human."

My take: Start with CrewAI. You can always add complexity later. Removing complexity? That's painful.


MCP - How Agents Talk to the Outside World

Your agent can think. But can it actually reach out and grab information from somewhere else? Like a database full of job listings? Or a file stored in the cloud?

That's what MCP does. It gives your agent a way to connect to outside services.

The Simplest Way to Understand MCP

Imagine you buy a new phone. You need to charge it. Now imagine every phone brand had a completely different charger one for Samsung, one for Apple, one for OnePlus, all different shapes.

That's what life was like before USB-C. Now? One cable works for almost everything.

MCP is the USB-C of AI agents. One standard way to connect to any service databases, file storage, APIs, messaging apps. You don't write different connection code for each one.

Back to Our Resume Agent

Our agent needs job listings. Where do those come from?

  • Maybe a database with thousands of job posts
  • Maybe files stored in the cloud (like AWS S3)
  • Maybe a job board API

Without MCP: You write separate connection code for each one. Different code for the database. Different code for S3. Different code for the API. Every new service = more custom code.

With MCP: You configure the connection once in a simple settings file. The agent uses the same standard method to talk to all of them. New service? Just add another configuration. No new code.

The first time I set this up, it took me about 5 minutes. Writing custom database connection code used to take me an hour. That's the difference.

What Else Can Agents Connect To?

  • Databases - fetch job listings, store results
  • File Storage (S3) - read resumes, save tailored versions
  • GitHub - read code, create pull requests
  • Slack - send notifications, read messages
  • Web Search - find information online

One standard way to connect to all of these. That's MCP.

We'll set this up hands-on in the next article. For now, just remember: MCP is how your agent reaches out to the world beyond its own code.


What Agents Can't Do Well (Yet)

Let me be honest about the limitations:

  • They make things up. I've had an agent tell me it "successfully completed" something it definitely didn't do. Always check important outputs yourself.
  • They cost money. One task = 5-20 AI model calls. A chatbot costs pennies. An agent can cost dollars per run. Multiply by hundreds of runs and your bill gets serious.
  • They get stuck in loops. Without a maximum attempt limit, an agent will happily retry the same failing approach forever. (I learned this the hard way at 2 AM.)
  • Same input, slightly different output. This makes testing tricky because you can't always predict the exact result.
  • They're slow. Multiple AI calls + tool usage = seconds to minutes per task. Not milliseconds.
  • They "fix" things you didn't ask about. When fixing one issue, an agent sometimes decides to also change nearby code. In a demo, fine. In production, you get unexpected changes. Set tight boundaries.

How I Handle These Problems

  • Use cheap models for simple tasks. Amazon Nova Lite for easy stuff, Nova Pro for complex reasoning.
  • Keep prompts short. Every word costs money.
  • Always set max attempts. Non-negotiable.
  • Log everything. I send all agent activity to CloudWatch Logs token counts, step durations, success/failure at each step. When something breaks at step 5 of 7, I can trace exactly what went wrong.
  • Validate outputs. For critical tasks, I add a checking step either another agent that verifies the work, or structured checks that confirm the output meets requirements.

When NOT to Use Agents

Not everything needs an agent. I've seen people over-engineer simple problems because "agents are cool." Skip agents when:

  • One AI call is enough - Summarize this text? Translate this paragraph? That's one API call, not an agent.
  • The logic never changes - If there are no decisions to make and the steps are always the same, a simple script is cheaper, faster, and more reliable.
  • You need instant responses - Agents take seconds to minutes. If you need millisecond responses for a real-time API, agents are too slow.
  • High volume + simple task - 5-20 AI calls per task ร— 10,000 tasks per day = a very expensive month. If the task is simple and repetitive, write a rule-based system.
  • Mistakes are unacceptable - Agents make errors. If a wrong answer has serious consequences (medical, legal, financial), don't rely on an agent without heavy human oversight.
  • It's just a database query - Reading from a database and returning results? That's a simple API, not an agent.

My rule: If you can draw the logic as a simple flowchart with no "it depends" decisions, you don't need an agent. Use a script. Agents are valuable when there's ambiguity, judgment calls, and multi-step reasoning involved.


What's Next

In the next article, I'm building the resume tailor agent step by step using CrewAI on an EC2 instance with Amazon Nova Pro as the AI model. From setting up the server to running the agent against a real job description.

Stay tuned.


๐Ÿ“Œ Wrapping Up

Thanks for reading! If this was helpful:

  • โค๏ธ Like if it added value
  • ๐Ÿ’พ Save for later
  • ๐Ÿ”„ Share with your team

Follow me for more on: AWS architecture, FinOps, DevOps, and AI Infrastructure.

๐Ÿ‘‰ Visit my website | Connect on LinkedIn | Email: simplynadaf@gmail.com

Happy Learning ๐Ÿš€