What you need for this lesson: completed work you can point at — the CityOps milestones from Stages 1–5. If you haven't built the Ask CityOps pilot or shipped CityOps live, this post is a to-do list for later. No other tooling required — a free LinkedIn profile, a free GitHub account, and a phone that records video.

Tuesday, 9:42 AM. Priya, a hiring manager at a mid-size logistics company, has a browser tab open and a growing pile of pressure from her VP: the FDE role has been open for six weeks. Her LinkedIn search — "RAG engineer LLM production" — returns a wall of profiles.

She clicks the first. Headline: "Software Engineer @ SomeCorp". The About section is a wall of buzzwords. No projects, no links, no demos. Back to the search results.

She clicks the second. Headline: "Forward-Deployed Engineer — I ship RAG copilots into enterprise workflows (Ask CityOps)". Pinned on GitHub: three repos, each with a README that reads like a field report. And right at the top of the profile — a link: "2-minute demo: the copilot that answers customer questions from 400 PDFs."

She watches the video. Ninety seconds later she's forwarding the profile to her VP with a note: "Interview this one."

Every name, company, and profile in this lesson is an illustrative composite based on common hiring patterns — not a real person, not a real outcome. But the mechanism is real, and it's the entire point of this lesson.

A strong engineer nobody can find doesn't get interviews. And a findable engineer nobody can evaluate doesn't get callbacks. This lesson is about closing both gaps: making yourself discoverable — recruiters can find you — and demonstrable — when they find you, they can see the work in under three minutes.

One principle to carry with you

Hiring managers don't read portfolios; they skim evidence. Nobody is going to clone your repo and read 4,000 lines of code. They will read your headline for five seconds, skim a README for thirty, and watch a demo for two minutes — and that is where the decision happens. Your job is to make those three artifacts undeniable.

The minimum concept: the evidence funnel

Think of the hiring pipeline as a funnel with four gates. At each gate, a different artifact does the work, and each gate filters out candidates before the next one is even considered:

flowchart LR A["🔎 SEARCH<br/>Recruiter searches<br/>keywords + title"] --> B["👤 PROFILE<br/>Headline + About<br/>10-second skim"] B --> C["🎬 DEMO<br/>2-min video<br/>See the work live"] C --> D["🗣️ INTERVIEW<br/>You narrate<br/>the story"]

Notice the asymmetry. The interview is the last gate — you only reach it if the first three did their job. Most candidates pour all their effort into interview prep and treat the first three gates as paperwork. That's backwards: the funnel is where interviews come from.

The funnel also tells you what "good" means at each gate:

GateWho's decidingHow long you getWhat wins
SearchRecruiter / search algorithmInstant — you're either in the results or notKeywords that match how people actually search
ProfileRecruiter skimmingRoughly 10 secondsOne clear headline + proof in the first screen
DemoHiring manager watchingAbout 2 minutesWorking software on screen, narrated crisply
InterviewThe whole panel30–60 minutesYou telling the story behind the evidence

Three artifacts. Three gates. This lesson rebuilds all three: your LinkedIn profile (the search gate), your GitHub profile (the evidence gate), and your 2-minute demo video (the "oh, this is real" gate). Each section follows the same arc: look at the weak version honestly, learn the minimum concept, build the strong version, and make it reusable.

1. LinkedIn: the search gate

LinkedIn is not a resume. A resume is a document someone reads when they've already decided you're interesting. LinkedIn is a search index — recruiters query it the way they'd query Google, and the profiles that surface are the ones that match the query's vocabulary.

This is the part most candidates get wrong. They optimize for impressing humans and forget they're being found by search first.

The weak version (break it first)

Here's the modal LinkedIn profile of a capable engineer — a composite of hundreds of profiles recruiters scroll past. Read it as a search engine would:

Headline: Software Engineer @ AcmeCorp
About: Results-driven software engineer with a passion for
building scalable solutions and leveraging cutting-edge
technologies. Proven track record of delivering high-quality
software in agile environments. Team player. Quick learner.

