{
  "app": {
    "name": "Mokabla",
    "url": "https://www.mokabla.com",
    "description": "Real interview questions from companies in Egypt, organised by company. Access is sold per company for 30 days."
  },
  "page": {
    "kind": "question",
    "title": "Question · frontend-technical-task",
    "humanPath": "/en/c/trufla/frontend-technical-task",
    "humanOnly": false
  },
  "identity": {
    "class": "declared",
    "agent": "ClaudeBot",
    "operator": "Anthropic",
    "verified": false,
    "reason": "The user agent is ClaudeBot (Anthropic), which identifies itself as an AI agent.",
    "signals": [
      "Known agent user agent"
    ],
    "claimable": false
  },
  "state": {
    "question": {
      "slug": "frontend-technical-task",
      "title": "Frontend Technical Task",
      "difficulty": "medium",
      "tags": [
        "coding",
        "frontend",
        "algorithms-theory",
        "oa",
        "role-frontend"
      ],
      "is_free": true,
      "locked": false,
      "frequency": 0.25,
      "last_reported_at": "2022-10-09T22:14:18.817750Z",
      "url": "https://www.mokabla.com/en/c/trufla/frontend-technical-task",
      "agent": {
        "page": "https://www.mokabla.com/agent/en/c/trufla/frontend-technical-task",
        "question": "https://www.mokabla.com/agent/_call/get_question?company=trufla&question=frontend-technical-task"
      },
      "company": {
        "slug": "trufla",
        "name_en": "Trufla"
      },
      "body_md": "## What they ask\nThe first stage for frontend roles in Cairo is a timed technical task of about an hour. It mixes fairly advanced data structure and algorithm problems with questions about frontend tooling (bundlers, package management, transpiling, how a React app is built and served). It is followed by an HR phone call where, among other things, you are asked to describe yourself in English.\n\nQuestions in this area, for example, on the coding side: you receive a navigation menu as a nested tree and must return a flat list of every item with its depth, in display order.\n\n## Example\nInput:\n```json\n[{\"title\": \"Home\", \"children\": []},\n {\"title\": \"Products\", \"children\": [\n    {\"title\": \"Auto\", \"children\": [{\"title\": \"Fleet\", \"children\": []}]},\n    {\"title\": \"Home Insurance\", \"children\": []}]}]\n```\nOutput: `[[\"Home\",0],[\"Products\",0],[\"Auto\",1],[\"Fleet\",2],[\"Home Insurance\",1]]`\n\nTooling items in the same task, for example: what a bundler does and why tree shaking needs ES modules; what `package-lock.json` is for; the difference between `dependencies` and `devDependencies`; what happens between `npm run build` and the browser receiving JavaScript.\n\n## What they look for\n- A correct recursive or explicit-stack traversal that preserves order, with attention to very deep trees.\n- Clean, readable JavaScript; they read the code, not just the output.\n- Practical tooling knowledge that shows you have shipped a frontend, not only written components.\n- On the HR call: a fluent, structured self-introduction in English, since the team works with Canadian clients.",
      "follow_ups_md": "- Do it without recursion.\n- How would you render this tree lazily if it had ten thousand nodes?"
    },
    "paid": false,
    "access": "Question bodies are paid content: a person buys 30 days of access per company (200 EGP or 200 points) in the human app. Agents get titles, tags and difficulty; bodies only for free questions."
  },
  "actions": [
    {
      "name": "get_question",
      "description": "One question with its body. Bodies are paid content unless the question is free.",
      "permission": "allow",
      "sideEffect": "read",
      "input": {
        "company": "string",
        "question": "string"
      },
      "href": "https://www.mokabla.com/agent/_call/get_question?company=trufla&question=frontend-technical-task",
      "ready": true,
      "missing": [],
      "humanPath": "https://www.mokabla.com/en/pricing"
    },
    {
      "name": "list_questions",
      "description": "The questions reported at a company: titles, tags, difficulty, whether each is free or paid.",
      "permission": "allow",
      "sideEffect": "read",
      "input": {
        "company": "string",
        "page": "number?"
      },
      "href": "https://www.mokabla.com/agent/_call/list_questions?company=trufla",
      "ready": true,
      "missing": []
    },
    {
      "name": "buy_access",
      "description": "Buy 30 days of access to a company.",
      "permission": "block",
      "reason": "This action is for people only",
      "ruleId": "R1",
      "sideEffect": "payment",
      "input": {
        "company": "string"
      },
      "href": "https://www.mokabla.com/agent/_call/buy_access?company=trufla",
      "ready": true,
      "missing": [],
      "humanPath": "https://www.mokabla.com/en/pricing"
    },
    {
      "name": "post_comment",
      "description": "Comment on a question.",
      "permission": "block",
      "reason": "This action is for people only",
      "ruleId": "R1",
      "sideEffect": "write",
      "input": {
        "question": "string",
        "text": "string"
      },
      "href": "https://www.mokabla.com/agent/_call/post_comment?question=frontend-technical-task",
      "ready": false,
      "missing": [
        "text"
      ],
      "humanPath": "https://www.mokabla.com/en/companies"
    }
  ],
  "navigate": [
    {
      "label": "This question, as data (free questions only)",
      "href": "https://www.mokabla.com/agent/_call/get_question?company=trufla&question=frontend-technical-task"
    },
    {
      "label": "All questions at this company",
      "href": "https://www.mokabla.com/agent/_call/list_questions?company=trufla"
    },
    {
      "label": "The company page",
      "href": "https://www.mokabla.com/agent/en/c/trufla"
    },
    {
      "label": "Frontend Technical Task · page",
      "href": "https://www.mokabla.com/agent/en/c/trufla/frontend-technical-task"
    }
  ],
  "notices": [
    {
      "severity": "info",
      "message": "This classification is final for the session: it came from a strong signal, not a guess. The human pages are not served to agents."
    },
    {
      "severity": "info",
      "message": "Unverified agents are read-only. Signed requests (Web Bot Auth) are the path to write access."
    }
  ],
  "meta": {
    "requestId": "ag_8ba573f36374",
    "policyVersion": "mokabla-2026-11-03",
    "generatedAt": "2026-11-03T18:38:40.049Z",
    "jsonUrl": "https://www.mokabla.com/agent/en/c/trufla/frontend-technical-task?format=json",
    "manifestUrl": "https://www.mokabla.com/.well-known/agentgate.json",
    "humanUrl": "https://www.mokabla.com/en/c/trufla/frontend-technical-task",
    "humanClaimUrl": "https://www.mokabla.com/agent/_claim/human?to=%2Fen%2Fc%2Ftrufla%2Ffrontend-technical-task"
  }
}