Direct database access: mysql --defaults-file=~/.my.claude.cnf -e "SQL HERE;"
For timestamps with MySQL 8 strict mode, prefix with: SET SESSION sql_mode = '';
| ID | Status | Active |
|---|---|---|
| 1 | FOUND | yes |
| 2 | CONTACTED | yes |
| 3 | APPLIED | yes |
| 4 | INTERVIEWING | yes |
| 5 | FOLLOWUP | yes |
| 6 | CHASING | yes |
| 7 | NETWORKING | yes |
| 8 | UNAVAILABLE | no |
| 9 | INVALID | no |
| 10 | DUPLICATE | no |
| 11 | CLOSED | no |
| 12 | MISSING | no |
| 13 | MISMATCH | no |
INSERT INTO company (companyName, companyAddress1, companyAddress2, companyCity, companyState, companyZip, companyPhone, companyUrl, created)
VALUES ('Acme Corp', '123 Main St', '', 'Dallas', 'TX', '75201', '', 'https://acme.example.com', NOW());INSERT INTO contact (contactCompanyId, contactName, contactEmail, contactPhone, contactAlternatePhone, created)
VALUES ((SELECT id FROM company WHERE companyName = 'Acme Corp'), 'Jane Smith', 'jane@acme.com', '555-1234', '', NOW());INSERT INTO job (companyId, applicationStatusId, positionTitle, location, url, urgency, nextAction, nextActionDue, lastStatusChange, created)
VALUES (
(SELECT id FROM company WHERE companyName = 'Acme Corp'),
1, -- FOUND
'Senior DBA',
'Dallas, TX (Remote)',
'https://acme.example.com/jobs/123',
'medium',
'Review posting and apply',
DATE_ADD(NOW(), INTERVAL 2 DAY),
NOW(),
NOW()
);UPDATE job SET applicationStatusId = 3, lastStatusChange = NOW(), nextAction = 'Follow up in one week', nextActionDue = DATE_ADD(NOW(), INTERVAL 7 DAY) WHERE id = ?;UPDATE contact SET lastContacted = NOW() WHERE id = ?;UPDATE company SET lastContacted = NOW() WHERE id = ?;INSERT INTO keyword (keywordValue, sortKey, created) VALUES ('DBA', 0, NOW());INSERT INTO jobKeywordMap (jobId, keywordId, sortKey, created)
VALUES (?, (SELECT id FROM keyword WHERE keywordValue = 'DBA'), 0, NOW());INSERT INTO note (appliesToTable, appliesToId, noteText, created)
VALUES ('job', ?, 'Had phone screen, went well. Next step is technical interview.', NOW());INSERT INTO search (engineName, searchName, url, rssFeedUrl, created)
VALUES ('LinkedIn', 'DBA jobs Dallas remote', 'https://linkedin.com/jobs/search?...', '', NOW());SELECT j.id, j.positionTitle, c.companyName, a.statusValue, j.nextAction, j.nextActionDue, j.urgency
FROM job j
LEFT JOIN company c ON c.id = j.companyId
LEFT JOIN applicationStatus a ON a.id = j.applicationStatusId
WHERE a.isActive = 1
ORDER BY j.nextActionDue ASC;SELECT j.id, j.positionTitle, c.companyName, j.nextAction, j.nextActionDue
FROM job j
LEFT JOIN company c ON c.id = j.companyId
WHERE j.applicationStatusId = ?
ORDER BY j.lastStatusChange DESC;SELECT j.id, j.positionTitle, c.companyName, a.statusValue, j.nextAction, j.nextActionDue
FROM job j
LEFT JOIN company c ON c.id = j.companyId
LEFT JOIN applicationStatus a ON a.id = j.applicationStatusId
WHERE a.isActive = 1 AND j.nextActionDue < NOW()
ORDER BY j.nextActionDue ASC;SELECT id, companyName FROM company WHERE companyName LIKE '%acme%';id, agencyCompanyId (FK->company), companyName, companyAddress1, companyAddress2, companyCity, companyState, companyZip, companyPhone, companyUrl, created, updated, lastContacted
id, contactCompanyId (FK->company), contactName, contactEmail, contactPhone, contactAlternatePhone, lastContacted, created, updated
id, primaryContactId (FK->contact), companyId (FK->company), applicationStatusId (FK->applicationStatus), isActiveSummary, lastStatusChange, urgency (high/medium/low), created, updated, nextActionDue, nextAction, positionTitle, location, url (VARCHAR(768))
id, keywordValue (UNIQUE), sortKey, created, updated
id, jobId (FK->job), keywordId (FK->keyword), sortKey, created, updated
id, appliesToTable (enum: job/company/contact/keyword/search), appliesToId, created, updated, noteText
id, engineName, searchName, url, rssFeedUrl, rssLastChecked, created, updated
id, statusValue, isActive, sortKey, style, summaryCount, created, updated