Featured: (empty)
Experience: Software Engineer, AcmeCorp — 2023–present
  "Responsible for developing and maintaining backend services."
Skills: Java, Python, SQL, Problem Solving, Teamwork

Now run the recruiter's query against it: "RAG engineer, LLM in production, vector search, evals." Zero matches. This profile is invisible to the searches that matter. And for the humans who do land on it, the headline says "generic engineer" and the About says nothing that distinguishes this person from ten thousand others. Every claim is an adjective; nothing is an artifact.

The headline rewrite formula

Your headline is the single most valuable piece of text in your job search. It's what appears in search results, what recruiters see before they click, and what LinkedIn's search algorithm weights heavily. The formula:

The headline formula

[Role you want] — [proof of capability in one line] (keyword, keyword, keyword)

Three jobs in one sentence: the role tells the search engine and the recruiter who you are; the proof gives a human a reason to click; the keywords make sure you surface in the queries people actually run. If your headline can't survive without adjectives, rewrite it.

Before and after — same engineer, same skills, one headline that hides and one that finds. (Composites, as always.)

BeforeAfter
Headline"Software Engineer @ AcmeCorp""Forward-Deployed Engineer — shipped a RAG copilot into a live customer workflow (Ask CityOps) | LLM APIs · Vector Search · Evals"
What search sees"software engineer" — one of millionsForward-deployed engineer, RAG, LLM APIs, vector search, evals — matches the actual queries
What a human seesA title and a companyA role, a shipped artifact, and a skill stack — a reason to click
Proof contentNone"Shipped a RAG copilot into a live customer workflow" is a checkable claim

A few rules of thumb that keep headlines honest:

  • Name the role you want, not just the role you have. If you're targeting FDE roles, say "Forward-Deployed Engineer" — not "Software Engineer" hoping they'll guess. (Assuming you can back it up with work — your CityOps milestones are the backup.)
  • Proof beats adjectives. "Passionate about AI" is an adjective. "Shipped Ask CityOps RAG pilot with evals" is proof. One checkable claim outweighs a paragraph of adjectives.
  • Keywords are for search, not for people. The parenthetical keyword list at the end isn't poetry — it's SEO. Use the vocabulary from the job postings you're targeting: LLM APIs, vector search, structured output, evals, RAG, FastAPI, Docker, CI/CD. If a recruiter searches "RAG evals" and your headline doesn't contain either word, you don't exist for that search.
  • One artifact is enough. Don't list every project. The single strongest, most relevant project is the hook; the rest lives in Featured and GitHub.

The About section: a 3-sentence pitch

Most About sections are where good profiles go to die — five paragraphs of buzzwords nobody finishes. The fix is a constraint: three sentences. A recruiter who has given you ten seconds will read three sentences.

I build AI copilots that survive contact with real enterprise workflows.
For the CityOps program I shipped Ask CityOps: a RAG copilot over ~400
customer documents with structured-output citations, evals, and guardrails —
deployed behind enterprise proxies with health checks, secrets management,
and a rollback plan.
I'm looking for Forward-Deployed Engineer roles where the job is getting AI
systems working inside a customer's messy reality, not just in a notebook.

Why this shape works:

  • Sentence 1 — the claim: who you are as an engineer, in your own terms. Not "passionate problem solver" — a specific engineering identity.
  • Sentence 2 — the proof: one artifact, with concrete technical detail. "~400 customer documents," "structured-output citations," "deployed behind enterprise proxies" — each phrase is checkable and each maps to vocabulary from the Stage 4 and Stage 5 lessons: RAG End-to-End, Structured Output, Deploying Behind Enterprise Proxies. (These details are true only if the work is real — see the honesty note below.)
  • Sentence 3 — the ask: the role you want, stated plainly. This does double duty: it tells recruiters what to pitch you, and it filters out irrelevant inbound.

Honesty checkpoint

