Build your ownEmployability & Enterprise
← The talk
The plain-English version

You don't need to code. You need to know what four things are called.

That's the whole idea from the talk. AI writes the actual code — your job is knowing which piece to ask for. Here's each of the four, with no jargon, plus a prompt you can copy and paste into any AI to try it yourself.

.html

HTML

The list of what's on the page.

Think of it as the skeleton, or a shopping list: a heading here, a paragraph there, a button, an image. It says what exists — not what any of it looks like.

?What it actually is

An HTML file is a plain text file that a web browser knows how to display. It's a series of labelled boxes — <h1>a big heading</h1>, <p>a paragraph</p>. Each label is called a tag. That's genuinely most of it.

✓Why it matters to you

Every tool, widget or page you'll ever make is, at heart, one HTML file. Once you know that a page is just a list of parts, "build me a tool" stops being scary — you're really asking for a tidy list with a bit of behaviour attached.

↺Try it yourself

Ask any AI (ChatGPT, Claude, Copilot, or the helpchat 👀) for this. You'll get a single file back.

Copy this into an AI Build me a single HTML file: a page with a heading "My First Widget", a short paragraph explaining it, and a button that shows an alert saying "It works!" when clicked. Keep everything in one file so I can save it and open it in a browser.

Save what it gives you as test.html, double-click it, and it opens in your browser. That's a working web page. You made it.

▤Getting it online (two easy routes)

Embedding (iframes). An iframe is a window that shows one web page inside another. It's how a tool built once can appear inside Target Connect (drop it into a custom page or content block), SharePoint, Canvas or a Teams tab — you paste one line and your widget shows up where students already are:

What an embed looks like<iframe src="https://your-site.com/my-widget.html" width="100%" height="500" style="border:0"></iframe>

Hosting (GitHub Pages). To get a public link, your file needs to live somewhere online. GitHub Pages hosts plain files like these for free:

  • Make a free account at github.com.
  • Create a repository (just a folder) and drag your .html files into it in the browser — no installing anything.
  • In the repo's Settings → Pages, switch it on. A minute later your files are live at yourname.github.io/repo/file.html.
  • Update a file? Drag the new version in. The live link updates itself.
If you only remember one thing: a web page is a list of parts. AI writes the parts; you decide what's on the list.
.css

CSS

The look, kept in its own file.

If HTML is the skeleton, CSS is the clothes and make-up. Same body, completely different appearance — and you can restyle everything without touching the skeleton underneath.

?What it actually is

CSS is a list of style rules: this heading is blue, buttons are rounded, the font is bold. The question is where those rules live — and that choice is the whole game.

⚖Inline styles vs a CSS file

There are two ways styling ends up on a page:

  • Inline / in-page styles live inside the tool itself — stuck onto each element as style="…", or in a <style> block at the top of that one file. Fast for a one-off, but every tool carries its own copy, and re-branding means editing all of them by hand.
  • A separate CSS file holds the styling once. Every tool links to it with a single line. Change the file, and every tool pointing at it updates at the same time.
Inline — trapped inside one tool<button style="background:#2563eb; border-radius:8px; padding:10px 18px">Go</button>
Shared file — written once, reused everywhere<link rel="stylesheet" href="brand.css"> <button class="btn">Go</button>

AI defaults to inline styles unless you say otherwise — it's the easy path for a single file. The moment you're building more than one thing, tell it to use a shared file instead. That one instruction is what turns a pile of tools into a platform.

✓Why it matters to you — the big one

Because the look sits in one shared file, every tool you build can point at the same one. Change your brand blue in that single file and thirty tools re-brand themselves at once. It's also why each tool stays tiny: it holds almost no styling of its own. This is the difference between twelve mismatched gadgets and one platform that looks like it belongs together.

◆Teaching AI your brand

AI can't guess your colours. Tell it once, clearly, and it'll get it right every time. Keep a short "brand brief" like the one below and paste it at the start of any build:

Your reusable brand brief Use this brand for everything you build (swap in your own values): - Font: [your brand font] (fall back to system sans-serif) - Primary colour: [your main hex, e.g. #2563eb] - Accent colour: [your accent hex, e.g. #f59e0b] - Text: near-black on a light background - Rounded corners (about 12px), generous spacing, bold headings. Put all styling in a separate CSS file called brand.css and link to it — don't hard-code styles inside the tool.

↺The habit that makes it a platform

When you ask AI to build a new tool, add one sentence:

"Link to my existing brand.css instead of writing new styles. If this tool needs a style that isn't in there yet, add it to that file rather than putting it inside this tool."

That single instruction keeps every tool sharing one wardrobe. Six months and thirty tools later, one edit still restyles the lot.

If you only remember one thing: keep the look in one shared file, and tell AI to use it — don't let each tool invent its own.
.json

JSON

Your content, in labelled boxes, kept out of the tool.

JSON is a spreadsheet with the column headings written next to every value. "name": "Ada" is just a labelled box. That's the whole idea.

?What it actually is

A JSON file holds data — a list of events, founders, questions, whatever — as labels and values:

What JSON looks like{ "role": "Data Analyst", "average_salary": 31500, "based_in": "Sunderland" }

✓Why it matters to you

When the content lives in a JSON file and the tool just reads it, the two come apart. Want to add an event or change a number? Edit the data. Nobody touches the tool, nothing breaks, and — crucially — you stop being the only person who can update it. That's when a tool stops being yours and starts being the team's.

↺Try it yourself

Copy this into an AIBuild me a single HTML file that reads a list of three careers events from a JSON file and shows them as cards (title, date, location). Put the events in a separate events.json file so I can edit them without touching the tool. Show me both files.

⚙The catch, and the clever bit: Airtable

Here's the real-world snag: most of your colleagues won't edit a JSON file — it looks like code, and one stray comma breaks it. So don't ask them to.

Instead, let them fill in an Airtable — a friendly online spreadsheet — and have a small automatic job turn that into the JSON for you, overnight, forever:

  • Staff type into Airtable like any spreadsheet. No training, no fear of breaking anything.
  • A free scheduled job (GitHub Actions can run one every night) reads the spreadsheet and writes a fresh .json file into your site.
  • Your tool just reads that file, as always. It never knows Airtable exists.
Ask an AI: "Write me a GitHub Action that reads my Airtable base every night and saves the rows as a JSON file in my repository." Then paste in your table's columns. It'll write the whole thing — you're the one who knew to ask.
If you only remember one thing: keep content in a data file, and give non-technical people a spreadsheet that feeds it.
API

APIs

A door into someone else's system that you're allowed to knock on.

An API is a service window. You ask a question in a set way — "what jobs match 'nurse'?" — and it hands back the answer as data (usually JSON). You never see their kitchen; you just order and receive.

?What it actually is

APIs are how live, always-up-to-date information gets into your tool without you keeping any of it yourself. Salary data, news headlines, job feeds — you ask the API, it replies, your tool draws the answer. None of the data is yours; you just know how to ask.

◎Some friendly APIs to explore

↺Try it yourself

Copy this into an AIBuild me a single HTML file that fetches the latest technology headlines from the Guardian's free Open Platform API and lists them with links. Explain where I paste my free API key, and keep it to one file.

🔑Keeping a key secret: Cloudflare Workers

Some APIs give you a key — a password that proves the requests are yours. A key must never sit in an HTML file, because anyone can read a web page's code. But your static tool has no "backend" to hide it in. So how?

The trick is a tiny middleman called a Cloudflare Worker (free). It's a few lines that live in the middle: your tool asks the Worker, the Worker holds the secret key and asks the real API, then passes the answer back. The key never leaves the middle. Your site stays a pile of simple files.

Ask an AI: "Write me a Cloudflare Worker that holds my Adzuna API key as a secret and passes job searches through to Adzuna, so my key never appears in my website's code."

Knowing which keys are secret and which aren't is one of those small bits of knowledge that changes what you can safely build. A brand colour is public. An API key is not. That's the whole rule.

If you only remember one thing: live data comes from someone else's door — and if that door needs a key, a tiny middleman holds it for you.
next

Where to actually start

Three steps, in order. That's it.

  • 1. Build one small thing. Use the HTML prompt above. Get a file, open it, feel it work. Nothing else matters until you've done this once.
  • 2. Before you build the second thing, pull the styling into one CSS file. It's the highest-value hour you'll spend — everything after it gets cheaper and stays consistent.
  • 3. Keep content in a data file, and hand it to a spreadsheet. That's what lets you walk away and have the tool keep living without you.
The one skill underneath all four: knowing enough about the shape of a problem to ask AI the right question. You've now got the words. That was the whole job.

!One important warning about Target Connect

Target Connect strips out a lot of code when you paste it into a content block — it will quietly remove scripts, some styling, and anything it considers unsafe. Something that works perfectly as its own file can look broken, or do nothing, once it's inside Target Connect.

So the rule is simple: always test in UAT first, inside the real Target Connect page, before it goes anywhere near students. What survives isn't always obvious, and the safest fix is usually to host the tool as its own file and pull it in with an <iframe> (see the HTML section) — an iframe is a sealed window, so nothing inside it gets stripped.

↩ Back to the talk