{"id":1098,"date":"2021-01-18T15:46:57","date_gmt":"2021-01-18T15:46:57","guid":{"rendered":"https:\/\/nilg.ai\/?p=1098"},"modified":"2022-05-31T13:43:57","modified_gmt":"2022-05-31T13:43:57","slug":"reducing-unemployment-using-ai","status":"publish","type":"post","link":"https:\/\/nilg.ai\/pt\/202101\/reducing-unemployment-using-ai\/","title":{"rendered":"Reducing Unemployment using AI"},"content":{"rendered":"<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-1102\" src=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/01\/pexels-cottonbro-5989926-1024x683.jpg\" alt=\"\" width=\"1024\" height=\"683\" \/>With COVID-19, many were affected by the economic crisis and lost their jobs. In Portugal alone, between February and September, <a href=\"https:\/\/expresso.pt\/economia\/2020-10-22-Covid-19.-Pandemia-aumenta-desemprego-em-84-dos-concelhos-do-pais\" target=\"_blank\" rel=\"noopener\">there was a 30% increase in unemployment<\/a>! AI can be a powerful tool in allocating scarce resources in a more efficient way. Inspired by <a href=\"https:\/\/www.dssgfellowship.org\/project\/predicting-long-term-unemployment-in-continental-portugal\/\" target=\"_blank\" rel=\"noopener\">DSSG Fellowship\u2019s Project in Partnership with IEFP<\/a> (Instituto de Emprego e Forma\u00e7\u00e3o em Portugal) we started to think about how we would help reduce unemployment using AI.<\/p>\n<p>Similar to DSSG\u2019s project, the goals that will be discussed here are:<\/p>\n<ol>\n<li><b>Better identify individuals at high risk of long-term unemployment<\/b>;<\/li>\n<li><b>Support more efficient allocation of the employment\/training institute\u2019s resources<\/b> to respond to the needs of unemployed individuals.<\/li>\n<\/ol>\n<p>This is a summary from an internal non-exhaustive discussion merely for learning purposes &#8211; there are multiple solutions, all of which depend on the development time and the data which you can access.<\/p>\n<h2><b>Data and Relevant Patterns<\/b><\/h2>\n<p>Let\u2019s assume that we can gather data when the <b>unemployed person<\/b> registers on the website platform, and all the job-related interactions are stored until the candidate finds a job. For simplification purposes, we can build our dataset given a list of <b>monthly snapshots<\/b> of all platform users\u2019 characteristics, which have a unique identifier.<\/p>\n<p><a href=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/01\/Data-Table.svg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-1105 attachment-svg\" src=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/01\/Data-Table.svg\" alt=\"\" \/><\/a><\/p>\n<h3>What raw information would be interesting to have?<\/h3>\n<p><a href=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/01\/Copy-of-Data-Categories.svg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-1104 attachment-svg\" src=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/01\/Copy-of-Data-Categories.svg\" alt=\"\" \/><\/a><\/p>\n<h4><b>Candidate<\/b><\/h4>\n<ul>\n<li>Demographic (Age, Gender, Civil State, Address)<\/li>\n<li>List of previous courses and education level<\/li>\n<li><i>Curriculum Vitae<\/i><\/li>\n<li>Years of Experience<\/li>\n<li>Maximum job distance to home<\/li>\n<li>Schedule in which he can work<\/li>\n<li>Number of dependents<\/li>\n<li>Disabilities<\/li>\n<li>Languages<\/li>\n<li>Skills<\/li>\n<\/ul>\n<p>How can we encode in a similar way the information from a person with 10 previous courses vs. one with 2?<\/p>\n<h5>Encoding Options for List of Previous Courses<\/h5>\n<ol>\n<li><b> Label Encoding:<\/b> We can represent each course as a number. But this means that the course number <b>k <\/b>is at a higher distance from course <b>k &#8211; 5<\/b> than course <b>k &#8211; 1<\/b>, which might not be the best way of representing this.<\/li>\n<li><b>One Hot Encoding:<\/b> We can represent each course as a new column. With too high dimensionality, this becomes very sparse.<\/li>\n<li><b>Content Based:<\/b> This approach considers a domain-specific representation, where we can encode the courses by several areas of expertise (e.g. Maths, Chemistry, Programming, etc). As values, we can represent it either as binary (course covers that area or not) or represent it by the average grade of the candidate in those areas.<\/li>\n<li><b>Embedding Based: <\/b>From a list of courses, train a vector representation (embedding) from scratch or based on content found in external sources so that similar courses have lower distances between them. We can then use a model that\u2019s able to deal with varying input shapes (e.g. RNN, CNN).<\/li>\n<\/ol>\n<h5><i>Encoding Options for Curriculum Vitae (CV)<\/i><\/h5>\n<p>The candidate\u2019s CV is also rich with data &#8211; we could use several NLP techniques to extract data from here, such as a Bag of Words or the average word embedding value (which has the advantage of having a semantic representation of words).<\/p>\n<p><b>Note on <a href=\"https:\/\/nilg.ai\/blog\/202008\/fairness-in-ai\/\">fairness<\/a>: <\/b>We could have added a feature related to the candidate\u2019s monthly expenses, as a way to estimate how much money he would need per month. But this could create a negative feedback loop &#8211; if he has low expenses due to not having the ability to live a better life, the model could be allocating him to offers with low salaries.<\/p>\n<h4><b>Context<\/b><\/h4>\n<ul>\n<li>Unemployment History (e.g. total number of months since last job, statistics of unemployment time in the past &#8211; max, mean, etc)<\/li>\n<li>Search Efforts (such as the total number of interviews, number of interviews above the minimum required threshold, percentage of recommended interviews attended)<\/li>\n<li>Search Consistency (e.g. standard deviation of days between interviews and of days between applications). Note that these features might be influenced by job offer scarcity, so it can end up giving unwanted biases to our model!<\/li>\n<\/ul>\n<h4><b>Offers (Job\/Formation)<\/b><\/h4>\n<ul>\n<li>Offer Name<\/li>\n<li>Offer Areas (e.g. Maths, Science, Programming, \u2026)<\/li>\n<li>Offer Remuneration<\/li>\n<li>Requirements<\/li>\n<li>Offered shifts<\/li>\n<li>Localization<\/li>\n<\/ul>\n<p>Ideally, we would represent the offer list in a comparable domain to the candidate\u2019s expertise, so our features could represent the similarity between the offer and the candidate skills. As such, offer areas would also be represented in a Content Based approach.<\/p>\n<p>If we were to use a model that cannot learn this relationship directly (e.g. tree based models) we could calculate pairwise features, such as the difference between the offer remuneration and the candidate\u2019s monthly expenses, or the intersection between the candidate and the offer\u2019s areas.<\/p>\n<h2><b>Modeling<\/b><\/h2>\n<p>After having all these features, we can create a model that, given a candidate snapshot in a month and a job offer, returns an employability score. There are several ways this employability score can be modeled, all of which can be tested and should be picked depending on how the model intends to be applied in production:<\/p>\n<ul>\n<li>Months until a job is found: allows us to determine how many months will the candidate still need to receive a monthly allowance from the government. Therefore, we can prioritize the cases according to this prediction.<\/li>\n<li>Number of interviews until the candidate is accepted: Doesn\u2019t tell us anything about the timeframe, since the candidate can do several interviews in a month or no interviews for several months.<\/li>\n<li>Multiclass risk classification, from Low to High, depending on a threshold (this is what was done in DSSG Fellowship): is not as actionable as the previous ones. However, a model might learn these patterns more easily, as the problem is reduced to an ordinal classification.<\/li>\n<\/ul>\n<p>Let\u2019s assume, for now, the model gives us the months until the candidate finds a job.<\/p>\n<h2>Reliable estimation of the model performance<\/h2>\n<p>We can evaluate the model performance using regression metrics such as the Mean Absolute\/Squared Error and the Spearman\/Pearson correlation coefficients between the target and the predicted value.<\/p>\n<p>Time is an important component in our learning system, and, as such, we must pay attention to the way we split our data for performance estimation. Random splits might \u201cleak\u201d information in training, giving overestimations of the model performance.<\/p>\n<p>As we\u2019re building a dataset with several rows for the same candidate in different months, if we had the same candidate in train and test, but in different months, we\u2019d know whether he found a job or not.<\/p>\n<p><a href=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/01\/Copy-of-Data-Table.svg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-1106 attachment-svg\" src=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/01\/Copy-of-Data-Table.svg\" alt=\"\" \/><\/a><\/p>\n<p>An initial approach is grouping the train\/test splits by <b>candidate<\/b> (A is in train, B is in test, in the above example).<\/p>\n<p>However, this approach still has the issue of time-leakage. Imagine that you were training the model with data from October 2020. You know, since a big shift in employment happened started in March 2020, that the average value of \u201cmonths until employment\u201d has increased, so you could also have an overestimation of model performance in predictions from months before.<\/p>\n<p>A possible solution is to do both temporal and grouped stratification: for instance, train with a list of applicants from the previous year, and test with a list of other applicants from the current year. In the above example, you could train with data from 2019, with a candidate list not considering A and B, and test it on 2020, in candidates A and B.<\/p>\n<h2><b>Decision-Making<\/b><\/h2>\n<p>We can optimize the employment institute\u2019s resources by calculating the model performance for a list of available job\/formation offers and having a cost function that tells us how good that offer is for that given candidate. We will not extensively discuss this in this blog post.<\/p>\n<p>Imagine, for instance, we want to create an email marketing campaign where we send a list of K offers for each candidate. We can decide (at least) two types of actions:<\/p>\n<p>&#8211; Improving candidate&#8217;s skills (e.g., courses).<\/p>\n<p>&#8211; Improve candidate exposure to jobs (e.g., interviews).<\/p>\n<p>This is an assignment problem with a huge number of possible combinations and budget\/time constraints.<\/p>\n<p>Two possible cost functions for this problem are.<\/p>\n<ol>\n<li>argmax [f(Candidate) &#8211; f(Candidate + Offer)], which gives us the decay in months until the candidate finds a job, for a given offer. We then want to find the offer that maximizes this decay.<\/li>\n<li>argmax [ (f(Candidate) &#8211; f(Candidate+Offer)) x UnemploymentAllowance + Costs(Offer) ], which considers processing costs related with a given offer and incorporates business metrics, such as the money that would be required to maintain that candidate<\/li>\n<\/ol>\n<p>This can then be optimized efficiently, for instance, with the use of metaheuristics, if the list of possible options is very large.<\/p>\n<p>There are some ethical concerns with such cost functions:<\/p>\n<ul>\n<li>Are we minimizing the average time for employment at the expense of offering jobs with lower salaries?<\/li>\n<li>Will optimizing this leave some people in &#8220;starvation&#8221; of job offers just because it&#8217;s harder to find good offers for them?<\/li>\n<\/ul>\n<p>To account for this, we can include some extra factors on the loss function to account for this, such as a multi objective search: considering time constraints for finding jobs for everyone and at the same time, reducing the average time people spend without a job.<\/p>\n<h2><b>Conclusion<\/b><\/h2>\n<p>This blogpost was written after an internal discussion where we discussed this topic. Obviously, it covers only a small fraction of what could be done with this topic. If you&#8217;re interested in having such discussions for a specific business problem you have, make sure to contact us!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With COVID-19, many were affected by the economic crisis and lost their jobs. In Portugal alone, between February and September, there was a 30% increase in unemployment! AI can be a powerful tool in allocating scarce resources in a more efficient way. Inspired by DSSG Fellowship\u2019s Project in Partnership with IEFP (Instituto de Emprego e [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":1102,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[84],"tags":[44,48,45],"class_list":["post-1098","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-use-case","tag-ai4business","tag-ai4tech","tag-machine-learning"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Reducing Unemployment using AI - NILG.AI<\/title>\n<meta name=\"description\" content=\"A proactive decision model for reducing unemployment using AI, including both a predictive model and a decision support module.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nilg.ai\/pt\/202101\/reducing-unemployment-using-ai\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reducing Unemployment using AI - NILG.AI\" \/>\n<meta property=\"og:description\" content=\"A proactive decision model for reducing unemployment using AI, including both a predictive model and a decision support module.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nilg.ai\/pt\/202101\/reducing-unemployment-using-ai\/\" \/>\n<meta property=\"og:site_name\" content=\"NILG.AI\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-18T15:46:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-31T13:43:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/01\/pexels-cottonbro-5989926-e1654003365942.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"1365\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Paulo Maia\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nilg_ai\" \/>\n<meta name=\"twitter:site\" content=\"@nilg_ai\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paulo Maia\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/\"},\"author\":{\"name\":\"Paulo Maia\",\"@id\":\"https:\/\/nilg.ai\/#\/schema\/person\/a860b9395bd25c5090160a3ac30e980d\"},\"headline\":\"Reducing Unemployment using AI\",\"datePublished\":\"2021-01-18T15:46:57+00:00\",\"dateModified\":\"2022-05-31T13:43:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/\"},\"wordCount\":1547,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/nilg.ai\/#organization\"},\"keywords\":[\"AI4business\",\"AI4tech\",\"Machine Learning\"],\"articleSection\":[\"Use Case\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/\",\"url\":\"https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/\",\"name\":\"Reducing Unemployment using AI - NILG.AI\",\"isPartOf\":{\"@id\":\"https:\/\/nilg.ai\/#website\"},\"datePublished\":\"2021-01-18T15:46:57+00:00\",\"dateModified\":\"2022-05-31T13:43:57+00:00\",\"description\":\"A proactive decision model for reducing unemployment using AI, including both a predictive model and a decision support module.\",\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nilg.ai\/#website\",\"url\":\"https:\/\/nilg.ai\/\",\"name\":\"NILG.AI\",\"description\":\"Create ever-improving businesses with AI\",\"publisher\":{\"@id\":\"https:\/\/nilg.ai\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nilg.ai\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nilg.ai\/#organization\",\"name\":\"NILG.AI\",\"url\":\"https:\/\/nilg.ai\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/nilg.ai\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/03\/logo.svg\",\"contentUrl\":\"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/03\/logo.svg\",\"caption\":\"NILG.AI\"},\"image\":{\"@id\":\"https:\/\/nilg.ai\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/twitter.com\/nilg_ai\",\"https:\/\/youtube.com\/@nilg_ai\",\"https:\/\/www.linkedin.com\/company\/nilg-ai\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/nilg.ai\/#\/schema\/person\/a860b9395bd25c5090160a3ac30e980d\",\"name\":\"Paulo Maia\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/nilg.ai\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9e3e7cb701fd6dcee37f7a4e9f73ef5a27f5741062c4cb179724a1052ea23086?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9e3e7cb701fd6dcee37f7a4e9f73ef5a27f5741062c4cb179724a1052ea23086?s=96&d=mm&r=g\",\"caption\":\"Paulo Maia\"},\"url\":\"https:\/\/nilg.ai\/pt\/author\/paulo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Reducing Unemployment using AI - NILG.AI","description":"A proactive decision model for reducing unemployment using AI, including both a predictive model and a decision support module.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nilg.ai\/pt\/202101\/reducing-unemployment-using-ai\/","og_locale":"pt_PT","og_type":"article","og_title":"Reducing Unemployment using AI - NILG.AI","og_description":"A proactive decision model for reducing unemployment using AI, including both a predictive model and a decision support module.","og_url":"https:\/\/nilg.ai\/pt\/202101\/reducing-unemployment-using-ai\/","og_site_name":"NILG.AI","article_published_time":"2021-01-18T15:46:57+00:00","article_modified_time":"2022-05-31T13:43:57+00:00","og_image":[{"width":2048,"height":1365,"url":"https:\/\/nilg.ai\/wp-content\/uploads\/2021\/01\/pexels-cottonbro-5989926-e1654003365942.jpg","type":"image\/jpeg"}],"author":"Paulo Maia","twitter_card":"summary_large_image","twitter_creator":"@nilg_ai","twitter_site":"@nilg_ai","twitter_misc":{"Written by":"Paulo Maia","Est. reading time":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/#article","isPartOf":{"@id":"https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/"},"author":{"name":"Paulo Maia","@id":"https:\/\/nilg.ai\/#\/schema\/person\/a860b9395bd25c5090160a3ac30e980d"},"headline":"Reducing Unemployment using AI","datePublished":"2021-01-18T15:46:57+00:00","dateModified":"2022-05-31T13:43:57+00:00","mainEntityOfPage":{"@id":"https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/"},"wordCount":1547,"commentCount":0,"publisher":{"@id":"https:\/\/nilg.ai\/#organization"},"keywords":["AI4business","AI4tech","Machine Learning"],"articleSection":["Use Case"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/","url":"https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/","name":"Reducing Unemployment using AI - NILG.AI","isPartOf":{"@id":"https:\/\/nilg.ai\/#website"},"datePublished":"2021-01-18T15:46:57+00:00","dateModified":"2022-05-31T13:43:57+00:00","description":"A proactive decision model for reducing unemployment using AI, including both a predictive model and a decision support module.","inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nilg.ai\/202101\/reducing-unemployment-using-ai\/"]}]},{"@type":"WebSite","@id":"https:\/\/nilg.ai\/#website","url":"https:\/\/nilg.ai\/","name":"NILG.AI","description":"Create ever-improving businesses with AI","publisher":{"@id":"https:\/\/nilg.ai\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nilg.ai\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/nilg.ai\/#organization","name":"NILG.AI","url":"https:\/\/nilg.ai\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/nilg.ai\/#\/schema\/logo\/image\/","url":"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/03\/logo.svg","contentUrl":"https:\/\/nilg.ai\/wp-content\/uploads\/2022\/03\/logo.svg","caption":"NILG.AI"},"image":{"@id":"https:\/\/nilg.ai\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/twitter.com\/nilg_ai","https:\/\/youtube.com\/@nilg_ai","https:\/\/www.linkedin.com\/company\/nilg-ai\/"]},{"@type":"Person","@id":"https:\/\/nilg.ai\/#\/schema\/person\/a860b9395bd25c5090160a3ac30e980d","name":"Paulo Maia","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/nilg.ai\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9e3e7cb701fd6dcee37f7a4e9f73ef5a27f5741062c4cb179724a1052ea23086?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9e3e7cb701fd6dcee37f7a4e9f73ef5a27f5741062c4cb179724a1052ea23086?s=96&d=mm&r=g","caption":"Paulo Maia"},"url":"https:\/\/nilg.ai\/pt\/author\/paulo\/"}]}},"_links":{"self":[{"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/posts\/1098","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/comments?post=1098"}],"version-history":[{"count":6,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/posts\/1098\/revisions"}],"predecessor-version":[{"id":1108,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/posts\/1098\/revisions\/1108"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/media\/1102"}],"wp:attachment":[{"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/media?parent=1098"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/categories?post=1098"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nilg.ai\/pt\/wp-json\/wp\/v2\/tags?post=1098"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}