A practical AI assistant for finding the most relevant SIOP 2026 sessions and building a conflict-free personal schedule.
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.
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"
)
)
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}
}