Three LLM portfolio pieces, specified with acceptance criteria
In this article (6 sections)
Related programme: the Generative & Agentic AI course (3 months).
The LLM portfolio pieces that impress reviewers are specified like real work: a named user, defined inputs and outputs, acceptance criteria that can pass or fail, and published evidence that they did. Below are three such specs — a document extractor, a support-reply drafter and a small tool-using agent — written so you can build them and so a reviewer can check them in minutes.
What makes a spec, not an idea
"Build a chatbot for PDFs" is an idea. A spec answers: for whom, from what, producing what, judged how. The acceptance criteria are the important part. Each should be something a stranger could re-run and get the same verdict.
Each piece below has five parts: user and job, inputs, outputs, acceptance criteria, and evidence to publish. All data should be synthetic or openly licensed; state which.
Piece 1: Invoice field extractor with a review queue
User and job. An accounts assistant who keys invoice details into a ledger and wants the fields pre-filled, with doubtful ones flagged.
Inputs. Forty synthetic invoices as text or PDF, in at least three different layouts, including five with deliberate problems: a missing GSTIN, a total that doesn't match line items, a date in an ambiguous format.
Outputs. One JSON record per invoice with fixed fields (vendor name, invoice number, date, taxable value, tax, total) plus a needs_review flag and a reason.
Acceptance criteria.
- 1Every output parses against a JSON schema you publish. Zero parse failures across all forty.
- 2Field-level accuracy is reported per field against a hand-labelled answer key, not as a single average.
- 3All five problem invoices are flagged
needs_reviewwith a reason that names the problem. - 4Totals are checked in code (sum of line items plus tax), not by the model.
- 5Running the full set twice produces the same flags on the problem invoices.
Evidence to publish. The answer key, a results table per field, the list of failures with one-line diagnoses, and the command to reproduce.
Piece 2: Support-reply drafter that knows when to stop
User and job. A customer support agent for a fictional appliance company who wants a draft reply grounded in the company's policy documents.
Inputs. A synthetic policy set of ten short documents (warranty, returns, installation, service areas) and sixty synthetic customer messages, twenty of which ask things the policies do not cover.
Outputs. A draft reply with citations to document and section, or an explicit hand-off to a human when the policy does not answer the question.
Acceptance criteria.
- 1Every factual statement in a draft cites a section that actually contains it; check a random sample of twenty by hand and report the result.
- 2For the twenty uncovered questions, the system hands off rather than inventing an answer. Report how many it handled correctly.
- 3No draft promises a refund, replacement or timeline not stated in the policy documents.
- 4Messages written in Hinglish are included and reported as a separate slice.
- 5Median response time and approximate cost per draft are recorded.
Evidence to publish. The policy documents, the message set, a table of results by slice (covered, uncovered, Hinglish), five failure examples with explanations, and the prompt or configuration used.
Piece 3: Read-only analytics agent with a tool log
User and job. A store operations manager who asks plain-language questions about a small synthetic sales database and needs answers they can trust.
Inputs. A SQLite database with three tables (stores, products, daily sales) of synthetic data, plus thirty questions with known answers computed by you in SQL.
Outputs. An answer, the SQL the agent ran, and the rows it used.
Acceptance criteria.
- 1The database connection is read-only; demonstrate that an attempted
DELETEfails. - 2Every answer is accompanied by the executed SQL and can be reproduced by running that SQL.
- 3At least twenty-five of thirty answers match your precomputed values; publish the ones that don't with reasons.
- 4Questions about data not in the database ("what were last year's sales?" when only this year exists) get a clear "not available" answer.
- 5The agent stops after a fixed number of tool calls and says so, instead of looping.
Evidence to publish. The database generation script, the question set with expected answers, a full tool-call log for five questions, and the failure table.
Choosing which to build first
| If you are aiming for | Start with | Because |
|---|---|---|
| Analyst or operations roles adding GenAI | Piece 3 | It shows SQL judgement plus safe tool use |
| AI engineer or LLM developer roles | Piece 2 | Grounding, refusal and slices are what these interviews probe |
| Automation, finance or back-office roles | Piece 1 | Structured extraction with code-based checks is common real work |
| FDE roles | Piece 2 or 3, framed as a client engagement | FDE interviews test whether you can scope and prove value for a user |
A note on acceptance criteria you don't meet
Publish them anyway. "Criterion 3: 17 of 20 uncovered questions handed off correctly; the three failures all involved installation charges, which the policy mentions only indirectly" is a stronger portfolio line than an unexplained 100%. Reviewers look for evidence that you know where your system breaks.
For why a basic retrieval demo falls short of these specs, read why a RAG demo isn't a portfolio. To present any of these as a narrative, use the AI project case study structure. The Generative & Agentic AI add-on builds evaluated projects of this kind across its three months.
Frequently asked questions
How many LLM projects should be in my portfolio?
One or two finished, well-evidenced projects are more persuasive than five demos. Reviewers spend a few minutes per candidate; a project they can verify quickly beats a long list they cannot.
Can I use synthetic data in an LLM portfolio project?
Yes, and it is often the right choice because it avoids privacy and licensing problems. Say clearly that the data is synthetic and describe how you generated it, so the reviewer knows what the results do and do not show.
Pankit Kumar has 10 years in Data Science & AI, building and shipping production systems in regulated pharma and clinical environments. He is a freelance trainer at Boston Institute of Analytics, AnalytixLabs and Scaler, and has taught this material to thousands of working professionals.
This article is part of our Generative & Agentic AI programme — 3 months. Add practical GenAI, retrieval and agent-building skills to your existing toolkit.
Explore Generative & Agentic AI