Tom's Keyword Miner — Documentation
Version 1.0.0 · Free keyword discovery tool for Windows
Overview
Tom's Keyword Miner discovers long-tail keywords by mining autocomplete suggestions from Google, DuckDuckGo, and YouTube. Enter a seed topic, and TKM combines it with 19 question-based patterns and every letter a–z, then queries autocomplete APIs to surface keyword ideas that paid SEO tools typically miss.
TKM is a single portable exe with no installer, no account, no cloud sync, and no dependencies. All data is stored locally in a SQLite database next to the exe.
Getting Started
- Download and unzip
TomsKeywordMiner.zipto any folder - Run
TomsKeywordMiner.exe— no installation or admin rights needed - On first run, a
datafolder is created next to the exe containingtkm.db - Click + Add Seed and enter a topic (e.g. "crm software")
- Review the pattern checkboxes — all 19 are enabled by default
- Click Start Mining and wait for the scan to complete
- Browse, filter, and export your discovered keywords
Seeds
A seed is a topic that TKM uses as the base for autocomplete queries. Examples: "crm software", "background remover", "meal prep for beginners".
Managing Seeds
- Add: Click the + Add Seed button in the left panel. Enter a topic name and press OK.
- Rename: Right-click a seed and select Rename.
- Delete: Right-click a seed and select Delete. This also deletes all keywords discovered for that seed.
- Select: Click a seed in the left panel to view its pattern setup (if no keywords yet) or its results table (if keywords have been mined).
Each seed in the left panel shows the topic name and a count badge with the number of discovered keywords.
Patterns
Patterns are question-based stems that TKM combines with your seed topic and every letter a–z to generate autocomplete queries. There are 19 built-in patterns across 4 categories:
| Category | Patterns | Query Template |
|---|---|---|
| Interrogative | what, which, when, where, who, why, how | {stem} {seed} {letter} |
| Modal | can, could, should, will, would | {stem} {seed} {letter} |
| Auxiliary | is, are, does, do | {stem} {seed} {letter} |
| Comparative | best, top, vs | best {seed} for {letter}top {seed} for {letter}{seed} vs {letter} |
With all 19 patterns enabled, each seed generates 19 × 26 = 494 queries per autocomplete source.
Configuring Patterns
When you select a seed that has no keywords yet, the pattern setup view appears. From here you can:
- Enable or disable individual patterns via checkboxes
- Use the All / None buttons next to each category name to toggle an entire category
- See the total query count update in real time as you toggle patterns
Pattern states are saved to the database when you click Start Mining.
Mining
Mining is the process of sending your seed + pattern + letter combinations to autocomplete APIs and collecting the suggestions.
Starting a Mining Session
Click Start Mining on the pattern setup screen, or use Mining → Start Mining from the menu bar. TKM will:
- Save your current pattern checkbox states
- Build the query matrix (enabled patterns × 26 letters)
- Open a WinHTTP session and begin querying
- Store each unique keyword in the database as it's found
- Commit to the database every 50 queries
During Mining
While mining is active:
- The title bar shows a live count: "Mining... 47 found (128/494)"
- A progress bar shows percentage complete
- The current query text is displayed on screen
- The UI is locked — the seed list, add button, and most menus are disabled. Only the Cancel button and Escape key are active.
Cancelling
Click the Cancel Mining button or press Escape. Mining stops at the next checkpoint and all keywords found up to that point are kept.
Completion Summary
After a successful mining run, a summary dialog appears showing the total queries completed, number of new keywords discovered, and the top-performing pattern (the pattern that produced the most keywords).
Sources
TKM queries up to three autocomplete sources per query:
| Source | Default | Default Delay | Notes |
|---|---|---|---|
| Always on | 1000 ms | Cannot be disabled. Primary source. | |
| DuckDuckGo | On | 500 ms | Enable/disable in Settings. Free, no API key. |
| YouTube | Off | 1000 ms | Enable/disable in Settings. Free, no API key. |
Different sources often return different suggestions for the same query. Running multiple sources increases your total keyword count.
The query count label on the pattern setup screen shows the exact query count and which sources are active, for example: "494 queries × 2 sources (Google, DuckDuckGo)".
Results Table
After mining completes (or if you select a seed that already has keywords), the results table appears. Each row shows:
| Column | Description |
|---|---|
| ☑ | Checkbox for selecting rows |
| Keyword | The discovered keyword text |
| Source | Which API found it (Google, DuckDuckGo, or YouTube) |
| Pattern | Which stem triggered the discovery (e.g. "how", "best", "vs") |
| Discovered | Date and time the keyword was found |
A summary bar above the table shows the total keyword count, number of sources, and relative time since the last mining session (e.g. "221 keywords from 3 sources · Last mined 2 hours ago").
Rows alternate between white and light grey for readability. Column widths are remembered between sessions.
Filtering & Sorting
Text Search
Type in the Search box above the table. Results filter in real time as you type, matching against the keyword text.
Source Filter
Use the All Sources dropdown to show only keywords from Google, DuckDuckGo, or YouTube.
Pattern Filter
Use the All Patterns dropdown to show only keywords discovered by a specific stem (e.g. only "how" keywords).
Sorting
Click any column header to sort by that column. Click again to reverse the sort direction. The default sort is by Keyword (A–Z).
All three filters can be combined. The status bar shows the filtered count (e.g. "Showing 42 of 221").
Selecting Rows
Selected rows are used for Copy, Export Selected, and Delete Selected operations.
- Click a row or its checkbox to toggle selection
- Shift+click to select a range from the last clicked row
- Drag-select: Hold the mouse button and drag across rows to select them
- Select All / Deselect All: Click the toggle button in the toolbar, or press Ctrl+A
Exporting Keywords
Clipboard
Select keywords and press Ctrl+C or click Copy Selected. Keywords are copied one per line.
Text File (.txt)
Use File → Export All (.txt) or File → Export Selected (.txt). The file contains one keyword per line with a header line:
# Discovered by Tom's Keyword Miner — tomdahne.com
best crm software for small business
how to choose crm software
what is crm software used for
CSV File (.csv)
Use File → Export All (.csv) or File → Export Selected (.csv). The CSV includes four columns with a UTF-8 BOM for Excel compatibility:
Keyword,Source,Pattern,Discovered
best crm software for small business,Google,best,2026-03-28 20:21
how to choose crm software,DuckDuckGo,how,2026-03-28 20:22
Context Menu
Right-click any row in the results table to access:
| Action | Description |
|---|---|
| Copy Keyword | Copy the single right-clicked keyword to the clipboard |
| Open in Google | Open a Google search for the right-clicked keyword in your default browser |
| Copy Selected | Copy all selected keywords to the clipboard (one per line) |
| Export Selected (.txt) | Save selected keywords to a .txt file |
| Export Selected (.csv) | Save selected keywords to a .csv file with metadata columns |
| Delete Selected | Delete selected keywords from the database (with confirmation) |
You can also double-click any row to open that keyword in a Google search.
Bulk actions (Copy Selected, Export, Delete) are grayed out when no rows are selected.
Settings
Open via File → Settings.
Sources
- Enable DuckDuckGo — adds DuckDuckGo as a second autocomplete source during mining. Default: on.
- Enable YouTube — adds YouTube as a third source. Default: off.
Delays
- Google (ms) — pause between Google queries. Default: 1000. Range: 100–10000.
- DuckDuckGo (ms) — pause between DDG queries. Default: 500. Range: 100–10000.
- YouTube (ms) — pause between YouTube queries. Default: 1000. Range: 100–10000.
Lower delays are faster but increase the chance of soft rate limiting (empty results). If you see many empty results, increase the delay.
Settings are stored in the database and persist across sessions.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| Ctrl+A | Select All / Deselect All (toggle) |
| Ctrl+C | Copy selected keywords to clipboard |
| Ctrl+E | Export selected keywords (.txt) |
| Ctrl+Shift+E | Export all keywords (.txt) |
| Delete | Delete selected keywords |
| Escape | Cancel active mining session |
Menu Reference
File
- Export All (.txt) — Ctrl+Shift+E
- Export Selected (.txt) — Ctrl+E
- Export All (.csv)
- Export Selected (.csv)
- Settings
- Exit
Edit
- Select All — Ctrl+A
- Deselect All
- Copy Selected — Ctrl+C
- Delete Selected — Delete
Mining
- Start Mining
- Cancel — Escape
Help
- Getting Started — shows a quick reference dialog
- Visit Website — opens tomdahne.com
- About — version info and link to Tom's Site Auditor
During mining, all menus except Mining → Cancel and Help are grayed out.
Data Storage
All data is stored in a single file:
TomsKeywordMiner.exe
data/
tkm.db
tkm.db is a standard SQLite database containing your seeds, pattern states, mining sessions, discovered keywords, and settings (including window position, column widths, and source delays).
- To back up: Copy
data\tkm.db - To reset: Delete
data\tkm.db— it will be recreated on next launch - To move to another PC: Copy the entire folder (exe + data folder)
- To inspect directly: Open
tkm.dbwith any SQLite browser
No data is sent to any server. The only network traffic is the autocomplete queries to Google, DuckDuckGo, and YouTube during mining.
Using with Tom's Site Auditor
Tom's Keyword Miner is designed to feed keywords into Tom's Site Auditor. The workflow:
- Mine keywords in TKM for your target topic
- Export to .txt or copy to clipboard
- In Site Auditor, open the Add Keywords dialog and paste
- Enrich with search volume, CPC, and trend data via Keywords Everywhere
- Track your rankings over time
TKM handles keyword discovery. Site Auditor handles analysis and tracking. They work as a pair, but TKM also works standalone with any tool that accepts keyword lists.
Troubleshooting
Windows SmartScreen blocks the exe
Click "More info" then "Run anyway". This happens because the exe is not code-signed. You can also submit it to Microsoft as a false positive.
Mining returns few or no results
This usually means rate limiting. Increase the delay in File → Settings. Google's default of 1000ms is conservative, but running many seeds back-to-back can trigger temporary soft limits that return empty suggestion lists.
Old database from testing
If you had a previous data\tkm.db from an earlier build, delete it and let TKM create a fresh one on next launch.
"Access Denied" or similar Windows errors
TKM does not require admin rights. Make sure you're running it from a folder where your user account has write access (not directly from the zip — extract it first).
Keywords not appearing after mining
Click the seed in the left panel to reload its results. If the seed shows a count badge but the results table is empty, check your filters — the source or pattern dropdown may be filtering everything out.
← Back to Tom's Keyword Miner