Shamim Shams Search

Tag

#llm

Automate LinkedIn Outreach Messages Using AI and Python
· 8 min read

Automate LinkedIn Outreach Messages Using AI and Python

Cold messages fail for a simple reason. They're not actually cold — they're warm in theory and cold in execution. You've researched the person, found something interesting, written what you think is a relevant opener. Then you send the same structure to 150 people and wonder why three reply. The bottleneck is drafting. Personalization takes time: reading a profile, finding a hook, writing an opener that references it, keeping the message short enough that someone actually reads it. Ten minutes per person, 200 people, do the math.

Build a Slack Bot That Answers Questions from Your Internal Docs [Part 2]
· 9 min read

Build a Slack Bot That Answers Questions from Your Internal Docs [Part 2]

If you ran the bot from Part 1, you probably hit the timeout within the first few minutes. Someone typed `/ask`, got "This app didn't respond in time" in red, and trust died a little. Claude was still thinking. Part 1 treated the Slack app as a prerequisite — configured and ready. This part actually builds it. We'll create the app in the Slack dashboard, wire both tokens, fix the timeout with background threading, format answers with Block Kit so they look like a real bot response instead of a text dump, and add a `/reindex` command so the docs stay current without restarting the process. You'll need the code from Part 1 and a Slack workspace where you have permission to install apps.

Creating a Multi-Agent System with Python and LangChain
· 7 min read

Creating a Multi-Agent System with Python and LangChain

I had a pipeline that kept eating itself. The task was straightforward: research current trends in vector database pricing, then write a short summary. One agent, a handful of tools, a careful system prompt. It started well — pulling results, skimming content, taking notes. Then halfway through composing a paragraph, something it wrote made it doubt its own data. So it searched again. Then wrote some more. Then re-searched because a sentence it drafted referenced a number it couldn't confirm. Four minutes and $0.80 in API calls later, I had output that mixed raw search snippets with half-composed paragraphs. Not a bug — just the expected behavior of one model trying to do two incompatible jobs at once.

Automating Data Extraction from PDFs Using Python and LLMs
· 7 min read

Automating Data Extraction from PDFs Using Python and LLMs

PDFs lie to you. They look structured — columns aligned, tables formatted, field labels sitting neatly next to their values — but underneath that visual order is a flat stream of text with no semantic structure at all. Ask a PDF parser what the invoice total is and it'll give you every number on the page.

Token Limits Explained: How to Chunk and Process Large Documents
· 8 min read

Token Limits Explained: How to Chunk and Process Large Documents

Your 500-page contract review just threw a context length error. The model has a 200k token context window, and you've still managed to overflow it. Welcome to the practical side of token limits. Most introductions to this topic start with "tokens are pieces of text." That's true, but it's the wrong thing to know first. What matters is this: every LLM call has a ceiling, you'll hit it more often than you expect, and the strategy you use when you do determines whether your application returns useful output or quietly fails.

RAG (Retrieval-Augmented Generation) Explained with Real-World Examples
· 7 min read

RAG (Retrieval-Augmented Generation) Explained with Real-World Examples

LLMs have a memory problem. Ask Claude or GPT-4 about your internal documentation, this quarter's pricing changes, or a contract signed last week — and you'll get one of two outcomes: "I don't know," or something confidently wrong. RAG fixes this. Not by retraining the model. Not by fine-tuning. By handing the model the documents it needs, right before it answers.

Understanding LLM APIs: A Practical Guide for Web Developers
· 7 min read

Understanding LLM APIs: A Practical Guide for Web Developers

LLM APIs look like REST APIs but don't behave like them. If you've built integrations with Stripe or GitHub's API, you know the pattern: send a request, get structured data back, handle errors. LLM APIs follow that same HTTP shape, but they add a handful of concepts that don't exist in typical API work. Skip past them and you'll hit confusing bugs and unexpected bills.