THE SINGLE COMPONENT MCS®-48 SYSTEM
SINGLE COMPONENT MCS®-48 SYSTEM
A plataforma ApplyIT recebe candidaturas a oportunidades todos os dias, armazenando uma grande quantidade de CV. Estes CV apresentam-se nos mais variados formatos. Uma percenta- gem, analisada no Capítulo5, está no formato Europass PDF+XML e a sua informação pode ser extraída de forma automática, diminuindo significativamente o tempo gasto pelos recrutadores a analisar CV e a organizar a informação dos mesmos. Desta forma, foi desenvolvida uma ferra- menta que permite extrair esse conteúdo e preencher os detalhes de um candidato da ApplyIT, fazendo corresponder o conteúdo de cada componente presente no CV à componente respetiva
na plataforma ApplyIT. Através desta ferramenta também é possível criar um candidato de raiz diretamente na plataforma se o seu CV estiver no mesmo formato.
4.5.1.1 Extração dos Conteúdos de um CV Europass
A partir de um CV Europass no formato XML ou PDF+XML é possível extrair todas as infor- mações presentes no CV e estruturá-las num objeto candidato com propriedades que correspondem às suas informações pessoais e profissionais, tornando mais fácil a pesquisa de candidatos pelas suas competências e a visualização da informação dos mesmos.
Para obter um CV neste formato o candidato deve guardar e descarregar o seu CV diretamente da plataforma Europass, escolhendo PDF+XML ou XML como formatos. Na Figura4.3é possível ver todos os formatos em que é possível descarregar um CV produzido na plaforma Europass.
Figura 4.3: Formato do CV Europass
Posteriormente, o candidato pode atualizá-lo, voltando a fazer o upload do ficheiro que tinha descarregado previamente2.
O processo de extração dos conteúdos de um CV no formato Europass PDF+XML é feito com o auxílio da REST API pertencente ao conjunto de Web Services (WS) disponibilizados pelo Europass3. O WS utilizado para a extração é o "XML Extraction"4.
Este processo consiste no envio do ficheiro no formato PDF+XML utilizando o método POST através do WS da API do Europass. O pedido enviado, o seu cabeçalho e corpo e possíveis estados de retorno do WS estão descritos nas Tabelas4.1,4.2e4.3. A chamada a este WS também é feita
2https://europass.cedefop.europa.eu/editors/en/cv/upload
3http://interop.europass.cedefop.europa.eu/web-services/rest-api-summary
utilizando a biblioteca RestSharp e o ficheiro PDF+XML é enviado no formato byte array. O método File.ReadAllBytes([path]) permite obter o byte array correspondente aos conteúdos do ficheiro, passando como argumento o caminho do mesmo. A implementação da chamada ao webservice"XML Extraction"é apresentada em maior detalhe no AnexoA.2.
Tabela 4.1: Pedido Extração XML.
Método URL
POST https://europass.cedefop.europa.eu/rest/v1/document/extraction
Tabela 4.2: Cabeçalho e corpo do pedido.
Request Headers Request Body
Content-Type: application/pdf Europass no formato PDF+XML
Tabela 4.3: Estados de retorno do Web Service.
Código Resposta
200 OK - retorna Europass no formato PDF+XML no Content
400 Bad Request - Erro no processamento do ficheiro
403 Forbidden
404 Not Found - O URL não está correto
405 Method Not Allowed
406 Not Acceptable
415 Unsupported Media Type - O formato/conteúdo do ficheiro não é suportado
500 Internal Server Error
503 Service Unavailable
Se a chamada ao webservice de extração do XML não retornar um erro, o conteúdo da resposta é semelhante ao observado no AnexoA.3.
Obtendo o XML estruturado extraído do ficheiro Europass, é possível proceder à leitura dos dados. Com o auxílio da framework LINQ5 disponível em .Net, que permite realizar operações de consulta em várias fontes de dados e manipular XML em memória, é possível extrair toda a informação presente no ficheiro XML resultante para as propriedades específicas de um objeto Candidato. Este objeto Candidato é definido com propriedades associadas aos seus dados pessoais, profissionais e académicos. A Tabela4.4apresenta o objeto Candidato de forma mais detalhada.
Tabela 4.4: Definição da Estrutura do objeto Candidato.
Propriedade Descrição
Nome Nome do Candidato
E.mail Email do Candidato
Género Sexo do Candidato
Data de Nascimento Data de Nascimento do Candidato
Nacionalidade Nacionalidade do Candidato
Cidade Cidade do Candidato
País País do Candidato
Foto de Apresentação Foto de apresentação do Candidato
Endereço Endereço do Candidato
Código Postal Código Postal do Candidato
Licença de Condução Licença/Habilitações de Condução do Candidato
Telemóvel Telemóvel do Candidato
Telefone Telefone do Candidato
Serviço IM Serviço de mensagens instantâneas do Candidato
Conta Serviço IM Conta do serviço de mensagens instantâneas do Candidato
URL de Websites/Redes Sociais
Websitese links para Redes Sociais do Candidato
Experiência Profissional Experiência Profissional do Candidato ("Experiência Profissio- nal",4.5) — implementação apresentada no AnexoA.4.2 Graus Académicos Informação relativa à Educação do Candidato ("Educação", 4.6)
— implementação apresentada no AnexoA.4.3
Idiomas Idiomas falados pelo Candidato e respetiva classificação da
Capacidade ("Idioma", 4.7) — implementação apresentada no AnexoA.4.4
Conquistas Conquistas do Candidato, como Certificações e Publica-
ções ("Conquista", 4.8) — implementação apresentada no AnexoA.4.6
Competências de Comu- nicação
Capacidades de Comunicação do Candidato
Competências de Gestão Capacidade de Gestão do Candidato
Outras Competências Outras Competências do Candidato
Competência Digital Competência Digital do Candidato ("Competência Digital", 4.9) — implementação apresentada no anexoA.4.5
Categoria Categoria profissional do Candidato
Tabela 4.5: Definição da Estrutura da Experiência Profissional.
Propriedade Descrição
Data de Início Data de início da experiência profissional do Candidato
Data de Fim Data de fim da experiência profissional do Candidato (só se aplica
se a propriedade "Em Curso"for false)
Em Curso Indica se a experiência profissional ainda está a decorrer (faz parte
do presente)
Posição Cargo do Candidato na Entidade Empregadora
Descrição Descrição das tarefas desempenhadas no cargo/na experiência
profissional
Nome do Empregador Designação da Entidade que emprega/empregou o Candidato
Websitedo Empregador Websiteda Entidade que emprega/empregou o Candidato
Setor Área profissional em que a Experiência do Candidato se insere
Tabela 4.6: Definição da Estrutura de um Grau Académico.
Propriedade Descrição
Data de Início Data de início da formação académica
Data de Fim Data de fim da formação académica (só se aplica se a propriedade
"Em Curso"for false)
Em Curso Indica se a formação académica ainda está a decorrer (faz parte
do presente)
Título Designação do grau académico
Organização Designação da Entidade responsável pela atribuição do grau aca-
démico
Competências Adquiridas Descrição das capacidades e conhecimentos adquiridos na forma- ção académica
Nível de Qualificação Nível de qualificação do grau académico
Tabela 4.7: Definição da Estrutura de um Idioma.
Propriedade Descrição
Língua Materna Indica se é o idioma principal do Candidato
Idioma Idioma falado pelo Candidato
Nível de Compreensão Capacidade do Candidato de compreensão do idioma falado
Nível de Leitura Capacidade do Candidato de leitura do idioma escrito
Nível de Interação Falada Capacidade do Candidato de interagir nesse idioma
Nível de Produção Falada Capacidade do Candidato de produzir diálogo nesse idioma
Tabela 4.8: Definição da Estrutura de uma Conquista.
Propriedade Descrição
Título Título da Conquista
Descrição Descrição da Conquista
Tabela 4.9: Definição da Estrutura de uma Competência Digital.
Propriedade Descrição
Nome Designação da Competência Digital
Descrição Descrição das Competências Digitais
Nível de Comunicação Capacidade de Comunicação do Candidato
Nível de Criação de Con- teúdo
Capacidade de criar conteúdo por parte do Candidato
Nível de Processamento de Informação
Capacidade de processar informação do Candidato
Nível de Resolução de Problemas
Capacidade de resolver problemas do Candidato
Nível de Segurança Capacidade do avaliar e proteger conteúdo por parte do Candidato Outras Competências Ad-
quiridas
Descrição de outras Competências Digitais do Candidato
Certificados Nomeação de Certificados relativos a Competências Digitais
Para efetuar o parse do XML resultante de forma mais intuitiva são removidos os namespa- cesassociados. A partir do XML sem namespaces é criado um XDocument6, como resultado do método XDocument.Parse, o qual vai ser consultado com a ajuda da framework LINQ. A Lista- gem4.5representa a remoção dos namespaces do XML e a chamada do método de extração dos dados estruturados no XML.
1 XElement xmlDocumentWithoutNs =
Utils.Utils.RemoveAllNamespaces(XElement.Parse(xmlToParse)); 2
3 XDocument xmlParsed = XDocument.Parse(xmlDocumentWithoutNs.ToString());
Listing 4.5: Parse do XML extraído do ficheiro PDF+XML
Na extração dos conteúdos do CV é analisado o XML sem namespaces e os dados são co- piados para as propriedades do objeto candidato. O AnexoA.4.1 representa a implementação, em C#, da extração dos campos relativos aos detalhes pessoais dos candidatos. Estes campos são
essenciais para os recrutadores os identificarem rapidamente e conhecerem as suas competências de comunicação, de gestão e outras que estes tenham especificado.
Depois de extrair todos os campos correspondentes às propriedades do objeto Candidato, é possível utilizar o objeto resultante para apresentar as informações do candidato na ApplyIT de forma mais clara e tipificada. Na Figura4.4 é apresentado o processo de extração do XML e as vantagens associadas.
Figura 4.4: Extração da informação de um CV.
Contudo, as competências técnicas adquiridas pelo candidato, os Hard Skills, não são extraídos de forma tipificada uma vez que estão incluídos na descrição da Experiência Profissional e do Grau Académico. Desta forma, não podem ser pesquisados ou utilizados para fins estatísticos. Para colmatar essa falha é utilizada a ferramenta Solr.