Cómo funciona el planificador de carrera laboral

Esta página está destinada a explicar cómo funciona internamente la nueva sección titulada “Explorar el mercado laboral en España” para dejar por escritas sus virtudes y también sus limitaciones. Este proyecto tenía un alto grado de complejidad porque implicaba comprender y categorizar miles de ofertas de trabajo cada día. Para conseguirlo se ha recurrido a avanzadas técnicas de Lingüística Computacional con el objetivo de leer el texto de cada oferta y extraer de manera sistemática qué piden.

Las ofertas de trabajo se extraen del portal Indeed, el cual cuenta con una API que permite descargar listados de ofertas de trabajo. La API es muy útil para obtener la lista de ofertas por cada ciudad, pero no ofrece el texto completo de las ofertas, por lo que no es posible determinar los requisitos exactos del empleo ofrecido. Es por ello que es necesario ir uno a uno descargando cada elemento del listado. Cada día se suelen publicar entre mil y seis mil ofertas nuevas.

Se podría haber utilizado la API para buscar cada combinación de ciudad + empleo, pero hubiera requerido miles de peticiones cada día y hubiera sido mucho menos efectivo a la hora de clasificar las ofertas porque, como veremos a continuación, es necesario procesar el lenguaje de manera muy avanzada para conseguirlo. Por cada nueva oferta de trabajo se extraen las siguientes características:

Idiomas

Se busca la presencia de palabras como “inglés”, “francés”, “alemán” o “catalán” (los idiomas más pedidos). También se utiliza la librería LangId de Python para determinar el idioma de la oferta, si la oferta está en alguno de esos idiomas, se asume que ese lenguaje es requerido.

Los idiomas pedidos solo se muestran en la web si aparecen más de un determinado número de veces, porque de nada serviría saber que en el 0,03% de las ofertas piden alemán, por ejemplo.

Vehículo propio y carné de conducir

Se buscan variantes de estas palabras para determinar si estos dos elementos son necesarios o no. Se podría decir que la detección de estos elementos es casi 100% fiable, a menos que venga especificado de una manera muy poco convencional o que diga cosas como “no hace falta vehículo propio”, lo cual sería muy enrevesado y poco probable.

Experiencia

Se intenta detectar el número de años de experiencia que se piden. Se detectan rangos y números escritos con letras. El grado de detección es muy alto, aunque a veces da falsos positivos si la oferta contiene textos como “empresa con 5 años de experiencia en el sector”, que hablan de la empresa y no del futuro candidato.

Si no se detecta ningún valor, se asumirá que no viene especificada la experiencia necesaria, por lo que en principio cualquier candidato podría apuntarse.

Datos que no se procesan

Se ha convertido en costumbre no especificar el salario en las ofertas de trabajo, lo cual es bastante molesto. Después de haber revisado miles de ofertas de trabajo, podemos afirmar que menos del 30% incluye una referencia al salario. Y muchas de esas veces, los rangos de salario son casi absurdos (cosas como “salario de 10.000€ a 18.000€” o “salario según valía”). Haber implementado un método para detectar el salario hubiera sido laborioso y poco efectivo. Las estadísticas que se hubieran obtenido no habrían sido representativas porque tendrían en cuenta la inmensa minoría de las ofertas.

Hay que asumir que si el empleo no es de alta cualificación, nos pagarán algo cercano al salario mínimo por convenio. Y que si el empleo es más especializado, tendremos que negociar el salario directamente a posteriori.

Puesto de trabajo

Aquí es donde sucede la magia, porque es lo que realmente representaba un reto. El objetivo era ofrecer estadísticas por cada título oficial en cada ciudad de España, además de incluir puestos no cualificados como camarero, comercial, dependiente, etc.

Para un humano puede resultar obvio saber qué puesto se está ofertando y qué titulación es requerida, pero hacerlo de manera automática con una máquina es mucho más complicado. Hay muchas maneras de explicar el mismo puesto, con diferentes sinónimos y con diferentes construcciones.

