satellytes / satellytes.com

The Satellytes website
https://satellytes.com
MIT License
15 stars 2 forks source link

Provide structured data for our Jobs #506

Closed georgiee closed 2 years ago

georgiee commented 2 years ago

We currently have https://satellytes.jobs.personio.de/ still activated but actually we don't want to use that second channel of jobs coming in because it's rendering "meta data" (or slug data is displayed as a section, example) we had to add to the description plus the form is not rendering as we like.

What hinders us from disabling it is the potential bad effects on SEO, because they have integrate Google Jobs by providing structured data while we ignored that topic so far.

I found this documentation about structured data: https://developers.google.com/search/docs/advanced/structured-data/job-posting

You can find on any personio job page generated for us like here. The following data is located before the closing body tag as a script tag. I think we should do that too and then we can disable the personio career page entirely πŸ™Œ

Thoughts where I need support from the one who takes this issue:

<script type="application/ld+json">
            {"@context":"https:\/\/schema.org\/","@type":"JobPosting","title":"Frontend Engineer","description":"<h1>Kurzbeschreibung<\/h1><p><p>We are looking for a Frontend Engineer (f\/m\/x) with first professional experience as a web developer. Become part of a team where you can expand and refine your handling of frameworks &amp; testing by experts.<\/p><\/p><br><h1>What you'll do<\/h1><p><ul><li>Web application development (Angular or React, sometimes Vue).<\/li><li>Development and maintenance of UI libraries (local or distributed)<\/li><li>Use as well as mock REST-based APIs.<\/li><li>E2E testing with Cypress<\/li><\/ul><\/p><br><h1>Who you are<\/h1><p><ul><li>You should have worked professionally as a web developer with frameworks like React or Angular for at least three years.<\/li><li>Experience in using testing tools like Jest &amp; Cypress. Testing is part of our daily work.<\/li><li>HTML\/CSS is the fundamental technology of the internet for you. We expect you to have a comfortable knowledge of HTML\/CSS. You should be informed about the latest developments in standards.<\/li><li>Experienced handling of RxJS is an advantage.<\/li><li>Dealing with shells like bash or zsh should not scare you. Your handling of Git should be practiced.<\/li><li>CI\/CD environments like Jenkins, Openshift, or Github Actions should not be unknown to you.<\/li><\/ul><\/p><br><h1>Why Satellytes?<\/h1><p><ul><li>Many of your colleagues are experts in the web and you can learn with us the routine handling of web frameworks, testing, accessibility &amp; HTML\/CSS.\u00a0<\/li><li>You are part of a very experienced team of web developers, who you can ask anytime if you have problems. Extensive code reviews and pair programming are part of our daily business.<\/li><li>We will provide you with everything you need to work, such as a laptop, books, and courses for further education.\u00a0<\/li><li>Remote work is a matter of course for us and it was like that even before Corona. Nevertheless, you are always welcome in the office. You should still come from the Munich area.<\/li><\/ul><\/p><br><h1>Sort Order<\/h1><p><\/p><br><h1>Slug<\/h1><p>frontend-engineer<\/p>","identifier":{"@type":"PropertyValue","value":"338504-41230"},"hiringOrganization":{"@type":"Organization","name":"Satellytes Digital Consulting GmbH","logo":"https:\/\/we-are-hiring.cdn.personio.de\/logos\/41230\/social\/6ca8f29950517ac39fcae0d6545a1fe6.png"},"jobLocation":{"@type":"Place","address":{"@type":"PostalAddress","streetAddress":"Sendlinger Stra\u00dfe   52","addressLocality":"M\u00fcnchen","addressRegion":"Bayern","postalCode":"80331","addressCountry":"DE"}},"datePosted":"2021-03-17","employmentType":["FULL_TIME"],"validThrough":""}
        </script>
milljoniaer commented 2 years ago

A first approach for this issue is available in the linked PR.

If we are finally sure that this whole google job thing works, I suggest to make sure that we use a new personio channel id for the applications coming in from google users.

Google jobs passes a utm_source=google_jobs_apply search param to the crawled urls. Maybe it is possible to check for that one and use then googles channel id.

feedm3 commented 2 years ago

Using utm_source is generally a very good idea to use it for the personio channel on our page. We don't need to change how google passes in the id, this one is fine. We need to change our links and update them with the utm_source paramter.

https://en.wikipedia.org/wiki/UTM_parameters

milljoniaer commented 2 years ago

As we still have to test if everything works and if our postings are shown in googles job search, I suggest to leave the issue open until we have something to verify that it works.

That way we will not forget about it.

milljoniaer commented 2 years ago

Using utm_source is generally a very good idea to use it for the personio channel on our page. We don't need to change how google passes in the id, this one is fine. We need to change our links and update them with the utm_source paramter.

https://en.wikipedia.org/wiki/UTM_parameters

That sounds nice, but we have to use valid "number ids" generated by personio itself, don't we?

That would mean that "google_jobs_apply" would not be a valid id and we would have to remap the utm_source.

georgiee commented 2 years ago

That sounds nice, but we have to use valid "number ids" generated by personio itself, don't we?

Exactly so we need some internal mapping. I think it's easier to keep the current parameter and in addition check of the utm parameter to translate it to a valid internal id .

I moved forward and created a channel entry, that's the ID: 713571 I named it "Google Search (UTM)" πŸ‘

milljoniaer commented 2 years ago

I have some thoughts regarding the recrawling of the Career-Detail Pages:

I have provided a new sitemap to google, since they recommend this to let them now which pages should be re-crawled.

But: our gatsby-plugin provides the last-modification date only to blog posts. Google uses the last modification date to check if a page has to be recrawled.

Maybe we could think of a way to add an last modification date to the career-details too (maybe via personio).

Otherwise it will take just some time until they get re-crawled.

milljoniaer commented 2 years ago

It is possible to do a live test for URLs (which is somehow different from the actual re-crawl of the page).

Doing this test for the staff-software-engineer shows that there are job postings on this Page.

image

Everything seems to work πŸ‘ . Shall we close this issue then?

The warnings are only a notification that two optional fields are missing (validThrough and baseSalary).

georgiee commented 2 years ago

Thanks for the check. I think we can close but let's inspect the crawler.

  1. I can find some Satellytes Jobs but only the backend one is referencing Satellytes Website Screenshot 2022-04-01 at 12 26 10

Plus the logo is missing, related to #516 somehow ?

  1. Testing another position (UX/UI) did not show the position nor the warnings. Do you know why? Does this happend with the other positions as well ?
milljoniaer commented 2 years ago

Currently there are those jobs availiable:

image

I dont get which posts, when and how Google crawls / gets job postings. But apparantly they are coming slowly.

Regarding the logo, I don't know why it does not work. I also do not know how Google currently feeds our knowledge panel (there is a logo displayed), but I guess it was made through the GUI by Eric.

The documentation says about logo changes two things

  1. setting the logo prop on the posting (faster way)
  2. getting general logo information to google (takes some time): but I guess we did this with #516 or erics knowledge panel

The only logo shown on google jobs is by glassdoor. They use the logo field.

Personio uses the logo field, but their provided logo is not squared and therefore it is not displayed.

I guess the only way now is to wait or to have a look if we can do something thfough the gui