Rahul-Sainy commited on
Commit
b474acd
·
verified ·
1 Parent(s): 703136a

Upload 5 files

Browse files
ATS Resume Tracker Project flow TLDR.png ADDED
ProjectFlow.tldr ADDED
@@ -0,0 +1,603 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "tldrawFileFormatVersion": 1,
3
+ "schema": {
4
+ "schemaVersion": 2,
5
+ "sequences": {
6
+ "com.tldraw.store": 4,
7
+ "com.tldraw.asset": 1,
8
+ "com.tldraw.camera": 1,
9
+ "com.tldraw.document": 2,
10
+ "com.tldraw.instance": 24,
11
+ "com.tldraw.instance_page_state": 5,
12
+ "com.tldraw.page": 1,
13
+ "com.tldraw.instance_presence": 5,
14
+ "com.tldraw.pointer": 1,
15
+ "com.tldraw.shape": 4,
16
+ "com.tldraw.asset.bookmark": 1,
17
+ "com.tldraw.asset.image": 3,
18
+ "com.tldraw.asset.video": 3,
19
+ "com.tldraw.shape.group": 0,
20
+ "com.tldraw.shape.text": 2,
21
+ "com.tldraw.shape.bookmark": 2,
22
+ "com.tldraw.shape.draw": 1,
23
+ "com.tldraw.shape.geo": 8,
24
+ "com.tldraw.shape.note": 6,
25
+ "com.tldraw.shape.line": 4,
26
+ "com.tldraw.shape.frame": 0,
27
+ "com.tldraw.shape.arrow": 3,
28
+ "com.tldraw.shape.highlight": 0,
29
+ "com.tldraw.shape.embed": 4,
30
+ "com.tldraw.shape.image": 3,
31
+ "com.tldraw.shape.video": 2
32
+ }
33
+ },
34
+ "records": [
35
+ {
36
+ "gridSize": 10,
37
+ "name": "",
38
+ "meta": {},
39
+ "id": "document:document",
40
+ "typeName": "document"
41
+ },
42
+ {
43
+ "id": "pointer:pointer",
44
+ "typeName": "pointer",
45
+ "x": 595.281882117273,
46
+ "y": 279.6299840473741,
47
+ "lastActivityTimestamp": 1716098937289,
48
+ "meta": {}
49
+ },
50
+ {
51
+ "meta": {},
52
+ "id": "page:page",
53
+ "name": "Project Flow",
54
+ "index": "a1",
55
+ "typeName": "page"
56
+ },
57
+ {
58
+ "followingUserId": null,
59
+ "opacityForNextShape": 1,
60
+ "stylesForNextShape": {
61
+ "tldraw:geo": "rectangle",
62
+ "tldraw:fill": "none",
63
+ "tldraw:dash": "draw"
64
+ },
65
+ "brush": null,
66
+ "scribbles": [],
67
+ "cursor": {
68
+ "type": "default",
69
+ "rotation": 0
70
+ },
71
+ "isFocusMode": false,
72
+ "exportBackground": false,
73
+ "isDebugMode": false,
74
+ "isToolLocked": false,
75
+ "screenBounds": {
76
+ "x": 0,
77
+ "y": 0,
78
+ "w": 798,
79
+ "h": 527
80
+ },
81
+ "insets": [
82
+ false,
83
+ false,
84
+ true,
85
+ false
86
+ ],
87
+ "zoomBrush": null,
88
+ "isGridMode": false,
89
+ "isPenMode": false,
90
+ "chatMessage": "",
91
+ "isChatting": false,
92
+ "highlightedUserIds": [],
93
+ "canMoveCamera": true,
94
+ "isFocused": true,
95
+ "devicePixelRatio": 1,
96
+ "isCoarsePointer": false,
97
+ "isHoveringCanvas": true,
98
+ "openMenus": [],
99
+ "isChangingStyle": false,
100
+ "isReadonly": false,
101
+ "meta": {},
102
+ "duplicateProps": null,
103
+ "id": "instance:instance",
104
+ "currentPageId": "page:page",
105
+ "typeName": "instance"
106
+ },
107
+ {
108
+ "editingShapeId": null,
109
+ "croppingShapeId": null,
110
+ "selectedShapeIds": [
111
+ "shape:cn_r9GRGonxN0H_WBAq6E",
112
+ "shape:ubP2pkkUceuyH5roC22q7",
113
+ "shape:lSDuxKelFwRp7eHqLtZP5",
114
+ "shape:FDKpUxVDxhg6X19Jw1qku",
115
+ "shape:7txj6MT5m986rmm_AfCj6",
116
+ "shape:U1DyiqTxqs89ctDOEux-e",
117
+ "shape:9ZmHuwT5VNlPi76tFNCf8",
118
+ "shape:uSfk-O1a7ipTjJo7VQg4k",
119
+ "shape:RXJXeduFkPf3aHObEsLHw",
120
+ "shape:sBS2-pU0JIO0TldOfJra7",
121
+ "shape:SQogd0oMl6tWPf5-tFyMs"
122
+ ],
123
+ "hoveredShapeId": null,
124
+ "erasingShapeIds": [],
125
+ "hintingShapeIds": [],
126
+ "focusedGroupId": null,
127
+ "meta": {},
128
+ "id": "instance_page_state:page:page",
129
+ "pageId": "page:page",
130
+ "typeName": "instance_page_state"
131
+ },
132
+ {
133
+ "x": 134.3719707361683,
134
+ "y": 182.1762519358166,
135
+ "z": 0.5413525858258436,
136
+ "meta": {},
137
+ "id": "camera:page:page",
138
+ "typeName": "camera"
139
+ },
140
+ {
141
+ "x": -5.583447645175966,
142
+ "y": 52.55540313976525,
143
+ "rotation": 0,
144
+ "isLocked": false,
145
+ "opacity": 1,
146
+ "meta": {},
147
+ "id": "shape:cn_r9GRGonxN0H_WBAq6E",
148
+ "type": "geo",
149
+ "props": {
150
+ "w": 174,
151
+ "h": 65,
152
+ "geo": "rectangle",
153
+ "color": "black",
154
+ "labelColor": "black",
155
+ "fill": "semi",
156
+ "dash": "solid",
157
+ "size": "m",
158
+ "font": "draw",
159
+ "text": "PDF",
160
+ "align": "middle",
161
+ "verticalAlign": "middle",
162
+ "growY": 0,
163
+ "url": ""
164
+ },
165
+ "parentId": "page:page",
166
+ "index": "a1",
167
+ "typeName": "shape"
168
+ },
169
+ {
170
+ "x": 325.9405578417925,
171
+ "y": 54.67062947721382,
172
+ "rotation": 0,
173
+ "isLocked": false,
174
+ "opacity": 1,
175
+ "meta": {},
176
+ "id": "shape:ubP2pkkUceuyH5roC22q7",
177
+ "type": "geo",
178
+ "props": {
179
+ "w": 174,
180
+ "h": 65,
181
+ "geo": "rectangle",
182
+ "color": "black",
183
+ "labelColor": "black",
184
+ "fill": "semi",
185
+ "dash": "solid",
186
+ "size": "m",
187
+ "font": "draw",
188
+ "text": "Text",
189
+ "align": "middle",
190
+ "verticalAlign": "middle",
191
+ "growY": 0,
192
+ "url": ""
193
+ },
194
+ "parentId": "page:page",
195
+ "index": "a2",
196
+ "typeName": "shape"
197
+ },
198
+ {
199
+ "x": 165.41655235482403,
200
+ "y": 95.55540313976525,
201
+ "rotation": 0,
202
+ "isLocked": false,
203
+ "opacity": 1,
204
+ "meta": {},
205
+ "id": "shape:lSDuxKelFwRp7eHqLtZP5",
206
+ "type": "arrow",
207
+ "parentId": "page:page",
208
+ "index": "a3",
209
+ "props": {
210
+ "dash": "draw",
211
+ "size": "m",
212
+ "fill": "none",
213
+ "color": "black",
214
+ "labelColor": "black",
215
+ "bend": 0,
216
+ "start": {
217
+ "type": "point",
218
+ "x": 4,
219
+ "y": -6.5
220
+ },
221
+ "end": {
222
+ "type": "binding",
223
+ "boundShapeId": "shape:ubP2pkkUceuyH5roC22q7",
224
+ "normalizedAnchor": {
225
+ "x": 0.005747126436781609,
226
+ "y": 0.5384615384615384
227
+ },
228
+ "isPrecise": true,
229
+ "isExact": false
230
+ },
231
+ "arrowheadStart": "none",
232
+ "arrowheadEnd": "arrow",
233
+ "text": "",
234
+ "labelPosition": 0.5,
235
+ "font": "draw"
236
+ },
237
+ "typeName": "shape"
238
+ },
239
+ {
240
+ "x": 622.9364426154551,
241
+ "y": 54.55540313976525,
242
+ "rotation": 0,
243
+ "isLocked": false,
244
+ "opacity": 1,
245
+ "meta": {},
246
+ "id": "shape:FDKpUxVDxhg6X19Jw1qku",
247
+ "type": "geo",
248
+ "props": {
249
+ "w": 174,
250
+ "h": 65,
251
+ "geo": "rectangle",
252
+ "color": "black",
253
+ "labelColor": "black",
254
+ "fill": "semi",
255
+ "dash": "solid",
256
+ "size": "m",
257
+ "font": "draw",
258
+ "text": "API",
259
+ "align": "middle",
260
+ "verticalAlign": "middle",
261
+ "growY": 0,
262
+ "url": ""
263
+ },
264
+ "parentId": "page:page",
265
+ "index": "a4",
266
+ "typeName": "shape"
267
+ },
268
+ {
269
+ "x": 881.758116140832,
270
+ "y": 59.41411370217946,
271
+ "rotation": 0,
272
+ "isLocked": false,
273
+ "opacity": 1,
274
+ "meta": {},
275
+ "id": "shape:U1DyiqTxqs89ctDOEux-e",
276
+ "type": "geo",
277
+ "props": {
278
+ "w": 174,
279
+ "h": 65,
280
+ "geo": "rectangle",
281
+ "color": "black",
282
+ "labelColor": "black",
283
+ "fill": "semi",
284
+ "dash": "solid",
285
+ "size": "m",
286
+ "font": "draw",
287
+ "text": "Response",
288
+ "align": "middle",
289
+ "verticalAlign": "middle",
290
+ "growY": 0,
291
+ "url": ""
292
+ },
293
+ "parentId": "page:page",
294
+ "index": "a5",
295
+ "typeName": "shape"
296
+ },
297
+ {
298
+ "x": 644.416552354824,
299
+ "y": 97.55540313976525,
300
+ "rotation": 0,
301
+ "isLocked": false,
302
+ "opacity": 1,
303
+ "meta": {},
304
+ "id": "shape:9ZmHuwT5VNlPi76tFNCf8",
305
+ "type": "arrow",
306
+ "parentId": "page:page",
307
+ "index": "a6",
308
+ "props": {
309
+ "dash": "draw",
310
+ "size": "m",
311
+ "fill": "none",
312
+ "color": "black",
313
+ "labelColor": "black",
314
+ "bend": 0,
315
+ "start": {
316
+ "type": "binding",
317
+ "boundShapeId": "shape:FDKpUxVDxhg6X19Jw1qku",
318
+ "normalizedAnchor": {
319
+ "x": 0.9899799757185876,
320
+ "y": 0.6037459111533184
321
+ },
322
+ "isPrecise": true,
323
+ "isExact": false
324
+ },
325
+ "end": {
326
+ "type": "binding",
327
+ "boundShapeId": "shape:U1DyiqTxqs89ctDOEux-e",
328
+ "normalizedAnchor": {
329
+ "x": 0.005747126436781609,
330
+ "y": 0.5384615384615384
331
+ },
332
+ "isPrecise": true,
333
+ "isExact": false
334
+ },
335
+ "arrowheadStart": "none",
336
+ "arrowheadEnd": "arrow",
337
+ "text": "",
338
+ "labelPosition": 0.5,
339
+ "font": "draw"
340
+ },
341
+ "typeName": "shape"
342
+ },
343
+ {
344
+ "x": 165.41655235482403,
345
+ "y": 95.55540313976525,
346
+ "rotation": 0,
347
+ "isLocked": false,
348
+ "opacity": 1,
349
+ "meta": {},
350
+ "id": "shape:7txj6MT5m986rmm_AfCj6",
351
+ "type": "arrow",
352
+ "parentId": "page:page",
353
+ "index": "a4V",
354
+ "props": {
355
+ "dash": "draw",
356
+ "size": "m",
357
+ "fill": "none",
358
+ "color": "black",
359
+ "labelColor": "black",
360
+ "bend": 0,
361
+ "start": {
362
+ "type": "binding",
363
+ "boundShapeId": "shape:ubP2pkkUceuyH5roC22q7",
364
+ "normalizedAnchor": {
365
+ "x": 0.9688441101808498,
366
+ "y": 0.5712039675002635
367
+ },
368
+ "isPrecise": true,
369
+ "isExact": false
370
+ },
371
+ "end": {
372
+ "type": "binding",
373
+ "boundShapeId": "shape:FDKpUxVDxhg6X19Jw1qku",
374
+ "normalizedAnchor": {
375
+ "x": 0.005148406797034035,
376
+ "y": 0.504813173893771
377
+ },
378
+ "isPrecise": true,
379
+ "isExact": false
380
+ },
381
+ "arrowheadStart": "none",
382
+ "arrowheadEnd": "arrow",
383
+ "text": "",
384
+ "labelPosition": 0.5,
385
+ "font": "draw"
386
+ },
387
+ "typeName": "shape"
388
+ },
389
+ {
390
+ "x": 191.68952903520824,
391
+ "y": 40.71811533112327,
392
+ "rotation": 0,
393
+ "isLocked": false,
394
+ "opacity": 1,
395
+ "meta": {},
396
+ "id": "shape:uSfk-O1a7ipTjJo7VQg4k",
397
+ "type": "text",
398
+ "props": {
399
+ "color": "black",
400
+ "size": "m",
401
+ "w": 98.375,
402
+ "text": "PY PDF2",
403
+ "font": "draw",
404
+ "textAlign": "start",
405
+ "autoSize": true,
406
+ "scale": 1
407
+ },
408
+ "parentId": "page:page",
409
+ "index": "a7",
410
+ "typeName": "shape"
411
+ },
412
+ {
413
+ "x": 524.7924096936443,
414
+ "y": 30.850327693949083,
415
+ "rotation": 0,
416
+ "isLocked": false,
417
+ "opacity": 1,
418
+ "meta": {},
419
+ "id": "shape:RXJXeduFkPf3aHObEsLHw",
420
+ "type": "text",
421
+ "props": {
422
+ "color": "black",
423
+ "size": "m",
424
+ "w": 69.2153635116598,
425
+ "text": "Text",
426
+ "font": "draw",
427
+ "textAlign": "start",
428
+ "autoSize": false,
429
+ "scale": 1
430
+ },
431
+ "parentId": "page:page",
432
+ "index": "a8",
433
+ "typeName": "shape"
434
+ },
435
+ {
436
+ "x": 674.5427526291725,
437
+ "y": 20.141983643880508,
438
+ "rotation": 0,
439
+ "isLocked": false,
440
+ "opacity": 1,
441
+ "meta": {},
442
+ "id": "shape:sBS2-pU0JIO0TldOfJra7",
443
+ "type": "text",
444
+ "props": {
445
+ "color": "black",
446
+ "size": "m",
447
+ "w": 85.796875,
448
+ "text": "Gemini",
449
+ "font": "draw",
450
+ "textAlign": "start",
451
+ "autoSize": true,
452
+ "scale": 1
453
+ },
454
+ "parentId": "page:page",
455
+ "index": "a9",
456
+ "typeName": "shape"
457
+ },
458
+ {
459
+ "x": 3.5,
460
+ "y": 83.6762688614541,
461
+ "rotation": 0,
462
+ "isLocked": false,
463
+ "opacity": 1,
464
+ "meta": {},
465
+ "id": "shape:X395rtcoVQZpRdziIJDRy",
466
+ "type": "draw",
467
+ "props": {
468
+ "segments": [
469
+ {
470
+ "type": "free",
471
+ "points": [
472
+ {
473
+ "x": 0,
474
+ "y": 0,
475
+ "z": 0.5
476
+ }
477
+ ]
478
+ }
479
+ ],
480
+ "color": "black",
481
+ "fill": "none",
482
+ "dash": "draw",
483
+ "size": "m",
484
+ "isComplete": true,
485
+ "isClosed": false,
486
+ "isPen": false
487
+ },
488
+ "parentId": "shape:SQogd0oMl6tWPf5-tFyMs",
489
+ "index": "a2",
490
+ "typeName": "shape"
491
+ },
492
+ {
493
+ "x": 3.5,
494
+ "y": 149.51989026063103,
495
+ "rotation": 0,
496
+ "isLocked": false,
497
+ "opacity": 1,
498
+ "meta": {},
499
+ "id": "shape:XDOG8WV_r3iOo-gmMNiF-",
500
+ "type": "draw",
501
+ "props": {
502
+ "segments": [
503
+ {
504
+ "type": "free",
505
+ "points": [
506
+ {
507
+ "x": 0,
508
+ "y": 0,
509
+ "z": 0.5
510
+ },
511
+ {
512
+ "x": 1.37,
513
+ "y": 0,
514
+ "z": 0.5
515
+ }
516
+ ]
517
+ }
518
+ ],
519
+ "color": "black",
520
+ "fill": "none",
521
+ "dash": "draw",
522
+ "size": "m",
523
+ "isComplete": true,
524
+ "isClosed": false,
525
+ "isPen": false
526
+ },
527
+ "parentId": "shape:SQogd0oMl6tWPf5-tFyMs",
528
+ "index": "a3",
529
+ "typeName": "shape"
530
+ },
531
+ {
532
+ "x": 10.358710562414245,
533
+ "y": 0,
534
+ "rotation": 0,
535
+ "isLocked": false,
536
+ "opacity": 1,
537
+ "meta": {},
538
+ "id": "shape:zicspafSH2FtLU4QPwB2Q",
539
+ "type": "text",
540
+ "props": {
541
+ "color": "black",
542
+ "size": "m",
543
+ "w": 209.1330589849108,
544
+ "text": "Using\n\nStreamlit\nPypdf\ngemini",
545
+ "font": "draw",
546
+ "textAlign": "start",
547
+ "autoSize": false,
548
+ "scale": 1
549
+ },
550
+ "parentId": "shape:SQogd0oMl6tWPf5-tFyMs",
551
+ "index": "a1",
552
+ "typeName": "shape"
553
+ },
554
+ {
555
+ "x": 3.5,
556
+ "y": 111.11111111111114,
557
+ "rotation": 0,
558
+ "isLocked": false,
559
+ "opacity": 1,
560
+ "meta": {},
561
+ "id": "shape:4kaC6y-TgR81E-GgUsgUM",
562
+ "type": "draw",
563
+ "props": {
564
+ "segments": [
565
+ {
566
+ "type": "free",
567
+ "points": [
568
+ {
569
+ "x": 0,
570
+ "y": 0,
571
+ "z": 0.5
572
+ }
573
+ ]
574
+ }
575
+ ],
576
+ "color": "black",
577
+ "fill": "none",
578
+ "dash": "draw",
579
+ "size": "m",
580
+ "isComplete": true,
581
+ "isClosed": false,
582
+ "isPen": false
583
+ },
584
+ "parentId": "shape:SQogd0oMl6tWPf5-tFyMs",
585
+ "index": "a4",
586
+ "typeName": "shape"
587
+ },
588
+ {
589
+ "x": 42.55441243712872,
590
+ "y": 220.15073921658274,
591
+ "rotation": 0,
592
+ "isLocked": false,
593
+ "opacity": 1,
594
+ "meta": {},
595
+ "id": "shape:SQogd0oMl6tWPf5-tFyMs",
596
+ "type": "group",
597
+ "parentId": "page:page",
598
+ "index": "aE",
599
+ "props": {},
600
+ "typeName": "shape"
601
+ }
602
+ ]
603
+ }
README.md CHANGED
@@ -1,13 +1,30 @@
1
- ---
2
- title: Simple ResumeATSTracking
3
- emoji: 📊
4
- colorFrom: gray
5
- colorTo: pink
6
- sdk: streamlit
7
- sdk_version: 1.34.0
8
- app_file: app.py
9
- pinned: false
10
- license: mit
11
- ---
12
-
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Simple Resume ATS Tracking
2
+
3
+ ## Project Flow
4
+
5
+ ![Project Flow](ATS%20Resume%20Tracker%20Project%20flow%20TLDR.png)
6
+ 1. **PDF Text:** The application starts by extracting text from a PDF file. This is done using the PyPDF2 library.
7
+
8
+ 2. **API Response:** The extracted text is then sent to the Gemini API. The API processes the text and returns a response.
9
+
10
+ 3. **PyPDF2 to Text:** The PyPDF2 library converts the PDF file into text. This text is then processed further.
11
+
12
+ 4. **Gemini Using:** The processed text is sent to the Gemini API for further analysis.
13
+
14
+ ## Technologies Used
15
+
16
+ - **Streamlit:** Streamlit is used for creating the web application. It provides an easy way to create beautiful, interactive web applications.
17
+
18
+ - **PyPDF2:** PyPDF2 is used for extracting text from PDF files. It provides a simple and efficient way to handle PDF files in Python.
19
+
20
+ - **Gemini:** Gemini is used for processing the text extracted from the PDF files. It provides powerful text analysis capabilities.
21
+
22
+ ## Getting Started
23
+
24
+ To start this project, clone the repository and install the required dependencies.
25
+
26
+ ```bash
27
+ git clone https://github.com/RahulSainy/GEN-AI-Projects.git
28
+ cd Simple Resume ATS Tracking
29
+ pip install -r requirements.txt
30
+ streamlit run app.py
app.py ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import google.generativeai as genai
3
+ import os
4
+ from PyPDF2 import PdfReader
5
+ import json
6
+ from dotenv import load_dotenv
7
+ load_dotenv()
8
+
9
+ genai.configure(api_key=os.getenv('Google_API_KEY'))
10
+
11
+ input_prompt="""
12
+ Hey Act Like a skilled or very experience ATS(Application Tracking System)
13
+ with a deep understanding of tech field,software engineering,data science ,data analyst
14
+ and big data engineer. Your task is to evaluate the resume based on the given job description.
15
+ You must consider the job market is very competitive and you should provide
16
+ best assistance for improving thr resumes. Assign the percentage Matching based
17
+ on Jd and
18
+ the missing keywords with high accuracy
19
+ resume:{text}
20
+ description:{jd}
21
+
22
+ I want the response in one single string having the structure
23
+ {{"JD Match":"%","MissingKeywords:[]","Profile Summary":""}}
24
+ """
25
+ def get_gemini_response(input):
26
+ model = genai.GenerativeModel('gemini-pro')
27
+ response = model.generate_content(input)
28
+ return response.text
29
+
30
+ def input_pdf_text(uploaded_file):
31
+ reader = PdfReader(uploaded_file)
32
+ text = ''
33
+ for page in reader.pages:
34
+ text += str(page.extract_text())
35
+ return text
36
+
37
+
38
+
39
+ # Set page configuration
40
+ st.set_page_config(
41
+ page_title="Resume ATS Tracking",
42
+ page_icon="📄",
43
+ layout="wide",
44
+ initial_sidebar_state="expanded",
45
+ )
46
+ sidebar = st.sidebar
47
+ sidebar.title('Navigation')
48
+ sidebar.markdown('Use this panel to navigate through the application and input your data.')
49
+ # Add a title and a subtitle
50
+ st.title('Resume ATS Tracking')
51
+ st.subheader('Upload your resume and paste the job description to get the ATS tracking response')
52
+
53
+ jd = st.text_area('Paste the Job Description')
54
+ uploaded_file = sidebar.file_uploader('Upload Resume', type=['pdf'])
55
+
56
+ submit = st.button('Submit')
57
+
58
+ # Process the uploaded file and job description when the submit button is clicked
59
+ if submit:
60
+ if uploaded_file is not None:
61
+ text = input_pdf_text(uploaded_file)
62
+ # input = input_prompt.format(text=text,jd=jd)
63
+ response = get_gemini_response(input_prompt)
64
+ response = response[1:-1]
65
+
66
+ # Convert the response to a dictionary
67
+ response_dict = json.loads(response)
68
+
69
+ # Display the response in a structured way
70
+ st.subheader('ATS Tracking Response:')
71
+ st.markdown(f"**JD Match:** {response_dict['JD Match']}")
72
+ st.markdown(f"**Missing Keywords:** {', '.join(response_dict['MissingKeywords'])}")
73
+ st.markdown(f"**Profile Summary:** {response_dict['Profile Summary']}")
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ streamlit
2
+ PyPDF2
3
+ google.generativeai
4
+ python-dotenv