Everything in your profile must survive a background check, a technical interview, and a skeptical hiring manager clicking through to your repos. The CityOps program gives you real artifacts — a working RAG pilot, a deployed service, evals you actually ran. Describe what you built accurately; don't inflate a coursework project into "production experience at enterprise scale." There's a durable difference between "shipped a pilot with evals" (true, strong) and "led enterprise AI transformation" (inflated, and it will get you filtered at the interview, not the search). The confidence stays; the absolutes go.

The "Open to Work" question: tradeoffs, not rules

LinkedIn lets you signal you're looking — with a photo frame everyone can see, or privately to recruiters only. There are reasonable arguments on both sides, and the honest answer is that the effect depends on your situation:

OptionWhat's gainedWhat it costs
Public "Open to Work" frameMaximum visibility; some recruiters filter for it. Signals availability clearly to your network, which often produces warm introductions — the highest-quality channel there is.Visible to everyone including your current employer and colleagues. Carries no stigma in most of tech, but in some enterprise cultures it reads as "desperate" to a minority of viewers.
Private signal (recruiters only)You appear in recruiter "open to work" searches without a public frame. Current-employer exclusion is imperfect — LinkedIn tries to hide it from your company but it's not a guarantee.Your network can't see it, so you lose the warm-introduction channel. Less visibility than the public frame.
No signalFull privacy. Useful when you're employed and your current job doesn't know you're looking.You forfeit both channels. Recruiters still find you through keywords — the signal is a boost, not a prerequisite.

The pragmatic read: if you're employed and your manager doesn't know you're looking, use the private signal and verify what's visible with a friend's account. If you're openly job-seeking, the public frame's visibility upside outweighs the downside for most roles — but it's your call, and anyone telling you it's "always" right or "always" a red flag is selling certainty they don't have.

Make it reusable: the LinkedIn checklist

  • Headline rewritten with the role–proof–keyword formula
  • About section compressed to three sentences: claim, proof, ask
  • Featured section links your strongest demo video and one repo
  • Experience entries describe what you built, not responsibilities — one checkable artifact per role
  • Custom profile URL set (linkedin.com/in/yourname) — free, takes two minutes, and it looks deliberate everywhere it appears
  • Profile photo: a real face, current, recognizable — it's a trust signal, not a fashion statement

2. GitHub: the evidence gate

If LinkedIn gets you found, GitHub is where a skeptical hiring manager decides whether the claims are real. Here's the minimum concept most candidates miss: reviewers don't read your code. They skim your evidence. A hiring manager with fifteen profiles to triage will spend maybe two minutes on your GitHub — and they'll spend it on your profile page, your pinned repos' READMEs, and your commit graph. The code itself gets read only after you've passed the screen, if at all.

So the design goal isn't "impressive code." It's "impressive skimmability": a profile that answers, in under a minute, the three questions a reviewer is actually asking:

  1. Does this person finish things? (Pinned repos with complete READMEs, not abandoned stubs.)
  2. Does this person work like an engineer? (Commit history with real messages, tests, CI — not one giant "final code" commit.)
  3. Can this person explain the work? (READMEs written for a reader, with the problem, the approach, and how to run it.)

Profile anatomy: what the reviewer actually sees

Your GitHub profile page is a landing page. Treat it like one:

ElementWhat the reviewer checksWhat "good" looks like
Profile READMEDo they know how to introduce themselves?Short: who you are, what you build, links to the demo video and LinkedIn. Under 15 lines — it's a signpost, not an essay.
Pinned repos (2–4)What's the best work?Your strongest projects, each with a real README. Curate ruthlessly — four excellent repos beat twelve mixed ones.
Commit graphDo they actually build consistently?Steady activity over months. Gaps are fine (you have a life); the pattern should read "builds things regularly," not "panic-committed the night before."
Languages barDoes the stack match the claims?If your LinkedIn says Python and RAG, your repos shouldn't be 90% HTML tutorials.

README-first repos: the 30-second test

The README is the most-read file in any repo — and the most-neglected by candidates. A strong README answers four questions in order, and a reviewer should be able to get all four in thirty seconds of scrolling:

