This article tells the story of Bio To Schema, how it works, how it was created and why Person Schema matters.
If you have landed here just looking for the Bio To Schema tool, here it is ⬇️
Since ChatGPT took over the world in 2022, I've been exploring the best way to use it to facilitate my SEO work. I've used it to repurpose content across different channels, to help me write RegEx to use on Google Search Console and to break me out writer's block.
When GPT4 became available, with plugins and navigation capabilities, I found it did a really good job at writing Schema markup.
Lately I've been very interested in person Schema. I've been working very hard on mine and, for a very sweet moment, before I made a dumb mistake, I had a Knowledge Graph.
So when OpenAI offered the possibility of creating custom GPTs, with specific knowledge bases and instructions, I knew I had to make one for person Schema. I've been obsessed with this topic forever, so it had to be good.
And I did. I've launched the Bio To Schema GPT, open to any premium ChatGPT user.
What is the point of Person Schema?
The world will soon be flooded with trashy AI-generated content that nobody will want to read. This will increase distrust in online content and I believe that users will turn towards authenticity and personal connections.
Search engines have been turning to concepts like E-E-A-T for years, trying to make sure that the content they are serving to users will be helpful and written by a real expert. Adding author bylines and creating rich author pages is necessary, but Google might not have caught up with semantic understanding as well as they understand, well, code.
That's where Person Schema comes in. With Person Schema, we can declare to search engines why our author is an expert.
The aim of Bio To Schema is to empower you to understand how to turn author bios into schema markup and help you prove the value of it to leadership, so they can provide you with the budget and resources to implement this at scale on your site using other tools.
How I created my custom GPT
This is my first ever custom GPT, so I started working with OpenAI's GPT builder. It looks like a split pane of two chat conversations. On the left, a series of questions guide you through the process of building the tool, on the right, the tool is taking shape right before your eyes.
After lots of trial and error the GPT kept getting worse and worse, so I ventured into the advanced settings, the "configure" menu. This was much better.
Here I could provide instructions, conversation starters and, most importantly, a knowledge base.
Creating the custom GPT instructions
Because I didn't know how to prompt my custom GPT to create valid Person Schema that made sense, and without hallucinations. I outlined the process I would use if I was doing this manually to ChatGPT and asked it to come up with a set of step-by-step instructions for itself.
And it worked! It needed a lot of fine-tuning, but it worked.
These are the instructions for Bio To Schema at the time of writing this article:
Objective: The goal of this custom GPT is to convert author bios into SEO-friendly Person Schema in JSON-LD. Follow these instructions to accomplish this task:
Step 1: Review the content of your knowledge base.
Step 2: Assess the Author Bio
Analyze the provided author bio to identify key information such as the author's name, description, job title, workplace, education details, and educational institution.
Step 3: Fill in Missing Information
Check if any essential information is missing from the author bio.
- If the author's name is missing, ask the user for it.
- If the job title is missing, ask the user for it.
- If the workplace (worksFor) is missing, prompt the user to provide the organization or company name.
- If education details (hasCredential) are missing, ask for the highest degree obtained.
- If the educational institution (recognizedBy, alumniOf) is missing, prompt the user to provide the name of the school or university.
Note: recognizedBy is a property of hasCredential, it should not be used on its own.
Step 4: Gather Additional Information
Prompt the user to provide the following additional details:
- The author's personal website URL.
- A link to the author's headshot image.
- Information about whether there have been articles written about the author. If yes, ask for relevant links.
- Links to the author's profiles on various social media platforms and publications. Include links to LinkedIn, Twitter, Facebook, publications, Crunchbase, Wikipedia, and any other relevant profiles.
Step 5: Generate JSON-LD Person Schema
Create a JSON-LD code snippet in the Person Schema format using the gathered information. Use the URL of the personal website as "url". Use the provided author bio as "description". Use the provided headshot URL as "image".
The schema should display: personal details (name, description, jobTitle), information of current employment on the property "worksFor" (include name and URL), academic credentials ("hasCredential") and their corresponding educational institution ("recognizedBy"), and other profiles of the author (sameAs).
If the user confirms that the author has been a subject of articles in recognised publications, include them using the property "subjectOf". Use the object "Article" and include the property "url". If available, include the property "headline", "publisher" and "author".
Step 6: Create "knowsAbout" section
For the 'knowsAbout' section of the Person Schema, look for topics or areas of expertise relevant to the author in the author bio. For each topic, include:
- Topic Name: Clearly state the subject or field of expertise.
- Wikidata Link: Provide the URL to the corresponding item on Wikidata, which serves as a unique identifier for the topic.
- Wikipedia Link: Include the URL to the Wikipedia page for the topic, offering a detailed and accessible description.
This information enhances the schema by linking the author's expertise to recognized and authoritative sources, improving SEO and knowledge graph representation.
"name": "Topic Name",
"@id": "Wikidata URL",
"sameAs": "Wikipedia URL"
Step 7: Output
Present the finalized JSON-LD Person Schema to the user. Check the generated schema for any placeholders and alert the user if placeholders have been used. Ensure that all placeholders are replaced with actual information.
Step 8: Evaluate the Person Schema and suggest how it could be improved
Step 9: Completion
Confirm with the user that the generated Person Schema is accurate and complete.
Step 10: Offer to generate Person Schema for another author.
Creating a knowsAbout section for Person Schema
I've searched everywhere, and there is no good guide on how to provide knowsAbout schema. There just isn't. So I'll probably have to write it myself.
The documentation on Schema.org states that the valid values on this property are a string of text, a URL or a Thing object. That's some open-ended guidance.
So I decided to speak to my go-to Schema expert, Daniel K Cheung, and ask him some questions. After some back and forth, I think I got it.
First, Bio To Schema analyses the bio provided, looking for areas of expertise. It could be seen as some form of entity extraction.
Then it searches the web for Wikidata and Wikipedia links for each item.
It assembles the knowsAbout schema using the object type Thing, under which it nests:
A "name" property, that corresponds to the name of the area of expertise.
An @id property, pointing at the Wikidata URL.
A sameAs property, pointing at Wikipedia.
Both Wikipedia and Wikidata are reference sites for Google's Knowledge graph, but not everything that's on one is in the other, so this is a good way to provide explicit connections between entities.
Adding a custom knowledge base
Now, this is where the magic happens! The most interesting aspect of custom GPTs is the knowledge base. You can add a different set of resources to your knowledge base to help the GPT accomplish its goals.
Here's what I added in mine:
Examples of good person Schema - For this, I used my own Schema and created a few different examples based on celebrities and SEO experts.
The content of How to Trigger a Personal Knowledge Panel in Google by Jason Barnard.
A summary of Person Schema 101 by Daniel K Cheung.
A summary of How to Use Structured Data to Support E-A-T by Lily Ray.
The Schema.org documentation for Person Schema.
Further challenges and limitations
Bio To Schema is not an autonomous AI tool, so it needs to be spoon-fed some of its instructions. I've messed with the instructions a bunch to make it look for the missing author information online, but I have had very little success with it.
Bio to Schema does not offer the knowsAbout schema upfront the way it's instructed to unless you ask for it specifically. This is probably because I've set it up as step 6 in the instructions, right after the JSON-LD is assembled. My bad. I'll keep working on it.
Bio To Schema cannot multitask. Just ask it one thing at the time or you will get an error message. It will say it's a "network error" or tell you it lacks the capability to do it, but no, it's just lazy sometimes.
There is also the possibility that all of this might end up being just another form of spamming Google. Or that it has absolutely no effect on rankings whatsoever (tho I doubt it very much). Only time will tell.
For now, let's have fun creating stuff.