Agenda de entrevistas consciente de zonas horarias: automatización e integraciones
El Problema de las "9:00 AM"
Imagina esto: un reclutador en San Francisco agenda una entrevista a las 9:00 AM con un candidato en Berlín. El reclutador escribe "9:00 AM" en un selector de fechas, presiona guardar, y se va a dormir sintiéndose productivo. El candidato en Berlín ve "6:00 PM" — perfecto, final de su jornada laboral. Su gerente de contratación, en una escala en Singapur, ve "12:00 AM" — y asume que alguien cometió un error.
Tres personas, una entrevista, tres horas de reloj de pared. Si alguno de ellos traduce mentalmente mal, alguien está sentado solo en una sala de video mientras los otros se preguntan dónde fue.
La contratación remota se ejecuta en esta línea de fallo todos los días. Hasta hoy, ClarityHire hacía lo que la mayoría de herramientas de programación hacen: almacenar la hora y permitir que el navegador de cada espectador la convirtiera a su zona local. Eso funciona — hasta que no. En el momento en que un reclutador dice "Te enviaré el slot de las 9:00 AM Pacífico" pero el correo muestra "5:00 PM" a un candidato en Londres que también está viajando, la ambigüedad gana.
Este lanzamiento arregla eso. Las entrevistas ahora llevan una zona horaria explícita que el programador eligió, separada de la zona local de cada espectador. Renderizamos ambas, lado a lado, para que haya exactamente una hora de reloj de pared que representa "la entrevista" — y una segunda para "tu hora, en caso de que olvides que estás volando mañana."
Lo que Cambió Bajo el Capó
Tres cambios, todos pequeños, todos dignos de hacerse bien:
1. Almacenamos zonas horarias IANA, no desplazamientos. "America/Los_Angeles" sobrevive a una transición de horario de verano. "UTC-8" no. Una entrevista programada en noviembre para enero se desplazaría silenciosamente una hora si almacenáramos desplazamientos. Los nombres IANA aseguran que la hora de reloj de pared que el programador pretendía es la hora de reloj de pared que se dispara, incluso cruzando límites de DST.
2. El programador elige una zona horaria explícitamente. El diálogo de programación ahora tiene un selector de zona horaria que se establece por defecto en la zona del navegador del programador pero puede ser anulado. Si eres un reclutador estadounidense programando en nombre de un gerente de contratación europeo que le gusta planificar en CET, puedes — y la invitación del candidato mostrará CET como la zona canónica con su propia zona como una traducción de cortesía.
3. Hora de reloj de pared + zona, no solo un instante. La entrada datetime-local representa lo que un humano escribió. Luego convertimos esa hora de reloj de pared a UTC usando la zona elegida — no la del navegador. Este es el error sutil que la mayoría de herramientas de calendario tienen: tratan la entrada como local del navegador incluso cuando el dropdown dice "Berlín." Usamos Intl.DateTimeFormat para calcular el desplazamiento real de la zona elegida en esa hora de reloj de pared instantánea y aplicarlo. Sin moment-timezone, sin dependencia extra — solo unas pocas líneas de código cuidadosamente probado.
Lo que Ves en la IU
El diálogo de programación ganó un icono de Globo y un selector de zona horaria con una lista curada de zonas comunes. Si la zona horaria de tu navegador no está en la lista (te vemos, Pacific/Pitcairn), se antepone automáticamente. Tan pronto como elijas una fecha, hora, y zona, una pequeña vista previa muestra cómo se ve la hora en tu zona local — útil cuando estás programando en la hora de un colega y quieres verificar que no los estás metiendo en una llamada a las 3 AM.
En la página de detalles de entrevista, los tiempos programados ahora se renderizan en la zona horaria canónica con una nota al pie "Tu hora" siempre que la zona del espectador difiera. Las líneas de tiempo de candidatos hacen lo mismo. Los filtros de fecha y consultas de análisis continúan funcionando en UTC bajo el capó, para que los informes se mantengan correctos sin importar dónde se ingresaron las filas.
Lo que Ven los Destinatarios de Correo
Las invitaciones de entrevista — uno de los correos de mayores apuestas que enviamos — ahora muestran la hora de entrevista en la zona horaria que el programador eligió, con la abreviatura de zona horaria justo al lado ("9:00 AM PDT"). No más escritura manual de "(Pacífico)" en la descripción del evento de calendario y rezando para que el cliente de correo del candidato respete la pista de zona horaria en el archivo .ics. La cadena de hora de reloj de pared en el correo es la cadena de hora de reloj de pared que es autoridad.
Una Nota sobre Invitaciones de Calendario
Para adjuntos de calendario .ics, los nombres de zonas horarias IANA son lo correcto para incorporar. Hacemos eso. Outlook, Google Calendar, y Apple Calendar todos interpretan zonas IANA correctamente. Si la aplicación de calendario de un candidato hace algo exótico, el cuerpo del correo aún lleva la cadena canónica "9:00 AM PDT" como respaldo — porque cinturón y tirantes es la postura apropiada cuando un slot de entrevista está en juego.
Migración
Las entrevistas existentes tienen una zona horaria null. Se renderizan igual que antes — hora local del espectador, sin etiqueta de zona — por lo que nada se rompe. Cualquier entrevista programada o reprogramada a partir de ahora toma una zona horaria explícita. Con el tiempo, la brecha histórica se cierra naturalmente; no hicimos un relleno en lote, porque adivinar la zona horaria pretendida del programador original después del hecho es exactamente el tipo de movimiento confiado pero incorrecto que toda esta característica pretende prevenir.
Por Qué Esto Importa Más Allá de Entrevistas
El mismo problema aparece en recordatorios de plazo ("completar antes de las 11:59 PM" — ¿de quién?), ventanas de prueba, y temporizadores SLA. Estamos comenzando con entrevistas porque es donde la ambigüedad cuesta más: un plazo de prueba perdido puede ser re-extendido; una entrevista perdida significa que el candidato cuestiona si tienes tu acto junto. La confianza es difícil de reconstruir y fácil de gastar. Así que gastamos las horas de ingeniería donde el presupuesto de confianza es más delgado.
Si alguna vez has tenido que enviar un mensaje de Slack "lo siento, creo que tenía la zona horaria incorrecta" a las 9:01 AM, esto es para ti.