# Ask CityOps — RAG copilot for customer support

> Answers customer questions from ~400 support documents, with
> citations to the source passages. Built as the Stage 4 milestone
> of the Path to FDE curriculum.

## What it does (the demo)
[2-minute demo video link]

## How to run it
pip install -r requirements.txt
uvicorn app.main:app

## How it's built
- Ingestion: document chunking + embeddings
  (see: Feeding the Machine, Embeddings & Vector Search)
- Retrieval: hybrid search over a vector index with exact filters
  for exact facts (see: RAG End-to-End)
- Generation: structured output with per-request citations
  (see: Structured Output)
- Quality: eval set with a versioned scoring rubric
  (see: Evals & Tracing)
- Safety: input validation + guardrails + audit logging
  (see: Guardrails, Approvals & Audit)

## What I'd do next
- Add per-tenant isolation before multi-customer rollout
- Expand the eval set with adversarial queries
- Cut p95 latency with cached embeddings for repeat queries

Notice what's doing the work here. The quote line at the top is the 5-second pitch. "How to run it" proves it actually runs — a repo nobody can run is a screenshot, not evidence. "How it's built" maps each subsystem to a real technique (and real lessons — link to RAG End-to-End, Evals & Tracing, Guardrails, Approvals & Audit from your own writeups if you published them). And "What I'd do next" is the section most candidates skip and reviewers remember — it shows judgment, which is exactly what the interview will probe.

The weak version (break it first)

The modal candidate repo: a README that says # my-project and nothing else, a single commit titled "final", no instructions to run it, and — the classic tell — a .env file with real API keys committed to the repo. Each of these is a signal, and they all point the same way: this person doesn't work the way a professional team works. The fix for each is cheap and mechanical, which is why reviewers treat their absence as meaningful.

Commit hygiene: the cheapest signal in your portfolio

Commit history is a behavioral transcript. "final", "fix", "asdf" as messages tell the reviewer you treat version control as a save button. The bar is low and the payoff is real:

  • Write messages like a human will read them: Add per-request citation validation to the RAG pipeline beats update stuff. Imperative mood, one line, saying what and why.
  • Small, logical commits: one feature or fix per commit. A reviewer browsing your history should be able to narrate the project's evolution — that's evidence of engineering thinking.
  • Never commit secrets. API keys, tokens, credentials — if it's in your git history, it's leaked. Use .env files listed in .gitignore, which is exactly what the Secrets & Security Basics lesson teaches. A leaked key in a public portfolio repo is the fastest way to fail a security-conscious reviewer's screen.
  • Show the boring professionalism: tests (Testing with pytest), a CI workflow (CI/CD with GitHub Actions), a working build. Green checkmarks on your commits are a reviewer skim-signal that the project is alive and maintained.

Myth: "Reviewers will read my best code and judge its quality."

Reality: At the screening stage, almost nobody reads your code. They skim READMEs, glance at commit graphs, and check that things run. Code quality gets judged in the interview — when they ask you to walk through your own repo. So the GitHub screen rewards explainers and finishers, and the honest way to win it is to actually be one: complete projects, real READMEs, runnable code.

Make it reusable: the GitHub checklist

  • Profile README under 15 lines with links to demo video + LinkedIn
  • 2–4 pinned repos — strongest work only, each README-first
  • Every pinned README: pitch line, demo link, run instructions, architecture summary, "what I'd do next"
  • Commit messages in imperative mood; no "final"/"fix"/"asdf"
  • No secrets in any repo history — .env in .gitignore
  • CI green on pinned repos; tests present and passing

3. The 2-minute demo video: the "oh, this is real" gate

Here's the artifact most candidates never build, and it's the one with the highest leverage. A LinkedIn headline gets you found. A GitHub profile survives the skim. But a 2-minute demo video does something neither can: it puts working software on a screen in front of a hiring manager and lets them feel the quality of the work.

The minimum concept: the video is not a presentation, it's a screen recording with a narrator. No slides. No talking head explaining the architecture for ninety seconds. The viewer should see real software doing a real thing within the first thirty seconds, and hear you narrate it like a field engineer showing a customer what got built.

