Skip to main content

Job Descriptions & Interview Preparation

When the EdTech company needed to hire a Senior Data Analyst — the role that Ayesha Raza was ultimately hired for — the first draft of the job description read like this:

Senior Data Analyst — Finance & Analytics. Requirements: 7+ years of experience in data analytics. Expert SQL and Python. Tableau and Power BI required. Experience with dbt mandatory. Hadoop or Spark experience preferred. Fintech or edtech background essential. CFA or equivalent qualification advantageous. Strong communication skills. Must be a self-starter who can work in a fast-paced, dynamic environment. Rockstar data mindset with the ability to dominate complex analytical problems.

Fifteen requirements — nine listed as essential. A "rockstar" in the first sentence. "Dynamic environment" that codes for long hours. No salary range. No description of what the analyst would actually do. No mention of the team, the company's mission, or what success would look like.

Nobody with the right skills read that job description and thought, I want this job. Ayesha was hired through a referral, not through that posting.

The EdTech company's hiring team knew this. They had rewritten the JD — lead with the work, calibrate the requirements, remove the exclusionary language, add the salary range. The result was a job description that attracted three times as many qualified applicants. Ayesha applied because she read it and saw her future work, not a checklist she could not fully tick.

The Four JD Principles

The gap between the first and second version of that job description is explained by four principles. Every job description either follows these principles or fails against one of them.

PrincipleWhat It MeansCommon Failure
Candidate perspective firstWrite from "you will" not "responsible for" — the candidate asks "what will I do and why does it matter?"Organisation-perspective writing: "The incumbent will be responsible for..."
Lead with the workStructure: Work → Impact → Requirements → Offer. Most JDs reverse this: requirements first, work buried at the bottomCandidate reads 15 requirements and stops before reaching the description of what the role actually does
Calibrate requirements ruthlesslySeparate Essential (absence makes the candidate unable to do the job) from Beneficial (nice-to-have). Maximum 5 essential items"15 essential requirements" — most of which are beneficial masquerading as essential
Inclusive language by defaultApply the inclusive language check to every JD automatically — gender-coded, age-coded, and experience-specificity flags"Rockstar", "ninja", "young and dynamic", "7+ years of [specific tool]"

The Essential vs Beneficial Test

The most common JD failure after perspective is over-specification. The test for each requirement:

Could a highly capable candidate do this job well without this?

If yes: Beneficial. If no: Essential.

Most JDs list 15 "essential" requirements. Most have three to five genuine ones. Over-specification deters qualified candidates — research suggests [VERIFY] that candidates from underrepresented groups are statistically more likely to self-select out when they do not meet every listed requirement.

In the Original Bad JDClassification After TestReason
Expert SQL and PythonEssentialCore technical requirement — absence makes analysis impossible
7+ years of experienceBeneficialPredicts tenure, not analytical ability
Tableau and Power BI requiredBeneficialBI tool knowledge transfers; the underlying skill is what matters
dbt mandatoryBeneficialLearnable; not absence-blocking
Fintech or edtech background essentialBeneficialDomain knowledge helpful; analytical skills transfer across industries
Strong communication skillsEssentialSenior analyst must translate analysis for non-technical stakeholders

Result: 15 "essential" requirements reduced to 2 genuinely essential ones (SQL/Python, communication) — with a third debatable (data infrastructure familiarity). Everything else moves to Beneficial.

Inclusive Language Flags

The /jd skill applies an inclusive language check to every output automatically — not as an optional step. The check flags:

Flag CategoryExamplesWhy It Matters
Gender-coded masculine"rockstar", "ninja", "guru", "dominate", "aggressive growth", "crushing it"Research suggests [VERIFY] these terms reduce application rates from women
Age-coded"young and dynamic", "digital native", "energetic young team", "recent graduate" (unless genuinely required)Signals age preference that may violate employment law in most jurisdictions
Experience specificity"5 years of Python" instead of "proficiency in Python for data analysis"Excludes bootcamp graduates and career-changers who have the skill but not the tenure
Culture-coded"culture fit" without defined behaviours; "startup experience required" without justificationToo vague to be useful; excludes candidates from large organisations unnecessarily

