Skip to main content
← Back to Blog
2026-01-05 · 9 min readTipsAI AutomationUpdated Oct 03, 2026

How I Passed JLPT N5 Alongside Client Work (and Now Study for N4)

How I passed JLPT N5 in the gaps around client work, and the same system I now use for N4: the resources, a realistic routine, Anki, and the small n8n and Python automations that take the busywork out of making flashcards.

Avnish Yadav
Avnish Yadav
Developer & Automation Builder
2 views
How I Passed JLPT N5 Alongside Client Work (and Now Study for N4)

I passed the JLPT N5, the first level of the Japanese-Language Proficiency Test, while working on Salesforce and automation projects for clients. I did not take months off and I did not study for hours a day. What worked was a boring, repeatable system: one main textbook, a flashcard app I opened every day, short sessions that fit around client work, and a few small automations that removed the parts of studying I would otherwise skip.

This post is that system, written up so you can copy the parts that fit your week. It is also the system I use now that I am studying for N4, so I have added what changes at the next level.

What N5 actually tests

Before choosing resources, it helps to know what you are preparing for. N5 is scored in two parts: "Language Knowledge (Vocabulary/Grammar)・Reading" (0–120 points) and "Listening" (0–60 points). To pass you need at least 80 of the 180 points overall and at least 38 in the first part and 19 in listening. The sectional minimums matter: a strong reader who ignores listening can fail on that alone.

The JLPT has not published official vocabulary or kanji lists since the test was revised in 2010. The numbers you see online (around 100 kanji and 600–800 words for N5) are estimates from textbook and prep-book coverage. Treat them as a guide to scope, not a checklist.

The resources I used

I kept the stack small. Every extra app is another thing to keep up with.

  • One main textbook. Minna no Nihongo Shokyu I or Genki I both cover the N5 grammar. I worked through one methodically and only opened the other when an explanation did not click. Pick one; switching between two full courses is a common way to stall.
  • Tae Kim's Guide to Learning Japanese (free, online) for a second explanation of grammar points. It explains Japanese as a system of rules, which suits people who think in code.
  • Practice in the exam format in the last weeks: the sample questions on the official JLPT site, then a prep book such as Try! N5. The JLPT has its own question styles, and seeing them before the test day is worth a lot.
  • Graded reading and listening. Satori Reader, NHK NEWS WEB EASY (news rewritten for learners) and simple manga such as Yotsuba&! gave me Japanese in context once the textbook grammar started to make sense.
  • Anki, the free spaced-repetition flashcard app. More on how I set it up below.
  • Yomitan, a browser extension that shows the reading and meaning of a word when you hover over it. It is the maintained successor of Yomichan, which was retired in 2023, so old guides that recommend Yomichan point to Yomitan now.

A routine that fits around client work

Client work does not come in neat blocks, so the routine could not depend on a free evening. I split studying into small pieces that each had a fixed trigger:

  • Anki reviews first thing in the morning, before email. Reviews are the one thing I never skipped. Missing days in a spaced-repetition app creates a pile of overdue cards, and the pile is what makes people quit.
  • Listening in dead time: walks, chores, travel. Beginner podcasts or the audio from the reading apps. This is low effort and adds up.
  • One short session of new material on most days: one grammar point or part of a textbook chapter, plus writing a few sentences that use it. Twenty to forty minutes is enough if it is consistent.
  • A longer block at the weekend for anything heavier: finishing a chapter, a practice paper, or a longer reading.

On busy delivery days the plan shrank to reviews only. That was fine. The rule was "never zero", not "always an hour". Think of it like small, frequent commits instead of a giant merge at the end of the month.

How I set up Anki

Anki does the scheduling for you: it shows a card again just before you are likely to forget it. The setup matters more than the app.

  • Three decks: vocabulary, kanji (with example words, not kanji on their own) and grammar (one example sentence per card with the grammar point highlighted).
  • Cards from what I actually met. Words from my textbook chapter and from things I read beat a downloaded 800-word deck, because each one comes with a context I remember.
  • A small daily limit for new cards. Ten to fifteen new cards a day keeps the review load manageable around work. Raising it feels productive for a week and then the reviews bury you.

Anki can import a CSV or tab-separated text file (File → Import) and map columns to fields. That import is the hook for the automation below.

The automation: less copying, more studying

Making flashcards by hand is where my studying used to leak time: look the word up, copy the reading, find a sentence, format the card. So I automated the boring part and kept the part that helps you learn (choosing which words matter) manual.

Step 1: collect words in a Google Sheet

When I meet a word worth learning, I add it to a "New words" sheet: the word, where I saw it, and optionally the sentence. That takes seconds on a phone or laptop, and nothing else happens during study time.

Step 2: an n8n workflow fills in the card

A small n8n workflow runs on a schedule:

  1. Schedule Trigger once a day.
  2. Google Sheets node reads the rows that have no "done" mark.
  3. HTTP Request node (or an AI model node) asks an LLM for the reading in hiragana, a short English meaning and one simple N5-level example sentence, and asks for the answer as JSON with fixed keys.
  4. Code node parses that JSON and checks every key is present. A row with a bad answer is flagged for me to fix instead of becoming a broken card.
  5. Google Sheets node appends the result to an "Anki import" sheet with Front and Back columns and marks the source row done.

