Roxanne Fay is an actor, playwright, and director. As playwright, Roxanne was named a 2016 Hawthornden Writers’ Fellow (in residence, Hawthornden Castle, Scotland) and was twice awarded the Creative Pinellas Professional Artist Grant. Her play, Thrice To Mine (created at Hawthornden) premiered in 2019 at Bridge Street Theatre (New York). Roxanne regularly creates new works for the Dali Museum in St. Petersburg. Her first film, Breton And The Muse: A Midnight In Paris, was a focal point of the Dali’s acclaimed exhibition coordinated with Le Centre Pompidou (Paris) and was presented in multiple film festivals. As an actor, Roxanne was honored with the 2022 Berkie Award (Berkshire Theatre Critics’ Association) for her portrayal of Mary Tyrone in Bridge Street Theatre’s Long Day’s Journey Into Night (New York) and she joined the 2022 season with the Prague Shakespeare Company in the Czech Republic. She is an Artistic Associate at Jobsite Theater, appearing in The Beauty Queen Of Leenane, Hamlet, Doubt, The Tempest, Twelfth Night, As You Like It, Much Ado About Nothing, and HIR, as well as directing Dr. Ride’s American Beach House. Roxanne was part of the original cast of OZ for freeFall Theatre and her roles there include Emma Brookner in The Normal Heart and Nurse Ratched in One Flew Over The Cuckoo’s Nest. Book versions of her works, Thrice to Mine and Upon This Rock: The Magdalene Speaks are available on Amazon.
As of 2025, we handle Season Tickets for the remainder of the main stage season directly with you. Submit the form below, and we’ll get back to you as soon as we can!
Contact Us
Jobsite Giving Challenge
Help with our most urgent 24 hours of fundraising Apr. 28-29
Ask about volunteering for shows, fundraisers, or just Jobsite in general.
Contact Us About A Show
We love your feedback. Share your thoughts about a show you saw!
#GivingTuesday
Tue., Dec. 2 is #GivingTuesday, a world-wide day of online giving, and that weekend, Sat., Dec. 6, we host our signature Jobsite Rocks! event. We hope fans will participate in one or both events that week, and share our story with your friends and associates.
Request tickets to be donated to your organization.
Technical Director Contact
Questions for our Technical Director.
Staged Readings Contact
To perform in a reading, have your script considered, or have other Staged Readings questions.
Contact The Artistic Director
Get in touch with Artistic Director David M. Jenkins for all business and production related questions and touring information.
Contact The Development Chair
Donating to fundraisers, plus any other grant or sponsorship questions.
Auditions Contact
Audition questions, scheduling, resumes and headshots. Also, read about our auditions for more info.
Donations & Support Contact
Be a Jobsite sponsor, send us something from our wishlist, advertising questions, etc.
Tickets Contact
General questions and information regarding tickets, group rates, discounts, and individual ticket donations.
Contact The Webmaster
Email our Online Producer regarding website questions, broken links and general kudos for all around groovy site design.
document.addEventListener('DOMContentLoaded', function () {
// Only run if Vimeo Player API is available or can be loaded
function initVimeoSync() {
if (typeof Vimeo === 'undefined' || !Vimeo.Player) {
// Try to load the Vimeo player API if it's not present
var script = document.createElement('script');
script.src = 'https://player.vimeo.com/api/player.js';
script.onload = setupVimeoCarouselSync;
document.head.appendChild(script);
} else {
setupVimeoCarouselSync();
}
}
function setupVimeoCarouselSync() {
// Find all Vimeo iframes inside the specific carousel
var carousel = document.querySelector('.vimeo-sync-carousel');
if (!carousel) return;
var vimeoIframes = carousel.querySelectorAll('iframe[src*="vimeo.com"]');
if (!vimeoIframes.length) return;
// Create Vimeo player instances
var players = [];
vimeoIframes.forEach(function (iframe) {
try {
var player = new Vimeo.Player(iframe);
player.on('play', function () {
// Pause all OTHER players when this one starts playing
players.forEach(function (otherPlayer) {
if (otherPlayer !== player) {
otherPlayer.pause().catch(function () {
// Ignore errors (e.g., not ready yet)
});
}
});
});
players.push(player);
} catch (e) {
// silently ignore if something isn't a valid Vimeo iframe
}
});
}
initVimeoSync();
// In case Elementor loads content via AJAX (popups, etc.), re-run when DOM changes
document.addEventListener('elementor/popup/show', initVimeoSync);
});