Worked Example: Writing the Senior Data Analyst JD with /jd

The hiring team at the EdTech company uses /jd to write the version that attracted Ayesha.

Invoke /jd with role context:

/jd
Role: Senior Data Analyst
Department: Finance & Analytics
Company: EdTech company, ~250 people, Karachi HQ
The work: Own financial analytics and investor reporting. Lead day-to-day
delivery on our BI infrastructure — the dashboards our CFO and board rely on.
Partner with Finance, Product, and Engineering.
Team: 4 people; high autonomy; this is a replacement hire
Essential requirements: Strong analytical thinking; SQL proficiency; Python
for data analysis (pandas, numpy)
Beneficial: BI tools (Looker/Tableau/Power BI); edtech/fintech domain knowledge;
dbt or data modelling experience
Salary: PKR 180,000–230,000/month (hybrid, Karachi HQ 3 days)
Culture: Fast-moving, data-driven, high autonomy; direct stakeholder access

Expected output structure:

TASK:          Job Description — Senior Data Analyst
DOCUMENT TYPE: Job Description
JURISDICTION: Pakistan
CONFIGURATION: hr.local.md loaded
SENSITIVITY: ROUTINE

SENIOR DATA ANALYST — FINANCE & ANALYTICS
[Company Name] | Karachi, Hybrid | PKR 180,000–230,000/month

THE WORK

We are a fast-growing edtech company and we make decisions based on data.
As our Senior Data Analyst in the Finance & Analytics team, you will be
the person who turns our financial and operational data into the insights
that shape how we grow.

Your work will include:
- Owning our financial reporting infrastructure — the dashboards and models
our CFO and investors rely on every quarter
- Leading our investor reporting process: designing, building, and maintaining
the analyses that go to our board
- Identifying patterns in financial and operational data that surface
opportunities and risks before they appear in the P&L
- Partnering with Finance, Product, and Engineering to ensure our data
infrastructure supports decisions at every level of the company

This is a high-autonomy, high-impact role. You will work directly with
senior stakeholders; your analysis will directly influence how we allocate
capital and prioritise growth.

WHAT WE'RE LOOKING FOR

Essential:
- Strong analytical thinking — you find the insight in complex data
before others see the question
- SQL proficiency — you write and optimise complex queries fluently
- Python for data analysis — pandas, numpy; comfortable building
repeatable analytical pipelines
- Clear communication — you translate analysis into decisions for
non-technical stakeholders

Beneficial (not required):
- BI tools: Looker, Tableau, Power BI, or similar
- Background in edtech, fintech, or SaaS
- dbt or data modelling framework experience

We care more about how you think than the specific tools you have used.
If you have the analytical foundation, we will invest in the rest.

WHAT WE OFFER
- PKR 180,000–230,000/month depending on experience
- Hybrid working: Karachi HQ 3 days / remote 2 days
- High autonomy; direct access to senior leadership
- [Benefits per hr.local.md]

HOW TO APPLY
[Application instructions]
[Company Name] is an equal opportunity employer. We welcome applications
from candidates of all backgrounds. If you require reasonable adjustments
during the recruitment process, please let us know.

INCLUSIVE LANGUAGE CHECK:
PASS — No gender-coded, age-coded, or experience-specificity flags found
Essential requirements: 4 items (within the 5-item discipline)
Salary range: Included (mandatory)
Equal opportunities statement: Present
Reasonable adjustments offer: Present

What to verify in the output:

CheckWhat to Look ForAction If Missing
Work-first structureDoes "THE WORK" section appear before requirements?Reorder if requirements lead
Essential countAre there 5 or fewer essential items?Challenge any item above 5 using the test
Salary rangeIs a specific range included (not "competitive")?Add range — this is mandatory
Inclusive languageDoes the check pass with no flags?Rewrite flagged items using the alternatives in the check output
Reasonable adjustmentsIs the offer present in the HOW TO APPLY section?Add — required in most jurisdictions
Your output will vary

The JD structure and inclusive language check output will reflect the inputs you provide. The teaching point is the verification process: check the inclusive language output and the essential requirements count before publishing any JD. /jd applies the check automatically; your job is to review and act on the findings.

Interview Preparation with /interview-prep