Once a week I download the import sheet as CSV and import it into Anki. I review every card before it goes in: an LLM is a helpful assistant here, not an authority, and it does get readings and nuance wrong sometimes. For the LLM I use whichever provider I already have a key for. DeepSeek, for example, offers an OpenAI-compatible chat completions endpoint at https://api.deepseek.com/chat/completions; check its docs for the current model names, because they change.

curl https://api.deepseek.com/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${DEEPSEEK_API_KEY}" \
  -d '{
    "model": "<current model name from the DeepSeek docs>",
    "messages": [
      {"role": "system", "content": "You help a JLPT N5 learner. Reply only with JSON: {\"reading\": \"...\", \"meaning\": \"...\", \"example\": \"...\"}"},
      {"role": "user", "content": "勉強"}
    ]
  }'

Step 3: find the unknown words in a text

For reading practice I sometimes run a short Python script over an article to list the words I have not added yet. Japanese has no spaces between words, so you need a morphological analyser to split a sentence. fugashi wraps MeCab and ships a small dictionary with pip install 'fugashi[unidic-lite]' jaconv:

from fugashi import Tagger
import jaconv

tagger = Tagger()

def content_words(text):
    """Nouns, verbs and adjectives in dictionary form, with a hiragana reading."""
    words = []
    for word in tagger(text):
        pos = word.feature.pos1  # e.g. 名詞 (noun), 動詞 (verb), 形容詞 (adjective)
        if pos not in ("名詞", "動詞", "形容詞"):
            continue
        lemma = word.feature.lemma or word.surface
        kana = word.feature.kana or ""
        words.append({"word": lemma, "reading": jaconv.kata2hira(kana), "pos": pos})
    return words

known = {"私", "日本", "勉強", "為る"}  # your Anki vocabulary, exported from the deck
text = "私は毎朝日本語を勉強しています。"
for w in content_words(text):
    marker = "" if w["word"] in known else "  <- new"
    print(f'{w["word"]} ({w["reading"]}) {w["pos"]}{marker}')

Two details trip people up. The dictionary form of a word can look different from what you typed (UniDic's lemma for する is written 為る), so build the known set from the same tagger. And the analyser will split some words differently from your textbook; that is normal and not worth fighting at N5.

What I did not automate

I did not automate the learning itself. Generating hundreds of cards from news articles is easy and useless: you end up reviewing words you have no connection to. The automation removed copying and formatting; picking words, writing my own sentences and doing reviews stayed manual.

What changes for N4

N4 builds directly on N5: more grammar patterns (conditionals, giving and receiving, the passive and causative), roughly twice the vocabulary and more kanji, and longer listening passages. The system stays the same. What I changed:

  • Moved to the next book in the same series (Minna no Nihongo Shokyu II or Genki II) instead of switching courses.
  • More listening earlier. The listening section has its own pass mark at every level, and the passages get longer and faster.
  • Sentence cards over word cards. At N4 the hard part is how words combine, so more of my new cards are whole sentences.
  • The same pipeline, pointed at harder reading. The workflow and the script did not need changes.

Tips if you are fitting this around work

  1. Protect the reviews. If you only have ten minutes, do reviews. New material can wait a day; overdue reviews compound.
  2. Pick one textbook and finish it. Resource-hopping feels like progress and is not.
  3. Automate the copying, not the thinking. Use scripts to format and fetch, never to decide what you study.
  4. Practise the test format before test day. Do at least one full practice paper with a timer.
  5. Watch the sectional pass marks, especially listening.
  6. Expect busy weeks. Shrink the plan instead of dropping it.

Frequently asked questions

Can you pass JLPT N5 while working?

Yes. I passed it alongside client work by studying in short daily sessions instead of long blocks. Consistency matters much more than the length of any one session.

What do you need to score to pass N5?

At least 80 out of 180 overall, plus at least 38 out of 120 in Language Knowledge (Vocabulary/Grammar)・Reading and 19 out of 60 in Listening. The JLPT site lists the pass marks for every level.

Is Anki necessary?

No, but some kind of spaced-repetition review is. Anki is free on desktop and Android and is easy to feed from a spreadsheet, which is why I use it.

Do I need to code to use the automation?

The n8n workflow needs no code apart from a short JSON check in the Code node. The Python script is optional; Yomitan in the browser covers most lookups without any code.

Should I trust an LLM for readings and meanings?

Use it to draft the card, then check it against your textbook or a dictionary before importing. It saves the typing, not the checking.

Where can I follow the N4 progress?

My now page has what I am working on, and I post about automation and learning on X and LinkedIn.

Sources

Verified against the sources below on October 3, 2026. Products and docs change often: check the linked sources if something looks different.

  1. JLPT: Scoring and pass marks (N1–N5)
  2. Yomitan (successor to Yomichan)
  3. fugashi (MeCab wrapper for Python)
  4. DeepSeek API docs
Share
Discussion

Comments

Loading comments...

Add a comment

Comments are reviewed before they appear.