The weak version (break it first)

The typical candidate demo, when one exists at all: seven minutes long, opens with three minutes of slides about "the problem space" and "our approach," the actual demo starts at minute four, something breaks live, and the narrator spends a minute apologizing and refreshing. The hiring manager closed the tab at ninety seconds. Every failure mode here is fixable: cap the length, start with the working thing, and pre-record — this is not a live coding interview, it's an artifact. Record it three times and ship the best take.

The script template: four beats, two minutes

The structure below is a template you can reuse for any project. Four beats, hard timestamps — if a beat runs long, cut words, not beats:

THE 2-MINUTE DEMO — script template
====================================
0:00–0:15  THE PROBLEM (15 seconds)
  State the customer problem in one or two sentences. No background,
  no market sizing. The viewer must understand WHY this exists
  before they see a single pixel of UI.

0:15–1:00  THE DEMO (45 seconds)
  Show the thing working, end to end, on screen. Narrate what you're
  doing as you do it. One realistic scenario — not a tour of every
  feature. If it takes more than 45 seconds, your scenario is too big.

1:00–1:30  WHAT YOU BUILT AND HOW (30 seconds)
  Name the key technical decisions, fast. "RAG over 400 support docs,
  hybrid retrieval, structured-output citations, evals on a labeled
  set." This is the resume in spoken form — vocabulary the hiring
  manager's checklist recognizes.

1:30–2:00  WHAT YOU'D DO NEXT (30 seconds)
  Two concrete next steps, showing judgment. "Per-tenant isolation
  before multi-customer rollout, and expanding the eval set with
  adversarial queries." Never end on "that's it" — end on trajectory.

PRODUCTION NOTES
  - Record your screen at 1080p, narration on a phone mic in a quiet room.
  - Pre-record. Do three takes; ship the best one.
  - Put the video link at the TOP of the repo README and in your
    LinkedIn Featured section. An undiscoverable demo is a private demo.
  - Captions on. Recruiters watch on mute more often than you'd think.

The worked example: an Ask CityOps demo

Here's the template filled in — an illustrative composite of how a learner's Ask CityOps demo (the Stage 4 milestone RAG copilot) could be scripted. Read it aloud; it should take about two minutes:

0:00–0:15  THE PROBLEM
"CityOps support agents answer the same questions every day by searching
through 400 PDFs by hand. Customers wait hours for answers that exist in
the docs. Ask CityOps is a copilot that answers from those documents —
with citations, so the agent can trust it."

0:15–1:00  THE DEMO
[Screen: the Ask CityOps chat interface. Narrator types:]
"What's our SLA for critical outages?"
[The copilot answers in seconds, with two cited passages highlighted
from the source documents.]
"Notice the citations — every claim links back to the exact passage.
Now watch what happens with a question the docs can't answer:"
[Types: "What's our refund policy for alien abductions?"]
"The copilot says it doesn't know, instead of inventing an answer.
That's the guardrail doing its job."

1:00–1:30  WHAT I BUILT AND HOW
"Under the hood: document ingestion with chunking and embeddings,
hybrid retrieval with exact filters for exact facts, structured output
so every response carries its citations, and an eval set with a versioned
scoring rubric so I can prove the answers got better as I iterated."

1:30–2:00  WHAT I'D DO NEXT
"Before real customers: per-tenant isolation so one customer's docs never
leak into another's answers, and adversarial queries in the eval set —
the failure mode I'm most worried about is confident wrong answers on
ambiguous questions. Link to the repo and the eval results are below."

Why this demo works: the problem is concrete and human; the viewer sees working software by second twenty; the "I don't know" moment is the strongest thirty seconds in the video — it demonstrates the guardrail, which is exactly the judgment a hiring manager is screening for; and the closing shows trajectory instead of trailing off.

