Abdul Kabir Jawed

Full-Stack & Agentic AI Engineer — Karachi, Pakistan

My personal site. Not built yet — this repository currently holds the files that have to sit at the root of the domain, ready for the build to land on top of them.

Why the repository is named this

GitHub serves a repository at https://<user>.github.io/ only when the repository is named exactly <user>.github.io. Every other repository is a project page and gets served under a subpath, like /agent-mcp-rag-projects/.

That distinction matters for two things a subpath cannot do:

If this repository is ever renamed, both of those stop working and the site moves to a subpath. Don’t rename it.

What is in here

File Purpose
robots.txt Allows crawling and declares two sitemaps: this site’s, and the textbook’s at /agent-mcp-rag-projects/sitemap.xml
sitemap.xml One <url> entry so far. Add a block per page as the site grows.
entity-block.html A Person JSON-LD block with sameAs pointing at the GitHub and LinkedIn profiles. Paste it into the home page’s <head> when the real build lands. A copy is already live at the bottom of this file, so the served page carries it today.
_config.yml Sets the page title and description. Without it the <title> led with the hostname instead of the name.
googledc15661af8a2476b.html Google Search Console verification for the whole host. Do not delete it — removing it revokes verification for every page on the domain.

entity-block.html is not a page — it is a snippet. GitHub strips <script> tags out of rendered READMEs, so there is no way to state “the GitHub account and the LinkedIn profile are the same person” in machine-readable form anywhere on the GitHub profile itself. This site is the only place that can carry it, which is most of the reason it is worth shipping.

It is now shipped: Jekyll renders this README into index.html and kramdown passes raw HTML through, so the block at the bottom of this file reaches the served page. Verify with curl -s https://abdul-kabir-jawed.github.io/ | grep ld+json — expect two blocks, the theme’s WebSite and this Person.

When the build lands here

  1. Keep robots.txt and sitemap.xml at the repository root. If the build tool empties the root, move them into whatever directory it copies verbatim (public/ for most frameworks, static/ for Docusaurus).
  2. Paste the contents of entity-block.html into the home page <head>, and delete the duplicate copy at the bottom of this file — two Person blocks on one page is worse than one. Make sure the page also carries a visible <h1>Abdul Kabir Jawed</h1> and the job title as text: structured data and visible text should agree.
  3. Enable Pages: Settings → Pages → Source. Then check https://abdul-kabir-jawed.github.io/robots.txt actually returns the file.
  4. Search Console for this host is a URL-prefix property on https://abdul-kabir-jawed.github.io/ — which covers every project page on the domain, so it does not need repeating per repository. DNS verification is not available on a github.io subdomain; this used the HTML-file method, which is why googledc15661af8a2476b.html must survive every future build.

Abdul Kabir Jawed — Full-Stack & Agentic AI Engineer, Karachi, Pakistan GitHub · LinkedIn · abdulkabirjawed@gmail.com