Se contaba con una lista de trabajos no cualificados, títulos específicos (como carné de camión, título de socorrista, de vigilante, etc.), ciclos formativos de grado medio y superior, carreras universitarias y másteres oficiales. El objetivo era asignar cada oferta de trabajo a uno de esos puestos de la lista. El problema era intentar detectar incompatibilidades y cubrir todo el espectro semántico posible. Por ejemplo, es posible que pidan a alguien de limpieza en una “empresa dedicada a la Ingeniería Naval”. Es difícil no asignar esa oferta a la carrera de “Ingeniería Naval”.

Lo que hace el algoritmo es lo siguiente:

  • Algunos títulos tienen una lista de reglas muy específicas y son procesados de manera específica. En caso de que no hayan reglas específicas, se usará el sistema de puntos que se detalla en los puntos siguientes.
  • Hay una base de datos semántica para cada titulación/puesto. Incluye qué palabras buscar en el texto y qué palabras pueden aparecer cerca y cuales deben no aparecer. Por ejemplo, si aparece “programador” y “Java” pero aparece “ingeniero” cerca, quiere decir que un ciclo formativo de programación no sería suficiente.
  • Cada vez que se busca una palabra clave en el texto, se buscan las palabras que aparecen antes y después de esa misma y se van dando puntos a medida que van apareciendo palabras compatibles, y se sustraen puntos si aparecen palabras de la lista de exclusión.
  • Hay una serie de palabras que dan puntos extra, como “requisitos”, “formación”, “imprescindible” y similares. Hay otras que los quitan, como la negación “no”.
  • Al final se compara la lista de resultados y se seleccionan los títulos con más puntuación.

En cada intento se prueban todas las variantes posibles de género y número. Si queremos encontrar “camarero”, buscamos “camarera, camareros, camareras, camarer@s, camareros/as, camarero-a, etc.”.

El porcentaje de éxito actual es del 85%. Más de un 10% de las ofertas están en inglés u otros idiomas y son ignoradas porque podrían inducir a error. Las ofertas restantes (menos de un 5%) estaban escritas de una manera enrevesada y eran difíciles de categorizar incluso para un humano.

Dentro de ese porcentaje de éxito hay muchos casos de falsos positivos. A veces una oferta es asignada a un puesto de manera errónea. A veces es culpa del refinamiento del algoritmo, pero otras veces es culpa de la oferta de trabajo en sí. Algunas contienen requisitos absurdos, como una oferta para Fisioterapeutas que pedía a los candidatos “Arquitecto técnico, ingeniero o similar”. En cualquier caso, el objetivo de EnviaCurriculum.com es mejorar la detección al máximo de tal manera que los falsos positivos sean una minoría.

Qué pasa después

Cuando todas las estadísticas han sido recabadas para cada ciudad, se genera una página por cada combinación de ciudad + puesto. También se generan páginas generales por cada ciudad y cada puesto, para poder ver qué puestos se demandan más en una determinada ciudad,  o qué ciudades ofrecen más trabajo de un determinado puesto.

El párrafo de texto que aparece cada una de esas páginas es una mezcla de texto generado a máquina y texto escrito a mano. Las estadísticas se procesan y se generan unos párrafos que explican cómo se encuentra el mercado laboral para ese puesto de trabajo/ciudad.

A continuación del párrafo hay una lista de etiquetas: esas son las palabras clave que utilizan los algoritmos para clasificar ofertas de trabajo.

Conclusión

Esta herramienta es muy potente para planificar la carrera laboral de cualquier puesto de trabajo. Te permite saber qué día de la semana es mejor para buscar trabajo, durante qué meses se publican más ofertas, qué requisitos suelen pedir, etc. Sería muy laborioso buscar toda esa información a mano explorando portales de empleo, mientras que aquí de un vistazo se puede ver todo.

Además, los resultados de búsqueda de los portales de empleo no tienen en cuenta todas las variables que tenemos en cuenta nosotros, por lo que somos capaces de filtrar muchas ofertas que realmente no interesan e incluir ofertas que no habríamos sido capaces de encontrar nosotros mismos por estar escritas de otra manera.

Compartir por Whatsapp

Opiniones sobre artículo

Este artículo no tiene ninguna opinión todavía

    Escribir una opinión sobre artículo