Make it reusable: the demo checklist

  • Under 2:30 total, problem stated by 0:15, working software on screen by 0:30
  • Pre-recorded best-of-three; no live debugging on camera
  • One realistic scenario — not a feature tour
  • Include a failure-handled moment if your project has one (the "I don't know" is worth more than a perfect demo)
  • Captions on; 1080p; quiet room
  • Linked in the repo README top, LinkedIn Featured section, and your Get Hired narrative

Putting the funnel together

Now re-read the funnel from the top with all three artifacts in place:

A recruiter searches "RAG engineer LLM production evals." Your headline matches — you surface. She skims your profile for ten seconds: headline, three-sentence About, Featured section with the demo video. She clicks play. Two minutes later she's seen working software, citations, a guardrail refusing to hallucinate, and a builder talking about what's next. She opens GitHub: profile README points at the same demo, pinned repos have real READMEs, commits read like an engineer's log, CI is green. The evidence is consistent at every gate — same project, same vocabulary.

That's the whole game. Not a bigger portfolio. A consistent one. One strong project, presented three ways, each tuned for the gate it guards.

Productionize it: the evidence kit

Build this once, reuse it everywhere:

  • One anchor project — for this curriculum, Ask CityOps is the natural anchor: it has a real problem, real retrieval, real evals, and a real deployment story from Milestone 5.
  • Three artifacts — headline + About (search gate), pinned README-first repo (evidence gate), 2-minute demo video (the "real" gate).
  • One vocabulary — the same keywords in the headline, the README, and the video narration. Consistency is what makes you memorable after the skim.
  • One update habit — every time you finish a project (including the upcoming end-to-end chapter), run the three checklists above. Evidence rots; refresh it.

Field check

  1. You search LinkedIn for "forward deployed engineer RAG" and your own profile doesn't appear in the first page of results. Which gate failed, and what's the single highest-leverage fix?
  2. A hiring manager spends two minutes on your GitHub and never opens a code file. What did they look at, and what three signals decided whether you pass the screen?
  3. Your demo video is four minutes long and opens with two minutes of slides. Name the two structural fixes from the script template.
  4. Your About section currently reads: "Passionate engineer who loves building scalable AI solutions and delivering value in agile teams." Rewrite it as three sentences following the claim–proof–ask shape, using a composite example.
Check the answers

1. The search gate failed. The highest-leverage fix is the headline: it must contain the role ("Forward-Deployed Engineer") and the keywords recruiters actually search ("RAG", "LLM", "vector search", "evals"). The profile–proof–keyword formula exists precisely for this. (A composite scenario — search ranking also depends on LinkedIn's algorithm and your network, which you can't fully control.)

2. They looked at the profile page, the pinned repos' READMEs, and the commit graph. The three signals: do they finish things (complete pinned repos with real READMEs), do they work like an engineer (commit messages, tests, green CI — not a single "final" commit), and can they explain the work (READMEs that answer what it does, how to run it, and what's next).

3. Cut to under two minutes using the four-beat template (problem 0:00–0:15, demo 0:15–1:00, build 1:00–1:30, next 1:30–2:00), and replace the opening slides with working software on screen in the first thirty seconds — narrated screen recording, not a presentation.

4. Claim: "I build RAG copilots that survive contact with real enterprise workflows." Proof: "For the CityOps program I shipped Ask CityOps — answers from ~400 support documents with structured-output citations, evals, and guardrails, deployed behind enterprise proxies." Ask: "I'm looking for Forward-Deployed Engineer roles where the work is getting AI systems running inside a customer's messy reality." (Composite example — substitute your own real work.)

One last thing, and it's the part of the DNA this curriculum never skips: explain it to a human. Before you touch a single profile field, tell a friend — out loud, in sixty seconds — what you built, why it matters, and what role you want. If you stumble, your headline will stumble too. The three-sentence About section is just that pitch, written down.

Your evidence kit is now the foundation everything else in this stage builds on. The next lesson takes the same anchor project and turns it into the story you'll tell in interviews — because the funnel's last gate is a conversation, and by then the evidence has already done half the talking. When you're ready, continue from the Get Hired page.