methodology

What is Aura?

What does "Aura" mean?

In everyday language, aura refers to the invisible energy or presence a person gives off — the vibe someone has before they even say a word. When people say someone "has aura," they mean that person commands attention, feels credible, and leaves an impression.

We borrowed that idea for careers. Your career aura is the impression your LinkedIn profile makes on a recruiter in the first few seconds — before any conversation happens. We turned that impression into a number (0 – 2,500) so you can measure it, improve it, and compare it.

It is not AI-generated. Every point comes from a transparent, rule-based formula applied to real profile data. Same inputs always produce the same score.

It is actionable. The breakdown tells you exactly which dimension is holding your score down and by how much — so you know what to fix.

It is competitive. All scores are on a public leaderboard. Career growth becomes a sport you can track and compare.


Why we chose the name "Aura"

In everyday language, aura refers to the intangible quality that surrounds a person — the impression they give off before they even speak. In a hiring context, that impression is formed the moment a recruiter opens your LinkedIn profile.

We chose the name because it accurately describes what we are measuring: not just your credentials on paper, but the overall signal strength of your professional presence. A profile with high aura is one where every section — headline, experience, education, projects, and summary — works together to make a recruiter stop scrolling.

We also chose it because it resonates with a younger audience. Framing career development as something you can level up — the same way you would in a game — makes the process less intimidating and more motivating.

How the score is calculated

Aura is the sum of 8 independently scored dimensions. Each dimension has a defined maximum. The final score is capped at 2,500 points.

MASTER FORMULA

Aura = H + E + Ed + Sk + Ab + Pr + C + R

max = 250 + 650 + 350 + 450 + 200 + 300 + 300 + 150 = 2,500

HHeadline clarity
max 250 pts

H = min(80 + L + R + B + T + Co + Sc, 250)

L = 50 if headline length ≥ 40 chars, else 25 if ≥ 25, else 0

R = 90 if [CTO / VP / Director / Head of]

= 70 if [Lead / Senior / Architect / Founder]

= 60 if [Engineer / Developer / Scientist / Analyst]

= 35 if [Intern / Student / Graduate]

= 15 if [Seeking / Aspiring / Passionate]

B = 55 if ["building", "launching", "scaling", "founded"]

T = 30 if any tech keyword found in headline

Co = 50 if prestige company name found

Sc = 50 if elite school name found

EExperience signal
max 650 pts

E = min(n×140 + Sr + Co + Rs + Iv + Mt, 650)

n = number of structured job entries

Sr = 180 if [CTO / VP / Director / Head of]

= 130 if [Principal / Staff / Architect / Quant Researcher]

= 80 if [Senior / Lead / Manager / Tech Lead]

Co = 200 if 2+ prestige companies found, else 140 if 1

Rs = 100 if research signal [IEEE / NeurIPS / ICML / thesis / lab…]

Iv = 70 if impact verbs [built / shipped / led / reduced…]

Mt = 100 if metric found [30% / 2M users / $1M / 10x…]

EdEducation fit
max 350 pts

Ed = min(base + El + F + Dg + Hn + Re, 350)

base = 160 + min((entries−1)×40, 100) if any education found

El = if elite school: max(base, 220) + 80

F = 100 if [CS / Software Eng / AI / Data Science]

= 80 if [Engineering / Mathematics / Statistics / Physics]

= 55 if [Business / Economics / Finance / Design]

Dg = 90 if PhD, else 60 if Master's/MBA, else 30 if Bachelor's

Hn = 60 if [GPA 3.x+ / Dean's list / Cum Laude / Honours]

Re = 50 if [research / thesis / fellowship / NSF / grant]

SkSkills depth
max 450 pts

Sk = min(min(s×22, 220) + T1 + T4 + T8 + S12, 450)

s = total unique skills listed

T1 = 80 if tech_skills ≥ 1

T4 = 70 if tech_skills ≥ 4

T8 = 60 if tech_skills ≥ 8

S12 = 50 if total skills ≥ 12

tech_skills = unique matches against 50+ language/framework regex

AbAbout / Summary
max 200 pts

Ab = 0 if absent; else min(40 + Ln + Tk + Av + Pj + Ti + Mt, 200)

Ln = 25 if length > 150 chars, +25 if > 400 chars

Tk = 40 if 3+ tech skills, else 20 if 1+

Av = 35 if action verbs [built / shipped / led / published…]

Pj = 35 if project signal [github / portfolio / hackathon / paper…]

Ti = 20 if time mentioned [X years / X months]

Mt = 20 if metric found [% / users / $]

PrProjects proof
max 300 pts

Pr = min(p×90 + Po + Sh + Tk, 300)

p = number of structured project/cert entries

Po = 100 if portfolio signal [github.com / hackathon / open source…]

Sh = 90 if shipped signal [deployed / won / 1st place / published…]

Tk = 40 if 3+ tech skills in project descriptions

CProfile completeness
max 300 pts

C = (filled / 7) × 300

filled = count of present sections out of 7:

[name, headline, avatar, experience, education, skills, about]

each section is binary: 1 if present, 0 if missing

RRecruiter signal
max 150 pts

R = f(H + E + Ed + Sk + Ab + Pr + C)

let sub = sum of all 7 categories above

R = 150 if sub ≥ 1800

= 110 if sub ≥ 1300

= 70 if sub ≥ 850

= 40 if sub ≥ 450

= 15 otherwise

Scraping — quality over quantity

Most LinkedIn scrapers stop at the surface: they grab the job title and move on. We extract the full depth of each profile section.

For every experience entry, we capture the role title, company name, employment type, duration, and — most importantly — the full description. This is where the real signal lives: the bullet points where someone says "reduced API latency by 40%" or "led a team of 8 engineers." Without the description, the job is just a label.

For education, we capture the school name, degree type, field of study, GPA or grade if listed, and any activities or descriptions — including research projects and extracurriculars.

We also extract certifications, publications, honors, awards, and volunteer experience — all with their descriptions. A research paper published at NeurIPS is not just a line item; the abstract tells us what the person worked on.

The About section is treated as its own scoring category. It is the only part of LinkedIn where someone writes in their own voice — and it is the highest-signal input for distinguishing two candidates with identical job histories.

We run three scraping layers in sequence: a primary structured API, an enrichment fallback, and an HTML parser — ensuring coverage even for profiles with privacy restrictions.

Tiers

Offer Magnet2,000 – 2,500Recruiters reach out to you.
FAANG Contender1,600 – 1,999Strong candidate. Multiple offers likely.
Recruiter Bait1,200 – 1,599Solid profile. Standing out from the crowd.
New Grad Silver800 – 1,199Good foundation. Gaps are closeable.
Internship Bronze400 – 799Early career. Resume needs more substance.
Resume Rookie0 – 399The aura is still loading.

Built at GDGHack

RankedIn was built in a single hackathon sprint. The stack: Next.js 15 (App Router, server components), TypeScript, Tailwind CSS v4, Framer Motion, and Supabase (Postgres + Auth). The scoring engine is a custom-built text-mining pipeline — no AI APIs, no black box. Every point is explainable.