[{"data":1,"prerenderedAt":44},["ShallowReactive",2],{"docs:rendered-article:\u002Fdocs\u002Fpublic\u002Fguides\u002Fcurrent-position-resolution":3},{"path":4,"slug":5,"title":8,"description":9,"category":6,"categoryLabel":10,"order":11,"status":12,"family":13,"subfamily":13,"content":14,"html":15,"examplesHtml":16,"excerpt":17,"readTimeMinutes":18,"headings":19,"examplesHeadings":39,"lastUpdated":13,"endpointId":13,"requiredFlag":13,"relatedArticlePaths":40,"badge":13},"\u002Fdocs\u002Fguides\u002Fcurrent-position-resolution",[6,7],"guides","current-position-resolution","Current position and work history ordering","Understand the fixed rules we use to pick a person's current job and to order their work experience and education.","Guides",35,"new",null,"\nA person's profile can list many jobs and several schools, but the API always returns them in a predictable shape: one job is singled out as the `currentPosition`, and the `experience` and `education` arrays follow a fixed order. This guide explains, in plain language, the two rules behind every profile we return.\n\n## Why it is not obvious\n\nCareer histories are messy:\n\n- Someone may list several jobs with no end date (a main role, a board seat, an advisory gig), so \"the one that is still open\" is not always enough on its own.\n- Dates can be missing or vague.\n- Job titles come from different data sources that do not always agree.\n\nSo we follow a clear, fixed set of tie-breakers, always in the same order, so the result is predictable.\n\n## How the current position is chosen\n\nWe ask up to four questions, in order, and stop at the first one that gives an answer:\n\n1. **Do we already know which company they currently work at?**\n   If yes, look only at their jobs at that company and pick the one they started most recently.\n\n2. **Otherwise, do we at least know the company name?**\n   Match jobs by company name instead, and again pick the most recently started one. Some data sources give us a name but not a precise company identifier.\n\n3. **Otherwise, which jobs have no end date?**\n   Among the jobs that are still open (no end date), pick the one they started most recently.\n\n4. **Last resort: pick the most recent.**\n   If nothing above applies, pick whichever job they started most recently.\n\n\"Most recently started\" is the consistent tie-breaker at every step. If a job has no start date at all, it always loses to a job that has one.\n\nIf the person has no jobs listed, there is simply no current position, and the field is `null`.\n\n## How experience and education are ordered\n\nEvery profile is returned with its `experience` and `education` arrays sorted the same way:\n\n- **Most recent first**, based on the start date.\n- **Entries without a start date go at the end** of the list.\n- **If two entries start on the same date**, the one that is still ongoing (no end date) comes first.\n\nThe same rule applies to jobs and to schools. And it does not depend on where the profile came from: a result served from our database and a fresh live lookup are ordered identically.\n\n## A quick example\n\nSay Maria's profile lists:\n\n| Job | Company | Started | Ended |\n| ------------- | ------ | ------- | ------- |\n| Advisor | Acme | 2018 | Ongoing |\n| Head of Sales | Globex | 2021 | Ongoing |\n| Sales Lead | Globex | 2023 | Ongoing |\n| Mentor | Volunteerly | Unknown | Ongoing |\n\nFor the current position:\n\n- If our data tells us her current company is Globex, we look only at the two Globex jobs and pick the newest: Sales Lead (2023).\n- If we had no company hint at all, step 3 applies: all four jobs are ongoing, so we pick the most recently started one, again Sales Lead (2023). The Mentor role has no start date, so it can never win.\n\nEither way the rule lands on the same sensible answer, and it gets there the same way every time.\n\nAnd regardless of how the current position is resolved, her `experience` array always comes back in the same order: Sales Lead (2023), Head of Sales (2021), Advisor (2018), then Mentor last because it has no start date.\n\n## What this means in practice\n\n- The **first item** in `experience` is the person's most recent role, and `currentPosition` is the job we determined they hold today.\n- The order is always computed on our side — it never depends on how the underlying data arrived.\n- If a profile shows a surprising current job, the cause is usually a missing or outdated date in the source data, not the rules above.\n\n## Why it is built this way\n\nBefore, different data sources inferred the current job — and listed experiences — slightly differently, so the same person could look different depending on where the data came from. Now there is one set of rules, applied everywhere the API returns a profile, so the result is consistent and explainable.\n","\u003Cp>A person’s profile can list many jobs and several schools, but the API always returns them in a predictable shape: one job is singled out as the \u003Ccode>currentPosition\u003C\u002Fcode>, and the \u003Ccode>experience\u003C\u002Fcode> and \u003Ccode>education\u003C\u002Fcode> arrays follow a fixed order. This guide explains, in plain language, the two rules behind every profile we return.\u003C\u002Fp>\n\u003Ch2 id=\"why-it-is-not-obvious\">Why it is not obvious\u003C\u002Fh2>\n\u003Cp>Career histories are messy:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Someone may list several jobs with no end date (a main role, a board seat, an advisory gig), so “the one that is still open” is not always enough on its own.\u003C\u002Fli>\n\u003Cli>Dates can be missing or vague.\u003C\u002Fli>\n\u003Cli>Job titles come from different data sources that do not always agree.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>So we follow a clear, fixed set of tie-breakers, always in the same order, so the result is predictable.\u003C\u002Fp>\n\u003Ch2 id=\"how-the-current-position-is-chosen\">How the current position is chosen\u003C\u002Fh2>\n\u003Cp>We ask up to four questions, in order, and stop at the first one that gives an answer:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>Do we already know which company they currently work at?\u003C\u002Fstrong>\nIf yes, look only at their jobs at that company and pick the one they started most recently.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Otherwise, do we at least know the company name?\u003C\u002Fstrong>\nMatch jobs by company name instead, and again pick the most recently started one. Some data sources give us a name but not a precise company identifier.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Otherwise, which jobs have no end date?\u003C\u002Fstrong>\nAmong the jobs that are still open (no end date), pick the one they started most recently.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Last resort: pick the most recent.\u003C\u002Fstrong>\nIf nothing above applies, pick whichever job they started most recently.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>“Most recently started” is the consistent tie-breaker at every step. If a job has no start date at all, it always loses to a job that has one.\u003C\u002Fp>\n\u003Cp>If the person has no jobs listed, there is simply no current position, and the field is \u003Ccode>null\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch2 id=\"how-experience-and-education-are-ordered\">How experience and education are ordered\u003C\u002Fh2>\n\u003Cp>Every profile is returned with its \u003Ccode>experience\u003C\u002Fcode> and \u003Ccode>education\u003C\u002Fcode> arrays sorted the same way:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Most recent first\u003C\u002Fstrong>, based on the start date.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Entries without a start date go at the end\u003C\u002Fstrong> of the list.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>If two entries start on the same date\u003C\u002Fstrong>, the one that is still ongoing (no end date) comes first.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The same rule applies to jobs and to schools. And it does not depend on where the profile came from: a result served from our database and a fresh live lookup are ordered identically.\u003C\u002Fp>\n\u003Ch2 id=\"a-quick-example\">A quick example\u003C\u002Fh2>\n\u003Cp>Say Maria’s profile lists:\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Job\u003C\u002Fth>\n\u003Cth>Company\u003C\u002Fth>\n\u003Cth>Started\u003C\u002Fth>\n\u003Cth>Ended\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Advisor\u003C\u002Ftd>\n\u003Ctd>Acme\u003C\u002Ftd>\n\u003Ctd>2018\u003C\u002Ftd>\n\u003Ctd>Ongoing\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Head of Sales\u003C\u002Ftd>\n\u003Ctd>Globex\u003C\u002Ftd>\n\u003Ctd>2021\u003C\u002Ftd>\n\u003Ctd>Ongoing\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Sales Lead\u003C\u002Ftd>\n\u003Ctd>Globex\u003C\u002Ftd>\n\u003Ctd>2023\u003C\u002Ftd>\n\u003Ctd>Ongoing\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Mentor\u003C\u002Ftd>\n\u003Ctd>Volunteerly\u003C\u002Ftd>\n\u003Ctd>Unknown\u003C\u002Ftd>\n\u003Ctd>Ongoing\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>For the current position:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>If our data tells us her current company is Globex, we look only at the two Globex jobs and pick the newest: Sales Lead (2023).\u003C\u002Fli>\n\u003Cli>If we had no company hint at all, step 3 applies: all four jobs are ongoing, so we pick the most recently started one, again Sales Lead (2023). The Mentor role has no start date, so it can never win.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Either way the rule lands on the same sensible answer, and it gets there the same way every time.\u003C\u002Fp>\n\u003Cp>And regardless of how the current position is resolved, her \u003Ccode>experience\u003C\u002Fcode> array always comes back in the same order: Sales Lead (2023), Head of Sales (2021), Advisor (2018), then Mentor last because it has no start date.\u003C\u002Fp>\n\u003Ch2 id=\"what-this-means-in-practice\">What this means in practice\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>The \u003Cstrong>first item\u003C\u002Fstrong> in \u003Ccode>experience\u003C\u002Fcode> is the person’s most recent role, and \u003Ccode>currentPosition\u003C\u002Fcode> is the job we determined they hold today.\u003C\u002Fli>\n\u003Cli>The order is always computed on our side — it never depends on how the underlying data arrived.\u003C\u002Fli>\n\u003Cli>If a profile shows a surprising current job, the cause is usually a missing or outdated date in the source data, not the rules above.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"why-it-is-built-this-way\">Why it is built this way\u003C\u002Fh2>\n\u003Cp>Before, different data sources inferred the current job — and listed experiences — slightly differently, so the same person could look different depending on where the data came from. Now there is one set of rules, applied everywhere the API returns a profile, so the result is consistent and explainable.\u003C\u002Fp>\n","","A person's profile can list many jobs and several schools, but the API always returns them in a predictable shape: one job is singled out as the currentPosition, and the experie...",4,[20,24,27,30,33,36],{"id":21,"title":22,"level":23},"why-it-is-not-obvious","Why it is not obvious",2,{"id":25,"title":26,"level":23},"how-the-current-position-is-chosen","How the current position is chosen",{"id":28,"title":29,"level":23},"how-experience-and-education-are-ordered","How experience and education are ordered",{"id":31,"title":32,"level":23},"a-quick-example","A quick example",{"id":34,"title":35,"level":23},"what-this-means-in-practice","What this means in practice",{"id":37,"title":38,"level":23},"why-it-is-built-this-way","Why it is built this way",[],[41,42,43],"\u002Fdocs\u002Fendpoints\u002Fenrich-profile","\u002Fdocs\u002Fendpoints\u002Flive-profile","\u002Fdocs\u002Fguides\u002Fwhich-endpoint-should-i-use",1785773518968]