A strong JD attracts the right candidates. A structured interview plan evaluates them consistently and fairly. The /interview-prep skill (official human-resources plugin) generates a complete interview kit from the JD — competency mapping, questions, and scoring rubric — ensuring the interview tests what the JD promised.

Why Structured Interviews Matter

Unstructured interviews — different questions for each candidate, no scoring rubric, decision based on "impression" — are one of the most studied sources of hiring bias. Research suggests [VERIFY] that unstructured interviews have low predictive validity for job performance. Structured interviews, where every candidate is asked the same questions and scored on the same rubric, dramatically reduce the influence of irrelevant factors on hiring decisions.

Invoke /interview-prep with the JD output:

/interview-prep Senior Data Analyst

Using the job description for Senior Data Analyst (Finance & Analytics),
create a structured interview plan. Map each essential requirement to an
interview competency. Generate 2 behavioural questions and 1 situational
question per competency. Include a 1-4 scoring rubric for each competency
with described performance levels (not just numbers).

Expected output structure:

INTERVIEW KIT: Senior Data Analyst — Finance & Analytics

COMPETENCY MAP
JD Essential Requirement → Interview Competency

Analytical thinking → Analytical Problem-Solving
SQL/Python proficiency → Technical Proficiency
Clear communication → Stakeholder Communication
[Add competency] → Learning Agility (recommended — edtech context)

COMPETENCY 1: Analytical Problem-Solving

Behavioural questions (past evidence):
Q1: "Tell me about the most complex data problem you have solved. Walk me
through how you identified the problem, what you found in the data,
and what decision your analysis informed."
Follow-up: "What would you have done differently?"

Q2: "Describe a time when your analysis revealed something that contradicted
the leadership team's assumptions. How did you handle the conversation?"

Situational question (hypothetical):
Q3: "You are three days before a board presentation and you discover a
significant error in the financial model underlying your analysis.
The model was built by a colleague. What do you do?"

Scoring rubric (1-4):
4 — Exceeds: Structures problem systematically; uses evidence to challenge
assumptions; proactively communicates findings including unwelcome ones
3 — Meets: Identifies root cause accurately; communicates findings clearly
to non-technical audiences; works independently through ambiguity
2 — Developing: Follows established methods; needs guidance on structuring
ambiguous problems; tends to surface findings after the fact
1 — Below: Struggles to structure unscoped problems; analysis requires
significant verification by others

[Repeat structure for each competency]

DEBRIEF TEMPLATE
After each interview, each interviewer records:
- Score per competency (1-4) with one supporting evidence note
- Hire / No hire / More data needed
- Specific observation to discuss in debrief

Debrief agenda: Share scores independently before discussion.
Discuss divergences (≥2 point gap between interviewers on same competency).
Final decision by hiring manager with input from panel.

What to verify in the interview kit:

CheckWhat to Look For
Competency coverageEvery essential JD requirement maps to at least one competency
Question type balanceBoth behavioural ("tell me about a time") and situational ("how would you") questions present
Rubric specificityEach score level describes observable behaviour — not "good answer" vs "poor answer"
Debrief structureScores recorded independently before group discussion (prevents anchoring)

Exercise: Three JDs, One Interview Kit

Type: Applied Practice Time: 40 minutes Plugin commands: /jd (custom hr-operations plugin) + /interview-prep (official human-resources plugin) Goal: Write three job descriptions at different seniority levels, run the inclusive language check on each, and generate one structured interview kit

Step 1 — Choose Your Role Family

Select a role family from your own organisation or use the EdTech scenario:

  • EdTech: Data Analyst (Junior / Mid / Senior)
  • Alternative: Marketing Coordinator, Marketing Manager, Head of Marketing
  • Your own: [Any role family with junior, mid, senior levels]

Step 2 — Write Three JDs Using /jd

For each level, invoke /jd with the same role but different seniority expectations. Adjust:

  • Essential requirements (fewer for junior; add strategic scope for senior)
  • The work description (more supervised tasks for junior; stakeholder leadership for senior)
  • The offer (salary range will differ by level)

Run the inclusive language check on each. Record the check output for each JD:

