SIOP 2026 Recommender

siop recommender

A practical AI assistant for finding the most relevant SIOP 2026 sessions and building a conflict-free personal schedule.

Luděk Stehlík https://www.linkedin.com/in/ludekstehlik/
2026-04-18

Attending SIOP for the first time this year confronted me with something that more seasoned attendees are probably already used to and may even have a few tricks for handling.

I’m talking about the need to sift through a huge number of interesting sessions packed into 3–4 days of the conference and choose the ones that best match my interests and needs.

I’ll admit it freely: I was somewhat paralyzed by the sheer volume of options. The filtering options on the website did not help much either. Scrolling through everything was still endless and pretty mentally exhausting.

I needed help narrowing things down. As you can probably guess, AI came to the rescue 🤖 During our last Friday afternoon dedicated to exploration and experimentation, and over part of the weekend, I managed to build and deploy an app designed to help with exactly that.

What does it do?️

Give it a try and let me know whether it makes your SIOP planning at least a little bit easier. In my case, it helped a lot 🤓 You can access it here, or for now, just check the screenshots below (double-click any slide to zoom in).

⚠️ As is often the case with AI, treat its recommendations more as inspiration than as definitive guidance, and verify them against a reliable source such as the official SIOP schedule. The app works only with session titles, not abstracts; errors may have occurred during information extraction; and the embedding model used does not capture every semantic nuance. So there is plenty of room for mistakes.

Show code
library(pdftools)
library(swipeR)
library(htmltools)

pdf_file <- "siop_2026_recommender_screenshots.pdf"
img_dir <- "slides_img"

if (!dir.exists(img_dir)) dir.create(img_dir)

n <- pdf_info(pdf_file)$pages
files <- pdf_convert(
  pdf_file,
  format = "png",
  dpi = 150,
  filenames = sprintf("%s/page-%02d.png", img_dir, seq_len(n)),
  verbose = FALSE
)

wrapper <- do.call(
  swipeRwrapper,
  lapply(files, function(x) {
    htmltools::tags$div(
      class = "swiper-zoom-container",
      htmltools::tags$img(
        src = x,
        style = "width:100%; height:auto; display:block; margin:0 auto;"
      )
    )
  })
)

htmltools::div(
  style = "max-width: 700px; margin: 0 auto;",
  swipeR(
    wrapper = wrapper,
    width = "100%",
    height = "800px",
    zoom = TRUE,
    navigationColor = "black",
    paginationColor = "black"
  )
)

Citation

For attribution, please cite this work as

Stehlík (2026, April 18). Ludek's Blog About People Analytics: SIOP 2026 Recommender. Retrieved from https://blog-about-people-analytics.netlify.app/posts/2026-04-18-siop-2026-recommender/

BibTeX citation

@misc{stehlík2026siop,
  author = {Stehlík, Luděk},
  title = {Ludek's Blog About People Analytics: SIOP 2026 Recommender},
  url = {https://blog-about-people-analytics.netlify.app/posts/2026-04-18-siop-2026-recommender/},
  year = {2026}
}