JD 1 (Junior): Inclusive language check result: [Pass / Flag]
JD 2 (Mid): Inclusive language check result: [Pass / Flag]
JD 3 (Senior): Inclusive language check result: [Pass / Flag]

Fix any flags before proceeding.

Step 3 — Audit the Essential Requirements

For each JD, count the essential items and run the test on any item you are uncertain about:

Could a highly capable candidate do this job well without this?

Target: ≤5 essential items per JD. If you have more, move the excess to Beneficial.

Step 4 — Generate an Interview Kit for the Senior Role

Using the Senior JD, invoke /interview-prep:

/interview-prep [Role Title — Senior]

Using the job description I just created, generate a structured interview
plan. Map each essential requirement to an interview competency. For each
competency: 2 behavioural questions, 1 situational question, and a 1-4
scoring rubric with described performance levels at each score. Include a
debrief template.

Verify that every essential requirement in your JD maps to at least one interview competency. If there is a gap, add a competency.

Step 5 — Cross-Check for Alignment

The most common quality failure in hiring: the interview tests things the JD does not mention, and vice versa.

Run this check:

  • Take each question in your interview kit
  • Find the JD requirement it is testing
  • If a question has no corresponding JD requirement, either add the requirement to the JD (if it is genuinely essential) or remove the question

Deliverable: Three job descriptions (Junior/Mid/Senior) that have passed the inclusive language check, with ≤5 essential requirements each, plus one structured interview kit for the Senior level with full competency mapping and scoring rubrics.

Try With AI

Try With AI

Use these prompts in Cowork or your preferred AI assistant.

Reproduce: Write and check the Senior Data Analyst JD.

Write a job description for a Senior Data Analyst in a Finance & Analytics
team at a 250-person edtech company in Karachi. The role owns financial
analytics and investor reporting. Work hybrid (3 days Karachi HQ, 2 remote).
Salary: PKR 180,000–230,000/month.

Apply the four JD principles:
1. Write from the candidate's perspective ("you will" not "responsible for")
2. Lead with the work, not the requirements
3. Separate Essential (max 5) from Beneficial requirements using this test:
could a highly capable person do this job without this?
4. Apply the inclusive language check automatically — flag any gender-coded,
age-coded, or experience-specificity problems and rewrite them

At the end, summarise: how many essential requirements, any flags found
and how they were resolved.

What you are learning: Running all four JD principles simultaneously and seeing how they interact — the calibration test often reveals that items you would instinctively list as "essential" are actually beneficial, and the inclusive language check catches phrasing that feels natural but excludes qualified candidates.

Adapt: Apply to a role you are actively hiring for.

I am writing a job description for [role] at [company context].
The essential requirements are: [your list].
The beneficial requirements are: [your list].
Salary range: [range].

First, challenge my essential requirements list. For each item, ask:
could a highly capable candidate do this job without this? Move anything
that does not pass this test to beneficial.

Then write the full JD using the four principles. Run the inclusive
language check and fix any flags before showing me the output.

What you are learning: The essential/beneficial calibration is most powerful when applied to requirements you believe are essential — the discipline of justifying each item reveals assumptions about who can do the job that may not withstand scrutiny.

Apply: Design a bias-reducing interview plan for a role where bias is a known risk.

I am designing an interview process for a [role] where we have historically
hired candidates who are too similar to our existing team (same background,
same type of university, same previous company types).

Using the following JD essential requirements: [list from your JD],
design a structured interview plan that:
1. Maps each requirement to an interview competency
2. Generates 2 behavioural + 1 situational question per competency
3. Specifies a 1-4 rubric for each competency where EACH SCORE LEVEL
describes observable behaviour (not just a number)
4. Includes a debrief structure that prevents anchoring — interviewers
record scores independently before discussing

Then identify: which competency in the plan is most vulnerable to
interviewer bias even with a rubric, and what additional structure
would reduce that risk?

What you are learning: Structured interviews with rubrics reduce but do not eliminate bias — the most common remaining vulnerability is in competencies where "strong performance" is defined by familiarity rather than observable behaviour. Identifying that vulnerability and designing against it is the advanced application of structured hiring.

Flashcards Study Aid


Continue to Lesson 7: Offer Letters & Employment Documents →